• Home
  • Raw
  • Download

Lines Matching full:spec

268     spec = spec_from_loader(fullname, self)
271 _exec(spec, module)
274 return _load(spec)
290 spec = module.__spec__
294 if spec is not None:
295 return _module_repr_from_spec(spec)
317 A module's spec is the source for information about the module. For
318 data associated with the module, including source, use the spec's
332 `has_location` indicates that a spec's "origin" reflects a location.
342 Packages are simply modules that (may) have submodules. If a spec
344 system will consider modules loaded from the spec as packages.
416 """Return a module spec based on various loader methods."""
444 spec = module.__spec__
448 if spec is not None:
449 return spec
479 spec = ModuleSpec(name, loader, origin=origin)
480 spec._set_fileattr = False if location is None else True
481 spec.cached = cached
482 spec.submodule_search_locations = submodule_search_locations
483 return spec
486 def _init_module_attrs(spec, module, *, override=False): argument
492 module.__name__ = spec.name
497 loader = spec.loader
500 if spec.submodule_search_locations is not None:
506 loader._path = spec.submodule_search_locations
507 spec.loader = loader
510 # spec.has_location is false, this is incorrect for namespace
526 module.__package__ = spec.parent
531 module.__spec__ = spec
536 if spec.submodule_search_locations is not None:
538 module.__path__ = spec.submodule_search_locations
542 if spec.has_location:
545 module.__file__ = spec.origin
550 if spec.cached is not None:
552 module.__cached__ = spec.cached
558 def module_from_spec(spec): argument
559 """Create a module based on the provided spec."""
562 if hasattr(spec.loader, 'create_module'):
565 module = spec.loader.create_module(spec)
566 elif hasattr(spec.loader, 'exec_module'):
570 module = _new_module(spec.name)
571 _init_module_attrs(spec, module)
575 def _module_repr_from_spec(spec): argument
577 # We mostly replicate _module_repr() using the spec attributes.
578 name = '?' if spec.name is None else spec.name
579 if spec.origin is None:
580 if spec.loader is None:
583 return '<module {!r} ({!r})>'.format(name, spec.loader)
585 if spec.has_location:
586 return '<module {!r} from {!r}>'.format(name, spec.origin)
588 return '<module {!r} ({})>'.format(spec.name, spec.origin)
592 def _exec(spec, module): argument
593 """Execute the spec's specified module in an existing module's namespace."""
594 name = spec.name
600 if spec.loader is None:
601 if spec.submodule_search_locations is None:
602 raise ImportError('missing loader', name=spec.name)
604 _init_module_attrs(spec, module, override=True)
606 _init_module_attrs(spec, module, override=True)
607 if not hasattr(spec.loader, 'exec_module'):
611 spec.loader.load_module(name)
613 spec.loader.exec_module(module)
617 module = sys.modules.pop(spec.name)
618 sys.modules[spec.name] = module
622 def _load_backward_compatible(spec): argument
627 spec.loader.load_module(spec.name)
629 if spec.name in sys.modules:
630 module = sys.modules.pop(spec.name)
631 sys.modules[spec.name] = module
635 module = sys.modules.pop(spec.name)
636 sys.modules[spec.name] = module
639 module.__loader__ = spec.loader
645 # spec.submodule_search_paths, we can't necessarily rely
646 # on spec.parent here.
649 module.__package__ = spec.name.rpartition('.')[0]
654 module.__spec__ = spec
659 def _load_unlocked(spec): argument
661 if spec.loader is not None:
663 if not hasattr(spec.loader, 'exec_module'):
664 return _load_backward_compatible(spec)
666 module = module_from_spec(spec)
671 spec._initializing = True
673 sys.modules[spec.name] = module
675 if spec.loader is None:
676 if spec.submodule_search_locations is None:
677 raise ImportError('missing loader', name=spec.name)
680 spec.loader.exec_module(module)
683 del sys.modules[spec.name]
691 module = sys.modules.pop(spec.name)
692 sys.modules[spec.name] = module
693 _verbose_message('import {!r} # {!r}', spec.name, spec.loader)
695 spec._initializing = False
701 def _load(spec): argument
702 """Return a new module object, loaded by the spec's loader.
710 with _ModuleLockManager(spec.name):
711 return _load_unlocked(spec)
754 spec = cls.find_spec(fullname, path)
755 return spec.loader if spec is not None else None
758 def create_module(self, spec): argument
760 if spec.name not in sys.builtin_module_names:
761 raise ImportError('{!r} is not a built-in module'.format(spec.name),
762 name=spec.name)
763 return _call_with_frames_removed(_imp.create_builtin, spec)
828 def create_module(cls, spec): argument
902 """Find a module's spec."""
921 spec = _find_spec_legacy(finder, name, path)
922 if spec is None:
925 spec = find_spec(name, path, target)
926 if spec is not None:
933 # We use the found spec since that is the one that
936 return spec
939 return spec
943 return spec
982 spec = _find_spec(name, path)
983 if spec is None:
986 module = _load_unlocked(spec)
1078 spec = globals.get('__spec__')
1080 if spec is not None and package != spec.parent:
1082 f"({package!r} != {spec.parent!r})",
1085 elif spec is not None:
1086 return spec.parent
1135 spec = BuiltinImporter.find_spec(name)
1136 if spec is None:
1138 return _load_unlocked(spec)
1153 # Set up the spec for existing builtin/frozen modules.
1163 spec = _spec_from_module(module, loader)
1164 _init_module_attrs(spec, module)