danielutils 1.0.50__tar.gz → 1.0.52__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 (284) hide show
  1. {danielutils-1.0.50/danielutils.egg-info → danielutils-1.0.52}/PKG-INFO +4 -3
  2. {danielutils-1.0.50 → danielutils-1.0.52}/README.md +1 -1
  3. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/abstractions/db/database_initializer.py +5 -6
  4. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/file_specifications/__init__.py +2 -1
  5. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/reflection/info_classes/__init__.py +1 -1
  6. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/reflection/info_classes/argument_info.py +2 -1
  7. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/reflection/info_classes/class_info.py +11 -7
  8. danielutils-1.0.50/danielutils/reflection/info_classes/decoration_info.py → danielutils-1.0.52/danielutils/reflection/info_classes/decorator_info.py +7 -6
  9. danielutils-1.0.52/danielutils/reflection/info_classes/file_info.py +1163 -0
  10. danielutils-1.0.52/danielutils/reflection/info_classes/folder_info.py +592 -0
  11. danielutils-1.0.52/danielutils/reflection/info_classes/function_info.py +495 -0
  12. danielutils-1.0.52/danielutils/reflection/info_classes/import_info.py +207 -0
  13. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/system/windows/win32_ctime.py +1 -1
  14. {danielutils-1.0.50 → danielutils-1.0.52/danielutils.egg-info}/PKG-INFO +4 -3
  15. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils.egg-info/SOURCES.txt +2 -1
  16. {danielutils-1.0.50 → danielutils-1.0.52}/pyproject.toml +1 -1
  17. danielutils-1.0.50/danielutils/reflection/info_classes/file_info.py +0 -267
  18. danielutils-1.0.50/danielutils/reflection/info_classes/function_info.py +0 -110
  19. danielutils-1.0.50/danielutils/reflection/info_classes/import_info.py +0 -100
  20. {danielutils-1.0.50 → danielutils-1.0.52}/LICENSE +0 -0
  21. {danielutils-1.0.50 → danielutils-1.0.52}/MANIFEST.in +0 -0
  22. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/__init__.py +0 -0
  23. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/abstractions/__init__.py +0 -0
  24. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/abstractions/db/__init__.py +0 -0
  25. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/abstractions/db/database.py +0 -0
  26. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/abstractions/db/database_definitions.py +0 -0
  27. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/abstractions/db/database_exceptions.py +0 -0
  28. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/abstractions/db/database_factory.py +0 -0
  29. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/abstractions/db/database_models.py +0 -0
  30. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/abstractions/db/dependencies.py +0 -0
  31. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/abstractions/db/implementations/__init__.py +0 -0
  32. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/abstractions/db/implementations/in_memory_database.py +0 -0
  33. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/abstractions/db/implementations/persistent_in_memory_database.py +0 -0
  34. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/abstractions/db/implementations/redis_database.py +0 -0
  35. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/abstractions/db/implementations/sqlite_database.py +0 -0
  36. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/abstractions/multiprogramming/__init__.py +0 -0
  37. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/abstractions/multiprogramming/multi_id.py +0 -0
  38. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/abstractions/multiprogramming/worker.py +0 -0
  39. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/abstractions/multiprogramming/worker_pool.py +0 -0
  40. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/abstractions/repl.py +0 -0
  41. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/aliases.py +0 -0
  42. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/async_/__init__.py +0 -0
  43. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/async_/async_cmd.py +0 -0
  44. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/async_/async_layered_command.py +0 -0
  45. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/async_/async_retry_executor.py +0 -0
  46. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/async_/async_worker_pool.py +0 -0
  47. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/async_/time_strategy.py +0 -0
  48. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/async_/utils.py +0 -0
  49. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/better_builtins/__init__.py +0 -0
  50. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/better_builtins/counter.py +0 -0
  51. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/better_builtins/frange.py +0 -0
  52. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/better_builtins/typed_builtins/__init__.py +0 -0
  53. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/better_builtins/typed_builtins/factory.py +0 -0
  54. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/better_builtins/typed_builtins/tdict.py +0 -0
  55. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/better_builtins/typed_builtins/tlist.py +0 -0
  56. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/better_builtins/typed_builtins/tset.py +0 -0
  57. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/better_builtins/typed_builtins/ttuple.py +0 -0
  58. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/colors.py +0 -0
  59. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/context_managers/__init__.py +0 -0
  60. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/context_managers/attr_context.py +0 -0
  61. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/context_managers/multi_context.py +0 -0
  62. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/context_managers/optional_context.py +0 -0
  63. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/context_managers/state_context.py +0 -0
  64. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/context_managers/temporary_file.py +0 -0
  65. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/convenience.py +0 -0
  66. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/conversions/__init__.py +0 -0
  67. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/conversions/main_conversions.py +0 -0
  68. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/conversions/specialized_conversions/__init__.py +0 -0
  69. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/conversions/specialized_conversions/to_hex.py +0 -0
  70. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/conversions/specialized_conversions/to_int.py +0 -0
  71. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/custom_types.py +0 -0
  72. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/data_structures/__init__.py +0 -0
  73. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/data_structures/algorithms.py +0 -0
  74. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/data_structures/comparer.py +0 -0
  75. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/data_structures/default_dict.py +0 -0
  76. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/data_structures/functions.py +0 -0
  77. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/data_structures/graph/__init__.py +0 -0
  78. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/data_structures/graph/binary_node.py +0 -0
  79. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/data_structures/graph/graph.py +0 -0
  80. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/data_structures/graph/multinode.py +0 -0
  81. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/data_structures/graph/node.py +0 -0
  82. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/data_structures/heap/__init__.py +0 -0
  83. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/data_structures/heap/heap.py +0 -0
  84. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/data_structures/heap/max_heap.py +0 -0
  85. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/data_structures/heap/min_heap.py +0 -0
  86. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/data_structures/queue/__init__.py +0 -0
  87. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/data_structures/queue/atomic_queue.py +0 -0
  88. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/data_structures/queue/priority_queue.py +0 -0
  89. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/data_structures/queue/queue.py +0 -0
  90. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/data_structures/stack.py +0 -0
  91. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/data_structures/trees/__init__.py +0 -0
  92. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/data_structures/trees/binary_syntax_tree.py +0 -0
  93. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/data_structures/trees/binary_tree.py +0 -0
  94. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/date.py +0 -0
  95. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/date_time.py +0 -0
  96. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/decorators/__init__.py +0 -0
  97. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/decorators/atomic.py +0 -0
  98. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/decorators/attach.py +0 -0
  99. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/decorators/chain_decorators.py +0 -0
  100. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/decorators/decorate_conditionally.py +0 -0
  101. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/decorators/delay_call.py +0 -0
  102. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/decorators/deprecate.py +0 -0
  103. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/decorators/final.py +0 -0
  104. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/decorators/limit_recursion.py +0 -0
  105. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/decorators/memo.py +0 -0
  106. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/decorators/normalize_decorator.py +0 -0
  107. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/decorators/overload.py +0 -0
  108. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/decorators/partially_implemented.py +0 -0
  109. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/decorators/processify.py +0 -0
  110. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/decorators/property.py +0 -0
  111. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/decorators/singleton.py +0 -0
  112. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/decorators/threadify.py +0 -0
  113. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/decorators/timeout.py +0 -0
  114. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/decorators/total_ordering.py +0 -0
  115. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/decorators/validate.py +0 -0
  116. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/exceptions.py +0 -0
  117. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/functions/__init__.py +0 -0
  118. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/functions/areoneof.py +0 -0
  119. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/functions/check_foreach.py +0 -0
  120. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/functions/factorial.py +0 -0
  121. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/functions/flatten.py +0 -0
  122. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/functions/foreach.py +0 -0
  123. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/functions/isoftype.py +0 -0
  124. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/functions/isoneof.py +0 -0
  125. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/functions/multiloop.py +0 -0
  126. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/functions/parallel_for.py +0 -0
  127. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/functions/partition.py +0 -0
  128. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/functions/powerset.py +0 -0
  129. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/functions/subseteq.py +0 -0
  130. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/functions/types_subseteq.py +0 -0
  131. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/generators/__init__.py +0 -0
  132. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/generators/conditional_generator.py +0 -0
  133. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/generators/generator_from_stream.py +0 -0
  134. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/generators/join_generators.py +0 -0
  135. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/internet.py +0 -0
  136. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/io_.py +0 -0
  137. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/java/__init__.py +0 -0
  138. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/java/interfaces/__init__.py +0 -0
  139. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/java/interfaces/comparable.py +0 -0
  140. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/java/java_interface.py +0 -0
  141. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/logging_/__init__.py +0 -0
  142. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/logging_/builtin_impls/__init__.py +0 -0
  143. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/logging_/builtin_impls/file_logger.py +0 -0
  144. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/logging_/builtin_impls/print_logger.py +0 -0
  145. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/logging_/log_level.py +0 -0
  146. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/logging_/logger.py +0 -0
  147. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/logging_/logger_strategy_impl_base.py +0 -0
  148. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/lombok/__init__.py +0 -0
  149. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/lombok/builder.py +0 -0
  150. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/math_/__init__.py +0 -0
  151. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/math_/constants.py +0 -0
  152. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/math_/functions.py +0 -0
  153. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/math_/math_print.py +0 -0
  154. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/math_/math_symbols.py +0 -0
  155. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/metaclasses/__init__.py +0 -0
  156. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/metaclasses/atomic_class_meta.py +0 -0
  157. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/metaclasses/implicit_data_deleter_meta.py +0 -0
  158. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/metaclasses/instance_cache_meta.py +0 -0
  159. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/metaclasses/interface.py +0 -0
  160. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/metaclasses/overload_meta.py +0 -0
  161. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/mock_/__init__.py +0 -0
  162. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/mock_/mock_module.py +0 -0
  163. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/path.py +0 -0
  164. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/print_.py +0 -0
  165. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/progress_bar/__init__.py +0 -0
  166. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/progress_bar/ascii_progress_bar.py +0 -0
  167. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/progress_bar/progress_bar.py +0 -0
  168. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/progress_bar/progress_bar_pool.py +0 -0
  169. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/protocols/__init__.py +0 -0
  170. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/protocols/dictable.py +0 -0
  171. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/protocols/evaluable.py +0 -0
  172. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/protocols/serializable.py +0 -0
  173. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/py.typed +0 -0
  174. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/random_.py +0 -0
  175. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/reflection/__init__.py +0 -0
  176. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/reflection/class_/__init__.py +0 -0
  177. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/reflection/class_/class_reflection.py +0 -0
  178. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/reflection/file/__init__.py +0 -0
  179. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/reflection/file/file_reflection.py +0 -0
  180. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/reflection/function/__init__.py +0 -0
  181. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/reflection/function/function_reflections.py +0 -0
  182. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/reflection/interpreter/__init__.py +0 -0
  183. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/reflection/interpreter/callstack.py +0 -0
  184. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/reflection/interpreter/get_traceback.py +0 -0
  185. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/reflection/interpreter/interpreter.py +0 -0
  186. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/reflection/interpreter/is_debugging.py +0 -0
  187. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/reflection/interpreter/os_.py +0 -0
  188. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/reflection/interpreter/packages.py +0 -0
  189. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/reflection/interpreter/python_version.py +0 -0
  190. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/reflection/interpreter/signals.py +0 -0
  191. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/reflection/interpreter/tracer.py +0 -0
  192. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/reflection/module/__init__.py +0 -0
  193. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/reflection/module/module_reflections.py +0 -0
  194. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/reflection/module/package_reflection.py +0 -0
  195. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/retry_executor/__init__.py +0 -0
  196. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/retry_executor/backoff_strategies/__init__.py +0 -0
  197. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/retry_executor/backoff_strategies/constant_backoff.py +0 -0
  198. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/retry_executor/backoff_strategies/exponential_backoff.py +0 -0
  199. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/retry_executor/backoff_strategies/functional_backoff.py +0 -0
  200. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/retry_executor/backoff_strategies/linear_backoff.py +0 -0
  201. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/retry_executor/backoff_strategies/multiplicative_backoff.py +0 -0
  202. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/retry_executor/backoff_strategies/no_backoff.py +0 -0
  203. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/retry_executor/backoff_strategy.py +0 -0
  204. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/retry_executor/retry_executor.py +0 -0
  205. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/snippets/__init__.py +0 -0
  206. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/snippets/try_get.py +0 -0
  207. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/system/__init__.py +0 -0
  208. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/system/independent.py +0 -0
  209. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/system/layered_command.py +0 -0
  210. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/system/windows/__init__.py +0 -0
  211. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/system/windows/utils/__init__.py +0 -0
  212. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/system/windows/utils/filetime.py +0 -0
  213. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/system/windows/windows.py +0 -0
  214. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/testing/__init__.py +0 -0
  215. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/testing/unittest_/__init__.py +0 -0
  216. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/testing/unittest_/always_teardown_testcase.py +0 -0
  217. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/testing/unittest_/auto_cwd_testcase.py +0 -0
  218. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/text.py +0 -0
  219. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/time.py +0 -0
  220. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/__init__.py +0 -0
  221. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/computability_and_complexity/__init__.py +0 -0
  222. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/computability_and_complexity/discreate_finite_automaton.py +0 -0
  223. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/computability_and_complexity/languages/__init__.py +0 -0
  224. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/computability_and_complexity/languages/language.py +0 -0
  225. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/computability_and_complexity/languages/sat.py +0 -0
  226. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/computability_and_complexity/turing_machine.py +0 -0
  227. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/databases/__init__.py +0 -0
  228. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/databases/all.py +0 -0
  229. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/image_proccesing/__init__.py +0 -0
  230. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/image_proccesing/encoding/__init__.py +0 -0
  231. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/image_proccesing/encoding/encoding.py +0 -0
  232. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/image_proccesing/encoding/lossless/__init__.py +0 -0
  233. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/image_proccesing/encoding/lossless/huffman.py +0 -0
  234. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/image_proccesing/encoding/lossless/lossless_encoding.py +0 -0
  235. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/image_proccesing/encoding/lossless/lzw.py +0 -0
  236. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/image_proccesing/encoding/lossless/run_length.py +0 -0
  237. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/image_proccesing/encoding/lossy/__init__.py +0 -0
  238. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/image_proccesing/encoding/lossy/lossy_encoding.py +0 -0
  239. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/image_proccesing/tansformations/__init__.py +0 -0
  240. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/image_proccesing/tansformations/gaussian.py +0 -0
  241. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/image_proccesing/tansformations/gradient.py +0 -0
  242. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/image_proccesing/tansformations/hough.py +0 -0
  243. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/image_proccesing/tansformations/laplacian.py +0 -0
  244. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/image_proccesing/tansformations/transformation.py +0 -0
  245. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/linear_algebra/__init__.py +0 -0
  246. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/linear_algebra/matrix.py +0 -0
  247. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/machine_learning/__init__.py +0 -0
  248. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/machine_learning/activation_functions/__init__.py +0 -0
  249. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/machine_learning/activation_functions/activation_function.py +0 -0
  250. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/machine_learning/activation_functions/relu.py +0 -0
  251. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/machine_learning/neuron.py +0 -0
  252. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/oop/__init__.py +0 -0
  253. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/oop/observer.py +0 -0
  254. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/oop/strategy.py +0 -0
  255. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/probability/__init__.py +0 -0
  256. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/probability/conditional_variable/__init__.py +0 -0
  257. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/probability/conditional_variable/conditional_variable.py +0 -0
  258. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/probability/conditional_variable/continuous/__init__.py +0 -0
  259. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/probability/conditional_variable/discrete/__init__.py +0 -0
  260. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/probability/conditional_variable/discrete/bernoulli.py +0 -0
  261. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/probability/conditional_variable/discrete/binomial.py +0 -0
  262. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/probability/conditional_variable/discrete/conditional_from_discrete_probability_func.py +0 -0
  263. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/probability/conditional_variable/discrete/discrete.py +0 -0
  264. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/probability/conditional_variable/discrete/geometric.py +0 -0
  265. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/probability/conditional_variable/discrete/poisson.py +0 -0
  266. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/probability/conditional_variable/discrete/uniform.py +0 -0
  267. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/probability/distributions.py +0 -0
  268. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/probability/expressions/__init__.py +0 -0
  269. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/probability/expressions/accumulation_expression.py +0 -0
  270. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/probability/expressions/probability_expression.py +0 -0
  271. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/probability/funcs/__init__.py +0 -0
  272. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/probability/funcs/covariance.py +0 -0
  273. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/probability/funcs/expected_value.py +0 -0
  274. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/probability/funcs/probability_function.py +0 -0
  275. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/probability/funcs/variance.py +0 -0
  276. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/probability/operator.py +0 -0
  277. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/probability/protocols.py +0 -0
  278. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/probability/supp.py +0 -0
  279. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/probability/transformation.py +0 -0
  280. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/versioned_imports.py +0 -0
  281. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils.egg-info/dependency_links.txt +0 -0
  282. {danielutils-1.0.50 → danielutils-1.0.52}/danielutils.egg-info/top_level.txt +0 -0
  283. {danielutils-1.0.50 → danielutils-1.0.52}/setup.cfg +0 -0
  284. {danielutils-1.0.50 → danielutils-1.0.52}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: danielutils
3
- Version: 1.0.50
3
+ Version: 1.0.52
4
4
  Summary: A python utils library for things I find useful
5
5
  Author-email: danielnachumdev <danielnachumdev@gmail.com>
6
6
  License: MIT License
@@ -33,6 +33,7 @@ Classifier: Operating System :: Microsoft :: Windows
33
33
  Requires-Python: >=3.8.0
34
34
  Description-Content-Type: text/markdown
35
35
  License-File: LICENSE
36
+ Dynamic: license-file
36
37
 
37
38
  [![Python package](https://github.com/danielnachumdev/danielutils/actions/workflows/python-package.yml/badge.svg)](https://github.com/danielnachumdev/danielutils/actions/workflows/python-package.yml)
38
39
  [![Pylint](https://github.com/danielnachumdev/danielutils/actions/workflows/pylint.yml/badge.svg)](https://github.com/danielnachumdev/danielutils/actions/workflows/pylint.yml)
@@ -40,7 +41,7 @@ License-File: LICENSE
40
41
  [![gitleaks](https://github.com/danielnachumdev/danielutils/actions/workflows/gitleaks.yml/badge.svg)](https://github.com/danielnachumdev/danielutils/actions/workflows/gitleaks.yml)
41
42
  [![CodeQL](https://github.com/danielnachumdev/danielutils/actions/workflows/github-code-scanning/codeql/badge.svg)](https://github.com/danielnachumdev/danielutils/actions/workflows/github-code-scanning/codeql)
42
43
 
43
- # danielutils v1.0.50
44
+ # danielutils v1.0.51
44
45
 
45
46
  A comprehensive Python utilities library designed to enhance your development workflow with powerful tools for type safety, async programming, database operations, and much more.
46
47
 
@@ -4,7 +4,7 @@
4
4
  [![gitleaks](https://github.com/danielnachumdev/danielutils/actions/workflows/gitleaks.yml/badge.svg)](https://github.com/danielnachumdev/danielutils/actions/workflows/gitleaks.yml)
5
5
  [![CodeQL](https://github.com/danielnachumdev/danielutils/actions/workflows/github-code-scanning/codeql/badge.svg)](https://github.com/danielnachumdev/danielutils/actions/workflows/github-code-scanning/codeql)
6
6
 
7
- # danielutils v1.0.50
7
+ # danielutils v1.0.51
8
8
 
9
9
  A comprehensive Python utilities library designed to enhance your development workflow with powerful tools for type safety, async programming, database operations, and much more.
10
10
 
@@ -67,8 +67,8 @@ async def validate_schema(db: Database, table_name: str, expected_schema: TableS
67
67
  return False
68
68
 
69
69
  # Compare each column
70
- for expected_col, existing_col in zip(expected_schema.columns, existing_schema.columns
71
- ):
70
+ for expected_col, existing_col in zip(sorted(expected_schema.columns, key=lambda c: c.name),
71
+ sorted(existing_schema.columns, key=lambda c: c.name)):
72
72
  if (
73
73
  expected_col.name != existing_col.name or
74
74
  expected_col.type != existing_col.type or
@@ -77,9 +77,7 @@ async def validate_schema(db: Database, table_name: str, expected_schema: TableS
77
77
  expected_col.unique != existing_col.unique or
78
78
  expected_col.foreign_key != existing_col.foreign_key
79
79
  ):
80
- logger.warning(
81
- f"Column mismatch in '{table_name}': expected {expected_col}, got {existing_col}"
82
- )
80
+ logger.warning(f"Column mismatch in '{table_name}': expected {expected_col}, got {existing_col}")
83
81
  return False
84
82
 
85
83
  # Compare indexes
@@ -92,7 +90,8 @@ async def validate_schema(db: Database, table_name: str, expected_schema: TableS
92
90
  return False
93
91
 
94
92
  # Compare each index
95
- for expected_idx, existing_idx in zip(expected_schema.indexes, existing_schema.indexes):
93
+ for expected_idx, existing_idx in zip(sorted(expected_schema.indexes, key=lambda idx: idx.name),
94
+ sorted(existing_schema.indexes, key=lambda idx: idx.name)):
96
95
  if (
97
96
  expected_idx.name != existing_idx.name or
98
97
  expected_idx.columns != existing_idx.columns or
@@ -53,7 +53,8 @@ class FileSpecification:
53
53
 
54
54
  def open(self, path: str):
55
55
  if not path.endswith(self.extension):
56
- raise ValueError(f"Invalid file extension, expected {self.extension}")
56
+ raise ValueError(
57
+ f"Invalid file extension, expected {self.extension}")
57
58
  with open(path, "rb") as f:
58
59
  lines = f.readlines()
59
60
  for line in lines:
@@ -1,6 +1,6 @@
1
1
  from .argument_info import *
2
2
  from .class_info import *
3
- from .decoration_info import *
3
+ from .decorator_info import *
4
4
  from .file_info import *
5
5
  from .function_info import *
6
6
  from .import_info import *
@@ -53,7 +53,8 @@ class ArgumentInfo:
53
53
 
54
54
  @property
55
55
  def is_parameterized(self) -> bool:
56
- return self._parameters is not None and len(self.parameters) > 0 # type: ignore
56
+ # type: ignore
57
+ return self._parameters is not None and len(self.parameters) > 0
57
58
 
58
59
  def __repr__(self) -> str:
59
60
  res = f"{self.__class__.__name__}(name=\"{self.name}\""
@@ -3,14 +3,15 @@ import json
3
3
  import re
4
4
  from typing import List, Iterable, Type, TypeVar, Generic, get_origin
5
5
  from .function_info import FunctionInfo
6
- from .decoration_info import DecorationInfo
6
+ from .decorator_info import DecoratorInfo
7
7
  from .argument_info import ArgumentInfo
8
8
  from ...functions import isoftype
9
9
 
10
10
  T = TypeVar("T")
11
11
 
12
12
 
13
- class _A(Generic[T]): ...
13
+ class _A(Generic[T]):
14
+ ...
14
15
 
15
16
 
16
17
  _GenericAlias = type(_A[int])
@@ -34,7 +35,7 @@ class ClassInfo:
34
35
  self._name: str = ""
35
36
  self._bases: List[ArgumentInfo] = []
36
37
  self._functions: List[FunctionInfo] = []
37
- self._decorations: List[DecorationInfo] = []
38
+ self._decorations: List[DecoratorInfo] = []
38
39
  self._parse_src_code()
39
40
 
40
41
  def _parse_src_code(self) -> None:
@@ -49,7 +50,8 @@ class ClassInfo:
49
50
 
50
51
  if decorators is not None:
51
52
  for substr in decorators.strip().splitlines():
52
- self._decorations.append(DecorationInfo.from_str(substr.strip()))
53
+ self._decorations.append(
54
+ DecoratorInfo.from_str(substr.strip()))
53
55
 
54
56
  def _parse_body(self) -> None:
55
57
  for attr in dir(self._cls):
@@ -67,9 +69,11 @@ class ClassInfo:
67
69
  continue
68
70
 
69
71
  try:
70
- self._functions.append(FunctionInfo(obj, self._cls)) # type: ignore
72
+ self._functions.append(FunctionInfo(
73
+ obj, self._cls)) # type: ignore
71
74
  except Exception as e:
72
- raise Exception(f"Error parsing function '{attr}' of class '{self._name}': {e}", e) from e
75
+ raise Exception(
76
+ f"Error parsing function '{attr}' of class '{self._name}': {e}", e) from e
73
77
 
74
78
  def __str__(self) -> str:
75
79
  body = json.dumps({
@@ -90,7 +94,7 @@ class ClassInfo:
90
94
  return self._name
91
95
 
92
96
  @property
93
- def decorations(self) -> List[DecorationInfo]:
97
+ def decorations(self) -> List[DecoratorInfo]:
94
98
  return self._decorations
95
99
 
96
100
  @property
@@ -5,8 +5,9 @@ from typing import Optional, List
5
5
  from .argument_info import ArgumentInfo
6
6
 
7
7
 
8
- class DecorationInfo:
9
- DECORATOR_INFO_REGEX: re.Pattern = re.compile(r"^@?(?P<name>\w[\w\d]*)(?:\((?P<arguments>.*)\))?")
8
+ class DecoratorInfo:
9
+ DECORATOR_INFO_REGEX: re.Pattern = re.compile(
10
+ r"^@?(?P<name>\w[\w\d]*)(?:\((?P<arguments>.*)\))?")
10
11
 
11
12
  def __init__(self, name: str, arguments: List[ArgumentInfo]):
12
13
  self._name = name
@@ -21,14 +22,14 @@ class DecorationInfo:
21
22
  return self._arguments
22
23
 
23
24
  @staticmethod
24
- def from_str(string: str) -> 'DecorationInfo':
25
- m = DecorationInfo.DECORATOR_INFO_REGEX.match(string)
25
+ def from_str(string: str) -> 'DecoratorInfo':
26
+ m = DecoratorInfo.DECORATOR_INFO_REGEX.match(string)
26
27
  if m is None:
27
28
  raise ValueError()
28
29
 
29
30
  name, arguments = m.groups()
30
31
  args = ArgumentInfo.from_str(arguments)
31
- return DecorationInfo(name, args)
32
+ return DecoratorInfo(name, args)
32
33
 
33
34
  def __str__(self) -> str:
34
35
  return repr(self)
@@ -40,5 +41,5 @@ class DecorationInfo:
40
41
 
41
42
 
42
43
  __all__ = [
43
- 'DecorationInfo',
44
+ 'DecoratorInfo',
44
45
  ]