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
src/config.py
... ... @@ -22,7 +22,7 @@ __license__ = """
22 22 import getopt
23 23 import sys
24 24 import os
25   -from logging import *
  25 +import logging
26 26 import logging.handlers
27 27  
28 28 from ConfigParser import *
... ... @@ -33,20 +33,19 @@ class Config():
33 33 """
34 34 def __init__(self):
35 35 """
36   - Set configuration options.
  36 + Set default configuration options.
37 37 """
38 38 self.debug = 0
39 39 self.verbose = 0
40 40 self.output = "/dev/null"
41 41 self.config = None
42   - self.tags_db = "/var/lib/debtags/package-tags"
43   - self.tags_index = "~/.app-recommender/debtags_index"
44 42 self.axi = "/var/lib/apt-xapian-index/index"
45 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 49 self.weight = "bm25"
51 50 self.load_options()
52 51 self.set_logger()
... ... @@ -66,6 +65,7 @@ class Config():
66 65 print " -a, --axi=PATH Path to Apt-xapian-index."
67 66 print " -p, --popconindex=PATH Path to popcon dedicated index."
68 67 print " -m, --popcondir=PATH Path to popcon submissions dir."
  68 + print " -u, --clustering If popcon data should be clustered."
69 69 print " -l, --clustersdir=PATH Path to popcon clusters dir."
70 70 print " -w, --weight=OPTION Search weighting scheme."
71 71 print " -s, --strategy=OPTION Recommendation strategy."
... ... @@ -113,14 +113,15 @@ class Config():
113 113 self.axi = self.read_option('recommender', 'axi')
114 114 self.popcon_index = self.read_option('recommender', 'popcon_index')
115 115 self.popcon_dir = self.read_option('recommender', 'popcon_dir')
  116 + self.clustering = self.read_option('recommender', 'clustering')
116 117 self.clusters_dir = self.read_option('recommender', 'clusters_dir')
117 118 self.weight = self.read_option('recommender', 'weight')
118 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 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 125 try:
125 126 opts, args = getopt.getopt(sys.argv[1:], short_options,
126 127 long_options)
... ... @@ -149,8 +150,10 @@ class Config():
149 150 self.popcon_index = p
150 151 elif o in ("-m", "--popcondir"):
151 152 self.popcon_dir = p
  153 + elif o in ("-u", "--clustering"):
  154 + self.clustering = 1
152 155 elif o in ("-l", "--clustersdir"):
153   - self.popcon_dir = p
  156 + self.clusters_dir = p
154 157 elif o in ("-w", "--weight"):
155 158 self.weight = p
156 159 elif o in ("-s", "--strategy"):
... ... @@ -162,18 +165,18 @@ class Config():
162 165 """
163 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 171 if self.debug == 1:
169   - log_level = DEBUG
  172 + log_level = logging.DEBUG
170 173 elif self.verbose == 1:
171   - log_level = INFO
  174 + log_level = logging.INFO
172 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 180 console_handler.setLevel(log_level)
178 181 self.logger.addHandler(console_handler)
179 182  
... ... @@ -181,6 +184,6 @@ class Config():
181 184 maxBytes=5000,
182 185 backupCount=5)
183 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 188 file_handler.setLevel(log_level)
186 189 self.logger.addHandler(file_handler)
... ...