@@ -24,6 +24,7 @@ def __dir__(self):
2424 def register_override (cls , name , value ):
2525 cls .overrides [name ] = value
2626
27+
2728class OSProxy (types .ModuleType ):
2829 """Proxy module to intercept os attribute access."""
2930 overrides = {}
@@ -68,6 +69,7 @@ def create_module(self, spec):
6869 def exec_module (self , module ):
6970 """Needs to be defined, can be used to alter the module after creation if needed."""
7071
72+
7173class SubprocessLoader (importlib .abc .Loader ):
7274 """Loader to create our SubprocessProxy instead of the real subprocess module."""
7375 def create_module (self , spec ):
@@ -89,10 +91,7 @@ def install_os_hook():
8991 sys .meta_path .insert (0 , HookFinder ())
9092
9193 # If already imported, replace in place
92- for name , proxy in [
93- ("os" , OSProxy ),
94- ("subprocess" , SubprocessProxy )
95- ]:
94+ for name , proxy in [("os" , OSProxy ), ("subprocess" , SubprocessProxy )]:
9695 if name in sys .modules and not isinstance (sys .modules [name ], proxy ):
9796 real_module = sys .modules [name ]
9897 sys .modules [name ] = proxy (real_module )
0 commit comments