@@ -81,43 +81,6 @@ def namespace_from_fullname(fullname):
8181 return namespace
8282
8383
84- class _PrependFileLoader (importlib .machinery .SourceFileLoader ):
85- def __init__ (self , fullname , path , prepend = None ):
86- super (_PrependFileLoader , self ).__init__ (fullname , path )
87- self .prepend = prepend
88-
89- def path_stats (self , path ):
90- stats = super (_PrependFileLoader , self ).path_stats (path )
91- if self .prepend :
92- stats ["size" ] += len (self .prepend ) + 1
93- return stats
94-
95- def get_data (self , path ):
96- data = super (_PrependFileLoader , self ).get_data (path )
97- if path != self .path or self .prepend is None :
98- return data
99- else :
100- return self .prepend .encode () + b"\n " + data
101-
102-
103- class RepoLoader (_PrependFileLoader ):
104- """Loads a Python module associated with a package in specific repository"""
105-
106- #: Code in ``_package_prepend`` is prepended to imported packages.
107- #:
108- #: Spack packages are expected to call `from spack.package import *`
109- #: themselves, but we are allowing a deprecation period before breaking
110- #: external repos that don't do this yet.
111- _package_prepend = "from spack.package import *"
112-
113- def __init__ (self , fullname , repo , package_name ):
114- self .repo = repo
115- self .package_name = package_name
116- self .package_py = repo .filename_for_package_name (package_name )
117- self .fullname = fullname
118- super ().__init__ (self .fullname , self .package_py , prepend = self ._package_prepend )
119-
120-
12184class SpackNamespaceLoader :
12285 def create_module (self , spec ):
12386 return SpackNamespace (spec .name )
@@ -187,7 +150,8 @@ def compute_loader(self, fullname):
187150 # With 2 nested conditionals we can call "repo.real_name" only once
188151 package_name = repo .real_name (module_name )
189152 if package_name :
190- return RepoLoader (fullname , repo , package_name )
153+ module_path = repo .filename_for_package_name (package_name )
154+ return importlib .machinery .SourceFileLoader (fullname , module_path )
191155
192156 # We are importing a full namespace like 'spack.pkg.builtin'
193157 if fullname == repo .full_namespace :
0 commit comments