abstract-utilities 0.2.2.613__tar.gz → 0.2.2.671__tar.gz

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.
Files changed (216) hide show
  1. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/PKG-INFO +1 -1
  2. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/setup.py +1 -1
  3. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/__init__.py +15 -5
  4. abstract_utilities-0.2.2.671/src/abstract_utilities/class_utils/abstract_classes.py +144 -0
  5. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/class_utils/caller_utils.py +38 -0
  6. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/class_utils/imports/imports.py +1 -1
  7. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/file_utils/imports/classes.py +59 -55
  8. abstract_utilities-0.2.2.671/src/abstract_utilities/file_utils/src/file_filters/__init__.py +1 -0
  9. abstract_utilities-0.2.2.671/src/abstract_utilities/file_utils/src/file_filters/ensure_utils.py +490 -0
  10. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/file_utils/src/file_filters/filter_params.py +64 -0
  11. abstract_utilities-0.2.2.671/src/abstract_utilities/file_utils/src/file_filters/predicate_utils.py +44 -0
  12. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/file_utils/src/initFunctionsGen.py +8 -9
  13. abstract_utilities-0.2.2.671/src/abstract_utilities/import_utils/imports/__init__.py +4 -0
  14. abstract_utilities-0.2.2.671/src/abstract_utilities/import_utils/imports/init_imports.py +3 -0
  15. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/import_utils/imports/module_imports.py +1 -0
  16. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/import_utils/imports/utils.py +1 -1
  17. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/import_utils/src/__init__.py +1 -0
  18. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/import_utils/src/import_utils.py +39 -0
  19. abstract_utilities-0.2.2.671/src/abstract_utilities/import_utils/src/layze_import_utils/__init__.py +2 -0
  20. abstract_utilities-0.2.2.671/src/abstract_utilities/import_utils/src/layze_import_utils/lazy_utils.py +41 -0
  21. abstract_utilities-0.2.2.671/src/abstract_utilities/import_utils/src/layze_import_utils/nullProxy.py +37 -0
  22. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/imports.py +5 -2
  23. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/json_utils/json_utils.py +37 -3
  24. abstract_utilities-0.2.2.671/src/abstract_utilities/log_utils/log_file.py +158 -0
  25. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/parse_utils/parse_utils.py +23 -0
  26. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/path_utils/imports/module_imports.py +1 -1
  27. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/path_utils/path_utils.py +7 -12
  28. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/read_write_utils/imports/imports.py +1 -1
  29. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/read_write_utils/read_write_utils.py +102 -32
  30. abstract_utilities-0.2.2.671/src/abstract_utilities/type_utils/__init__.py +7 -0
  31. abstract_utilities-0.2.2.671/src/abstract_utilities/type_utils/get_type.py +116 -0
  32. {abstract_utilities-0.2.2.613/src/abstract_utilities/import_utils → abstract_utilities-0.2.2.671/src/abstract_utilities/type_utils}/imports/__init__.py +0 -1
  33. abstract_utilities-0.2.2.671/src/abstract_utilities/type_utils/imports/constants.py +134 -0
  34. abstract_utilities-0.2.2.671/src/abstract_utilities/type_utils/imports/module_imports.py +25 -0
  35. abstract_utilities-0.2.2.671/src/abstract_utilities/type_utils/is_type.py +455 -0
  36. abstract_utilities-0.2.2.671/src/abstract_utilities/type_utils/make_type.py +126 -0
  37. abstract_utilities-0.2.2.671/src/abstract_utilities/type_utils/mime_types.py +68 -0
  38. abstract_utilities-0.2.2.671/src/abstract_utilities/type_utils/type_utils.py +104 -0
  39. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities.egg-info/PKG-INFO +1 -1
  40. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities.egg-info/SOURCES.txt +9 -1
  41. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/tests/test.py +2 -1
  42. abstract_utilities-0.2.2.613/src/abstract_utilities/class_utils/abstract_classes.py +0 -74
  43. abstract_utilities-0.2.2.613/src/abstract_utilities/file_utils/src/file_filters/__init__.py +0 -4
  44. abstract_utilities-0.2.2.613/src/abstract_utilities/file_utils/src/file_filters/ensure_utils.py +0 -118
  45. abstract_utilities-0.2.2.613/src/abstract_utilities/file_utils/src/file_filters/predicate_utils.py +0 -114
  46. abstract_utilities-0.2.2.613/src/abstract_utilities/import_utils/imports/imports.py +0 -4
  47. abstract_utilities-0.2.2.613/src/abstract_utilities/log_utils/log_file.py +0 -59
  48. abstract_utilities-0.2.2.613/src/abstract_utilities/type_utils/__init__.py +0 -3
  49. abstract_utilities-0.2.2.613/src/abstract_utilities/type_utils/imports/__init__.py +0 -2
  50. abstract_utilities-0.2.2.613/src/abstract_utilities/type_utils/imports/module_imports.py +0 -1
  51. abstract_utilities-0.2.2.613/src/abstract_utilities/type_utils/type_utils.py +0 -981
  52. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/README.md +0 -0
  53. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/pyproject.toml +0 -0
  54. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/setup.cfg +0 -0
  55. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/class_utils/__init__.py +0 -0
  56. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/class_utils/class_utils.py +0 -0
  57. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/class_utils/function_utils.py +0 -0
  58. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/class_utils/global_utils.py +0 -0
  59. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/class_utils/imports/__init__.py +0 -0
  60. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/class_utils/imports/utils.py +0 -0
  61. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/class_utils/module_utils.py +0 -0
  62. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/compare_utils/__init__.py +0 -0
  63. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/compare_utils/best_match.py +0 -0
  64. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/compare_utils/compare_utils.py +0 -0
  65. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/compare_utils/find_value.py +0 -0
  66. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/directory_utils/__init__.py +0 -0
  67. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/directory_utils/imports/__init__.py +0 -0
  68. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/directory_utils/imports/imports.py +0 -0
  69. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/directory_utils/imports/module_imports.py +0 -0
  70. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/directory_utils/src/__init__.py +0 -0
  71. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/directory_utils/src/directory_utils.py +0 -0
  72. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/directory_utils/src/name_utils.py +0 -0
  73. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/directory_utils/src/size_utils.py +0 -0
  74. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/directory_utils/src/utils.py +0 -0
  75. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/env_utils/__init__.py +0 -0
  76. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/env_utils/abstractEnv.py +0 -0
  77. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/env_utils/envy_it.py +0 -0
  78. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/env_utils/imports/__init__.py +0 -0
  79. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/env_utils/imports/imports.py +0 -0
  80. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/env_utils/imports/utils.py +0 -0
  81. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/error_utils/__init__.py +0 -0
  82. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/error_utils/error_utils.py +0 -0
  83. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/error_utils/imports/__init__.py +0 -0
  84. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/error_utils/imports/imports.py +0 -0
  85. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/error_utils/imports/module_imports.py +0 -0
  86. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/file_utils/__init__.py +0 -0
  87. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/file_utils/imports/__init__.py +0 -0
  88. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/file_utils/imports/clean_imps.py +0 -0
  89. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/file_utils/imports/constants.py +0 -0
  90. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/file_utils/imports/imports.py +0 -0
  91. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/file_utils/imports/module_imports.py +0 -0
  92. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/file_utils/src/__init__.py +0 -0
  93. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/file_utils/src/file_filters/filter_utils.py +0 -0
  94. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/file_utils/src/find_collect.py +0 -0
  95. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/file_utils/src/find_content.py +0 -0
  96. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/file_utils/src/initFunctionsGens.py +0 -0
  97. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/file_utils/src/map_utils.py +0 -0
  98. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/file_utils/src/reader_utils/__init__.py +0 -0
  99. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/file_utils/src/reader_utils/directory_reader.py +0 -0
  100. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/file_utils/src/reader_utils/file_reader.py +0 -0
  101. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/file_utils/src/reader_utils/file_readers.py +0 -0
  102. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/file_utils/src/reader_utils/imports.py +0 -0
  103. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/file_utils/src/reader_utils/pdf_utils.py +0 -0
  104. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/file_utils (2)/__init__.py +0 -0
  105. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/file_utils (2)/imports/__init__.py +0 -0
  106. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/file_utils (2)/imports/constants.py +0 -0
  107. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/file_utils (2)/imports/imports/__init__.py +0 -0
  108. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/file_utils (2)/imports/imports/constants.py +0 -0
  109. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/file_utils (2)/imports/imports/imports.py +0 -0
  110. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/file_utils (2)/imports/imports/module_imports.py +0 -0
  111. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/file_utils (2)/imports/utils/__init__.py +0 -0
  112. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/file_utils (2)/imports/utils/classes.py +0 -0
  113. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/file_utils (2)/imports/utils/clean_imps.py +0 -0
  114. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/file_utils (2)/imports/utils/filter_utils.py +0 -0
  115. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/file_utils (2)/src/__init__.py +0 -0
  116. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/file_utils (2)/src/file_filters.py +0 -0
  117. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/file_utils (2)/src/file_reader.py +0 -0
  118. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/file_utils (2)/src/find_collect.py +0 -0
  119. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/file_utils (2)/src/map_utils.py +0 -0
  120. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/file_utils (2)/src/pdf_utils.py +0 -0
  121. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/hash_utils/__init__.py +0 -0
  122. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/hash_utils/hash_utils.py +0 -0
  123. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/hash_utils/imports/__init__.py +0 -0
  124. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/hash_utils/imports/imports.py +0 -0
  125. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/hash_utils/imports/module_imports.py +0 -0
  126. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/history_utils/__init__.py +0 -0
  127. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/history_utils/history_utils.py +0 -0
  128. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/history_utils/imports/__init__.py +0 -0
  129. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/history_utils/imports/imports.py +0 -0
  130. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/history_utils/imports/module_imports.py +0 -0
  131. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/import_utils/__init__.py +0 -0
  132. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/import_utils/circular_import_finder.py +0 -0
  133. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/import_utils/circular_import_finder2.py +0 -0
  134. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/import_utils/imports/constants.py +0 -0
  135. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/import_utils/src/clean_imports.py +0 -0
  136. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/import_utils/src/dot_utils.py +0 -0
  137. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/import_utils/src/extract_utils.py +0 -0
  138. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/import_utils/src/import_functions.py +0 -0
  139. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/import_utils/src/package_utils/__init__.py +0 -0
  140. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/import_utils/src/package_utils/context_utils.py +0 -0
  141. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/import_utils/src/package_utils/import_collectors.py +0 -0
  142. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/import_utils/src/package_utils/path_utils.py +0 -0
  143. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/import_utils/src/package_utils/safe_import.py +0 -0
  144. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/import_utils/src/pkg_utils.py +0 -0
  145. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/import_utils/src/sysroot_utils.py +0 -0
  146. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/json_utils/__init__.py +0 -0
  147. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/json_utils/imports/__init__.py +0 -0
  148. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/json_utils/imports/imports.py +0 -0
  149. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/json_utils/imports/module_imports.py +0 -0
  150. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/list_utils/__init__.py +0 -0
  151. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/list_utils/imports/__init__.py +0 -0
  152. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/list_utils/imports/imports.py +0 -0
  153. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/list_utils/imports/module_imports.py +0 -0
  154. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/list_utils/list_utils.py +0 -0
  155. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/log_utils/__init__.py +0 -0
  156. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/log_utils/abstractLogManager.py +0 -0
  157. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/log_utils/call_response.py +0 -0
  158. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/log_utils/imports/__init__.py +0 -0
  159. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/log_utils/imports/imports.py +0 -0
  160. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/log_utils/imports/module_imports.py +0 -0
  161. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/log_utils/logger_callable.py +0 -0
  162. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/math_utils/__init__.py +0 -0
  163. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/math_utils/imports/__init__.py +0 -0
  164. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/math_utils/imports/imports.py +0 -0
  165. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/math_utils/imports/module_imports.py +0 -0
  166. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/math_utils/math_utils.py +0 -0
  167. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/parse_utils/__init__.py +0 -0
  168. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/parse_utils/imports/__init__.py +0 -0
  169. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/parse_utils/imports/constants.py +0 -0
  170. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/parse_utils/imports/imports.py +0 -0
  171. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/parse_utils/imports/module_imports.py +0 -0
  172. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/path_utils/__init__.py +0 -0
  173. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/path_utils/imports/__init__.py +0 -0
  174. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/path_utils/imports/imports.py +0 -0
  175. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/read_write_utils/__init__.py +0 -0
  176. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/read_write_utils/imports/__init__.py +0 -0
  177. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/read_write_utils/imports/module_imports.py +0 -0
  178. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/safe_utils/__init__.py +0 -0
  179. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/safe_utils/imports/__init__.py +0 -0
  180. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/safe_utils/imports/imports.py +0 -0
  181. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/safe_utils/imports/module_imports.py +0 -0
  182. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/safe_utils/safe_utils.py +0 -0
  183. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/ssh_utils/__init__.py +0 -0
  184. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/ssh_utils/classes.py +0 -0
  185. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/ssh_utils/cmd_utils.py +0 -0
  186. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/ssh_utils/imports/__init__.py +0 -0
  187. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/ssh_utils/imports/imports.py +0 -0
  188. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/ssh_utils/imports/module_imports.py +0 -0
  189. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/ssh_utils/imports/utils.py +0 -0
  190. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/ssh_utils/pexpect_utils.py +0 -0
  191. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/ssh_utils/type_checks.py +0 -0
  192. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/string_utils/__init__.py +0 -0
  193. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/string_utils/clean_utils.py +0 -0
  194. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/string_utils/eat_utils.py +0 -0
  195. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/string_utils/imports/__init__.py +0 -0
  196. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/string_utils/imports/imports.py +0 -0
  197. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/string_utils/imports/module_imports.py +0 -0
  198. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/string_utils/imports/utils.py +0 -0
  199. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/string_utils/replace_utils.py +0 -0
  200. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/thread_utils/__init__.py +0 -0
  201. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/thread_utils/imports/__init__.py +0 -0
  202. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/thread_utils/imports/imports.py +0 -0
  203. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/thread_utils/imports/module_imports.py +0 -0
  204. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/thread_utils/thread_utils.py +0 -0
  205. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/time_utils/__init__.py +0 -0
  206. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/time_utils/imports/__init__.py +0 -0
  207. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/time_utils/imports/imports.py +0 -0
  208. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/time_utils/imports/module_imports.py +0 -0
  209. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/time_utils/time_utils.py +0 -0
  210. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/type_utils/alpha_utils.py +0 -0
  211. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/type_utils/imports/imports.py +0 -0
  212. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/type_utils/num_utils.py +0 -0
  213. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities/utils.py +0 -0
  214. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities.egg-info/dependency_links.txt +0 -0
  215. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities.egg-info/requires.txt +0 -0
  216. {abstract_utilities-0.2.2.613 → abstract_utilities-0.2.2.671}/src/abstract_utilities.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: abstract_utilities
3
- Version: 0.2.2.613
3
+ Version: 0.2.2.671
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
@@ -4,7 +4,7 @@ with open("README.md", "r", encoding="utf-8") as fh:
4
4
  long_description = fh.read()
5
5
  setuptools.setup(
6
6
  name='abstract_utilities',
7
- version='0.2.2.613',
7
+ version='0.2.2.671',
8
8
  author='putkoff',
9
9
  author_email='partners@abstractendeavors.com',
10
10
  description='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.',
@@ -32,10 +32,10 @@ from .json_utils import (unified_json_loader,
32
32
  safe_write_to_file,
33
33
  safe_save_updated_json_data,
34
34
  get_result_from_data,
35
- flatten_json
35
+ flatten_json,
36
+ to_json_safe
36
37
  )
37
- from .read_write_utils import (read_from_file,
38
- write_to_file)
38
+
39
39
  from .directory_utils import *
40
40
  from .path_utils import *
41
41
  from .file_utils import *
@@ -84,7 +84,8 @@ from .type_utils import (make_bool,
84
84
  get_numbers_comp,
85
85
  is_any_instance,
86
86
  break_string,
87
- MIME_TYPES
87
+ MIME_TYPES,
88
+ get_if_None
88
89
  )
89
90
  get_media_types = get_all_types = get_all_file_types
90
91
  from .math_utils import (convert_to_percentage,
@@ -108,7 +109,8 @@ from .parse_utils import (num_tokens_from_string,
108
109
  chunk_any_to_tokens,
109
110
  detect_language_from_text,
110
111
  chunk_by_language_context,
111
- search_code)
112
+ search_code,
113
+ get_within_quotes)
112
114
 
113
115
  from .log_utils import get_caller_info,get_logFile,print_or_log,get_json_call_response,initialize_call_log
114
116
  from .error_utils import try_func
@@ -119,3 +121,11 @@ from .path_utils import *
119
121
  from .file_utils import *
120
122
  from .string_utils import *
121
123
  from .import_utils import *
124
+ from .read_write_utils import (read_from_file,
125
+ write_to_file,
126
+ make_dirs,
127
+ make_dirs,
128
+ copy_files,
129
+ make_path,
130
+ run_cmd
131
+ )
@@ -0,0 +1,144 @@
1
+ from .imports import *
2
+ class SingletonMeta(type):
3
+ _instances = {}
4
+ def __call__(cls, *args, **kwargs):
5
+ if cls not in cls._instances:
6
+ cls._instances[cls] = super(SingletonMeta, cls).__call__(*args, **kwargs)
7
+ return cls._instances[cls]
8
+
9
+ def get_inputs(cls, *args, **kwargs):
10
+ """
11
+ Dynamically construct a dataclass instance from args and kwargs,
12
+ filling missing values from defaults in the dataclass.
13
+ """
14
+ fields = list(cls.__annotations__.keys())
15
+ values = {}
16
+
17
+ args = list(args)
18
+ for field in fields:
19
+ if field in kwargs:
20
+ values[field] = kwargs[field]
21
+ elif args:
22
+ values[field] = args.pop(0)
23
+ else:
24
+ values[field] = getattr(cls(), field) # default from dataclass
25
+
26
+ return cls(**values)
27
+
28
+
29
+ from abstract_utilities import *
30
+ class SingletonMeta(type):
31
+ _instances = {}
32
+ def __call__(cls, *args, **kwargs):
33
+ if cls not in cls._instances:
34
+ cls._instances[cls] = super(SingletonMeta, cls).__call__(*args, **kwargs)
35
+ return cls._instances[cls]
36
+
37
+ def get_inputs(cls, *args, **kwargs):
38
+ """
39
+ Dynamically construct a dataclass instance from args and kwargs,
40
+ filling missing values from defaults in the dataclass.
41
+ """
42
+ fields = list(cls.__annotations__.keys())
43
+ values = {}
44
+
45
+ args = list(args)
46
+ for field in fields:
47
+ if field in kwargs:
48
+ values[field] = kwargs[field]
49
+ elif args:
50
+ values[field] = args.pop(0)
51
+ else:
52
+ values[field] = getattr(cls(), field) # default from dataclass
53
+
54
+ return cls(*args,**values)
55
+ def get_input_params(func):
56
+ sig = inspect.signature(func)
57
+ return sig.parameters
58
+ def get_args(func, *args,**kwargs):
59
+ parameters = get_input_params(func)
60
+ parameters = dict(parameters)
61
+ for key,value in parameters.items():
62
+ value = str(value)
63
+ if value.startswith('**'):
64
+ kwargs_key = key
65
+ elif value.startswith('*'):
66
+ args_key = key
67
+ kwargs_copy = kwargs.copy()
68
+ for k_key,k_value in kwargs.items():
69
+ if args_key == k_key and isinstance(k_value,list or tuple or set):
70
+ args = args | tuple(k_value)
71
+ del kwargs[k_key]
72
+ return args,kwargs
73
+
74
+ def prune_inputs(func, *args, **kwargs):
75
+ """
76
+ Smart argument adapter:
77
+ - Detects if func accepts *args or **kwargs
78
+ - Builds new positional arguments from kwargs when appropriate
79
+ - Handles explicit {"args": [...]} convention
80
+ """
81
+
82
+ sig = inspect.signature(func)
83
+ params = sig.parameters
84
+
85
+ has_varargs = any(p.kind == inspect.Parameter.VAR_POSITIONAL for p in params.values())
86
+ has_varkw = any(p.kind == inspect.Parameter.VAR_KEYWORD for p in params.values())
87
+
88
+ new_args = list(args)
89
+ new_kwargs = dict(kwargs)
90
+
91
+ # -----------------------------------------------------------
92
+ # 1. If user provided explicit args: {"args": [...]}
93
+ # -----------------------------------------------------------
94
+ if "args" in new_kwargs:
95
+ explicit_args = new_kwargs.pop("args")
96
+ if isinstance(explicit_args, (list, tuple)):
97
+ new_args.extend(explicit_args)
98
+ else:
99
+ new_args.append(explicit_args)
100
+
101
+ # -----------------------------------------------------------
102
+ # 2. If function has *args, infer which kwargs belong there
103
+ # -----------------------------------------------------------
104
+ if has_varargs:
105
+
106
+ # Heuristic rules for upgrading kwargs to args:
107
+ # - if the function has NO named params, treat all scalar kwargs as positional
108
+ # - common param names like "file_path" also qualify
109
+ preferred_as_args = {"path", "file", "file_path", "filename", "value"}
110
+
111
+ positional_candidates = []
112
+
113
+ for k in list(new_kwargs.keys()):
114
+ v = new_kwargs[k]
115
+
116
+ # candidate rules:
117
+ if k in preferred_as_args:
118
+ positional_candidates.append(v)
119
+ del new_kwargs[k]
120
+
121
+ # scalars but not mappings/lists (optional)
122
+ elif isinstance(v, (str, int, float)) and len(positional_candidates) == 0:
123
+ positional_candidates.append(v)
124
+ del new_kwargs[k]
125
+
126
+ new_args.extend(positional_candidates)
127
+
128
+ # -----------------------------------------------------------
129
+ # 3. If function does NOT accept **kwargs → strip extras
130
+ # -----------------------------------------------------------
131
+ if not has_varkw:
132
+ allowed = {
133
+ name for name, p in params.items()
134
+ if p.kind in (
135
+ inspect.Parameter.POSITIONAL_OR_KEYWORD,
136
+ inspect.Parameter.KEYWORD_ONLY
137
+ )
138
+ }
139
+ new_kwargs = {k: v for k, v in new_kwargs.items() if k in allowed}
140
+
141
+ return tuple(new_args), new_kwargs
142
+ def run_pruned_func(func, *args, **kwargs):
143
+ args,kwargs = prune_inputs(func, *args, **kwargs)
144
+ return func(*args, **kwargs)
@@ -52,3 +52,41 @@ def get_caller_dir(i: Optional[int] = None) -> str:
52
52
  depth = 1 if i is None else int(i)
53
53
  abspath = get_caller_path(depth + 1)
54
54
  return os.path.dirname(abspath)
55
+
56
+
57
+ def get_original_caller_dir(levels_up: int = None) -> Path:
58
+ """
59
+ Return the directory of the *original* caller in the call stack.
60
+
61
+ levels_up:
62
+ - None → automatically goes to the bottom-most user-level caller.
63
+ - N → manually walk up N frames for custom behavior.
64
+
65
+ Returns:
66
+ Path object pointing to caller's directory.
67
+ """
68
+
69
+ stack = inspect.stack()
70
+
71
+ # If the user specifies an exact depth
72
+ if levels_up is not None:
73
+ target = min(levels_up + 1, len(stack) - 1)
74
+ frame = stack[target]
75
+ return Path(frame.filename).resolve().parent
76
+
77
+ # Otherwise, auto-detect the FIRST file that isn't inside site-packages or abstract_* utilities
78
+ for frameinfo in reversed(stack):
79
+ file_path = Path(frameinfo.filename).resolve()
80
+
81
+ # Skip internal interpreter/frame files
82
+ if "site-packages" in str(file_path):
83
+ continue
84
+ if "abstract_" in file_path.name:
85
+ continue
86
+ if file_path.name.startswith("<"):
87
+ continue
88
+
89
+ return file_path.parent
90
+
91
+ # Fallback: last entry in the stack
92
+ return Path(stack[-1].filename).resolve().parent
@@ -1,2 +1,2 @@
1
- from ...imports import inspect,os,json,functools,inspect,glob,sys
1
+ from ...imports import inspect,os,json,functools,inspect,glob,sys,Path
2
2
  from typing import *
@@ -50,19 +50,20 @@ def is_file(
50
50
  env_path=None,
51
51
  **kwargs
52
52
  ):
53
- contingencies = list(set([user_at_host,password,key,env_path]))
54
- len_contingencies = len(contingencies)
55
- is_potential = (len_contingencies >1 or (None not in contingencies))
56
- if not is_potential:
57
- return os.path.isfile(path)
58
- cmd = get_item_check_cmd(path,file=True)
59
- return run_cmd(cmd=cmd,
60
- user_at_host=user_at_host,
61
- password=password,
62
- key=key,
63
- env_path=env_path,
64
- **kwargs
65
- )
53
+ if path:
54
+ contingencies = list(set([user_at_host,password,key,env_path]))
55
+ len_contingencies = len(contingencies)
56
+ is_potential = (len_contingencies >1 or (None not in contingencies))
57
+ if not is_potential:
58
+ return os.path.isfile(path)
59
+ cmd = get_item_check_cmd(path,file=True)
60
+ return run_cmd(cmd=cmd,
61
+ user_at_host=user_at_host,
62
+ password=password,
63
+ key=key,
64
+ env_path=env_path,
65
+ **kwargs
66
+ )
66
67
  def is_dir(
67
68
  path,
68
69
  user_at_host=None,
@@ -71,34 +72,13 @@ def is_dir(
71
72
  env_path=None,
72
73
  **kwargs
73
74
  ):
74
- contingencies = list(set([user_at_host,password,key,env_path]))
75
- len_contingencies = len(contingencies)
76
- is_potential = (len_contingencies >1 or (None not in contingencies))
77
- if not is_potential:
78
- return os.path.isdir(path)
79
- cmd = get_item_check_cmd(path,file=False,directory=True)
80
- return run_cmd(cmd=cmd,
81
- user_at_host=user_at_host,
82
- password=password,
83
- key=key,
84
- env_path=env_path,
85
- **kwargs
86
- )
87
- def is_exists(
88
- path,
89
- user_at_host=None,
90
- password=None,
91
- key=None,
92
- env_path=None,
93
- **kwargs
94
- ):
95
- contingencies = list(set([user_at_host,password,key,env_path]))
96
- len_contingencies = len(contingencies)
97
- is_potential = (len_contingencies >1 or (None not in contingencies))
98
- if not is_potential:
99
- return os.path.exists(path)
100
- if is_potential == True:
101
- cmd = get_item_check_cmd(path,exists=True)
75
+ if path:
76
+ contingencies = list(set([user_at_host,password,key,env_path]))
77
+ len_contingencies = len(contingencies)
78
+ is_potential = (len_contingencies >1 or (None not in contingencies))
79
+ if not is_potential:
80
+ return os.path.isdir(path)
81
+ cmd = get_item_check_cmd(path,file=False,directory=True)
102
82
  return run_cmd(cmd=cmd,
103
83
  user_at_host=user_at_host,
104
84
  password=password,
@@ -106,7 +86,7 @@ def is_exists(
106
86
  env_path=env_path,
107
87
  **kwargs
108
88
  )
109
- def is_any(
89
+ def is_exists(
110
90
  path,
111
91
  user_at_host=None,
112
92
  password=None,
@@ -114,25 +94,49 @@ def is_any(
114
94
  env_path=None,
115
95
  **kwargs
116
96
  ):
117
- contingencies = list(set([user_at_host,password,key,env_path]))
118
- len_contingencies = len(contingencies)
119
- is_potential = (len_contingencies >1 or (None not in contingencies))
120
- if not is_potential:
121
- return os.path.exists(path)
122
- if is_potential == True:
123
- out_js = get_all_item_check_cmd(path,file=True,directory=True,exists=True)
124
- for typ,cmd in out_js.items():
125
- response = run_cmd(cmd=cmd,
97
+ if path:
98
+ contingencies = list(set([user_at_host,password,key,env_path]))
99
+ len_contingencies = len(contingencies)
100
+ is_potential = (len_contingencies >1 or (None not in contingencies))
101
+ if not is_potential:
102
+ return os.path.exists(path)
103
+ if is_potential == True:
104
+ cmd = get_item_check_cmd(path,exists=True)
105
+ return run_cmd(cmd=cmd,
126
106
  user_at_host=user_at_host,
127
107
  password=password,
128
108
  key=key,
129
109
  env_path=env_path,
130
110
  **kwargs
131
111
  )
132
- result = "__OK__" in (response or "")
133
- if result:
134
- return typ
135
- return None
112
+ def is_any(
113
+ path,
114
+ user_at_host=None,
115
+ password=None,
116
+ key=None,
117
+ env_path=None,
118
+ **kwargs
119
+ ):
120
+ if path:
121
+ contingencies = list(set([user_at_host,password,key,env_path]))
122
+ len_contingencies = len(contingencies)
123
+ is_potential = (len_contingencies >1 or (None not in contingencies))
124
+ if not is_potential:
125
+ return os.path.exists(path)
126
+ if is_potential == True:
127
+ out_js = get_all_item_check_cmd(path,file=True,directory=True,exists=True)
128
+ for typ,cmd in out_js.items():
129
+ response = run_cmd(cmd=cmd,
130
+ user_at_host=user_at_host,
131
+ password=password,
132
+ key=key,
133
+ env_path=env_path,
134
+ **kwargs
135
+ )
136
+ result = "__OK__" in (response or "")
137
+ if result:
138
+ return typ
139
+
136
140
  class PathBackend(Protocol):
137
141
  def join(self, *parts: str) -> str: ...
138
142
  def isfile(self, path: str) -> bool: ...