Commit 37e376c1565a56b4bd3ecc6c57d1bb6fbf426352

Authored by Tássia Camões Araújo
1 parent 8e309c4d
Exists in master and in 1 other branch add_vagrant

Added 'clustering' option, fixed logging import and path expansion.

Showing 1 changed file with 23 additions and 20 deletions   Show diff stats
@@ -22,7 +22,7 @@ __license__ = """ @@ -22,7 +22,7 @@ __license__ = """
22 import getopt 22 import getopt
23 import sys 23 import sys
24 import os 24 import os
25 -from logging import * 25 +import logging
26 import logging.handlers 26 import logging.handlers
27 27
28 from ConfigParser import * 28 from ConfigParser import *
@@ -33,20 +33,19 @@ class Config(): @@ -33,20 +33,19 @@ class Config():
33 """ 33 """
34 def __init__(self): 34 def __init__(self):
35 """ 35 """
36 - Set configuration options. 36 + Set default configuration options.
37 """ 37 """
38 self.debug = 0 38 self.debug = 0
39 self.verbose = 0 39 self.verbose = 0
40 self.output = "/dev/null" 40 self.output = "/dev/null"
41 self.config = None 41 self.config = None
42 - self.tags_db = "/var/lib/debtags/package-tags"  
43 - self.tags_index = "~/.app-recommender/debtags_index"  
44 self.axi = "/var/lib/apt-xapian-index/index" 42 self.axi = "/var/lib/apt-xapian-index/index"
45 self.axi_values = "/var/lib/apt-xapian-index/values" 43 self.axi_values = "/var/lib/apt-xapian-index/values"
46 - self.popcon_index = "~/.app-recommender/popcon_index"  
47 - self.popcon_dir = "~/.app-recommender/popcon_dir"  
48 - self.clusters_dir = "~/.app-recommender/clusters_dir"  
49 - self.strategy = "cb" # defaults to the cheapest one 44 + self.popcon_index = os.path.expanduser("~/.app-recommender/popcon_index")
  45 + self.popcon_dir = os.path.expanduser("~/.app-recommender/popcon_dir")
  46 + self.clusters_dir = os.path.expanduser("~/.app-recommender/clusters_dir")
  47 + self.clustering = 1
  48 + self.strategy = "cb"
50 self.weight = "bm25" 49 self.weight = "bm25"
51 self.load_options() 50 self.load_options()
52 self.set_logger() 51 self.set_logger()
@@ -66,6 +65,7 @@ class Config(): @@ -66,6 +65,7 @@ class Config():
66 print " -a, --axi=PATH Path to Apt-xapian-index." 65 print " -a, --axi=PATH Path to Apt-xapian-index."
67 print " -p, --popconindex=PATH Path to popcon dedicated index." 66 print " -p, --popconindex=PATH Path to popcon dedicated index."
68 print " -m, --popcondir=PATH Path to popcon submissions dir." 67 print " -m, --popcondir=PATH Path to popcon submissions dir."
  68 + print " -u, --clustering If popcon data should be clustered."
69 print " -l, --clustersdir=PATH Path to popcon clusters dir." 69 print " -l, --clustersdir=PATH Path to popcon clusters dir."
70 print " -w, --weight=OPTION Search weighting scheme." 70 print " -w, --weight=OPTION Search weighting scheme."
71 print " -s, --strategy=OPTION Recommendation strategy." 71 print " -s, --strategy=OPTION Recommendation strategy."
@@ -113,14 +113,15 @@ class Config(): @@ -113,14 +113,15 @@ class Config():
113 self.axi = self.read_option('recommender', 'axi') 113 self.axi = self.read_option('recommender', 'axi')
114 self.popcon_index = self.read_option('recommender', 'popcon_index') 114 self.popcon_index = self.read_option('recommender', 'popcon_index')
115 self.popcon_dir = self.read_option('recommender', 'popcon_dir') 115 self.popcon_dir = self.read_option('recommender', 'popcon_dir')
  116 + self.clustering = self.read_option('recommender', 'clustering')
116 self.clusters_dir = self.read_option('recommender', 'clusters_dir') 117 self.clusters_dir = self.read_option('recommender', 'clusters_dir')
117 self.weight = self.read_option('recommender', 'weight') 118 self.weight = self.read_option('recommender', 'weight')
118 self.strategy = self.read_option('recommender', 'strategy') 119 self.strategy = self.read_option('recommender', 'strategy')
119 120
120 - short_options = "hdvo:c:a:p:m:l:w:s:" 121 + short_options = "hdvo:c:a:p:m:ul:w:s:"
121 long_options = ["help", "debug", "verbose", "output=", "config=", 122 long_options = ["help", "debug", "verbose", "output=", "config=",
122 - "axi=", "popconindex=", "popcondir=", "clustersdir=",  
123 - "weight=", "strategy="] 123 + "axi=", "popconindex=", "popcondir=", "clustering",
  124 + "clusters_dir=", "weight=", "strategy="]
124 try: 125 try:
125 opts, args = getopt.getopt(sys.argv[1:], short_options, 126 opts, args = getopt.getopt(sys.argv[1:], short_options,
126 long_options) 127 long_options)
@@ -149,8 +150,10 @@ class Config(): @@ -149,8 +150,10 @@ class Config():
149 self.popcon_index = p 150 self.popcon_index = p
150 elif o in ("-m", "--popcondir"): 151 elif o in ("-m", "--popcondir"):
151 self.popcon_dir = p 152 self.popcon_dir = p
  153 + elif o in ("-u", "--clustering"):
  154 + self.clustering = 1
152 elif o in ("-l", "--clustersdir"): 155 elif o in ("-l", "--clustersdir"):
153 - self.popcon_dir = p 156 + self.clusters_dir = p
154 elif o in ("-w", "--weight"): 157 elif o in ("-w", "--weight"):
155 self.weight = p 158 self.weight = p
156 elif o in ("-s", "--strategy"): 159 elif o in ("-s", "--strategy"):
@@ -162,18 +165,18 @@ class Config(): @@ -162,18 +165,18 @@ class Config():
162 """ 165 """
163 Configure application logger and log level. 166 Configure application logger and log level.
164 """ 167 """
165 - self.logger = getLogger('') # root logger is used by default  
166 - self.logger.setLevel(DEBUG) 168 + self.logger = logging.getLogger('') # root logger is used by default
  169 + self.logger.setLevel(logging.DEBUG)
167 170
168 if self.debug == 1: 171 if self.debug == 1:
169 - log_level = DEBUG 172 + log_level = logging.DEBUG
170 elif self.verbose == 1: 173 elif self.verbose == 1:
171 - log_level = INFO 174 + log_level = logging.INFO
172 else: 175 else:
173 - log_level = WARNING 176 + log_level = logging.WARNING
174 177
175 - console_handler = StreamHandler(sys.stdout)  
176 - console_handler.setFormatter(Formatter('%(levelname)s: %(message)s')) 178 + console_handler = logging.StreamHandler(sys.stdout)
  179 + console_handler.setFormatter(logging.Formatter('%(levelname)s: %(message)s'))
177 console_handler.setLevel(log_level) 180 console_handler.setLevel(log_level)
178 self.logger.addHandler(console_handler) 181 self.logger.addHandler(console_handler)
179 182
@@ -181,6 +184,6 @@ class Config(): @@ -181,6 +184,6 @@ class Config():
181 maxBytes=5000, 184 maxBytes=5000,
182 backupCount=5) 185 backupCount=5)
183 log_format = '%(asctime)s AppRecommender %(levelname)-8s %(message)s' 186 log_format = '%(asctime)s AppRecommender %(levelname)-8s %(message)s'
184 - file_handler.setFormatter(Formatter(log_format)) 187 + file_handler.setFormatter(logging.Formatter(log_format))
185 file_handler.setLevel(log_level) 188 file_handler.setLevel(log_level)
186 self.logger.addHandler(file_handler) 189 self.logger.addHandler(file_handler)