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.
- {danielutils-1.0.50/danielutils.egg-info → danielutils-1.0.52}/PKG-INFO +4 -3
- {danielutils-1.0.50 → danielutils-1.0.52}/README.md +1 -1
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/abstractions/db/database_initializer.py +5 -6
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/file_specifications/__init__.py +2 -1
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/reflection/info_classes/__init__.py +1 -1
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/reflection/info_classes/argument_info.py +2 -1
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/reflection/info_classes/class_info.py +11 -7
- danielutils-1.0.50/danielutils/reflection/info_classes/decoration_info.py → danielutils-1.0.52/danielutils/reflection/info_classes/decorator_info.py +7 -6
- danielutils-1.0.52/danielutils/reflection/info_classes/file_info.py +1163 -0
- danielutils-1.0.52/danielutils/reflection/info_classes/folder_info.py +592 -0
- danielutils-1.0.52/danielutils/reflection/info_classes/function_info.py +495 -0
- danielutils-1.0.52/danielutils/reflection/info_classes/import_info.py +207 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/system/windows/win32_ctime.py +1 -1
- {danielutils-1.0.50 → danielutils-1.0.52/danielutils.egg-info}/PKG-INFO +4 -3
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils.egg-info/SOURCES.txt +2 -1
- {danielutils-1.0.50 → danielutils-1.0.52}/pyproject.toml +1 -1
- danielutils-1.0.50/danielutils/reflection/info_classes/file_info.py +0 -267
- danielutils-1.0.50/danielutils/reflection/info_classes/function_info.py +0 -110
- danielutils-1.0.50/danielutils/reflection/info_classes/import_info.py +0 -100
- {danielutils-1.0.50 → danielutils-1.0.52}/LICENSE +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/MANIFEST.in +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/abstractions/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/abstractions/db/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/abstractions/db/database.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/abstractions/db/database_definitions.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/abstractions/db/database_exceptions.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/abstractions/db/database_factory.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/abstractions/db/database_models.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/abstractions/db/dependencies.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/abstractions/db/implementations/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/abstractions/db/implementations/in_memory_database.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/abstractions/db/implementations/persistent_in_memory_database.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/abstractions/db/implementations/redis_database.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/abstractions/db/implementations/sqlite_database.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/abstractions/multiprogramming/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/abstractions/multiprogramming/multi_id.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/abstractions/multiprogramming/worker.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/abstractions/multiprogramming/worker_pool.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/abstractions/repl.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/aliases.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/async_/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/async_/async_cmd.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/async_/async_layered_command.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/async_/async_retry_executor.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/async_/async_worker_pool.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/async_/time_strategy.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/async_/utils.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/better_builtins/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/better_builtins/counter.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/better_builtins/frange.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/better_builtins/typed_builtins/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/better_builtins/typed_builtins/factory.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/better_builtins/typed_builtins/tdict.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/better_builtins/typed_builtins/tlist.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/better_builtins/typed_builtins/tset.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/better_builtins/typed_builtins/ttuple.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/colors.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/context_managers/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/context_managers/attr_context.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/context_managers/multi_context.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/context_managers/optional_context.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/context_managers/state_context.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/context_managers/temporary_file.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/convenience.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/conversions/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/conversions/main_conversions.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/conversions/specialized_conversions/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/conversions/specialized_conversions/to_hex.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/conversions/specialized_conversions/to_int.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/custom_types.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/data_structures/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/data_structures/algorithms.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/data_structures/comparer.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/data_structures/default_dict.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/data_structures/functions.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/data_structures/graph/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/data_structures/graph/binary_node.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/data_structures/graph/graph.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/data_structures/graph/multinode.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/data_structures/graph/node.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/data_structures/heap/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/data_structures/heap/heap.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/data_structures/heap/max_heap.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/data_structures/heap/min_heap.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/data_structures/queue/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/data_structures/queue/atomic_queue.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/data_structures/queue/priority_queue.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/data_structures/queue/queue.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/data_structures/stack.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/data_structures/trees/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/data_structures/trees/binary_syntax_tree.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/data_structures/trees/binary_tree.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/date.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/date_time.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/decorators/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/decorators/atomic.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/decorators/attach.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/decorators/chain_decorators.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/decorators/decorate_conditionally.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/decorators/delay_call.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/decorators/deprecate.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/decorators/final.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/decorators/limit_recursion.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/decorators/memo.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/decorators/normalize_decorator.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/decorators/overload.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/decorators/partially_implemented.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/decorators/processify.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/decorators/property.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/decorators/singleton.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/decorators/threadify.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/decorators/timeout.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/decorators/total_ordering.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/decorators/validate.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/exceptions.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/functions/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/functions/areoneof.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/functions/check_foreach.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/functions/factorial.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/functions/flatten.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/functions/foreach.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/functions/isoftype.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/functions/isoneof.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/functions/multiloop.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/functions/parallel_for.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/functions/partition.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/functions/powerset.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/functions/subseteq.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/functions/types_subseteq.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/generators/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/generators/conditional_generator.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/generators/generator_from_stream.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/generators/join_generators.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/internet.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/io_.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/java/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/java/interfaces/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/java/interfaces/comparable.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/java/java_interface.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/logging_/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/logging_/builtin_impls/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/logging_/builtin_impls/file_logger.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/logging_/builtin_impls/print_logger.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/logging_/log_level.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/logging_/logger.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/logging_/logger_strategy_impl_base.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/lombok/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/lombok/builder.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/math_/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/math_/constants.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/math_/functions.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/math_/math_print.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/math_/math_symbols.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/metaclasses/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/metaclasses/atomic_class_meta.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/metaclasses/implicit_data_deleter_meta.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/metaclasses/instance_cache_meta.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/metaclasses/interface.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/metaclasses/overload_meta.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/mock_/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/mock_/mock_module.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/path.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/print_.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/progress_bar/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/progress_bar/ascii_progress_bar.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/progress_bar/progress_bar.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/progress_bar/progress_bar_pool.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/protocols/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/protocols/dictable.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/protocols/evaluable.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/protocols/serializable.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/py.typed +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/random_.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/reflection/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/reflection/class_/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/reflection/class_/class_reflection.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/reflection/file/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/reflection/file/file_reflection.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/reflection/function/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/reflection/function/function_reflections.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/reflection/interpreter/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/reflection/interpreter/callstack.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/reflection/interpreter/get_traceback.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/reflection/interpreter/interpreter.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/reflection/interpreter/is_debugging.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/reflection/interpreter/os_.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/reflection/interpreter/packages.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/reflection/interpreter/python_version.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/reflection/interpreter/signals.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/reflection/interpreter/tracer.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/reflection/module/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/reflection/module/module_reflections.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/reflection/module/package_reflection.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/retry_executor/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/retry_executor/backoff_strategies/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/retry_executor/backoff_strategies/constant_backoff.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/retry_executor/backoff_strategies/exponential_backoff.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/retry_executor/backoff_strategies/functional_backoff.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/retry_executor/backoff_strategies/linear_backoff.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/retry_executor/backoff_strategies/multiplicative_backoff.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/retry_executor/backoff_strategies/no_backoff.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/retry_executor/backoff_strategy.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/retry_executor/retry_executor.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/snippets/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/snippets/try_get.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/system/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/system/independent.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/system/layered_command.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/system/windows/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/system/windows/utils/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/system/windows/utils/filetime.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/system/windows/windows.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/testing/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/testing/unittest_/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/testing/unittest_/always_teardown_testcase.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/testing/unittest_/auto_cwd_testcase.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/text.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/time.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/computability_and_complexity/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/computability_and_complexity/discreate_finite_automaton.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/computability_and_complexity/languages/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/computability_and_complexity/languages/language.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/computability_and_complexity/languages/sat.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/computability_and_complexity/turing_machine.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/databases/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/databases/all.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/image_proccesing/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/image_proccesing/encoding/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/image_proccesing/encoding/encoding.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/image_proccesing/encoding/lossless/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/image_proccesing/encoding/lossless/huffman.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/image_proccesing/encoding/lossless/lossless_encoding.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/image_proccesing/encoding/lossless/lzw.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/image_proccesing/encoding/lossless/run_length.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/image_proccesing/encoding/lossy/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/image_proccesing/encoding/lossy/lossy_encoding.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/image_proccesing/tansformations/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/image_proccesing/tansformations/gaussian.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/image_proccesing/tansformations/gradient.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/image_proccesing/tansformations/hough.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/image_proccesing/tansformations/laplacian.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/image_proccesing/tansformations/transformation.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/linear_algebra/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/linear_algebra/matrix.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/machine_learning/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/machine_learning/activation_functions/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/machine_learning/activation_functions/activation_function.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/machine_learning/activation_functions/relu.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/machine_learning/neuron.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/oop/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/oop/observer.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/oop/strategy.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/probability/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/probability/conditional_variable/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/probability/conditional_variable/conditional_variable.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/probability/conditional_variable/continuous/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/probability/conditional_variable/discrete/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/probability/conditional_variable/discrete/bernoulli.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/probability/conditional_variable/discrete/binomial.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/probability/conditional_variable/discrete/conditional_from_discrete_probability_func.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/probability/conditional_variable/discrete/discrete.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/probability/conditional_variable/discrete/geometric.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/probability/conditional_variable/discrete/poisson.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/probability/conditional_variable/discrete/uniform.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/probability/distributions.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/probability/expressions/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/probability/expressions/accumulation_expression.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/probability/expressions/probability_expression.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/probability/funcs/__init__.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/probability/funcs/covariance.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/probability/funcs/expected_value.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/probability/funcs/probability_function.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/probability/funcs/variance.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/probability/operator.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/probability/protocols.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/probability/supp.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/university/probability/transformation.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils/versioned_imports.py +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils.egg-info/dependency_links.txt +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/danielutils.egg-info/top_level.txt +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/setup.cfg +0 -0
- {danielutils-1.0.50 → danielutils-1.0.52}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: danielutils
|
|
3
|
-
Version: 1.0.
|
|
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
|
[](https://github.com/danielnachumdev/danielutils/actions/workflows/python-package.yml)
|
|
38
39
|
[](https://github.com/danielnachumdev/danielutils/actions/workflows/pylint.yml)
|
|
@@ -40,7 +41,7 @@ License-File: LICENSE
|
|
|
40
41
|
[](https://github.com/danielnachumdev/danielutils/actions/workflows/gitleaks.yml)
|
|
41
42
|
[](https://github.com/danielnachumdev/danielutils/actions/workflows/github-code-scanning/codeql)
|
|
42
43
|
|
|
43
|
-
# danielutils v1.0.
|
|
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
|
[](https://github.com/danielnachumdev/danielutils/actions/workflows/gitleaks.yml)
|
|
5
5
|
[](https://github.com/danielnachumdev/danielutils/actions/workflows/github-code-scanning/codeql)
|
|
6
6
|
|
|
7
|
-
# danielutils v1.0.
|
|
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
|
|
{danielutils-1.0.50 → danielutils-1.0.52}/danielutils/abstractions/db/database_initializer.py
RENAMED
|
@@ -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,
|
|
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,
|
|
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(
|
|
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:
|
{danielutils-1.0.50 → danielutils-1.0.52}/danielutils/reflection/info_classes/argument_info.py
RENAMED
|
@@ -53,7 +53,8 @@ class ArgumentInfo:
|
|
|
53
53
|
|
|
54
54
|
@property
|
|
55
55
|
def is_parameterized(self) -> bool:
|
|
56
|
-
|
|
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 .
|
|
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[
|
|
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(
|
|
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(
|
|
72
|
+
self._functions.append(FunctionInfo(
|
|
73
|
+
obj, self._cls)) # type: ignore
|
|
71
74
|
except Exception as e:
|
|
72
|
-
raise Exception(
|
|
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[
|
|
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
|
|
9
|
-
DECORATOR_INFO_REGEX: re.Pattern = re.compile(
|
|
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) -> '
|
|
25
|
-
m =
|
|
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
|
|
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
|
-
'
|
|
44
|
+
'DecoratorInfo',
|
|
44
45
|
]
|