abstract-utilities 0.2.2.671__tar.gz → 0.2.2.679__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 (207) hide show
  1. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/PKG-INFO +1 -1
  2. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/setup.py +1 -1
  3. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/__init__.py +3 -1
  4. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/file_utils/imports/module_imports.py +1 -1
  5. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/file_utils/src/find_collect.py +10 -0
  6. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/import_utils/src/import_utils.py +7 -5
  7. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/list_utils/list_utils.py +3 -0
  8. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/log_utils/log_file.py +18 -14
  9. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/read_write_utils/read_write_utils.py +66 -35
  10. abstract_utilities-0.2.2.679/src/abstract_utilities/safe_utils/imports/imports.py +2 -0
  11. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/type_utils/get_type.py +4 -0
  12. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities.egg-info/PKG-INFO +1 -1
  13. abstract_utilities-0.2.2.671/src/abstract_utilities/json_utils/imports/imports.py +0 -2
  14. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/README.md +0 -0
  15. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/pyproject.toml +0 -0
  16. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/setup.cfg +0 -0
  17. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/class_utils/__init__.py +0 -0
  18. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/class_utils/abstract_classes.py +0 -0
  19. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/class_utils/caller_utils.py +0 -0
  20. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/class_utils/class_utils.py +0 -0
  21. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/class_utils/function_utils.py +0 -0
  22. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/class_utils/global_utils.py +0 -0
  23. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/class_utils/imports/__init__.py +0 -0
  24. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/class_utils/imports/imports.py +0 -0
  25. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/class_utils/imports/utils.py +0 -0
  26. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/class_utils/module_utils.py +0 -0
  27. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/compare_utils/__init__.py +0 -0
  28. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/compare_utils/best_match.py +0 -0
  29. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/compare_utils/compare_utils.py +0 -0
  30. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/compare_utils/find_value.py +0 -0
  31. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/directory_utils/__init__.py +0 -0
  32. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/directory_utils/imports/__init__.py +0 -0
  33. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/directory_utils/imports/imports.py +0 -0
  34. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/directory_utils/imports/module_imports.py +0 -0
  35. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/directory_utils/src/__init__.py +0 -0
  36. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/directory_utils/src/directory_utils.py +0 -0
  37. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/directory_utils/src/name_utils.py +0 -0
  38. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/directory_utils/src/size_utils.py +0 -0
  39. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/directory_utils/src/utils.py +0 -0
  40. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/env_utils/__init__.py +0 -0
  41. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/env_utils/abstractEnv.py +0 -0
  42. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/env_utils/envy_it.py +0 -0
  43. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/env_utils/imports/__init__.py +0 -0
  44. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/env_utils/imports/imports.py +0 -0
  45. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/env_utils/imports/utils.py +0 -0
  46. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/error_utils/__init__.py +0 -0
  47. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/error_utils/error_utils.py +0 -0
  48. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/error_utils/imports/__init__.py +0 -0
  49. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/error_utils/imports/imports.py +0 -0
  50. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/error_utils/imports/module_imports.py +0 -0
  51. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/file_utils/__init__.py +0 -0
  52. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/file_utils/imports/__init__.py +0 -0
  53. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/file_utils/imports/classes.py +0 -0
  54. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/file_utils/imports/clean_imps.py +0 -0
  55. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/file_utils/imports/constants.py +0 -0
  56. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/file_utils/imports/imports.py +0 -0
  57. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/file_utils/src/__init__.py +0 -0
  58. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/file_utils/src/file_filters/__init__.py +0 -0
  59. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/file_utils/src/file_filters/ensure_utils.py +0 -0
  60. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/file_utils/src/file_filters/filter_params.py +0 -0
  61. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/file_utils/src/file_filters/filter_utils.py +0 -0
  62. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/file_utils/src/file_filters/predicate_utils.py +0 -0
  63. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/file_utils/src/find_content.py +0 -0
  64. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/file_utils/src/initFunctionsGen.py +0 -0
  65. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/file_utils/src/initFunctionsGens.py +0 -0
  66. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/file_utils/src/map_utils.py +0 -0
  67. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/file_utils/src/reader_utils/__init__.py +0 -0
  68. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/file_utils/src/reader_utils/directory_reader.py +0 -0
  69. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/file_utils/src/reader_utils/file_reader.py +0 -0
  70. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/file_utils/src/reader_utils/file_readers.py +0 -0
  71. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/file_utils/src/reader_utils/imports.py +0 -0
  72. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/file_utils/src/reader_utils/pdf_utils.py +0 -0
  73. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/file_utils (2)/__init__.py +0 -0
  74. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/file_utils (2)/imports/__init__.py +0 -0
  75. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/file_utils (2)/imports/constants.py +0 -0
  76. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/file_utils (2)/imports/imports/__init__.py +0 -0
  77. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/file_utils (2)/imports/imports/constants.py +0 -0
  78. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/file_utils (2)/imports/imports/imports.py +0 -0
  79. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/file_utils (2)/imports/imports/module_imports.py +0 -0
  80. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/file_utils (2)/imports/utils/__init__.py +0 -0
  81. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/file_utils (2)/imports/utils/classes.py +0 -0
  82. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/file_utils (2)/imports/utils/clean_imps.py +0 -0
  83. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/file_utils (2)/imports/utils/filter_utils.py +0 -0
  84. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/file_utils (2)/src/__init__.py +0 -0
  85. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/file_utils (2)/src/file_filters.py +0 -0
  86. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/file_utils (2)/src/file_reader.py +0 -0
  87. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/file_utils (2)/src/find_collect.py +0 -0
  88. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/file_utils (2)/src/map_utils.py +0 -0
  89. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/file_utils (2)/src/pdf_utils.py +0 -0
  90. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/hash_utils/__init__.py +0 -0
  91. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/hash_utils/hash_utils.py +0 -0
  92. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/hash_utils/imports/__init__.py +0 -0
  93. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/hash_utils/imports/imports.py +0 -0
  94. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/hash_utils/imports/module_imports.py +0 -0
  95. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/history_utils/__init__.py +0 -0
  96. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/history_utils/history_utils.py +0 -0
  97. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/history_utils/imports/__init__.py +0 -0
  98. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/history_utils/imports/imports.py +0 -0
  99. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/history_utils/imports/module_imports.py +0 -0
  100. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/import_utils/__init__.py +0 -0
  101. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/import_utils/circular_import_finder.py +0 -0
  102. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/import_utils/circular_import_finder2.py +0 -0
  103. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/import_utils/imports/__init__.py +0 -0
  104. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/import_utils/imports/constants.py +0 -0
  105. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/import_utils/imports/init_imports.py +0 -0
  106. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/import_utils/imports/module_imports.py +0 -0
  107. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/import_utils/imports/utils.py +0 -0
  108. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/import_utils/src/__init__.py +0 -0
  109. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/import_utils/src/clean_imports.py +0 -0
  110. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/import_utils/src/dot_utils.py +0 -0
  111. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/import_utils/src/extract_utils.py +0 -0
  112. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/import_utils/src/import_functions.py +0 -0
  113. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/import_utils/src/layze_import_utils/__init__.py +0 -0
  114. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/import_utils/src/layze_import_utils/lazy_utils.py +0 -0
  115. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/import_utils/src/layze_import_utils/nullProxy.py +0 -0
  116. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/import_utils/src/package_utils/__init__.py +0 -0
  117. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/import_utils/src/package_utils/context_utils.py +0 -0
  118. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/import_utils/src/package_utils/import_collectors.py +0 -0
  119. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/import_utils/src/package_utils/path_utils.py +0 -0
  120. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/import_utils/src/package_utils/safe_import.py +0 -0
  121. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/import_utils/src/pkg_utils.py +0 -0
  122. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/import_utils/src/sysroot_utils.py +0 -0
  123. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/imports.py +0 -0
  124. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/json_utils/__init__.py +0 -0
  125. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/json_utils/imports/__init__.py +0 -0
  126. {abstract_utilities-0.2.2.671/src/abstract_utilities/safe_utils → abstract_utilities-0.2.2.679/src/abstract_utilities/json_utils}/imports/imports.py +0 -0
  127. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/json_utils/imports/module_imports.py +0 -0
  128. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/json_utils/json_utils.py +0 -0
  129. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/list_utils/__init__.py +0 -0
  130. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/list_utils/imports/__init__.py +0 -0
  131. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/list_utils/imports/imports.py +0 -0
  132. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/list_utils/imports/module_imports.py +0 -0
  133. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/log_utils/__init__.py +0 -0
  134. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/log_utils/abstractLogManager.py +0 -0
  135. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/log_utils/call_response.py +0 -0
  136. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/log_utils/imports/__init__.py +0 -0
  137. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/log_utils/imports/imports.py +0 -0
  138. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/log_utils/imports/module_imports.py +0 -0
  139. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/log_utils/logger_callable.py +0 -0
  140. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/math_utils/__init__.py +0 -0
  141. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/math_utils/imports/__init__.py +0 -0
  142. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/math_utils/imports/imports.py +0 -0
  143. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/math_utils/imports/module_imports.py +0 -0
  144. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/math_utils/math_utils.py +0 -0
  145. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/parse_utils/__init__.py +0 -0
  146. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/parse_utils/imports/__init__.py +0 -0
  147. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/parse_utils/imports/constants.py +0 -0
  148. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/parse_utils/imports/imports.py +0 -0
  149. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/parse_utils/imports/module_imports.py +0 -0
  150. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/parse_utils/parse_utils.py +0 -0
  151. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/path_utils/__init__.py +0 -0
  152. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/path_utils/imports/__init__.py +0 -0
  153. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/path_utils/imports/imports.py +0 -0
  154. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/path_utils/imports/module_imports.py +0 -0
  155. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/path_utils/path_utils.py +0 -0
  156. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/read_write_utils/__init__.py +0 -0
  157. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/read_write_utils/imports/__init__.py +0 -0
  158. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/read_write_utils/imports/imports.py +0 -0
  159. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/read_write_utils/imports/module_imports.py +0 -0
  160. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/safe_utils/__init__.py +0 -0
  161. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/safe_utils/imports/__init__.py +0 -0
  162. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/safe_utils/imports/module_imports.py +0 -0
  163. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/safe_utils/safe_utils.py +0 -0
  164. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/ssh_utils/__init__.py +0 -0
  165. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/ssh_utils/classes.py +0 -0
  166. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/ssh_utils/cmd_utils.py +0 -0
  167. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/ssh_utils/imports/__init__.py +0 -0
  168. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/ssh_utils/imports/imports.py +0 -0
  169. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/ssh_utils/imports/module_imports.py +0 -0
  170. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/ssh_utils/imports/utils.py +0 -0
  171. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/ssh_utils/pexpect_utils.py +0 -0
  172. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/ssh_utils/type_checks.py +0 -0
  173. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/string_utils/__init__.py +0 -0
  174. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/string_utils/clean_utils.py +0 -0
  175. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/string_utils/eat_utils.py +0 -0
  176. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/string_utils/imports/__init__.py +0 -0
  177. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/string_utils/imports/imports.py +0 -0
  178. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/string_utils/imports/module_imports.py +0 -0
  179. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/string_utils/imports/utils.py +0 -0
  180. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/string_utils/replace_utils.py +0 -0
  181. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/thread_utils/__init__.py +0 -0
  182. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/thread_utils/imports/__init__.py +0 -0
  183. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/thread_utils/imports/imports.py +0 -0
  184. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/thread_utils/imports/module_imports.py +0 -0
  185. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/thread_utils/thread_utils.py +0 -0
  186. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/time_utils/__init__.py +0 -0
  187. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/time_utils/imports/__init__.py +0 -0
  188. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/time_utils/imports/imports.py +0 -0
  189. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/time_utils/imports/module_imports.py +0 -0
  190. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/time_utils/time_utils.py +0 -0
  191. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/type_utils/__init__.py +0 -0
  192. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/type_utils/alpha_utils.py +0 -0
  193. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/type_utils/imports/__init__.py +0 -0
  194. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/type_utils/imports/constants.py +0 -0
  195. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/type_utils/imports/imports.py +0 -0
  196. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/type_utils/imports/module_imports.py +0 -0
  197. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/type_utils/is_type.py +0 -0
  198. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/type_utils/make_type.py +0 -0
  199. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/type_utils/mime_types.py +0 -0
  200. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/type_utils/num_utils.py +0 -0
  201. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/type_utils/type_utils.py +0 -0
  202. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities/utils.py +0 -0
  203. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities.egg-info/SOURCES.txt +0 -0
  204. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities.egg-info/dependency_links.txt +0 -0
  205. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities.egg-info/requires.txt +0 -0
  206. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/src/abstract_utilities.egg-info/top_level.txt +0 -0
  207. {abstract_utilities-0.2.2.671 → abstract_utilities-0.2.2.679}/tests/test.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: abstract_utilities
3
- Version: 0.2.2.671
3
+ Version: 0.2.2.679
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.671',
7
+ version='0.2.2.679',
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.',
@@ -46,7 +46,9 @@ from .list_utils import (get_highest_value_obj,
46
46
  compare_lists,
47
47
  get_symetric_difference,
48
48
  list_set,
49
- make_list_it)
49
+ make_list_it,
50
+ get_single_from_list
51
+ )
50
52
  from .time_utils import (get_time_stamp,
51
53
  get_sleep,
52
54
  sleep_count_down,
@@ -1,5 +1,5 @@
1
1
  from ...list_utils import make_list
2
- from ...type_utils import get_media_exts, is_media_type, MIME_TYPES, is_str
2
+ from ...type_utils import get_media_exts, is_media_type, MIME_TYPES, is_str,if_not_bool_default
3
3
  from ...ssh_utils import *
4
4
  from ...env_utils import *
5
5
  from ...read_write_utils import read_from_file,write_to_file
@@ -188,3 +188,13 @@ def collect_filepaths(
188
188
  ) -> List[str]:
189
189
  kwargs['file_type']='f'
190
190
  return collect_globs(*args,**kwargs)
191
+
192
+ def get_filename(path):
193
+ basename = os.path.basename(path)
194
+ filename,ext = os.path.splitext(basename)
195
+ return filename
196
+ def find_files(filename,directory=None,add=None):
197
+ add = if_not_bool_default(add,default=True)
198
+ directory = directory or os.getcwd()
199
+ dirs,files = get_files_and_dirs(directory,add=add)
200
+ return [file for file in files if get_filename(file) == filename]
@@ -326,12 +326,14 @@ def initFuncs(self, mode=None):
326
326
  existing = set(self.__dict__) | set(dir(self))
327
327
 
328
328
  for _, module_name, _ in pkgutil.iter_modules(pkg.__path__):
329
- mod = importlib.import_module(f"{pkg.__name__}.{module_name}")
330
-
331
- for name, obj in inspect.getmembers(mod, inspect.isfunction):
332
- if name not in existing:
333
- setattr(self, name, obj.__get__(self))
329
+ try:
330
+ mod = importlib.import_module(f"{pkg.__name__}.{module_name}")
334
331
 
332
+ for name, obj in inspect.getmembers(mod, inspect.isfunction):
333
+ if name not in existing:
334
+ setattr(self, name, obj.__get__(self))
335
+ except Exception as e:
336
+ logger.error(f"initFuncs({mode}) pkgutil error: {e}")
335
337
  except Exception as e:
336
338
  logger.error(f"initFuncs({mode}) error: {e}")
337
339
 
@@ -197,3 +197,6 @@ def make_list(obj:any) -> list:
197
197
  def make_list_it(obj=None):
198
198
  obj = make_list(obj or [])
199
199
  return obj
200
+
201
+ def get_single_from_list(list_obj,default=None):
202
+ return make_list(list_obj or default)[0]
@@ -1,7 +1,8 @@
1
1
  from .imports import *
2
2
  import os, sys, inspect, logging
3
3
  from logging.handlers import RotatingFileHandler
4
-
4
+ import logging
5
+ from pathlib import Path
5
6
  PACKAGE_NAME = "abstract_utilities" # ← update if needed
6
7
 
7
8
 
@@ -96,7 +97,6 @@ def get_logFile(
96
97
  ):
97
98
  logger = logging.getLogger(name)
98
99
 
99
- # Prevent duplicate handlers (VERY important)
100
100
  if logger.handlers:
101
101
  return logger
102
102
 
@@ -104,20 +104,23 @@ def get_logFile(
104
104
 
105
105
  formatter = logging.Formatter(LOG_FORMAT, DATE_FORMAT)
106
106
 
107
- log_dir = Path(log_dir)
108
- log_dir.mkdir(parents=True, exist_ok=True)
107
+ try:
108
+ log_dir = Path(log_dir)
109
+ log_dir.mkdir(parents=True, exist_ok=True)
110
+
111
+ file_handler = RotatingFileHandler(
112
+ log_dir / f"{name}.log",
113
+ maxBytes=max_bytes,
114
+ backupCount=backup_count,
115
+ encoding="utf-8",
116
+ )
117
+ file_handler.setFormatter(formatter)
118
+ logger.addHandler(file_handler)
109
119
 
110
- # File handler (rotating)
111
- file_handler = RotatingFileHandler(
112
- log_dir / f"{name}.log",
113
- maxBytes=max_bytes,
114
- backupCount=backup_count,
115
- encoding="utf-8",
116
- )
117
- file_handler.setFormatter(formatter)
118
- logger.addHandler(file_handler)
120
+ except PermissionError:
121
+ # 🔒 Import-safe fallback
122
+ logger.addHandler(logging.NullHandler())
119
123
 
120
- # Console handler
121
124
  if console:
122
125
  console_handler = logging.StreamHandler()
123
126
  console_handler.setFormatter(formatter)
@@ -127,6 +130,7 @@ def get_logFile(
127
130
  return logger
128
131
 
129
132
 
133
+
130
134
  def _find_caller_frame_index():
131
135
  """Find the correct caller module outside this logger."""
132
136
  for idx, frame_info in enumerate(inspect.stack()):
@@ -15,6 +15,38 @@ Usage:
15
15
  from .imports import *
16
16
  _FILE_PATH_KEYS = ['file', 'filepath', 'file_path', 'path', 'directory', 'f', 'dst', 'dest']
17
17
  _CONTENTS_KEYS = ['cont', 'content', 'contents', 'data', 'datas', 'dat', 'src', 'source']
18
+ from pathlib import Path
19
+ import uuid
20
+ import shlex
21
+
22
+ _STAGE_ROOT = Path("/var/tmp/abstract_stage")
23
+
24
+
25
+ def _stage_file(contents: str, suffix=".tmp") -> Path:
26
+ """
27
+ Write contents to a local staging file.
28
+ """
29
+ _STAGE_ROOT.mkdir(parents=True, exist_ok=True)
30
+ path = _STAGE_ROOT / f"{uuid.uuid4().hex}{suffix}"
31
+ path.write_text(str(contents), encoding="utf-8")
32
+ return path
33
+
34
+
35
+ def _install_file(staged: Path, dest: str, **kwargs) -> str:
36
+ """
37
+ Atomically install a staged file to destination using sudo install.
38
+ """
39
+ cmd = (
40
+ f"sudo install -D -m 0644 "
41
+ f"{shlex.quote(str(staged))} "
42
+ f"{shlex.quote(dest)}"
43
+ )
44
+ return run_local_cmd(
45
+ cmd=cmd,
46
+ password=kwargs.get("password"),
47
+ key=kwargs.get("key"),
48
+ env_path=kwargs.get("env_path"),
49
+ )
18
50
 
19
51
 
20
52
  # --- Helper utilities --------------------------------------------------------
@@ -251,54 +283,53 @@ def _should_use_remote(**kwargs) -> bool:
251
283
 
252
284
  def _write_to_file(contents: str, file_path: str, **kwargs) -> str:
253
285
  """
254
- Safe writer that handles arbitrarily large files.
255
- Uses native I/O for local writes and streams for remote.
286
+ Unified writer using stage install model.
256
287
  """
257
288
 
258
289
  remote = _should_use_remote(**kwargs)
259
- dirname = os.path.dirname(file_path)
260
- make_dirs(dirname, exist_ok=True, **kwargs)
261
290
 
262
- # --- Local write (always robust) ---
263
- if not remote:
291
+ # --- Remote path (unchanged conceptually) ---
292
+ if remote:
293
+ tmp_path = _stage_file(contents)
294
+
295
+ user_at_host = kwargs["user_at_host"]
296
+ password = kwargs.get("password")
297
+ key = kwargs.get("key")
298
+
299
+ # copy staged file
300
+ scp_cmd = (
301
+ f"scp {shlex.quote(str(tmp_path))} "
302
+ f"{shlex.quote(user_at_host)}:{shlex.quote(file_path)}"
303
+ )
304
+ return run_pruned_func(
305
+ run_local_cmd,
306
+ cmd=scp_cmd,
307
+ password=password,
308
+ key=key,
309
+ **kwargs
310
+ )
311
+
312
+ # --- Local path ---
313
+ try:
314
+ # Attempt direct write for non-privileged paths
315
+ os.makedirs(os.path.dirname(file_path) or ".", exist_ok=True)
264
316
  with open(file_path, "w", encoding="utf-8") as f:
265
- f.write(contents)
317
+ f.write(str(contents))
266
318
  return file_path
267
319
 
268
- # --- Remote write ---
269
- # Stream data through SSH using base64 chunks instead of huge one-liner
270
- import io
271
- import base64
272
-
273
- # Write to a temporary file locally first
274
- tmp_path = "/tmp/_abstract_write.tmp"
275
- with open(tmp_path, "w", encoding="utf-8") as tmpf:
276
- tmpf.write(contents)
277
-
278
- user_at_host = kwargs["user_at_host"]
279
- password = kwargs.get("password")
280
- key = kwargs.get("key")
281
-
282
- # Use scp for remote write — no shell arg limits
283
- scp_cmd = f"scp {shlex.quote(tmp_path)} {user_at_host}:{shlex.quote(file_path)}"
284
- return run_pruned_func(
285
- run_local_cmd,
286
- cmd=scp_cmd,
287
- password=password,
288
- key=key,
289
- **kwargs
290
- )
320
+ except (PermissionError, FileNotFoundError):
321
+ # Privileged path stage + install
322
+ staged = _stage_file(contents)
323
+ return _install_file(staged, file_path, **kwargs)
324
+
291
325
 
292
326
 
293
327
  def write_to_file(*, contents: str, file_path: str, **kwargs):
294
328
  """
295
- Error-handled wrapper.
329
+ Error-handled public writer.
296
330
  """
297
-
298
331
  try:
299
- result = _write_to_file(contents=contents, file_path=file_path, **kwargs)
300
- return result
301
-
332
+ return _write_to_file(contents=contents, file_path=file_path, **kwargs)
302
333
  except Exception as e:
303
334
  print("WRITE ERROR:", e)
304
335
  raise RuntimeError(f"Failed writing: {file_path}")
@@ -0,0 +1,2 @@
1
+ from ...imports import *
2
+ from typing import *
@@ -114,3 +114,7 @@ def is_strings_in_string(strings, parts):
114
114
  if not parts:
115
115
  return []
116
116
  return parts
117
+ def if_not_bool_default(value,default=None):
118
+ if not isinstance(value,bool):
119
+ value = default
120
+ return value
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: abstract_utilities
3
- Version: 0.2.2.671
3
+ Version: 0.2.2.679
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
@@ -1,2 +0,0 @@
1
- from ...imports import json,re,os,logging
2
- from typing import *