project-stats

keep track of your projects
git clone https://git.ce9e.org/project-stats.git

commit
cccc01f77af0c0a7372bab8260f4c4303b8fc868
parent
7e6e7521ecb5401a2d716cbb5fc76da8ab04914a
Author
Tobias Bengfort <tobias.bengfort@gmx.net>
Date
2015-12-13 11:06
fix github auth

Diffstat

M project_stats.py 16 +++++++++-------

1 files changed, 9 insertions, 7 deletions


diff --git a/project_stats.py b/project_stats.py

@@ -370,19 +370,19 @@ def parse_args():
  370   370 
  371   371 
  372   372 def get_project(args):
  373    -1     key, config = args
   -1   373     key, project, config = args
  374   374     claims = ClaimsDict(KEYS)
  375   375     for source in SOURCES:
  376    -1         if source in config:
   -1   376         if source in project:
  377   377             try:
  378   378                 fn = globals()['get_' + source]
  379   379                 if source == 'github':
  380   380                     data = fn(
  381    -1                         config[source],
   -1   381                         project[source],
  382   382                         user=r_get(config, 'github', 'user'),
  383   383                         password=r_get(config, 'github', 'password'))
  384   384                 else:
  385    -1                     data = fn(config[source])
   -1   385                     data = fn(project[source])
  386   386                 claims.update(data, source)
  387   387             except Exception as e:
  388   388                 message = 'Error while gathering stats for %s from %s: %s',
@@ -390,12 +390,13 @@ def get_project(args):
  390   390     return claims
  391   391 
  392   392 
  393    -1 def get_projects(projects_config):
   -1   393 def get_projects(projects_config, config):
  394   394     pool = multiprocessing.Pool()
  395   395     # HACK to get KeyboardInterrupt to work.
  396   396     # See https://stackoverflow.com/questions/1408356
  397   397     pool_map = lambda a, b: pool.map_async(a, b).get(99999)
  398    -1     projects_list = pool_map(get_project, projects_config.items())
   -1   398     args = ((key, project, config) for key, project in projects_config.items())
   -1   399     projects_list = pool_map(get_project, args)
  399   400 
  400   401     projects = {}
  401   402     for key, project in zip(projects_config.keys(), projects_list):
@@ -412,7 +413,8 @@ def main():
  412   413     if args.query is not None:
  413   414         keys = filter(lambda k: args.query.lower() in k.lower(), keys)
  414   415 
  415    -1     projects = get_projects({key: config['projects'][key] for key in keys})
   -1   416     projects_config = {key: config['projects'][key] for key in keys}
   -1   417     projects = get_projects(projects_config, config)
  416   418     keys = filter(lambda k: k in projects, keys)
  417   419 
  418   420     if args.sort is not None: