project-stats

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

commit
c10db7590749b3807dc4bda38b58fda51eb87560
parent
c8b2fccef1567e34be478bd2760f5a217e6068af
Author
Tobias Bengfort <tobias.bengfort@gmx.net>
Date
2015-12-18 09:16
change code order

Diffstat

M project_stats.py 80 ++++++++++++++++++++++++++++++------------------------------

1 files changed, 40 insertions, 40 deletions


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

@@ -317,6 +317,46 @@ def get_travis(url):
  317   317     }
  318   318 
  319   319 
   -1   320 def get_project(args):
   -1   321     key, project, config = args
   -1   322     claims = ClaimsDict(KEYS)
   -1   323     for source in SOURCES:
   -1   324         if source in project:
   -1   325             try:
   -1   326                 fn = globals()['get_' + source]
   -1   327                 if source == 'github':
   -1   328                     data = fn(
   -1   329                         project[source],
   -1   330                         user=r_get(config, 'github', 'user'),
   -1   331                         password=r_get(config, 'github', 'password'))
   -1   332                 elif source == 'gitlab':
   -1   333                     data = fn(
   -1   334                         project[source],
   -1   335                         token=r_get(config, 'gitlab', 'token'))
   -1   336                 else:
   -1   337                     data = fn(project[source])
   -1   338                 claims.update(data, source)
   -1   339             except Exception as e:
   -1   340                 message = 'Error while gathering stats for %s from %s: %s',
   -1   341                 logging.error(message, key, source, e)
   -1   342     return claims
   -1   343 
   -1   344 
   -1   345 def get_projects(projects_config, config):
   -1   346     pool = multiprocessing.Pool()
   -1   347     # HACK to get KeyboardInterrupt to work.
   -1   348     # See https://stackoverflow.com/questions/1408356
   -1   349     pool_map = lambda a, b: pool.map_async(a, b).get(99999)
   -1   350     args = ((key, project, config) for key, project in projects_config.items())
   -1   351     projects_list = pool_map(get_project, args)
   -1   352 
   -1   353     projects = {}
   -1   354     for key, project in zip(projects_config.keys(), projects_list):
   -1   355         if project is not None:
   -1   356             projects[key] = project
   -1   357     return projects
   -1   358 
   -1   359 
  320   360 def select_config(args):
  321   361     if args.config is not None:
  322   362         return os.path.expanduser(args.config)
@@ -366,46 +406,6 @@ def parse_args():
  366   406     return parser.parse_args()
  367   407 
  368   408 
  369    -1 def get_project(args):
  370    -1     key, project, config = args
  371    -1     claims = ClaimsDict(KEYS)
  372    -1     for source in SOURCES:
  373    -1         if source in project:
  374    -1             try:
  375    -1                 fn = globals()['get_' + source]
  376    -1                 if source == 'github':
  377    -1                     data = fn(
  378    -1                         project[source],
  379    -1                         user=r_get(config, 'github', 'user'),
  380    -1                         password=r_get(config, 'github', 'password'))
  381    -1                 elif source == 'gitlab':
  382    -1                     data = fn(
  383    -1                         project[source],
  384    -1                         token=r_get(config, 'gitlab', 'token'))
  385    -1                 else:
  386    -1                     data = fn(project[source])
  387    -1                 claims.update(data, source)
  388    -1             except Exception as e:
  389    -1                 message = 'Error while gathering stats for %s from %s: %s',
  390    -1                 logging.error(message, key, source, e)
  391    -1     return claims
  392    -1 
  393    -1 
  394    -1 def get_projects(projects_config, config):
  395    -1     pool = multiprocessing.Pool()
  396    -1     # HACK to get KeyboardInterrupt to work.
  397    -1     # See https://stackoverflow.com/questions/1408356
  398    -1     pool_map = lambda a, b: pool.map_async(a, b).get(99999)
  399    -1     args = ((key, project, config) for key, project in projects_config.items())
  400    -1     projects_list = pool_map(get_project, args)
  401    -1 
  402    -1     projects = {}
  403    -1     for key, project in zip(projects_config.keys(), projects_list):
  404    -1         if project is not None:
  405    -1             projects[key] = project
  406    -1     return projects
  407    -1 
  408    -1 
  409   409 def main():
  410   410     args = parse_args()
  411   411     config = load_config(select_config(args))