abstract-utilities 0.2.2.540__py3-none-any.whl → 0.2.2.593__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of abstract-utilities might be problematic. Click here for more details.
- abstract_utilities/class_utils/caller_utils.py +18 -0
- abstract_utilities/class_utils/global_utils.py +3 -2
- abstract_utilities/class_utils/imports/imports.py +1 -1
- abstract_utilities/directory_utils/src/directory_utils.py +17 -1
- abstract_utilities/file_utils/imports/imports.py +0 -4
- abstract_utilities/file_utils/imports/module_imports.py +1 -1
- abstract_utilities/file_utils/src/__init__.py +2 -3
- abstract_utilities/file_utils/src/file_filters/__init__.py +4 -0
- abstract_utilities/file_utils/src/file_filters/ensure_utils.py +118 -0
- abstract_utilities/file_utils/src/file_filters/filter_params.py +86 -0
- abstract_utilities/file_utils/src/file_filters/filter_utils.py +78 -0
- abstract_utilities/file_utils/src/file_filters/predicate_utils.py +114 -0
- abstract_utilities/file_utils/src/file_reader.py +0 -1
- abstract_utilities/file_utils/src/find_collect.py +10 -86
- abstract_utilities/file_utils/src/find_content.py +210 -0
- abstract_utilities/file_utils/src/reader_utils/__init__.py +4 -0
- abstract_utilities/file_utils/src/reader_utils/directory_reader.py +53 -0
- abstract_utilities/file_utils/src/reader_utils/file_reader.py +543 -0
- abstract_utilities/file_utils/src/reader_utils/file_readers.py +376 -0
- abstract_utilities/file_utils/src/reader_utils/imports.py +18 -0
- abstract_utilities/file_utils/src/reader_utils/pdf_utils.py +300 -0
- abstract_utilities/import_utils/circular_import_finder.py +222 -0
- abstract_utilities/import_utils/circular_import_finder2.py +118 -0
- abstract_utilities/import_utils/imports/module_imports.py +3 -1
- abstract_utilities/import_utils/src/clean_imports.py +156 -25
- abstract_utilities/import_utils/src/dot_utils.py +11 -0
- abstract_utilities/import_utils/src/extract_utils.py +4 -0
- abstract_utilities/import_utils/src/import_functions.py +46 -2
- abstract_utilities/import_utils/src/pkg_utils.py +58 -4
- abstract_utilities/import_utils/src/sysroot_utils.py +56 -1
- abstract_utilities/log_utils/log_file.py +3 -2
- abstract_utilities/path_utils/path_utils.py +25 -23
- abstract_utilities/safe_utils/safe_utils.py +30 -0
- {abstract_utilities-0.2.2.540.dist-info → abstract_utilities-0.2.2.593.dist-info}/METADATA +1 -1
- {abstract_utilities-0.2.2.540.dist-info → abstract_utilities-0.2.2.593.dist-info}/RECORD +37 -23
- {abstract_utilities-0.2.2.540.dist-info → abstract_utilities-0.2.2.593.dist-info}/WHEEL +0 -0
- {abstract_utilities-0.2.2.540.dist-info → abstract_utilities-0.2.2.593.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,36 @@
|
|
|
1
1
|
# safe_import_utils.py
|
|
2
2
|
from ..imports import *
|
|
3
3
|
from .import_functions import *
|
|
4
|
+
from ...safe_utils import *
|
|
5
|
+
from .sysroot_utils import get_import_with_sysroot
|
|
6
|
+
def try_is_file(file_path):
|
|
7
|
+
try:
|
|
8
|
+
return os.path.isfile(file_path)
|
|
9
|
+
except:
|
|
10
|
+
return False
|
|
11
|
+
def try_is_dir(file_path):
|
|
12
|
+
try:
|
|
13
|
+
return os.path.isdir(file_path)
|
|
14
|
+
except:
|
|
15
|
+
return False
|
|
16
|
+
def try_join(*args):
|
|
17
|
+
try:
|
|
18
|
+
return safe_join(*args)
|
|
19
|
+
except:
|
|
20
|
+
return False
|
|
21
|
+
def get_pkg_or_init(pkg_path):
|
|
22
|
+
if pkg_path:
|
|
23
|
+
if try_is_file(pkg_path):
|
|
24
|
+
return pkg_path
|
|
25
|
+
pkg_py_path = f"{pkg_path}.py"
|
|
26
|
+
if try_is_file(pkg_py_path):
|
|
27
|
+
return pkg_py_path
|
|
28
|
+
pkg_init_path = try_join(pkg_path,'__init__.py')
|
|
29
|
+
if try_is_dir(pkg_path):
|
|
30
|
+
if os.path.isfile(pkg_init_path):
|
|
31
|
+
return pkg_init_path
|
|
32
|
+
|
|
33
|
+
|
|
4
34
|
|
|
5
35
|
def ensure_import_pkg_js(import_pkg_js,file_path=None):
|
|
6
36
|
import_pkg_js = import_pkg_js or {"context":{}}
|
|
@@ -79,18 +109,42 @@ def ensure_caller_package(caller_file: str, caller_globals: dict | None = None)
|
|
|
79
109
|
if caller_globals and caller_globals.get("__name__") == "__main__" and not caller_globals.get("__package__"):
|
|
80
110
|
caller_globals["__package__"] = pkg
|
|
81
111
|
return pkg
|
|
112
|
+
def get_init_dots(import_pkg):
|
|
113
|
+
count = 0
|
|
114
|
+
for char in import_pkg:
|
|
115
|
+
if char != '.':
|
|
116
|
+
break
|
|
117
|
+
count+=1
|
|
118
|
+
return count
|
|
119
|
+
def make_relative_pkg(import_pkg,file_path):
|
|
120
|
+
full_pkg = eatAll(import_pkg,'.')
|
|
121
|
+
if file_path:
|
|
122
|
+
dirname = file_path
|
|
123
|
+
dot_count = get_init_dots(import_pkg)
|
|
124
|
+
for i in range(dot_count):
|
|
125
|
+
dirname = os.path.dirname(dirname)
|
|
126
|
+
dirbase = os.path.basename(dirname)
|
|
127
|
+
full_pkg=f"{dirbase}.{full_pkg}"
|
|
128
|
+
return full_pkg
|
|
129
|
+
def is_local_import(import_pkg,file_path=None):
|
|
130
|
+
relative_pkg = get_module_from_import(import_pkg,file_path)
|
|
131
|
+
if get_pkg_or_init(relative_pkg):
|
|
132
|
+
return True
|
|
133
|
+
return False
|
|
82
134
|
def get_import_pkg(line):
|
|
83
135
|
if is_line_group_import(line):
|
|
84
136
|
return clean_line(line.split(FROM_TAG)[1].split(IMPORT_TAG)[0])
|
|
85
137
|
def get_imports_from_import_pkg(line):
|
|
86
138
|
if is_line_group_import(line):
|
|
87
139
|
return get_cleaned_import_list(line,commaClean=True)
|
|
88
|
-
def add_imports_to_import_pkg_js(import_pkg,imports,import_pkg_js=None):
|
|
140
|
+
def add_imports_to_import_pkg_js(import_pkg,imports,import_pkg_js=None,file_path=None):
|
|
89
141
|
import_pkg_js = ensure_import_pkg_js(import_pkg_js)
|
|
90
142
|
imports = clean_imports(imports)
|
|
143
|
+
pkg_path = get_module_from_import(import_pkg,file_path)
|
|
144
|
+
local_import = get_pkg_or_init(pkg_path)
|
|
91
145
|
if import_pkg not in import_pkg_js:
|
|
92
146
|
i = len(import_pkg_js["context"]["nulines"])
|
|
93
|
-
import_pkg_js[import_pkg]={"imports":imports,"line":i}
|
|
147
|
+
import_pkg_js[import_pkg]={"imports":imports,"line":i,"file_path":file_path,"local_import":local_import,"is_local":is_local_import(import_pkg,file_path=file_path)}
|
|
94
148
|
import_line = f"from {import_pkg} import "
|
|
95
149
|
if import_pkg == "import":
|
|
96
150
|
import_line = IMPORT_TAG
|
|
@@ -98,12 +152,12 @@ def add_imports_to_import_pkg_js(import_pkg,imports,import_pkg_js=None):
|
|
|
98
152
|
else:
|
|
99
153
|
import_pkg_js[import_pkg]["imports"]+=imports
|
|
100
154
|
return import_pkg_js
|
|
101
|
-
def update_import_pkg_js(line,import_pkg_js=None):
|
|
155
|
+
def update_import_pkg_js(line,import_pkg_js=None,file_path=None):
|
|
102
156
|
import_pkg_js = ensure_import_pkg_js(import_pkg_js)
|
|
103
157
|
if is_line_group_import(line):
|
|
104
158
|
import_pkg = get_import_pkg(line)
|
|
105
159
|
imports = get_imports_from_import_pkg(line)
|
|
106
|
-
import_pkg_js = add_imports_to_import_pkg_js(import_pkg,imports,import_pkg_js=import_pkg_js)
|
|
160
|
+
import_pkg_js = add_imports_to_import_pkg_js(import_pkg,imports,import_pkg_js=import_pkg_js,file_path=file_path)
|
|
107
161
|
else:
|
|
108
162
|
if len(import_pkg_js["context"]["nulines"]) >0 and line == '' and is_line_import(import_pkg_js["context"]["nulines"][-1]):
|
|
109
163
|
pass
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
from ..imports import *
|
|
2
2
|
from .dot_utils import *
|
|
3
|
-
|
|
3
|
+
from .extract_utils import get_all_py_file_paths
|
|
4
|
+
def get_py_files(directory=None):
|
|
5
|
+
directory = directory or get_caller_dir(2)
|
|
6
|
+
return get_all_py_file_paths(directory,add=True)
|
|
4
7
|
def ensure_on_path(p: Path):
|
|
5
8
|
s = str(p)
|
|
6
9
|
if s not in sys.path:
|
|
@@ -19,7 +22,59 @@ def get_dot_range_sysroot(filepath):
|
|
|
19
22
|
sysroot = get_sysroot(sysroot,dot_range)
|
|
20
23
|
|
|
21
24
|
return sysroot
|
|
25
|
+
def get_import_with_sysroot(file_path, sysroot):
|
|
26
|
+
"""
|
|
27
|
+
Rewrite imports like:
|
|
28
|
+
from imports.constants import *
|
|
29
|
+
into:
|
|
30
|
+
from <relative_path>.imports.constants import *
|
|
31
|
+
Where <relative_path> is computed relative to sysroot.
|
|
32
|
+
"""
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
# Absolute paths
|
|
36
|
+
file_dir = os.path.dirname(os.path.abspath(file_path))
|
|
37
|
+
sysroot = os.path.abspath(sysroot)
|
|
38
|
+
|
|
39
|
+
# Compute relative path
|
|
40
|
+
relpath = os.path.relpath(file_dir, sysroot)
|
|
41
|
+
|
|
42
|
+
bare_rel = eatAll(relpath,'.')
|
|
43
|
+
|
|
44
|
+
# Turn filesystem path into dotted python path
|
|
45
|
+
if relpath == ".":
|
|
46
|
+
dotted = ""
|
|
47
|
+
else:
|
|
48
|
+
dotted = ".".join(part for part in relpath.split(os.sep) if part)
|
|
49
|
+
if bare_rel.startswith('/') and dotted.startswith('.'):
|
|
50
|
+
dotted = dotted[1:]
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
# Build final rewritten import
|
|
54
|
+
return dotted
|
|
55
|
+
def get_all_sysroots(files):
|
|
56
|
+
sysroots=[]
|
|
57
|
+
for glo in files:
|
|
58
|
+
imp = compute_dotted_and_sysroot(glo)
|
|
59
|
+
sysroots.append(imp[-1])
|
|
60
|
+
return sysroots
|
|
61
|
+
def get_shortest_sysroot(files):
|
|
62
|
+
sysroots = get_all_sysroots(files)
|
|
63
|
+
return get_shortest_path(*sysroots)
|
|
64
|
+
def get_all_py_sysroots(directory=None,files=None):
|
|
65
|
+
py_files = files or get_py_files(directory=directory)
|
|
66
|
+
return [compute_dotted_and_sysroot(glo)[1] for glo in py_files]
|
|
22
67
|
|
|
68
|
+
def get__imports(directory=None, sysroot=None):
|
|
69
|
+
directory = directory or get_caller_dir(1)
|
|
70
|
+
globs = collect_globs(directory, allowed_exts='.py')
|
|
71
|
+
globs = [glo for glo in globs.get('files') if glo]
|
|
72
|
+
sysroots = [compute_dotted_and_sysroot(glo)[1] for glo in globs]
|
|
73
|
+
# ⭐ Get unified monorepo root
|
|
74
|
+
monorepo_root = get_common_root(sysroots)
|
|
75
|
+
if str(monorepo_root) not in sys.path:
|
|
76
|
+
sys.path.insert(0, str(monorepo_root))
|
|
77
|
+
get_all_imports(directory=directory, sysroot=monorepo_root)
|
|
23
78
|
def is_import_or_init(sysroot,likely=None):
|
|
24
79
|
file_data = get_file_parts(sysroot)
|
|
25
80
|
nuroot = sysroot
|
|
@@ -12,14 +12,15 @@ def get_logFile(bpName: str = None, maxBytes: int = 100_000, backupCount: int =
|
|
|
12
12
|
bpName = os.path.splitext(os.path.basename(caller_path))[0]
|
|
13
13
|
del frame_info
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
log_path = os.path.join(log_dir, f"{bpName}.log")
|
|
15
|
+
|
|
17
16
|
|
|
18
17
|
logger = logging.getLogger(bpName)
|
|
19
18
|
logger.setLevel(logging.INFO)
|
|
20
19
|
|
|
21
20
|
if not logger.handlers:
|
|
22
21
|
try:
|
|
22
|
+
log_dir = mkdirs("logs")
|
|
23
|
+
log_path = os.path.join(log_dir, f"{bpName}.log")
|
|
23
24
|
handler = RotatingFileHandler(log_path, maxBytes=maxBytes, backupCount=backupCount)
|
|
24
25
|
handler.setLevel(logging.INFO)
|
|
25
26
|
|
|
@@ -225,27 +225,29 @@ def create_base_dir(directory=None, child=None):
|
|
|
225
225
|
|
|
226
226
|
|
|
227
227
|
def get_file_parts(path):
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
228
|
+
if path:
|
|
229
|
+
path= str(path)
|
|
230
|
+
basename = get_safe_basename(path)
|
|
231
|
+
filename, ext = get_safe_splitext(basename=basename)
|
|
232
|
+
|
|
233
|
+
dirname = get_safe_dirname(path)
|
|
234
|
+
dirbase = get_safe_basename(dirname)
|
|
235
|
+
|
|
236
|
+
parent_dirname = get_safe_dirname(dirname)
|
|
237
|
+
parent_dirbase = get_safe_basename(parent_dirname)
|
|
238
|
+
|
|
239
|
+
super_dirname = get_safe_dirname(parent_dirname)
|
|
240
|
+
super_dirbase = get_safe_basename(super_dirname)
|
|
241
|
+
|
|
242
|
+
return {"file_path":path,
|
|
243
|
+
"dirname": dirname,
|
|
244
|
+
"basename": basename,
|
|
245
|
+
"filename": filename,
|
|
246
|
+
"ext": ext,
|
|
247
|
+
"dirbase":dirbase,
|
|
248
|
+
"parent_dirname":parent_dirname,
|
|
249
|
+
"parent_dirbase":parent_dirbase,
|
|
250
|
+
"super_dirname":super_dirname,
|
|
251
|
+
"super_dirbase":super_dirbase
|
|
252
|
+
}
|
|
251
253
|
|
|
@@ -10,7 +10,37 @@ Designed for compatibility with the abstract_ ecosystem (e.g. abstract_utilities
|
|
|
10
10
|
from .imports import *
|
|
11
11
|
_BASE_DIR = get_caller_dir()
|
|
12
12
|
|
|
13
|
+
class PathOutsideBase(Exception):
|
|
14
|
+
pass
|
|
13
15
|
|
|
16
|
+
def safe_join_base(base: Union[str, Path], *parts: Union[str, Path], must_exist: bool = False) -> Path:
|
|
17
|
+
"""
|
|
18
|
+
Join base with parts, normalize, and ensure the result lives under base.
|
|
19
|
+
Prevents '../' traversal and ignores leading slashes in parts.
|
|
20
|
+
"""
|
|
21
|
+
base = Path(base).resolve(strict=True)
|
|
22
|
+
# Disallow absolute/drive-anchored parts by stripping their anchors before joining.
|
|
23
|
+
cleaned = []
|
|
24
|
+
for p in parts:
|
|
25
|
+
p = Path(p)
|
|
26
|
+
# Convert absolute to relative (security: we won't allow escaping base anyway)
|
|
27
|
+
if p.is_absolute():
|
|
28
|
+
p = Path(*p.parts[1:]) # drop leading '/'
|
|
29
|
+
cleaned.append(p)
|
|
30
|
+
|
|
31
|
+
# Build and resolve (non-strict so missing files are allowed unless must_exist=True)
|
|
32
|
+
target = (base.joinpath(*cleaned)).resolve(strict=False)
|
|
33
|
+
|
|
34
|
+
# Containment check (works even if target doesn't exist)
|
|
35
|
+
try:
|
|
36
|
+
target.relative_to(base)
|
|
37
|
+
except ValueError:
|
|
38
|
+
raise PathOutsideBase(f"{target} escapes base {base}")
|
|
39
|
+
|
|
40
|
+
if must_exist and not target.exists():
|
|
41
|
+
raise FileNotFoundError(target)
|
|
42
|
+
|
|
43
|
+
return target
|
|
14
44
|
def safe_split(
|
|
15
45
|
string: Any,
|
|
16
46
|
char: Any,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: abstract_utilities
|
|
3
|
-
Version: 0.2.2.
|
|
3
|
+
Version: 0.2.2.593
|
|
4
4
|
Summary: abstract_utilities is a collection of utility modules providing a variety of functions to aid in tasks such as data comparison, list manipulation, JSON handling, string manipulation, mathematical computations, and time operations.
|
|
5
5
|
Home-page: https://github.com/AbstractEndeavors/abstract_utilities
|
|
6
6
|
Author: putkoff
|
|
@@ -28,13 +28,13 @@ abstract_utilities/type_utils.py,sha256=XaaAel9hUKeOzBqSCqJsIC6UiPMXUlhtmU77jOHz
|
|
|
28
28
|
abstract_utilities/utils.py,sha256=SCa_-x_wsWrcokQXKwlhalxndxLn5Wg25-zqRdJUmag,185049
|
|
29
29
|
abstract_utilities/class_utils/__init__.py,sha256=FbEui_psjSFhwwYkyKEGePbLVij8GZOm69nGBnx-Zfc,196
|
|
30
30
|
abstract_utilities/class_utils/abstract_classes.py,sha256=2qgVUiI1O_7gNYJAk5eb32IaHtULIXo0OasLGb045E8,2470
|
|
31
|
-
abstract_utilities/class_utils/caller_utils.py,sha256=
|
|
31
|
+
abstract_utilities/class_utils/caller_utils.py,sha256=87BEuyEDJ_TmrQ-aI10w5QSMqy4YBVlcbjLhByDJzlo,1515
|
|
32
32
|
abstract_utilities/class_utils/class_utils.py,sha256=An-pTLzvDb7WPB2JZoEm2MEDops5HrWPNlR6dco6h5g,4033
|
|
33
33
|
abstract_utilities/class_utils/function_utils.py,sha256=sP_qSrWGhvzU2XoWGk9Np1B4WPUpzrSf1f0Ywu6bzt0,5775
|
|
34
|
-
abstract_utilities/class_utils/global_utils.py,sha256=
|
|
34
|
+
abstract_utilities/class_utils/global_utils.py,sha256=dg1VhtMXGjuwlWLdvTZPaIJ_lmRiuKhL0Y7e6cREero,2257
|
|
35
35
|
abstract_utilities/class_utils/module_utils.py,sha256=EumlwSc5PJZwqqcFEzMOCtsFJUHNuqEQAJGJlywuqyY,1516
|
|
36
36
|
abstract_utilities/class_utils/imports/__init__.py,sha256=LVIEQXKiAmaKKWxPxfSJKe7JGWi4RDt4eatm_VG-WUI,44
|
|
37
|
-
abstract_utilities/class_utils/imports/imports.py,sha256=
|
|
37
|
+
abstract_utilities/class_utils/imports/imports.py,sha256=_F7UpONRaGnFNNUYH-baSv4H5NQXQOZeD-jW3pSoiiA,87
|
|
38
38
|
abstract_utilities/class_utils/imports/utils.py,sha256=YEvWtaefXjuBiOiQsdYMazcVk85uwmntYIvZubfwKtU,1444
|
|
39
39
|
abstract_utilities/cmd_utils/__init__.py,sha256=StTaaB9uzJexvr4TFGVqp_o0_s9T6rQlE3fOZtb_y_0,51
|
|
40
40
|
abstract_utilities/cmd_utils/cmd_utils.py,sha256=n2DEo91J8LWuIJoSoDkWdApUY_8mHrUW3kjEjjF34Io,7876
|
|
@@ -55,7 +55,7 @@ abstract_utilities/directory_utils/imports/__init__.py,sha256=sUUAr6PY1SMtVjSTsb
|
|
|
55
55
|
abstract_utilities/directory_utils/imports/imports.py,sha256=R7rno0pnzOU9XpzPhco0Wp9aIR73w_BGqCLdYpAHowI,32
|
|
56
56
|
abstract_utilities/directory_utils/imports/module_imports.py,sha256=v9jovq8n9EOS9lmjRonYu4pdKEDS-mw4ejgtRrAGYX0,69
|
|
57
57
|
abstract_utilities/directory_utils/src/__init__.py,sha256=cKlenOq451R2VqV86AD5ZEh1qGX5FfJwwsohgL0fQU4,104
|
|
58
|
-
abstract_utilities/directory_utils/src/directory_utils.py,sha256
|
|
58
|
+
abstract_utilities/directory_utils/src/directory_utils.py,sha256=DkFeLY_AMNWm57xdupXj5aSq0alff0tSsBYJSEsp-Co,3240
|
|
59
59
|
abstract_utilities/directory_utils/src/name_utils.py,sha256=Lz4RoeI9Ux6CC4I7UCZj7K6GoIm4HpYeRyjJl9b_6FY,1136
|
|
60
60
|
abstract_utilities/directory_utils/src/size_utils.py,sha256=6huRLt-UGhukGfq-3KtBM5qH_SjNCaBzWVP9Vc-EiiU,1758
|
|
61
61
|
abstract_utilities/directory_utils/src/utils.py,sha256=FIxL_HcIoL0PzE6G7_qcgCNcelxX33J76gzkXJo3VUg,3206
|
|
@@ -93,18 +93,30 @@ abstract_utilities/file_utils/imports/classes.py,sha256=zw16D_h5AxJiks4ydbqkWkXV
|
|
|
93
93
|
abstract_utilities/file_utils/imports/clean_imps.py,sha256=DB_NEKR8YLla5qCkTMuNscMoTnipEm3nCWnaH8wqQDc,5287
|
|
94
94
|
abstract_utilities/file_utils/imports/constants.py,sha256=uPsIYVRs1Rf0SQ4pRdAke-tuc28LtgaSHSDS4_seaMk,5997
|
|
95
95
|
abstract_utilities/file_utils/imports/file_functions.py,sha256=brQha7TV9DaJe-hZSuHoFZBUI_45hxrGOIBTAojPWU8,297
|
|
96
|
-
abstract_utilities/file_utils/imports/imports.py,sha256=
|
|
97
|
-
abstract_utilities/file_utils/imports/module_imports.py,sha256=
|
|
98
|
-
abstract_utilities/file_utils/src/__init__.py,sha256=
|
|
96
|
+
abstract_utilities/file_utils/imports/imports.py,sha256=OQKsPec2raa55hxGUeTo0yDqzw-xBsshljFxG69rHk0,1504
|
|
97
|
+
abstract_utilities/file_utils/imports/module_imports.py,sha256=Mol48vj-m2204MCJgStUyAw8DbH-HFVs21rnGpx5HyI,420
|
|
98
|
+
abstract_utilities/file_utils/src/__init__.py,sha256=kgjkZ6IWDR_fQJTAQTinUBKUPLurekgdZ15ZT1wm20E,203
|
|
99
99
|
abstract_utilities/file_utils/src/file_filters.py,sha256=n8efrxxJRRd6dT4E5PbGoyGGKe1LU1cYy-b443XhqAo,6355
|
|
100
|
-
abstract_utilities/file_utils/src/file_reader.py,sha256=
|
|
100
|
+
abstract_utilities/file_utils/src/file_reader.py,sha256=9fZ2dEXFRYhJNUsUYQO3hGs2uWrHu2o4FacVhfhdefE,22320
|
|
101
101
|
abstract_utilities/file_utils/src/file_utils.py,sha256=jgxMKeOAhYB2dxoqtudo4DKXctRE1TdcSbFcJmHcoiI,5766
|
|
102
102
|
abstract_utilities/file_utils/src/filter_params.py,sha256=tO5PJvYpd3bHQejulDVGHandR-_8w3VPnjiCayrLW9g,6774
|
|
103
|
-
abstract_utilities/file_utils/src/find_collect.py,sha256=
|
|
103
|
+
abstract_utilities/file_utils/src/find_collect.py,sha256=wV6u9AsVeJxMCHwyf3NGvzA-QbA_OgLRfQUhjSrLjew,5796
|
|
104
|
+
abstract_utilities/file_utils/src/find_content.py,sha256=3UI8HsTHR0UnuqybeYW4rxHvER7-SK42_hNZih-LfUU,6806
|
|
104
105
|
abstract_utilities/file_utils/src/initFunctionsGen.py,sha256=enTZA5hEYiBdOgM3yZoEEOyWaoxv66K1g-RrwIhPdIE,9692
|
|
105
106
|
abstract_utilities/file_utils/src/map_utils.py,sha256=7GYntXbMz3vYrXWE-TxLuZRcQudlDA6vAWGErzVv1mk,1044
|
|
106
107
|
abstract_utilities/file_utils/src/pdf_utils.py,sha256=F-xzOMFK7Um_7ODTqJ8MsdgAOyupi1ijuB1zHv76bUw,10336
|
|
107
108
|
abstract_utilities/file_utils/src/type_checks.py,sha256=THVaH23DYdPYuj6baC-KJOfWDsfEqWqxsVa_N7e8aEI,2890
|
|
109
|
+
abstract_utilities/file_utils/src/file_filters/__init__.py,sha256=sHdfkZ6JrSlK8I6sNrzbGEUGz0ZUDTnFmXwaBMNxNLY,116
|
|
110
|
+
abstract_utilities/file_utils/src/file_filters/ensure_utils.py,sha256=JrJZPaoh9K5rD_DDA1r-az4lLgv_gcoBvKpUfNYAWdI,4268
|
|
111
|
+
abstract_utilities/file_utils/src/file_filters/filter_params.py,sha256=RazBjD0Zl4fjXvmXl0YUrqAacwKn8w1EUaqKqunTB9Y,2993
|
|
112
|
+
abstract_utilities/file_utils/src/file_filters/filter_utils.py,sha256=epi9V1OkYDAJb2O5LzkqQBtBoDtkCidGBvuXsUFCxaw,2916
|
|
113
|
+
abstract_utilities/file_utils/src/file_filters/predicate_utils.py,sha256=sy1QR701j-i35aJ9D8okGdoHqPZfFCpUnOPA8kQAPDw,4489
|
|
114
|
+
abstract_utilities/file_utils/src/reader_utils/__init__.py,sha256=GLUNbm2lK_2ZVk9EGQ6KNr5k1NR52tT3QBhzH93FqWo,112
|
|
115
|
+
abstract_utilities/file_utils/src/reader_utils/directory_reader.py,sha256=qHZuhwIsrVkJkFT8kFwzkCH-6kmR1hyr7TFAGg9vcOw,2366
|
|
116
|
+
abstract_utilities/file_utils/src/reader_utils/file_reader.py,sha256=FwDFIGCz5mMksvmLFJSkTLS2evBkUnN0kND7E_9b45g,22292
|
|
117
|
+
abstract_utilities/file_utils/src/reader_utils/file_readers.py,sha256=73x6ZXcgjwK6WgJsCOuo7JQg7dBqpaF1HYwIXt53Vak,14506
|
|
118
|
+
abstract_utilities/file_utils/src/reader_utils/imports.py,sha256=yjL38eBifT_hVAUrw3WnrKkxOVGgVKUmoYO48IBmTyw,595
|
|
119
|
+
abstract_utilities/file_utils/src/reader_utils/pdf_utils.py,sha256=D_wg8h-SapCvqinxRIKxMri1jWZNpr5jGvKq9EJePfY,10335
|
|
108
120
|
abstract_utilities/file_utils (2)/__init__.py,sha256=R4TQV55ElLYuIZ6CwOpmER2q9EAOHCg_WERifSxuGAg,42
|
|
109
121
|
abstract_utilities/file_utils (2)/imports/__init__.py,sha256=LVIEQXKiAmaKKWxPxfSJKe7JGWi4RDt4eatm_VG-WUI,44
|
|
110
122
|
abstract_utilities/file_utils (2)/imports/constants.py,sha256=Bkw5vX5lp7BNJhw1fppunUTA0Cwjhomq1gIqzTsctos,5978
|
|
@@ -134,20 +146,22 @@ abstract_utilities/history_utils/imports/__init__.py,sha256=sUUAr6PY1SMtVjSTsb08
|
|
|
134
146
|
abstract_utilities/history_utils/imports/imports.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
135
147
|
abstract_utilities/history_utils/imports/module_imports.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
136
148
|
abstract_utilities/import_utils/__init__.py,sha256=R4TQV55ElLYuIZ6CwOpmER2q9EAOHCg_WERifSxuGAg,42
|
|
149
|
+
abstract_utilities/import_utils/circular_import_finder.py,sha256=bs1O4NjSDrJ2cC8whPfZPouNDr1oxdMCFKUIfRyIEB4,8415
|
|
150
|
+
abstract_utilities/import_utils/circular_import_finder2.py,sha256=n6OFjiIsxxw2u_bf8wcQ81fzQzXhsD4VYWzOC9pDYXw,3869
|
|
137
151
|
abstract_utilities/import_utils/imports/__init__.py,sha256=hiUo2P3qSWtgQHPdz5b2pe2AI3QXZlKJUSe2NUW5Cd4,99
|
|
138
152
|
abstract_utilities/import_utils/imports/constants.py,sha256=UCSr0_KTu7atqanliMEv8u-XKjM4x0wdm4oySOK7APc,42
|
|
139
153
|
abstract_utilities/import_utils/imports/imports.py,sha256=Qc9IoIDAJUuNOQJqZbOEqQfGI45EVhBBeuTm61K6PvI,143
|
|
140
|
-
abstract_utilities/import_utils/imports/module_imports.py,sha256=
|
|
154
|
+
abstract_utilities/import_utils/imports/module_imports.py,sha256=EMx9NyQLrQhguqfglkZXMGJovBli_jacFl5r1lIqAuY,486
|
|
141
155
|
abstract_utilities/import_utils/imports/utils.py,sha256=wgTzs8SpOe8jVdw0cCPNypYCo2X-BreeJuNW3N3_d8Q,961
|
|
142
156
|
abstract_utilities/import_utils/src/__init__.py,sha256=KPF8T-ZQae2st8EKR7qIAt1jENGlQkwHRJDC8uupm48,197
|
|
143
|
-
abstract_utilities/import_utils/src/clean_imports.py,sha256=
|
|
144
|
-
abstract_utilities/import_utils/src/dot_utils.py,sha256=
|
|
145
|
-
abstract_utilities/import_utils/src/extract_utils.py,sha256=
|
|
146
|
-
abstract_utilities/import_utils/src/import_functions.py,sha256=
|
|
157
|
+
abstract_utilities/import_utils/src/clean_imports.py,sha256=awpVFI-DMd8oOtx3JcUiz4xbOdhLE4X04ZwdMKR1mMU,10447
|
|
158
|
+
abstract_utilities/import_utils/src/dot_utils.py,sha256=oahEkVmexO-a2F3DKYQP5IrCvKJi9tjM_rjCImM_KCY,2793
|
|
159
|
+
abstract_utilities/import_utils/src/extract_utils.py,sha256=j3jTBqRxHqso5730usAUmtQ8bplLbMg3uLp4aDFrBaw,1685
|
|
160
|
+
abstract_utilities/import_utils/src/import_functions.py,sha256=HSRBh6XQU10ArRumh9Pm-YavBEb37ESCFHzMADydkik,3444
|
|
147
161
|
abstract_utilities/import_utils/src/import_utils.py,sha256=NvryqWqsoyufTKYEoGgnorl9awRbgVWcOroHJza_srM,11827
|
|
148
162
|
abstract_utilities/import_utils/src/package_utils.py,sha256=9qjBzIApDhV7kOdSRgZA9k-EncBNAg3mZZodgsiUNM4,5861
|
|
149
|
-
abstract_utilities/import_utils/src/pkg_utils.py,sha256=
|
|
150
|
-
abstract_utilities/import_utils/src/sysroot_utils.py,sha256=
|
|
163
|
+
abstract_utilities/import_utils/src/pkg_utils.py,sha256=tSLaqFgitwswSuGhv-UnONT3rpri9DjK9ALt_0t5I30,7617
|
|
164
|
+
abstract_utilities/import_utils/src/sysroot_utils.py,sha256=hn_24Ug4hs0na84YI1suCUbhzBY1rAXEEIKZfmVHqRY,3689
|
|
151
165
|
abstract_utilities/import_utils/src/package_utils/__init__.py,sha256=xV_XKJSLcXf4qRQSRseWLV_iqCqijPm4zvrs-tjNb2M,4618
|
|
152
166
|
abstract_utilities/import_utils/src/package_utils/context_utils.py,sha256=8USSB6LR047k8fqge8J2jEM_StPEZ3cI1OKB3UENN8w,1177
|
|
153
167
|
abstract_utilities/import_utils/src/package_utils/import_collectors.py,sha256=kueQead4CW6FGmHHiXpQilE8spbnt2mSK93dJ3bpeW4,2365
|
|
@@ -171,7 +185,7 @@ abstract_utilities/list_utils/imports/module_imports.py,sha256=47DEQpj8HBSa-_TIm
|
|
|
171
185
|
abstract_utilities/log_utils/__init__.py,sha256=QzmY8RLyegJsq9Id06dHMiJAit5jxUzwhkY5-qgqxBU,141
|
|
172
186
|
abstract_utilities/log_utils/abstractLogManager.py,sha256=EF4GkNbeCUh_RStN2Sf_PmxgyUmxeB5RJT7P-SHGZ3w,2823
|
|
173
187
|
abstract_utilities/log_utils/call_response.py,sha256=E_QdT6R5REuXxeUuEXLwjUh8D0Lk0vair2ryRj4zocY,2518
|
|
174
|
-
abstract_utilities/log_utils/log_file.py,sha256=
|
|
188
|
+
abstract_utilities/log_utils/log_file.py,sha256=n6-Hb_3fVG3pZuuMiBrpFKW_pZB4W01y3j_w76dsbY0,2363
|
|
175
189
|
abstract_utilities/log_utils/logger_callable.py,sha256=9STZtZrmUlXmakxhwmXNPpCSQC10aCTMNjXbhaWZ7_8,1629
|
|
176
190
|
abstract_utilities/log_utils/imports/__init__.py,sha256=sUUAr6PY1SMtVjSTsb08dFU6mF-Ug4usnbh908q4Jq0,53
|
|
177
191
|
abstract_utilities/log_utils/imports/imports.py,sha256=TGhATFGyhvovFFKYH-CbCnEQK0WCkmA1C5LqvmmzlrQ,189
|
|
@@ -188,7 +202,7 @@ abstract_utilities/parse_utils/imports/constants.py,sha256=PsYAIKIwg_-oxO_rgPrT5
|
|
|
188
202
|
abstract_utilities/parse_utils/imports/imports.py,sha256=HSPmM0Y9GCFEIPbovNh79ayKjdNWMC-m-8QYa1JEpDk,76
|
|
189
203
|
abstract_utilities/parse_utils/imports/module_imports.py,sha256=L9kTC04Cd2wsr6ly4mIr6D9UjgotXXW2K_v1Sds8Bcs,176
|
|
190
204
|
abstract_utilities/path_utils/__init__.py,sha256=QiAyaEvejlL_IuPTCTocJonm9fTfWksQ_fakTL-LkjM,49
|
|
191
|
-
abstract_utilities/path_utils/path_utils.py,sha256=
|
|
205
|
+
abstract_utilities/path_utils/path_utils.py,sha256=UVjNbrCvXykptMKqdRZNnwOcHMtbl86MVoKbt5GTtq8,7697
|
|
192
206
|
abstract_utilities/path_utils/imports/__init__.py,sha256=wBNCq8vHWdl7DleRNq0UK_-POl_mt2MY7MIC5VqZdaQ,54
|
|
193
207
|
abstract_utilities/path_utils/imports/imports.py,sha256=R7rno0pnzOU9XpzPhco0Wp9aIR73w_BGqCLdYpAHowI,32
|
|
194
208
|
abstract_utilities/path_utils/imports/module_imports.py,sha256=bPhfxar3bk4PjEfHdBK7Q6VSODpXyTXNLO2GKnHr2AE,376
|
|
@@ -216,7 +230,7 @@ abstract_utilities/robust_readers/import_utils/safe_import_utils.py,sha256=L-pwm
|
|
|
216
230
|
abstract_utilities/robust_readers/import_utils/sysroot_utils.py,sha256=f8hj20VA9yvvYkqQ9ecuBlzmTOaT5G7ni14QesDtdL0,2098
|
|
217
231
|
abstract_utilities/robust_readers/import_utils/utils.py,sha256=xyMObkdyvQAzAIv_kagLhFdkwSaPd4h0bCjTCYyfGhY,722
|
|
218
232
|
abstract_utilities/safe_utils/__init__.py,sha256=zdcT3glpgIUxSM8rVVGfsOa64bFU-N6ePymM8ClfhB4,49
|
|
219
|
-
abstract_utilities/safe_utils/safe_utils.py,sha256=
|
|
233
|
+
abstract_utilities/safe_utils/safe_utils.py,sha256=Dr_GIhymtyrSBBbY9LpP_YEv5JZokqpkovDQNckpIgU,4905
|
|
220
234
|
abstract_utilities/safe_utils/imports/__init__.py,sha256=OWJoTvkAvcn_dJ3ID271NHsSNdRzaA6_bxsLolyRByQ,54
|
|
221
235
|
abstract_utilities/safe_utils/imports/imports.py,sha256=BfaNN4bs2pvgxVU8XQ_r0uDzxm4alw5H52bZHHcLNyc,46
|
|
222
236
|
abstract_utilities/safe_utils/imports/module_imports.py,sha256=br8tLfyAtyaZshedkogMYBcEaq1Bne_Bz8eXckgD7xk,78
|
|
@@ -257,7 +271,7 @@ abstract_utilities/type_utils/imports/__init__.py,sha256=sUUAr6PY1SMtVjSTsb08dFU
|
|
|
257
271
|
abstract_utilities/type_utils/imports/imports.py,sha256=C_ZAQO-y7R31BYxTuaHJCEQE9IZSU1JgCtdHNWxZKhY,77
|
|
258
272
|
abstract_utilities/type_utils/imports/module_imports.py,sha256=sxF9YJQhUFUivgslnU-4Y5GG_J1IHR7kunUefIYZ0Lk,36
|
|
259
273
|
imports/__init__.py,sha256=2PSEAwZY88J2NHt98XCO5drFNok5ctiJ8LE02kwABP4,944
|
|
260
|
-
abstract_utilities-0.2.2.
|
|
261
|
-
abstract_utilities-0.2.2.
|
|
262
|
-
abstract_utilities-0.2.2.
|
|
263
|
-
abstract_utilities-0.2.2.
|
|
274
|
+
abstract_utilities-0.2.2.593.dist-info/METADATA,sha256=ujHSjQgw1g2d6w-OHtsVHp6DyzdjiDkWUbd2000m1Cc,28108
|
|
275
|
+
abstract_utilities-0.2.2.593.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
276
|
+
abstract_utilities-0.2.2.593.dist-info/top_level.txt,sha256=BF0GZ0xVFfN1K-hFIWPO3viNsOs1sSF86n1vHBg39FM,19
|
|
277
|
+
abstract_utilities-0.2.2.593.dist-info/RECORD,,
|
|
File without changes
|
{abstract_utilities-0.2.2.540.dist-info → abstract_utilities-0.2.2.593.dist-info}/top_level.txt
RENAMED
|
File without changes
|