22import types
33import toolz
44from importlib import import_module
5+ from importlib .machinery import ModuleSpec
56
67
7- class TlzLoader ( object ) :
8+ class TlzLoader :
89 """ Finds and loads ``tlz`` modules when added to sys.meta_path"""
910 def __init__ (self ):
1011 self .always_from_toolz = {
@@ -36,7 +37,7 @@ def find_module(self, fullname, path=None): # pragma: py3 no cover
3637 def load_module (self , fullname ): # pragma: py3 no cover
3738 if fullname in sys .modules : # pragma: no cover
3839 return sys .modules [fullname ]
39- spec = TlzSpec (fullname , self )
40+ spec = ModuleSpec (fullname , self )
4041 module = self .create_module (spec )
4142 sys .modules [fullname ] = module
4243 self .exec_module (module )
@@ -45,7 +46,7 @@ def load_module(self, fullname): # pragma: py3 no cover
4546 def find_spec (self , fullname , path , target = None ): # pragma: no cover
4647 package , dot , submodules = fullname .partition ('.' )
4748 if package == 'tlz' :
48- return TlzSpec (fullname , self )
49+ return ModuleSpec (fullname , self )
4950
5051 def create_module (self , spec ):
5152 return types .ModuleType (spec .name )
@@ -86,18 +87,6 @@ def exec_module(self, module):
8687 module .__dict__ [k ] = submodule
8788
8889
89- class TlzSpec (object ):
90- def __init__ (self , name , loader ):
91- self .name = name
92- self .loader = loader
93- self .origin = None
94- self .submodule_search_locations = []
95- self .loader_state = None
96- self .cached = None
97- self .parent = None
98- self .has_location = False
99-
100-
10190tlz_loader = TlzLoader ()
10291sys .meta_path .append (tlz_loader )
10392tlz_loader .exec_module (sys .modules ['tlz' ])
0 commit comments