Create a module based on the provided spec.
(spec)
| 777 | |
| 778 | |
| 779 | def module_from_spec(spec): |
| 780 | """Create a module based on the provided spec.""" |
| 781 | # Typically loaders will not implement create_module(). |
| 782 | module = None |
| 783 | if hasattr(spec.loader, 'create_module'): |
| 784 | # If create_module() returns `None` then it means default |
| 785 | # module creation should be used. |
| 786 | module = spec.loader.create_module(spec) |
| 787 | elif hasattr(spec.loader, 'exec_module'): |
| 788 | raise ImportError('loaders that define exec_module() ' |
| 789 | 'must also define create_module()') |
| 790 | if module is None: |
| 791 | module = _new_module(spec.name) |
| 792 | _init_module_attrs(spec, module) |
| 793 | return module |
| 794 | |
| 795 | |
| 796 | def _module_repr_from_spec(spec): |
no test coverage detected
searching dependent graphs…