- 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 408369 -1 def get_project(args):370 -1 key, project, config = args371 -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 claims392 -1393 -1394 -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/1408356398 -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 -1402 -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] = project406 -1 return projects407 -1408 -1409 409 def main(): 410 410 args = parse_args() 411 411 config = load_config(select_config(args))