equal
deleted
inserted
replaced
495 if x.startswith('cubicweb-')) |
495 if x.startswith('cubicweb-')) |
496 if not isinstance(deps, dict): |
496 if not isinstance(deps, dict): |
497 deps = dict((key, None) for key in deps) |
497 deps = dict((key, None) for key in deps) |
498 warn('[3.8] cube %s should define %s as a dict' % (cube, key), |
498 warn('[3.8] cube %s should define %s as a dict' % (cube, key), |
499 DeprecationWarning) |
499 DeprecationWarning) |
|
500 for depcube in deps: |
|
501 try: |
|
502 newname = CW_MIGRATION_MAP[depcube] |
|
503 except KeyError: |
|
504 pass |
|
505 else: |
|
506 deps[newname] = deps.pop(depcube) |
500 return deps |
507 return deps |
501 |
508 |
502 @classmethod |
509 @classmethod |
503 def cube_dependencies(cls, cube): |
510 def cube_dependencies(cls, cube): |
504 """return cubicweb cubes used by the given cube""" |
511 """return cubicweb cubes used by the given cube""" |
514 """expand the given list of top level cubes used by adding recursivly |
521 """expand the given list of top level cubes used by adding recursivly |
515 each cube dependencies |
522 each cube dependencies |
516 """ |
523 """ |
517 cubes = list(cubes) |
524 cubes = list(cubes) |
518 todo = cubes[:] |
525 todo = cubes[:] |
|
526 if with_recommends: |
|
527 available = set(cls.available_cubes()) |
519 while todo: |
528 while todo: |
520 cube = todo.pop(0) |
529 cube = todo.pop(0) |
521 for depcube in cls.cube_dependencies(cube): |
530 for depcube in cls.cube_dependencies(cube): |
522 if depcube not in cubes: |
531 if depcube not in cubes: |
523 depcube = CW_MIGRATION_MAP.get(depcube, depcube) |
|
524 cubes.append(depcube) |
532 cubes.append(depcube) |
525 todo.append(depcube) |
533 todo.append(depcube) |
526 if with_recommends: |
534 if with_recommends: |
527 for depcube in cls.cube_recommends(cube): |
535 for depcube in cls.cube_recommends(cube): |
528 if depcube not in cubes: |
536 if depcube not in cubes and depcube in available: |
529 depcube = CW_MIGRATION_MAP.get(depcube, depcube) |
|
530 cubes.append(depcube) |
537 cubes.append(depcube) |
531 todo.append(depcube) |
538 todo.append(depcube) |
532 return cubes |
539 return cubes |
533 |
540 |
534 @classmethod |
541 @classmethod |