Create a module based on the provided spec.
(spec)
| 807 | |
| 808 | |
| 809 | def module_from_spec(spec): |
| 810 | """Create a module based on the provided spec.""" |
| 811 | # Typically loaders will not implement create_module(). |
| 812 | module = None |
| 813 | if hasattr(spec.loader, 'create_module'): |
| 814 | # If create_module() returns `None` then it means default |
| 815 | # module creation should be used. |
| 816 | module = spec.loader.create_module(spec) |
| 817 | elif hasattr(spec.loader, 'exec_module'): |
| 818 | raise ImportError('loaders that define exec_module() ' |
| 819 | 'must also define create_module()') |
| 820 | if module is None: |
| 821 | module = _new_module(spec.name) |
| 822 | _init_module_attrs(spec, module) |
| 823 | return module |
| 824 | |
| 825 | |
| 826 | def _module_repr_from_spec(spec): |
no test coverage detected