abstract-utilities 0.2.2.492__py3-none-any.whl → 0.2.2.583__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.
- abstract_utilities/__init__.py +6 -10
- abstract_utilities/circular_import_finder.py +222 -0
- abstract_utilities/circular_import_finder2.py +118 -0
- abstract_utilities/class_utils/__init__.py +7 -0
- abstract_utilities/class_utils/abstract_classes.py +74 -0
- abstract_utilities/class_utils/caller_utils.py +53 -0
- abstract_utilities/class_utils/class_utils.py +109 -0
- abstract_utilities/class_utils/function_utils.py +153 -0
- abstract_utilities/class_utils/global_utils.py +57 -0
- abstract_utilities/class_utils/imports/__init__.py +2 -0
- abstract_utilities/class_utils/imports/imports.py +2 -0
- abstract_utilities/class_utils/imports/utils.py +40 -0
- abstract_utilities/class_utils/module_utils.py +63 -0
- abstract_utilities/directory_utils/__init__.py +2 -0
- abstract_utilities/directory_utils/directory_utils.py +94 -0
- abstract_utilities/directory_utils/imports/__init__.py +2 -0
- abstract_utilities/directory_utils/imports/imports.py +1 -0
- abstract_utilities/directory_utils/imports/module_imports.py +2 -0
- abstract_utilities/directory_utils/name_utils.py +43 -0
- abstract_utilities/directory_utils/size_utils.py +57 -0
- abstract_utilities/directory_utils/src/__init__.py +4 -0
- abstract_utilities/directory_utils/src/directory_utils.py +108 -0
- abstract_utilities/directory_utils/src/name_utils.py +43 -0
- abstract_utilities/directory_utils/src/size_utils.py +57 -0
- abstract_utilities/directory_utils/src/utils.py +116 -0
- abstract_utilities/directory_utils/utils.py +116 -0
- abstract_utilities/env_utils/imports/imports.py +5 -3
- abstract_utilities/error_utils/__init__.py +2 -0
- abstract_utilities/error_utils/error_utils.py +25 -0
- abstract_utilities/error_utils/imports/__init__.py +2 -0
- abstract_utilities/error_utils/imports/imports.py +1 -0
- abstract_utilities/error_utils/imports/module_imports.py +1 -0
- abstract_utilities/file_utils/__init__.py +1 -2
- abstract_utilities/file_utils/imports/constants.py +84 -4
- abstract_utilities/file_utils/imports/imports.py +2 -21
- abstract_utilities/file_utils/imports/module_imports.py +2 -7
- abstract_utilities/file_utils/module_imports.py +12 -0
- abstract_utilities/file_utils/src/__init__.py +7 -0
- abstract_utilities/file_utils/src/file_filters/__init__.py +4 -0
- abstract_utilities/file_utils/src/file_filters/ensure_utils.py +116 -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_filters.py +177 -0
- abstract_utilities/file_utils/src/file_reader.py +543 -0
- abstract_utilities/file_utils/src/file_utils.py +156 -0
- abstract_utilities/file_utils/src/filter_params.py +197 -0
- abstract_utilities/file_utils/src/find_collect.py +190 -0
- abstract_utilities/file_utils/src/find_content.py +210 -0
- abstract_utilities/file_utils/src/initFunctionsGen.py +280 -0
- abstract_utilities/file_utils/src/map_utils.py +29 -0
- abstract_utilities/file_utils/src/pdf_utils.py +300 -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/file_utils/src/type_checks.py +91 -0
- abstract_utilities/file_utils (2)/__init__.py +2 -0
- abstract_utilities/file_utils (2)/imports/__init__.py +2 -0
- abstract_utilities/file_utils (2)/imports/constants.py +118 -0
- abstract_utilities/file_utils (2)/imports/imports/__init__.py +3 -0
- abstract_utilities/file_utils (2)/imports/imports/constants.py +119 -0
- abstract_utilities/file_utils (2)/imports/imports/imports.py +46 -0
- abstract_utilities/file_utils (2)/imports/imports/module_imports.py +8 -0
- abstract_utilities/file_utils (2)/imports/utils/__init__.py +3 -0
- abstract_utilities/file_utils (2)/imports/utils/classes.py +379 -0
- abstract_utilities/file_utils (2)/imports/utils/clean_imps.py +155 -0
- abstract_utilities/file_utils (2)/imports/utils/filter_utils.py +341 -0
- abstract_utilities/file_utils (2)/src/__init__.py +8 -0
- abstract_utilities/file_utils (2)/src/file_filters.py +155 -0
- abstract_utilities/file_utils (2)/src/file_reader.py +604 -0
- abstract_utilities/file_utils (2)/src/find_collect.py +258 -0
- abstract_utilities/file_utils (2)/src/initFunctionsGen.py +286 -0
- abstract_utilities/file_utils (2)/src/map_utils.py +28 -0
- abstract_utilities/file_utils (2)/src/pdf_utils.py +300 -0
- abstract_utilities/hash_utils/__init__.py +2 -0
- abstract_utilities/hash_utils/hash_utils.py +5 -0
- abstract_utilities/hash_utils/imports/__init__.py +2 -0
- abstract_utilities/hash_utils/imports/imports.py +1 -0
- abstract_utilities/hash_utils/imports/module_imports.py +0 -0
- abstract_utilities/history_utils/__init__.py +2 -0
- abstract_utilities/history_utils/history_utils.py +37 -0
- abstract_utilities/history_utils/imports/__init__.py +2 -0
- abstract_utilities/history_utils/imports/imports.py +1 -0
- abstract_utilities/history_utils/imports/module_imports.py +0 -0
- abstract_utilities/import_utils/__init__.py +2 -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/__init__.py +4 -0
- abstract_utilities/import_utils/imports/constants.py +2 -0
- abstract_utilities/import_utils/imports/imports.py +4 -0
- abstract_utilities/import_utils/imports/module_imports.py +8 -0
- abstract_utilities/import_utils/imports/utils.py +30 -0
- abstract_utilities/import_utils/src/__init__.py +7 -0
- abstract_utilities/import_utils/src/clean_imports.py +278 -0
- abstract_utilities/import_utils/src/dot_utils.py +80 -0
- abstract_utilities/import_utils/src/extract_utils.py +46 -0
- abstract_utilities/import_utils/src/import_functions.py +91 -0
- abstract_utilities/import_utils/src/import_utils.py +299 -0
- abstract_utilities/import_utils/src/package_utils/__init__.py +139 -0
- abstract_utilities/import_utils/src/package_utils/context_utils.py +27 -0
- abstract_utilities/import_utils/src/package_utils/import_collectors.py +53 -0
- abstract_utilities/import_utils/src/package_utils/path_utils.py +28 -0
- abstract_utilities/import_utils/src/package_utils/safe_import.py +27 -0
- abstract_utilities/import_utils/src/package_utils.py +140 -0
- abstract_utilities/import_utils/src/package_utilss/__init__.py +139 -0
- abstract_utilities/import_utils/src/package_utilss/context_utils.py +27 -0
- abstract_utilities/import_utils/src/package_utilss/import_collectors.py +53 -0
- abstract_utilities/import_utils/src/package_utilss/path_utils.py +28 -0
- abstract_utilities/import_utils/src/package_utilss/safe_import.py +27 -0
- abstract_utilities/import_utils/src/pkg_utils.py +194 -0
- abstract_utilities/import_utils/src/sysroot_utils.py +112 -0
- abstract_utilities/imports.py +18 -0
- abstract_utilities/json_utils/__init__.py +2 -0
- abstract_utilities/json_utils/imports/__init__.py +2 -0
- abstract_utilities/json_utils/imports/imports.py +2 -0
- abstract_utilities/json_utils/imports/module_imports.py +5 -0
- abstract_utilities/json_utils/json_utils.py +743 -0
- abstract_utilities/list_utils/__init__.py +2 -0
- abstract_utilities/list_utils/imports/__init__.py +2 -0
- abstract_utilities/list_utils/imports/imports.py +1 -0
- abstract_utilities/list_utils/imports/module_imports.py +0 -0
- abstract_utilities/list_utils/list_utils.py +199 -0
- abstract_utilities/log_utils/__init__.py +5 -0
- abstract_utilities/log_utils/abstractLogManager.py +64 -0
- abstract_utilities/log_utils/call_response.py +68 -0
- abstract_utilities/log_utils/imports/__init__.py +2 -0
- abstract_utilities/log_utils/imports/imports.py +7 -0
- abstract_utilities/log_utils/imports/module_imports.py +2 -0
- abstract_utilities/log_utils/log_file.py +59 -0
- abstract_utilities/log_utils/logger_callable.py +49 -0
- abstract_utilities/math_utils/__init__.py +2 -0
- abstract_utilities/math_utils/imports/__init__.py +2 -0
- abstract_utilities/math_utils/imports/imports.py +2 -0
- abstract_utilities/math_utils/imports/module_imports.py +1 -0
- abstract_utilities/math_utils/math_utils.py +208 -0
- abstract_utilities/parse_utils/__init__.py +2 -0
- abstract_utilities/parse_utils/imports/__init__.py +3 -0
- abstract_utilities/parse_utils/imports/constants.py +10 -0
- abstract_utilities/parse_utils/imports/imports.py +2 -0
- abstract_utilities/parse_utils/imports/module_imports.py +4 -0
- abstract_utilities/parse_utils/parse_utils.py +516 -0
- abstract_utilities/path_utils/__init__.py +2 -0
- abstract_utilities/path_utils/imports/__init__.py +3 -0
- abstract_utilities/path_utils/imports/imports.py +1 -0
- abstract_utilities/path_utils/imports/module_imports.py +8 -0
- abstract_utilities/path_utils/path_utils.py +253 -0
- abstract_utilities/path_utils.py +95 -14
- abstract_utilities/read_write_utils/__init__.py +1 -0
- abstract_utilities/read_write_utils/imports/__init__.py +2 -0
- abstract_utilities/read_write_utils/imports/imports.py +2 -0
- abstract_utilities/read_write_utils/imports/module_imports.py +5 -0
- abstract_utilities/read_write_utils/read_write_utils.py +338 -0
- abstract_utilities/read_write_utils.py +66 -34
- abstract_utilities/safe_utils/__init__.py +2 -0
- abstract_utilities/safe_utils/imports/__init__.py +3 -0
- abstract_utilities/safe_utils/imports/imports.py +2 -0
- abstract_utilities/safe_utils/imports/module_imports.py +2 -0
- abstract_utilities/safe_utils/safe_utils.py +166 -0
- abstract_utilities/ssh_utils/__init__.py +3 -1
- abstract_utilities/ssh_utils/classes.py +0 -1
- abstract_utilities/ssh_utils/cmd_utils.py +207 -0
- abstract_utilities/ssh_utils/imports/__init__.py +3 -0
- abstract_utilities/ssh_utils/imports/imports.py +5 -0
- abstract_utilities/ssh_utils/imports/module_imports.py +6 -0
- abstract_utilities/ssh_utils/imports/utils.py +189 -0
- abstract_utilities/ssh_utils/pexpect_utils.py +11 -18
- abstract_utilities/ssh_utils/type_checks.py +92 -0
- abstract_utilities/string_utils/__init__.py +4 -0
- abstract_utilities/string_utils/clean_utils.py +28 -0
- abstract_utilities/string_utils/eat_utils.py +103 -0
- abstract_utilities/string_utils/imports/__init__.py +3 -0
- abstract_utilities/string_utils/imports/imports.py +2 -0
- abstract_utilities/string_utils/imports/module_imports.py +2 -0
- abstract_utilities/string_utils/imports/utils.py +81 -0
- abstract_utilities/string_utils/replace_utils.py +27 -0
- abstract_utilities/thread_utils/__init__.py +2 -0
- abstract_utilities/thread_utils/imports/__init__.py +2 -0
- abstract_utilities/thread_utils/imports/imports.py +2 -0
- abstract_utilities/thread_utils/imports/module_imports.py +2 -0
- abstract_utilities/thread_utils/thread_utils.py +140 -0
- abstract_utilities/time_utils/__init__.py +2 -0
- abstract_utilities/time_utils/imports/__init__.py +2 -0
- abstract_utilities/time_utils/imports/imports.py +3 -0
- abstract_utilities/time_utils/imports/module_imports.py +1 -0
- abstract_utilities/time_utils/time_utils.py +392 -0
- abstract_utilities/type_utils/__init__.py +3 -0
- abstract_utilities/type_utils/alpha_utils.py +59 -0
- abstract_utilities/type_utils/imports/__init__.py +2 -0
- abstract_utilities/type_utils/imports/imports.py +4 -0
- abstract_utilities/type_utils/imports/module_imports.py +1 -0
- abstract_utilities/type_utils/num_utils.py +19 -0
- abstract_utilities/type_utils/type_utils.py +981 -0
- {abstract_utilities-0.2.2.492.dist-info → abstract_utilities-0.2.2.583.dist-info}/METADATA +1 -1
- abstract_utilities-0.2.2.583.dist-info/RECORD +277 -0
- imports/__init__.py +36 -0
- abstract_utilities-0.2.2.492.dist-info/RECORD +0 -92
- {abstract_utilities-0.2.2.492.dist-info → abstract_utilities-0.2.2.583.dist-info}/WHEEL +0 -0
- {abstract_utilities-0.2.2.492.dist-info → abstract_utilities-0.2.2.583.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
from ..imports import *
|
|
2
|
+
from .dot_utils import *
|
|
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)
|
|
7
|
+
def ensure_on_path(p: Path):
|
|
8
|
+
s = str(p)
|
|
9
|
+
if s not in sys.path:
|
|
10
|
+
sys.path.insert(0, s)
|
|
11
|
+
def get_sysroot(filepath,i):
|
|
12
|
+
for j in range(i):
|
|
13
|
+
filepath = os.path.dirname(filepath)
|
|
14
|
+
return filepath
|
|
15
|
+
|
|
16
|
+
def get_dot_range_sysroot(filepath):
|
|
17
|
+
sysroot = filepath
|
|
18
|
+
while True:
|
|
19
|
+
dot_range = get_dot_range(is_import_or_init(sysroot))
|
|
20
|
+
if dot_range == 0:
|
|
21
|
+
break
|
|
22
|
+
sysroot = get_sysroot(sysroot,dot_range)
|
|
23
|
+
|
|
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]
|
|
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)
|
|
78
|
+
def is_import_or_init(sysroot,likely=None):
|
|
79
|
+
file_data = get_file_parts(sysroot)
|
|
80
|
+
nuroot = sysroot
|
|
81
|
+
dirname = file_data.get('dirname')
|
|
82
|
+
if os.path.isdir(sysroot):
|
|
83
|
+
dirname = sysroot
|
|
84
|
+
ext = file_data.get('ext')
|
|
85
|
+
filename = file_data.get('filename')
|
|
86
|
+
|
|
87
|
+
candidates = []
|
|
88
|
+
if likely:
|
|
89
|
+
candidates += [os.path.join(dirname,f"{likely}.py"),os.path.join(dirname,likely)]
|
|
90
|
+
candidates += [os.path.join(dirname,f"{filename}.py"),os.path.join(dirname,filename)]
|
|
91
|
+
files: List[Path] = []
|
|
92
|
+
for item in candidates:
|
|
93
|
+
|
|
94
|
+
if os.path.exists(item):
|
|
95
|
+
if os.path.isdir(item):
|
|
96
|
+
|
|
97
|
+
nuroot=None
|
|
98
|
+
init_name = '__init__.py'
|
|
99
|
+
rootList = os.listdir(item)
|
|
100
|
+
for basename in rootList:
|
|
101
|
+
if get_file_parts(basename,'filename') == filename:
|
|
102
|
+
nuroot = os.path.join(item,basename)
|
|
103
|
+
break
|
|
104
|
+
if init_name in rootList:
|
|
105
|
+
nuroot = os.path.join(item,init_name)
|
|
106
|
+
break
|
|
107
|
+
|
|
108
|
+
else:
|
|
109
|
+
nuroot=sysroot
|
|
110
|
+
break
|
|
111
|
+
|
|
112
|
+
return nuroot
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
import re,pexpect,shlex,ezodf,tiktoken,geopandas as gpd,os,PyPDF2,json,tempfile,requests
|
|
3
|
+
import textwrap,pdfplumber,math,hashlib,pandas as pd,platform,textwrap as tw,glob,asyncio
|
|
4
|
+
import fnmatch,importlib,shutil,sys,time,threading,posixpath,importlib.util,types
|
|
5
|
+
import subprocess,pytesseract,queue,logging,functools,pathlib,pkgutil,inspect
|
|
6
|
+
from typing import *
|
|
7
|
+
from datetime import timedelta,datetime
|
|
8
|
+
from flask import jsonify
|
|
9
|
+
from logging.handlers import RotatingFileHandler
|
|
10
|
+
from pathlib import Path
|
|
11
|
+
from functools import reduce
|
|
12
|
+
from types import MethodType,ModuleType
|
|
13
|
+
from werkzeug.utils import secure_filename
|
|
14
|
+
from werkzeug.datastructures import FileStorage
|
|
15
|
+
from pdf2image import convert_from_path # only used for OCR fallback
|
|
16
|
+
from dataclasses import dataclass,field,asdict
|
|
17
|
+
from pprint import pprint
|
|
18
|
+
from dotenv import load_dotenv
|