(name, compat_modules=None, by_module=None, direct=None,
base=LazyModule, **attrs)
| 495 | |
| 496 | |
| 497 | def recreate_module(name, compat_modules=None, by_module=None, direct=None, |
| 498 | base=LazyModule, **attrs): |
| 499 | compat_modules = compat_modules or COMPAT_MODULES.get(name, ()) |
| 500 | by_module = by_module or {} |
| 501 | direct = direct or {} |
| 502 | old_module = sys.modules[name] |
| 503 | origins = get_origins(by_module) |
| 504 | |
| 505 | _all = tuple(set(reduce( |
| 506 | operator.add, |
| 507 | [tuple(v) for v in [compat_modules, origins, direct, attrs]], |
| 508 | ))) |
| 509 | cattrs = { |
| 510 | '_compat_modules': compat_modules, |
| 511 | '_all_by_module': by_module, '_direct': direct, |
| 512 | '_object_origins': origins, |
| 513 | '__all__': _all, |
| 514 | } |
| 515 | new_module = create_module(name, attrs, cls_attrs=cattrs, base=base) |
| 516 | new_module.__dict__.update({ |
| 517 | mod: get_compat_module(new_module, mod) for mod in compat_modules |
| 518 | }) |
| 519 | new_module.__spec__ = old_module.__spec__ |
| 520 | return old_module, new_module |
| 521 | |
| 522 | |
| 523 | def get_compat_module(pkg, name): |
nothing calls this directly
no test coverage detected