abstract-utilities 0.2.2.476__py3-none-any.whl → 0.2.2.540__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.

Files changed (190) hide show
  1. abstract_utilities/__init__.py +6 -10
  2. abstract_utilities/circular_import_finder.py +222 -0
  3. abstract_utilities/circular_import_finder2.py +118 -0
  4. abstract_utilities/class_utils/__init__.py +7 -0
  5. abstract_utilities/class_utils/abstract_classes.py +74 -0
  6. abstract_utilities/class_utils/caller_utils.py +35 -0
  7. abstract_utilities/class_utils/class_utils.py +109 -0
  8. abstract_utilities/class_utils/function_utils.py +153 -0
  9. abstract_utilities/class_utils/global_utils.py +56 -0
  10. abstract_utilities/class_utils/imports/__init__.py +2 -0
  11. abstract_utilities/class_utils/imports/imports.py +2 -0
  12. abstract_utilities/class_utils/imports/utils.py +40 -0
  13. abstract_utilities/class_utils/module_utils.py +63 -0
  14. abstract_utilities/directory_utils/__init__.py +2 -0
  15. abstract_utilities/directory_utils/directory_utils.py +94 -0
  16. abstract_utilities/directory_utils/imports/__init__.py +2 -0
  17. abstract_utilities/directory_utils/imports/imports.py +1 -0
  18. abstract_utilities/directory_utils/imports/module_imports.py +2 -0
  19. abstract_utilities/directory_utils/name_utils.py +43 -0
  20. abstract_utilities/directory_utils/size_utils.py +57 -0
  21. abstract_utilities/directory_utils/src/__init__.py +4 -0
  22. abstract_utilities/directory_utils/src/directory_utils.py +92 -0
  23. abstract_utilities/directory_utils/src/name_utils.py +43 -0
  24. abstract_utilities/directory_utils/src/size_utils.py +57 -0
  25. abstract_utilities/directory_utils/src/utils.py +116 -0
  26. abstract_utilities/directory_utils/utils.py +116 -0
  27. abstract_utilities/env_utils/imports/imports.py +5 -3
  28. abstract_utilities/error_utils/__init__.py +2 -0
  29. abstract_utilities/error_utils/error_utils.py +25 -0
  30. abstract_utilities/error_utils/imports/__init__.py +2 -0
  31. abstract_utilities/error_utils/imports/imports.py +1 -0
  32. abstract_utilities/error_utils/imports/module_imports.py +1 -0
  33. abstract_utilities/file_utils/__init__.py +1 -2
  34. abstract_utilities/file_utils/file_utils/imports/module_imports.py +2 -1
  35. abstract_utilities/file_utils/file_utils/type_checks.py +34 -24
  36. abstract_utilities/file_utils/imports/constants.py +84 -4
  37. abstract_utilities/file_utils/imports/imports.py +3 -18
  38. abstract_utilities/file_utils/imports/module_imports.py +2 -7
  39. abstract_utilities/file_utils/module_imports.py +12 -0
  40. abstract_utilities/file_utils/src/__init__.py +8 -0
  41. abstract_utilities/file_utils/src/file_filters.py +177 -0
  42. abstract_utilities/file_utils/src/file_reader.py +544 -0
  43. abstract_utilities/file_utils/src/file_utils.py +156 -0
  44. abstract_utilities/file_utils/src/filter_params.py +197 -0
  45. abstract_utilities/file_utils/src/find_collect.py +266 -0
  46. abstract_utilities/file_utils/src/initFunctionsGen.py +280 -0
  47. abstract_utilities/file_utils/src/map_utils.py +29 -0
  48. abstract_utilities/file_utils/src/pdf_utils.py +300 -0
  49. abstract_utilities/file_utils/src/type_checks.py +91 -0
  50. abstract_utilities/file_utils (2)/__init__.py +2 -0
  51. abstract_utilities/file_utils (2)/imports/__init__.py +2 -0
  52. abstract_utilities/file_utils (2)/imports/constants.py +118 -0
  53. abstract_utilities/file_utils (2)/imports/imports/__init__.py +3 -0
  54. abstract_utilities/file_utils (2)/imports/imports/constants.py +119 -0
  55. abstract_utilities/file_utils (2)/imports/imports/imports.py +46 -0
  56. abstract_utilities/file_utils (2)/imports/imports/module_imports.py +8 -0
  57. abstract_utilities/file_utils (2)/imports/utils/__init__.py +3 -0
  58. abstract_utilities/file_utils (2)/imports/utils/classes.py +379 -0
  59. abstract_utilities/file_utils (2)/imports/utils/clean_imps.py +155 -0
  60. abstract_utilities/file_utils (2)/imports/utils/filter_utils.py +341 -0
  61. abstract_utilities/file_utils (2)/src/__init__.py +8 -0
  62. abstract_utilities/file_utils (2)/src/file_filters.py +155 -0
  63. abstract_utilities/file_utils (2)/src/file_reader.py +604 -0
  64. abstract_utilities/file_utils (2)/src/find_collect.py +258 -0
  65. abstract_utilities/file_utils (2)/src/initFunctionsGen.py +286 -0
  66. abstract_utilities/file_utils (2)/src/map_utils.py +28 -0
  67. abstract_utilities/file_utils (2)/src/pdf_utils.py +300 -0
  68. abstract_utilities/hash_utils/__init__.py +2 -0
  69. abstract_utilities/hash_utils/hash_utils.py +5 -0
  70. abstract_utilities/hash_utils/imports/__init__.py +2 -0
  71. abstract_utilities/hash_utils/imports/imports.py +1 -0
  72. abstract_utilities/hash_utils/imports/module_imports.py +0 -0
  73. abstract_utilities/history_utils/__init__.py +2 -0
  74. abstract_utilities/history_utils/history_utils.py +37 -0
  75. abstract_utilities/history_utils/imports/__init__.py +2 -0
  76. abstract_utilities/history_utils/imports/imports.py +1 -0
  77. abstract_utilities/history_utils/imports/module_imports.py +0 -0
  78. abstract_utilities/import_utils/__init__.py +2 -0
  79. abstract_utilities/import_utils/imports/__init__.py +4 -0
  80. abstract_utilities/import_utils/imports/constants.py +2 -0
  81. abstract_utilities/import_utils/imports/imports.py +4 -0
  82. abstract_utilities/import_utils/imports/module_imports.py +6 -0
  83. abstract_utilities/import_utils/imports/utils.py +30 -0
  84. abstract_utilities/import_utils/src/__init__.py +7 -0
  85. abstract_utilities/import_utils/src/clean_imports.py +147 -0
  86. abstract_utilities/import_utils/src/dot_utils.py +69 -0
  87. abstract_utilities/import_utils/src/extract_utils.py +42 -0
  88. abstract_utilities/import_utils/src/import_functions.py +46 -0
  89. abstract_utilities/import_utils/src/import_utils.py +299 -0
  90. abstract_utilities/import_utils/src/package_utils/__init__.py +139 -0
  91. abstract_utilities/import_utils/src/package_utils/context_utils.py +27 -0
  92. abstract_utilities/import_utils/src/package_utils/import_collectors.py +53 -0
  93. abstract_utilities/import_utils/src/package_utils/path_utils.py +28 -0
  94. abstract_utilities/import_utils/src/package_utils/safe_import.py +27 -0
  95. abstract_utilities/import_utils/src/package_utils.py +140 -0
  96. abstract_utilities/import_utils/src/package_utilss/__init__.py +139 -0
  97. abstract_utilities/import_utils/src/package_utilss/context_utils.py +27 -0
  98. abstract_utilities/import_utils/src/package_utilss/import_collectors.py +53 -0
  99. abstract_utilities/import_utils/src/package_utilss/path_utils.py +28 -0
  100. abstract_utilities/import_utils/src/package_utilss/safe_import.py +27 -0
  101. abstract_utilities/import_utils/src/pkg_utils.py +140 -0
  102. abstract_utilities/import_utils/src/sysroot_utils.py +57 -0
  103. abstract_utilities/imports.py +18 -0
  104. abstract_utilities/json_utils/__init__.py +2 -0
  105. abstract_utilities/json_utils/imports/__init__.py +2 -0
  106. abstract_utilities/json_utils/imports/imports.py +2 -0
  107. abstract_utilities/json_utils/imports/module_imports.py +5 -0
  108. abstract_utilities/json_utils/json_utils.py +743 -0
  109. abstract_utilities/list_utils/__init__.py +2 -0
  110. abstract_utilities/list_utils/imports/__init__.py +2 -0
  111. abstract_utilities/list_utils/imports/imports.py +1 -0
  112. abstract_utilities/list_utils/imports/module_imports.py +0 -0
  113. abstract_utilities/list_utils/list_utils.py +199 -0
  114. abstract_utilities/log_utils/__init__.py +5 -0
  115. abstract_utilities/log_utils/abstractLogManager.py +64 -0
  116. abstract_utilities/log_utils/call_response.py +68 -0
  117. abstract_utilities/log_utils/imports/__init__.py +2 -0
  118. abstract_utilities/log_utils/imports/imports.py +7 -0
  119. abstract_utilities/log_utils/imports/module_imports.py +2 -0
  120. abstract_utilities/log_utils/log_file.py +58 -0
  121. abstract_utilities/log_utils/logger_callable.py +49 -0
  122. abstract_utilities/math_utils/__init__.py +2 -0
  123. abstract_utilities/math_utils/imports/__init__.py +2 -0
  124. abstract_utilities/math_utils/imports/imports.py +2 -0
  125. abstract_utilities/math_utils/imports/module_imports.py +1 -0
  126. abstract_utilities/math_utils/math_utils.py +208 -0
  127. abstract_utilities/parse_utils/__init__.py +2 -0
  128. abstract_utilities/parse_utils/imports/__init__.py +3 -0
  129. abstract_utilities/parse_utils/imports/constants.py +10 -0
  130. abstract_utilities/parse_utils/imports/imports.py +2 -0
  131. abstract_utilities/parse_utils/imports/module_imports.py +4 -0
  132. abstract_utilities/parse_utils/parse_utils.py +516 -0
  133. abstract_utilities/path_utils/__init__.py +2 -0
  134. abstract_utilities/path_utils/imports/__init__.py +3 -0
  135. abstract_utilities/path_utils/imports/imports.py +1 -0
  136. abstract_utilities/path_utils/imports/module_imports.py +8 -0
  137. abstract_utilities/path_utils/path_utils.py +251 -0
  138. abstract_utilities/path_utils.py +95 -14
  139. abstract_utilities/read_write_utils/__init__.py +1 -0
  140. abstract_utilities/read_write_utils/imports/__init__.py +2 -0
  141. abstract_utilities/read_write_utils/imports/imports.py +2 -0
  142. abstract_utilities/read_write_utils/imports/module_imports.py +5 -0
  143. abstract_utilities/read_write_utils/read_write_utils.py +338 -0
  144. abstract_utilities/read_write_utils.py +142 -20
  145. abstract_utilities/safe_utils/__init__.py +2 -0
  146. abstract_utilities/safe_utils/imports/__init__.py +3 -0
  147. abstract_utilities/safe_utils/imports/imports.py +2 -0
  148. abstract_utilities/safe_utils/imports/module_imports.py +2 -0
  149. abstract_utilities/safe_utils/safe_utils.py +136 -0
  150. abstract_utilities/ssh_utils/__init__.py +3 -1
  151. abstract_utilities/ssh_utils/classes.py +0 -1
  152. abstract_utilities/ssh_utils/cmd_utils.py +207 -0
  153. abstract_utilities/ssh_utils/imports/__init__.py +3 -0
  154. abstract_utilities/ssh_utils/imports/imports.py +5 -0
  155. abstract_utilities/ssh_utils/imports/module_imports.py +6 -0
  156. abstract_utilities/ssh_utils/imports/utils.py +189 -0
  157. abstract_utilities/ssh_utils/pexpect_utils.py +11 -18
  158. abstract_utilities/ssh_utils/type_checks.py +92 -0
  159. abstract_utilities/string_utils/__init__.py +4 -0
  160. abstract_utilities/string_utils/clean_utils.py +28 -0
  161. abstract_utilities/string_utils/eat_utils.py +103 -0
  162. abstract_utilities/string_utils/imports/__init__.py +3 -0
  163. abstract_utilities/string_utils/imports/imports.py +2 -0
  164. abstract_utilities/string_utils/imports/module_imports.py +2 -0
  165. abstract_utilities/string_utils/imports/utils.py +81 -0
  166. abstract_utilities/string_utils/replace_utils.py +27 -0
  167. abstract_utilities/string_utils.py +4 -1
  168. abstract_utilities/thread_utils/__init__.py +2 -0
  169. abstract_utilities/thread_utils/imports/__init__.py +2 -0
  170. abstract_utilities/thread_utils/imports/imports.py +2 -0
  171. abstract_utilities/thread_utils/imports/module_imports.py +2 -0
  172. abstract_utilities/thread_utils/thread_utils.py +140 -0
  173. abstract_utilities/time_utils/__init__.py +2 -0
  174. abstract_utilities/time_utils/imports/__init__.py +2 -0
  175. abstract_utilities/time_utils/imports/imports.py +3 -0
  176. abstract_utilities/time_utils/imports/module_imports.py +1 -0
  177. abstract_utilities/time_utils/time_utils.py +392 -0
  178. abstract_utilities/type_utils/__init__.py +3 -0
  179. abstract_utilities/type_utils/alpha_utils.py +59 -0
  180. abstract_utilities/type_utils/imports/__init__.py +2 -0
  181. abstract_utilities/type_utils/imports/imports.py +4 -0
  182. abstract_utilities/type_utils/imports/module_imports.py +1 -0
  183. abstract_utilities/type_utils/num_utils.py +19 -0
  184. abstract_utilities/type_utils/type_utils.py +981 -0
  185. {abstract_utilities-0.2.2.476.dist-info → abstract_utilities-0.2.2.540.dist-info}/METADATA +1 -1
  186. abstract_utilities-0.2.2.540.dist-info/RECORD +263 -0
  187. imports/__init__.py +36 -0
  188. abstract_utilities-0.2.2.476.dist-info/RECORD +0 -92
  189. {abstract_utilities-0.2.2.476.dist-info → abstract_utilities-0.2.2.540.dist-info}/WHEEL +0 -0
  190. {abstract_utilities-0.2.2.476.dist-info → abstract_utilities-0.2.2.540.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,2 @@
1
+ from .imports import *
2
+ from .utils import *
@@ -0,0 +1,118 @@
1
+ from .imports import *
2
+ from .module_imports import *
3
+ # -------------------------
4
+ # Config dataclass
5
+ # -------------------------
6
+
7
+ @dataclass
8
+ class ScanConfig:
9
+ allowed_exts: Set[str]
10
+ exclude_exts: Set[str]
11
+ allowed_types: Set[str]
12
+ exclude_types: Set[str]
13
+ allowed_dirs: List[str] = field(default_factory=list)
14
+ exclude_dirs: List[str] = field(default_factory=list)
15
+ allowed_patterns: List[str] = field(default_factory=list)
16
+ exclude_patterns: List[str] = field(default_factory=list)
17
+
18
+ @dataclass
19
+ class SearchParams(ScanConfig):
20
+ directories: List[str] = field(default_factory=list)
21
+ add: bool = False
22
+ recursive: bool = True
23
+ strings: List[str] = field(default_factory=list)
24
+ total_strings: bool = False
25
+ parse_lines: bool = False
26
+ spec_line: Union[bool, int] = False
27
+ get_lines: bool = False
28
+
29
+ @dataclass
30
+ class AllParams(SearchParams):
31
+ cfg = None
32
+ allowed: Optional[Callable[[str], bool]] = None
33
+ include_files: bool = True
34
+ recursive: bool = True
35
+ # -------------------------
36
+ # Default sets
37
+ # -------------------------
38
+ DEFAULT_ALLOWED_EXTS: Set[str] = {
39
+ ".py", ".pyw", # python
40
+ ".js", ".jsx", ".ts", ".tsx", ".mjs", # JS/TS
41
+ ".html", ".htm", ".xml", # markup
42
+ ".css", ".scss", ".sass", ".less", # styles
43
+ ".json", ".yaml", ".yml", ".toml", ".ini", # configs
44
+ ".cfg", ".md", ".markdown", ".rst", # docs
45
+ ".sh", ".bash", ".env", # scripts/env
46
+ ".txt" # plain text
47
+ }
48
+
49
+ DEFAULT_EXCLUDE_TYPES: Set[str] = {
50
+ "image", "video", "audio", "presentation",
51
+ "spreadsheet", "archive", "executable"
52
+ }
53
+
54
+ # never want these—even if they sneak into ALLOWED
55
+ _unallowed = set(get_media_exts(DEFAULT_EXCLUDE_TYPES)) | {
56
+ ".bak", ".shp", ".cpg", ".dbf", ".shx", ".geojson",
57
+ ".pyc", ".prj", ".sbn", ".sbx"
58
+ }
59
+ DEFAULT_EXCLUDE_EXTS = {e.split('.')[-1] for e in _unallowed if e not in DEFAULT_ALLOWED_EXTS}
60
+
61
+ DEFAULT_EXCLUDE_DIRS: Set[str] = {
62
+ "node_modules", "old","__pycache__", "backups", "backup",
63
+ "backs", "trash", "depriciated", "old", "__init__"
64
+ }
65
+
66
+ DEFAULT_EXCLUDE_PATTERNS: Set[str] = {
67
+ "__init__*", "*.tmp", "*.log", "*.lock", "*.zip","*~"
68
+ }
69
+ REMOTE_RE = re.compile(r"^(?P<host>[^:\s]+@[^:\s]+):(?P<path>/.*)$")
70
+ AllowedPredicate = Optional[Callable[[str], bool]]
71
+ DEFAULT_EXCLUDE_FILE_PATTERNS=DEFAULT_EXCLUDE_PATTERNS
72
+ DEFAULT_ALLOWED_PATTERNS: List[str] = ["*"]
73
+ DEFAULT_ALLOWED_DIRS: List[str] = ["*"]
74
+ DEFAULT_ALLOWED_TYPES: List[str] = ["*"]
75
+ CANONICAL_MAP = {
76
+ "directories": ["directory", "directories", "dir","dirs","directory","directories","d","dirname", "paths", "path","roots","root"],
77
+ "files":["file","filepath","file_path","files","filepaths","file_paths","paths", "path","f"],
78
+ "allowed_exts": ["allow_ext", "allowed_ext", "include_ext", "include_exts", "exts_allowed"],
79
+ "exclude_exts": ["exclude_ext", "excluded_ext", "excluded_exts", "unallowed_ext", "unallowed_exts"],
80
+ "allowed_types": ["allow_type", "allowed_type", "include_type", "include_types", "types_allowed"],
81
+ "exclude_types": ["exclude_type", "excluded_type", "excluded_types", "unallowed_type", "unallowed_types"],
82
+ "allowed_dirs": ["allow_dir", "allowed_dir", "include_dir", "include_dirs", "dirs_allowed"],
83
+ "exclude_dirs": ["exclude_dir", "excluded_dir", "excluded_dirs", "unallowed_dir", "unallowed_dirs"],
84
+ "allowed_patterns": ["allow_pattern", "allowed_pattern", "include_pattern", "include_patterns", "patterns_allowed"],
85
+ "exclude_patterns": ["exclude_pattern", "excluded_pattern", "excluded_patterns", "unallowed_pattern", "unallowed_patterns"],
86
+ "add":["add"],
87
+ "recursive":["recursive"],
88
+ "strings":["strings"],
89
+ "total_strings":["total_strings"],
90
+ "parse_lines":["parse_lines"],
91
+ "spec_line":["spec_line"],
92
+ "get_lines":["get_lines"]
93
+ }
94
+ DEFAULT_ALLOWED_EXCLUDE_MAP={
95
+ "allowed_exts": {"default":DEFAULT_ALLOWED_EXTS,"type":type(DEFAULT_ALLOWED_EXTS),"canonical":CANONICAL_MAP.get("allowed_exts")},
96
+ "exclude_exts": {"default":DEFAULT_EXCLUDE_EXTS,"type":type(DEFAULT_EXCLUDE_EXTS),"canonical":CANONICAL_MAP.get("exclude_exts")},
97
+ "allowed_types": {"default":DEFAULT_ALLOWED_TYPES,"type":type(DEFAULT_ALLOWED_TYPES),"canonical":CANONICAL_MAP.get("allowed_types")},
98
+ "exclude_types": {"default":DEFAULT_EXCLUDE_TYPES,"type":type(DEFAULT_EXCLUDE_TYPES),"canonical":CANONICAL_MAP.get("exclude_types")},
99
+ "allowed_dirs": {"default":DEFAULT_ALLOWED_DIRS,"type":type(DEFAULT_ALLOWED_DIRS),"canonical":CANONICAL_MAP.get("allowed_dirs")},
100
+ "exclude_dirs": {"default":DEFAULT_EXCLUDE_DIRS,"type":type(DEFAULT_EXCLUDE_DIRS),"canonical":CANONICAL_MAP.get("exclude_dirs")},
101
+ "allowed_patterns": {"default":DEFAULT_ALLOWED_PATTERNS,"type":type(DEFAULT_ALLOWED_PATTERNS),"canonical":CANONICAL_MAP.get("allowed_patterns")},
102
+ "exclude_patterns": {"default":DEFAULT_EXCLUDE_PATTERNS,"type":type(DEFAULT_EXCLUDE_PATTERNS),"canonical":CANONICAL_MAP.get("exclude_patterns")},
103
+ }
104
+ DEFAULT_CANONICAL_MAP={
105
+ "directories":{"default":[],"type":list,"canonical":CANONICAL_MAP.get("directories")},
106
+ "files":{"default":[],"type":list,"canonical":CANONICAL_MAP.get("files")},
107
+ **DEFAULT_ALLOWED_EXCLUDE_MAP,
108
+ "allowed":{"default":None,"type":bool,"canonical":CANONICAL_MAP.get("allowed")},
109
+ "add":{"default":False,"type":bool,"canonical":CANONICAL_MAP.get("add")},
110
+ "recursive":{"default":True,"type":bool,"canonical":CANONICAL_MAP.get("recursive")},
111
+ "strings":{"default":None,"type":list,"canonical":CANONICAL_MAP.get("strings")},
112
+ "total_strings":{"default":False,"type":bool,"canonical":CANONICAL_MAP.get("total_strings")},
113
+ "parse_lines":{"default":False,"type":bool,"canonical":CANONICAL_MAP.get("parse_lines")},
114
+ "spec_line":{"default":False,"type":bool,"canonical":CANONICAL_MAP.get("spec_line")},
115
+ "get_lines":{"default":False,"type":bool,"canonical":CANONICAL_MAP.get("get_lines")},
116
+ }
117
+
118
+
@@ -0,0 +1,3 @@
1
+ from .constants import *
2
+ from .module_imports import *
3
+ from .imports import *
@@ -0,0 +1,119 @@
1
+ from .imports import *
2
+ from .module_imports import *
3
+ # -------------------------
4
+ # Config dataclass
5
+ # -------------------------
6
+
7
+ @dataclass
8
+ class ScanConfig:
9
+ allowed_exts: Set[str]
10
+ exclude_exts: Set[str]
11
+ allowed_types: Set[str]
12
+ exclude_types: Set[str]
13
+ allowed_dirs: List[str] = field(default_factory=list)
14
+ exclude_dirs: List[str] = field(default_factory=list)
15
+ allowed_patterns: List[str] = field(default_factory=list)
16
+ exclude_patterns: List[str] = field(default_factory=list)
17
+
18
+ @dataclass
19
+ class SearchParams(ScanConfig):
20
+ directories: List[str] = field(default_factory=list)
21
+ add: bool = False
22
+ recursive: bool = True
23
+ strings: List[str] = field(default_factory=list)
24
+ total_strings: bool = False
25
+ parse_lines: bool = False
26
+ spec_line: Union[bool, int] = False
27
+ get_lines: bool = False
28
+
29
+ @dataclass
30
+ class AllParams(SearchParams):
31
+ cfg = None
32
+ files:List[str] = field(default_factory=list)
33
+ allowed: Optional[Callable[[str], bool]] = None
34
+ include_files: bool = True
35
+ recursive: bool = True
36
+ # -------------------------
37
+ # Default sets
38
+ # -------------------------
39
+ DEFAULT_ALLOWED_EXTS: Set[str] = {
40
+ ".py", ".pyw", # python
41
+ ".js", ".jsx", ".ts", ".tsx", ".mjs", # JS/TS
42
+ ".html", ".htm", ".xml", # markup
43
+ ".css", ".scss", ".sass", ".less", # styles
44
+ ".json", ".yaml", ".yml", ".toml", ".ini", # configs
45
+ ".cfg", ".md", ".markdown", ".rst", # docs
46
+ ".sh", ".bash", ".env", # scripts/env
47
+ ".txt" # plain text
48
+ }
49
+
50
+ DEFAULT_EXCLUDE_TYPES: Set[str] = {
51
+ "image", "video", "audio", "presentation",
52
+ "spreadsheet", "archive", "executable"
53
+ }
54
+
55
+ # never want these—even if they sneak into ALLOWED
56
+ _unallowed = set(get_media_exts(DEFAULT_EXCLUDE_TYPES)) | {
57
+ ".bak", ".shp", ".cpg", ".dbf", ".shx", ".geojson",
58
+ ".pyc", ".prj", ".sbn", ".sbx"
59
+ }
60
+ DEFAULT_EXCLUDE_EXTS = {e.split('.')[-1] for e in _unallowed if e not in DEFAULT_ALLOWED_EXTS}
61
+
62
+ DEFAULT_EXCLUDE_DIRS: Set[str] = {
63
+ "node_modules", "old","__pycache__", "backups", "backup",
64
+ "backs", "trash", "depriciated", "old", "__init__"
65
+ }
66
+
67
+ DEFAULT_EXCLUDE_PATTERNS: Set[str] = {
68
+ "__init__*", "*.tmp", "*.log", "*.lock", "*.zip","*~"
69
+ }
70
+ REMOTE_RE = re.compile(r"^(?P<host>[^:\s]+@[^:\s]+):(?P<path>/.*)$")
71
+ AllowedPredicate = Optional[Callable[[str], bool]]
72
+ DEFAULT_EXCLUDE_FILE_PATTERNS=DEFAULT_EXCLUDE_PATTERNS
73
+ DEFAULT_ALLOWED_PATTERNS: List[str] = ["*"]
74
+ DEFAULT_ALLOWED_DIRS: List[str] = ["*"]
75
+ DEFAULT_ALLOWED_TYPES: List[str] = ["*"]
76
+ CANONICAL_MAP = {
77
+ "directories": ["directory", "directories", "dir","dirs","directory","directories","d","dirname", "paths", "path","roots","root"],
78
+ "files":["file","filepath","file_path","files","filepaths","file_paths","paths", "path","f"],
79
+ "allowed_exts": ["allow_ext", "allowed_ext", "include_ext", "include_exts", "exts_allowed"],
80
+ "exclude_exts": ["exclude_ext", "excluded_ext", "excluded_exts", "unallowed_ext", "unallowed_exts"],
81
+ "allowed_types": ["allow_type", "allowed_type", "include_type", "include_types", "types_allowed"],
82
+ "exclude_types": ["exclude_type", "excluded_type", "excluded_types", "unallowed_type", "unallowed_types"],
83
+ "allowed_dirs": ["allow_dir", "allowed_dir", "include_dir", "include_dirs", "dirs_allowed"],
84
+ "exclude_dirs": ["exclude_dir", "excluded_dir", "excluded_dirs", "unallowed_dir", "unallowed_dirs"],
85
+ "allowed_patterns": ["allow_pattern", "allowed_pattern", "include_pattern", "include_patterns", "patterns_allowed"],
86
+ "exclude_patterns": ["exclude_pattern", "excluded_pattern", "excluded_patterns", "unallowed_pattern", "unallowed_patterns"],
87
+ "add":["add"],
88
+ "recursive":["recursive"],
89
+ "strings":["strings"],
90
+ "total_strings":["total_strings"],
91
+ "parse_lines":["parse_lines"],
92
+ "spec_line":["spec_line"],
93
+ "get_lines":["get_lines"]
94
+ }
95
+ DEFAULT_ALLOWED_EXCLUDE_MAP={
96
+ "allowed_exts": {"default":DEFAULT_ALLOWED_EXTS,"type":type(DEFAULT_ALLOWED_EXTS),"canonical":CANONICAL_MAP.get("allowed_exts")},
97
+ "exclude_exts": {"default":DEFAULT_EXCLUDE_EXTS,"type":type(DEFAULT_EXCLUDE_EXTS),"canonical":CANONICAL_MAP.get("exclude_exts")},
98
+ "allowed_types": {"default":DEFAULT_ALLOWED_TYPES,"type":type(DEFAULT_ALLOWED_TYPES),"canonical":CANONICAL_MAP.get("allowed_types")},
99
+ "exclude_types": {"default":DEFAULT_EXCLUDE_TYPES,"type":type(DEFAULT_EXCLUDE_TYPES),"canonical":CANONICAL_MAP.get("exclude_types")},
100
+ "allowed_dirs": {"default":DEFAULT_ALLOWED_DIRS,"type":type(DEFAULT_ALLOWED_DIRS),"canonical":CANONICAL_MAP.get("allowed_dirs")},
101
+ "exclude_dirs": {"default":DEFAULT_EXCLUDE_DIRS,"type":type(DEFAULT_EXCLUDE_DIRS),"canonical":CANONICAL_MAP.get("exclude_dirs")},
102
+ "allowed_patterns": {"default":DEFAULT_ALLOWED_PATTERNS,"type":type(DEFAULT_ALLOWED_PATTERNS),"canonical":CANONICAL_MAP.get("allowed_patterns")},
103
+ "exclude_patterns": {"default":DEFAULT_EXCLUDE_PATTERNS,"type":type(DEFAULT_EXCLUDE_PATTERNS),"canonical":CANONICAL_MAP.get("exclude_patterns")},
104
+ }
105
+ DEFAULT_CANONICAL_MAP={
106
+ "directories":{"default":[],"type":list,"canonical":CANONICAL_MAP.get("directories")},
107
+ "files":{"default":[],"type":list,"canonical":CANONICAL_MAP.get("files")},
108
+ **DEFAULT_ALLOWED_EXCLUDE_MAP,
109
+ "allowed":{"default":None,"type":bool,"canonical":CANONICAL_MAP.get("allowed")},
110
+ "add":{"default":False,"type":bool,"canonical":CANONICAL_MAP.get("add")},
111
+ "recursive":{"default":True,"type":bool,"canonical":CANONICAL_MAP.get("recursive")},
112
+ "strings":{"default":None,"type":list,"canonical":CANONICAL_MAP.get("strings")},
113
+ "total_strings":{"default":False,"type":bool,"canonical":CANONICAL_MAP.get("total_strings")},
114
+ "parse_lines":{"default":False,"type":bool,"canonical":CANONICAL_MAP.get("parse_lines")},
115
+ "spec_line":{"default":False,"type":bool,"canonical":CANONICAL_MAP.get("spec_line")},
116
+ "get_lines":{"default":False,"type":bool,"canonical":CANONICAL_MAP.get("get_lines")},
117
+ }
118
+
119
+
@@ -0,0 +1,46 @@
1
+ # ============================================================
2
+ # abstract_utilities/imports/imports.py
3
+ # Global imports hub — everything imported here will be
4
+ # automatically available to any module that does:
5
+ # from ..imports import *
6
+ # ============================================================
7
+
8
+
9
+ from ....imports import *
10
+ from pathlib import Path
11
+
12
+ import os, sys, re, inspect
13
+ from typing import *
14
+ from types import MethodType
15
+
16
+ from datetime import datetime
17
+
18
+ from typing import *
19
+ from werkzeug.utils import secure_filename
20
+ from werkzeug.datastructures import FileStorage
21
+ from pdf2image import convert_from_path # only used for OCR fallback
22
+ # ---- Core standard library modules -------------------------
23
+
24
+ from datetime import datetime
25
+ from types import ModuleType
26
+
27
+ # ---- Dataclasses and typing --------------------------------
28
+ from dataclasses import dataclass, field
29
+ from typing import (
30
+ Any, Optional, List, Dict, Set, Tuple,
31
+ Iterable, Callable, Literal, Union, TypeVar
32
+ )
33
+
34
+ # ---- Common 3rd-party dependencies --------------------------
35
+ from pdf2image import convert_from_path
36
+ from werkzeug.utils import secure_filename
37
+ from werkzeug.datastructures import FileStorage
38
+
39
+ # ---- Helpers ------------------------------------------------
40
+ from pprint import pprint
41
+
42
+ # ============================================================
43
+ # AUTO-EXPORT ALL NON-PRIVATE NAMES
44
+ # ============================================================
45
+ __all__ = [name for name in globals() if not name.startswith("_")]
46
+
@@ -0,0 +1,8 @@
1
+ from ....list_utils import make_list
2
+ from ....type_utils import get_media_exts, is_media_type, MIME_TYPES, is_str
3
+ from ....ssh_utils import *
4
+ from ....env_utils import *
5
+ from ....read_write_utils import read_from_file,write_to_file
6
+ from ....log_utils import get_logFile
7
+ from ....class_utils import get_caller, get_caller_path, get_caller_dir,SingletonMeta,run_pruned_func
8
+
@@ -0,0 +1,3 @@
1
+ from .classes import *
2
+ from .clean_imps import *
3
+ from .filter_utils import *