2
2
import sys
3
3
import traceback
4
4
import types
5
- from importlib import abc
5
+ from importlib import abc , machinery
6
6
from importlib ._bootstrap_external import _NamespacePath
7
7
from importlib .machinery import ModuleSpec
8
8
from importlib .util import spec_from_loader
@@ -21,6 +21,9 @@ def __dir__(self) -> Iterable[str]:
21
21
return []
22
22
23
23
24
+ ENCRYPT_SUFFIX = ".pye"
25
+
26
+
24
27
class EncryptFileLoader (abc .SourceLoader , Base ):
25
28
POSSIBLE_PATH = [
26
29
Path (os .path .expanduser ("~" )) / ".licenses" / "license.lic" ,
@@ -79,12 +82,17 @@ def find_spec(
79
82
) -> ModuleSpec :
80
83
if path :
81
84
if isinstance (path , _NamespacePath ):
82
- file_path = Path (path ._path [0 ]) / f'{ fullname .rsplit ("." , 1 )[- 1 ]} .pye'
85
+ file_path = (
86
+ Path (path ._path [0 ])
87
+ / f'{ fullname .rsplit ("." , 1 )[- 1 ]} { ENCRYPT_SUFFIX } '
88
+ )
83
89
else :
84
- file_path = Path (path [0 ]) / f'{ fullname .rsplit ("." , 1 )[- 1 ]} .pye'
90
+ file_path = (
91
+ Path (path [0 ]) / f'{ fullname .rsplit ("." , 1 )[- 1 ]} { ENCRYPT_SUFFIX } '
92
+ )
85
93
else :
86
94
for p in sys .path :
87
- file_path = Path (p ) / f"{ fullname } .pye "
95
+ file_path = Path (p ) / f"{ fullname } { ENCRYPT_SUFFIX } "
88
96
if file_path .exists ():
89
97
break
90
98
file_path = file_path .absolute ().as_posix ()
@@ -99,4 +107,5 @@ def invalidate_caches(cls):
99
107
100
108
101
109
# TODO: generate randomly AES Class
110
+ machinery .EXTENSION_SUFFIXES .append (ENCRYPT_SUFFIX )
102
111
sys .meta_path .insert (0 , EncryptFileFinder )
0 commit comments