Commit 37e376c1565a56b4bd3ecc6c57d1bb6fbf426352
1 parent
8e309c4d
Exists in
master
and in
1 other branch
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,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) |