orionis 0.407.0__tar.gz → 0.409.0__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.
- {orionis-0.407.0/orionis.egg-info → orionis-0.409.0}/PKG-INFO +1 -1
- {orionis-0.407.0 → orionis-0.409.0}/orionis/container/container.py +11 -9
- {orionis-0.407.0 → orionis-0.409.0}/orionis/container/enums/lifetimes.py +2 -0
- orionis-0.409.0/orionis/container/validators/__init__.py +21 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/metadata/framework.py +1 -1
- orionis-0.409.0/orionis/services/log/contracts/log_service.py +75 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/services/log/handlers/filename.py +20 -12
- orionis-0.409.0/orionis/services/log/handlers/size_rotating.py +29 -0
- orionis-0.409.0/orionis/services/log/handlers/timed_rotating.py +29 -0
- orionis-0.409.0/orionis/services/log/log_service.py +296 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/services/paths/contracts/resolver.py +0 -1
- {orionis-0.407.0 → orionis-0.409.0/orionis.egg-info}/PKG-INFO +1 -1
- {orionis-0.407.0 → orionis-0.409.0}/orionis.egg-info/SOURCES.txt +2 -0
- orionis-0.409.0/tests/container/context/test_manager.py +37 -0
- orionis-0.409.0/tests/container/context/test_scope.py +31 -0
- orionis-0.409.0/tests/container/entities/test_binding.py +242 -0
- orionis-0.409.0/tests/container/enums/test_lifetimes.py +97 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/container/facades/test_facade.py +29 -12
- {orionis-0.407.0 → orionis-0.409.0}/tests/container/providers/test_providers.py +17 -10
- {orionis-0.407.0 → orionis-0.409.0}/tests/container/resolver/test_resolver.py +14 -7
- orionis-0.409.0/tests/container/test_container.py +409 -0
- orionis-0.409.0/tests/container/test_singleton.py +117 -0
- orionis-0.409.0/tests/container/test_thread_safety.py +89 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/container/validators/test_implements.py +59 -13
- orionis-0.409.0/tests/container/validators/test_is_abstract_class.py +147 -0
- orionis-0.409.0/tests/container/validators/test_is_callable.py +102 -0
- orionis-0.409.0/tests/container/validators/test_is_concrete_class.py +160 -0
- orionis-0.409.0/tests/container/validators/test_is_instance.py +150 -0
- orionis-0.409.0/tests/container/validators/test_is_not_subclass.py +50 -0
- orionis-0.409.0/tests/container/validators/test_is_subclass.py +178 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/container/validators/test_is_valid_alias.py +46 -12
- {orionis-0.407.0 → orionis-0.409.0}/tests/container/validators/test_lifetime.py +45 -14
- orionis-0.409.0/tests/services/log/test_log.py +97 -0
- orionis-0.407.0/orionis/services/log/contracts/log_service.py +0 -23
- orionis-0.407.0/orionis/services/log/handlers/size_rotating.py +0 -21
- orionis-0.407.0/orionis/services/log/handlers/timed_rotating.py +0 -21
- orionis-0.407.0/orionis/services/log/log_service.py +0 -246
- orionis-0.407.0/tests/container/context/test_manager.py +0 -27
- orionis-0.407.0/tests/container/context/test_scope.py +0 -23
- orionis-0.407.0/tests/container/entities/test_binding.py +0 -133
- orionis-0.407.0/tests/container/enums/test_lifetimes.py +0 -63
- orionis-0.407.0/tests/container/test_container.py +0 -254
- orionis-0.407.0/tests/container/test_singleton.py +0 -98
- orionis-0.407.0/tests/container/test_thread_safety.py +0 -217
- orionis-0.407.0/tests/container/validators/test_is_abstract_class.py +0 -99
- orionis-0.407.0/tests/container/validators/test_is_callable.py +0 -73
- orionis-0.407.0/tests/container/validators/test_is_concrete_class.py +0 -97
- orionis-0.407.0/tests/container/validators/test_is_instance.py +0 -105
- orionis-0.407.0/tests/container/validators/test_is_not_subclass.py +0 -117
- orionis-0.407.0/tests/container/validators/test_is_subclass.py +0 -115
- {orionis-0.407.0 → orionis-0.409.0}/LICENCE +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/MANIFEST.in +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/README.md +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_console/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_console/base/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_console/base/command.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_console/command_filter.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_console/commands/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_console/commands/cache_clear.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_console/commands/help.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_console/commands/schedule_work.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_console/commands/version.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_console/dumper/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_console/dumper/dump_die.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_console/exceptions/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_console/exceptions/cli-orionis-value-error.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_console/exceptions/cli_exception.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_console/exceptions/cli_runtime_error.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_console/exceptions/cli_schedule_exception.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_console/kernel.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_console/output/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_console/output/console.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_console/output/executor.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_console/output/progress_bar.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_console/parser.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_contracts/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_contracts/application.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_contracts/config/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_contracts/config/config.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_contracts/console/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_contracts/console/base/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_contracts/console/base/command.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_contracts/console/command_filter.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_contracts/console/kernel.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_contracts/console/output/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_contracts/console/output/console.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_contracts/console/output/executor.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_contracts/console/parser.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_contracts/console/task_manager.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_contracts/facades/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_contracts/facades/commands/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_contracts/facades/commands/commands_facade.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_contracts/facades/commands/scheduler_facade.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_contracts/facades/config/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_contracts/facades/config/config_facade.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_contracts/facades/environment/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_contracts/facades/environment/environment_facade.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_contracts/facades/facade.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_contracts/facades/files/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_contracts/facades/files/path_facade.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_contracts/facades/log/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_contracts/facades/log/log_facade.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_contracts/facades/tests/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_contracts/facades/tests/tests_facade.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_contracts/foundation/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_contracts/foundation/bootstraper.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_contracts/foundation/config/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_contracts/foundation/config/config_bootstrapper.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_contracts/foundation/console/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_contracts/foundation/console/command_bootstrapper.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_contracts/foundation/environment/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_contracts/foundation/environment/environment_bootstrapper.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_contracts/foundation/providers/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_contracts/foundation/providers/service_providers_bootstrapper.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_contracts/providers/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_contracts/providers/service_provider.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_contracts/services/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_contracts/services/commands/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_contracts/services/commands/reactor_commands_service.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_contracts/services/commands/schedule_service.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_contracts/services/config/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_contracts/services/config/config_service.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_contracts/services/environment/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_contracts/services/environment/environment_service.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_contracts/services/files/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_contracts/services/files/path_resolver_service.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_contracts/services/log/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_contracts/services/log/log_service.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_contracts/support/exception_parse.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_contracts/support/reflection.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_foundation/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_foundation/console/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_foundation/console/command_bootstrapper.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_foundation/environment/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_foundation/environment/environment_bootstrapper.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_foundation/exceptions/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_foundation/exceptions/exception_bootstrapper.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_foundation/exceptions/exception_providers.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_foundation/foundation/config/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_foundation/foundation/config/config_bootstrapper.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_foundation/providers/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_foundation/providers/service_providers_bootstrapper.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_services/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_services/commands/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_services/commands/reactor_commands_service.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_services/commands/scheduler_service.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_services/config/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/_services/config/config_service.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/console/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/console/base/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/console/base/command.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/console/base/contracts/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/console/base/contracts/command.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/console/dumper/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/console/dumper/contracts/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/console/dumper/contracts/dump.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/console/dumper/dump.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/console/dynamic/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/console/dynamic/contracts/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/console/dynamic/contracts/progress_bar.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/console/dynamic/progress_bar.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/console/output/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/console/output/console.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/console/output/contracts/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/console/output/contracts/console.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/console/output/enums/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/console/output/enums/styles.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/container/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/container/context/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/container/context/manager.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/container/context/scope.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/container/contracts/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/container/contracts/container.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/container/contracts/resolver.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/container/contracts/service_provider.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/container/entities/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/container/entities/binding.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/container/enums/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/container/exceptions/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/container/exceptions/attribute.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/container/exceptions/exception.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/container/exceptions/type.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/container/exceptions/value.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/container/facades/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/container/facades/facade.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/container/providers/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/container/providers/service_provider.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/container/resolver/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/container/resolver/resolver.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/container/validators/implements.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/container/validators/is_abstract_class.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/container/validators/is_callable.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/container/validators/is_concrete_class.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/container/validators/is_instance.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/container/validators/is_not_subclass.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/container/validators/is_subclass.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/container/validators/is_valid_alias.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/container/validators/lifetime.py +0 -0
- {orionis-0.407.0/orionis/container/validators → orionis-0.409.0/orionis/foundation}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/application.py +0 -0
- {orionis-0.407.0/orionis/foundation → orionis-0.409.0/orionis/foundation/config}/__init__.py +0 -0
- {orionis-0.407.0/orionis/foundation/config → orionis-0.409.0/orionis/foundation/config/app}/__init__.py +0 -0
- {orionis-0.407.0/orionis/foundation/config/app → orionis-0.409.0/orionis/foundation/config/app/entities}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/app/entities/app.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/app/enums/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/app/enums/ciphers.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/app/enums/environments.py +0 -0
- {orionis-0.407.0/orionis/foundation/config/app/entities → orionis-0.409.0/orionis/foundation/config/auth}/__init__.py +0 -0
- {orionis-0.407.0/orionis/foundation/config/auth → orionis-0.409.0/orionis/foundation/config/auth/entities}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/auth/entities/auth.py +0 -0
- {orionis-0.407.0/orionis/foundation/config/auth/entities → orionis-0.409.0/orionis/foundation/config/cache}/__init__.py +0 -0
- {orionis-0.407.0/orionis/foundation/config/cache → orionis-0.409.0/orionis/foundation/config/cache/entities}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/cache/entities/cache.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/cache/entities/file.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/cache/entities/stores.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/cache/enums/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/cache/enums/drivers.py +0 -0
- {orionis-0.407.0/orionis/foundation/config/cache/entities → orionis-0.409.0/orionis/foundation/config/cors}/__init__.py +0 -0
- {orionis-0.407.0/orionis/foundation/config/cors → orionis-0.409.0/orionis/foundation/config/cors/entities}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/cors/entities/cors.py +0 -0
- {orionis-0.407.0/orionis/foundation/config/cors/entities → orionis-0.409.0/orionis/foundation/config/database}/__init__.py +0 -0
- {orionis-0.407.0/orionis/foundation/config/database → orionis-0.409.0/orionis/foundation/config/database/entities}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/database/entities/connections.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/database/entities/database.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/database/entities/mysql.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/database/entities/oracle.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/database/entities/pgsql.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/database/entities/sqlite.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/database/enums/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/database/enums/mysql_charsets.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/database/enums/mysql_collations.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/database/enums/mysql_engine.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/database/enums/oracle_encoding.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/database/enums/oracle_nencoding.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/database/enums/pgsql_charsets.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/database/enums/pgsql_collations.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/database/enums/pgsql_mode.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/database/enums/sqlite_foreign_key.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/database/enums/sqlite_journal.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/database/enums/sqlite_synchronous.py +0 -0
- {orionis-0.407.0/orionis/foundation/config/database/entities → orionis-0.409.0/orionis/foundation/config/filesystems}/__init__.py +0 -0
- {orionis-0.407.0/orionis/foundation/config/filesystems → orionis-0.409.0/orionis/foundation/config/filesystems/entitites}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/filesystems/entitites/aws.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/filesystems/entitites/disks.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/filesystems/entitites/filesystems.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/filesystems/entitites/local.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/filesystems/entitites/public.py +0 -0
- {orionis-0.407.0/orionis/foundation/config/filesystems/entitites → orionis-0.409.0/orionis/foundation/config/logging}/__init__.py +0 -0
- {orionis-0.407.0/orionis/foundation/config/logging → orionis-0.409.0/orionis/foundation/config/logging/entities}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/logging/entities/channels.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/logging/entities/chunked.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/logging/entities/daily.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/logging/entities/hourly.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/logging/entities/logging.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/logging/entities/monthly.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/logging/entities/stack.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/logging/entities/weekly.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/logging/enums/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/logging/enums/levels.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/logging/validators/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/logging/validators/level.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/logging/validators/path.py +0 -0
- {orionis-0.407.0/orionis/foundation/config/logging/entities → orionis-0.409.0/orionis/foundation/config/mail}/__init__.py +0 -0
- {orionis-0.407.0/orionis/foundation/config/mail → orionis-0.409.0/orionis/foundation/config/mail/entities}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/mail/entities/file.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/mail/entities/mail.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/mail/entities/mailers.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/mail/entities/smtp.py +0 -0
- {orionis-0.407.0/orionis/foundation/config/mail/entities → orionis-0.409.0/orionis/foundation/config/queue}/__init__.py +0 -0
- {orionis-0.407.0/orionis/foundation/config/queue → orionis-0.409.0/orionis/foundation/config/queue/entities}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/queue/entities/brokers.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/queue/entities/database.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/queue/entities/queue.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/queue/enums/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/queue/enums/strategy.py +0 -0
- {orionis-0.407.0/orionis/foundation/config/queue/entities → orionis-0.409.0/orionis/foundation/config/roots}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/roots/paths.py +0 -0
- {orionis-0.407.0/orionis/foundation/config/roots → orionis-0.409.0/orionis/foundation/config/session}/__init__.py +0 -0
- {orionis-0.407.0/orionis/foundation/config/session → orionis-0.409.0/orionis/foundation/config/session/entities}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/session/entities/session.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/session/enums/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/session/enums/same_site_policy.py +0 -0
- {orionis-0.407.0/orionis/foundation/config/session/entities → orionis-0.409.0/orionis/foundation/config/session/helpers}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/session/helpers/secret_key.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/startup.py +0 -0
- {orionis-0.407.0/orionis/foundation/config/session/helpers → orionis-0.409.0/orionis/foundation/config/testing}/__init__.py +0 -0
- {orionis-0.407.0/orionis/foundation/config/testing → orionis-0.409.0/orionis/foundation/config/testing/entities}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/testing/entities/testing.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/testing/enums/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/testing/enums/drivers.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/testing/enums/mode.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/config/testing/enums/verbosity.py +0 -0
- {orionis-0.407.0/orionis/foundation/config/testing/entities → orionis-0.409.0/orionis/foundation/contracts}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/contracts/application.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/contracts/config.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/exceptions/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/exceptions/integrity.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/exceptions/runtime.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/exceptions/type.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/exceptions/value.py +0 -0
- {orionis-0.407.0/orionis/foundation/contracts → orionis-0.409.0/orionis/foundation/providers}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/providers/console_provider.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/providers/dumper_provider.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/providers/logger_provider.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/providers/path_resolver_provider.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/providers/progress_bar_provider.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/providers/testing_provider.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/foundation/providers/workers_provider.py +0 -0
- {orionis-0.407.0/orionis/foundation/providers → orionis-0.409.0/orionis/metadata}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/metadata/package.py +0 -0
- {orionis-0.407.0/orionis/metadata → orionis-0.409.0/orionis/services}/__init__.py +0 -0
- {orionis-0.407.0/orionis/services → orionis-0.409.0/orionis/services/asynchrony}/__init__.py +0 -0
- {orionis-0.407.0/orionis/services/asynchrony → orionis-0.409.0/orionis/services/asynchrony/contracts}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/services/asynchrony/contracts/coroutines.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/services/asynchrony/coroutines.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/services/asynchrony/exceptions/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/services/asynchrony/exceptions/exception.py +0 -0
- {orionis-0.407.0/orionis/services/asynchrony/contracts → orionis-0.409.0/orionis/services/environment}/__init__.py +0 -0
- {orionis-0.407.0/orionis/services/environment → orionis-0.409.0/orionis/services/environment/contracts}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/services/environment/contracts/env.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/services/environment/contracts/types.py +0 -0
- {orionis-0.407.0/orionis/services/environment/contracts → orionis-0.409.0/orionis/services/environment/core}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/services/environment/core/dot_env.py +0 -0
- {orionis-0.407.0/orionis/services/environment/core → orionis-0.409.0/orionis/services/environment/dynamic}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/services/environment/dynamic/types.py +0 -0
- {orionis-0.407.0/orionis/services/environment/dynamic → orionis-0.409.0/orionis/services/environment/enums}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/services/environment/enums/cast_type.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/services/environment/env.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/services/environment/exceptions/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/services/environment/exceptions/exception.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/services/environment/exceptions/value.py +0 -0
- {orionis-0.407.0/orionis/services/environment/enums → orionis-0.409.0/orionis/services/environment/helpers}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/services/environment/helpers/functions.py +0 -0
- {orionis-0.407.0/orionis/services/environment/helpers → orionis-0.409.0/orionis/services/environment/key}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/services/environment/key/key_generator.py +0 -0
- {orionis-0.407.0/orionis/services/environment/key → orionis-0.409.0/orionis/services/environment/serializer}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/services/environment/serializer/values.py +0 -0
- {orionis-0.407.0/orionis/services/environment/serializer → orionis-0.409.0/orionis/services/environment/validators}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/services/environment/validators/key_name.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/services/environment/validators/types.py +0 -0
- {orionis-0.407.0/orionis/services/environment/validators → orionis-0.409.0/orionis/services/introspection}/__init__.py +0 -0
- {orionis-0.407.0/orionis/services/introspection → orionis-0.409.0/orionis/services/introspection/abstract}/__init__.py +0 -0
- {orionis-0.407.0/orionis/services/introspection/abstract → orionis-0.409.0/orionis/services/introspection/abstract/contracts}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/services/introspection/abstract/contracts/reflection.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/services/introspection/abstract/reflection.py +0 -0
- {orionis-0.407.0/orionis/services/introspection/abstract/contracts → orionis-0.409.0/orionis/services/introspection/callables}/__init__.py +0 -0
- {orionis-0.407.0/orionis/services/introspection/callables → orionis-0.409.0/orionis/services/introspection/callables/contracts}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/services/introspection/callables/contracts/reflection.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/services/introspection/callables/reflection.py +0 -0
- {orionis-0.407.0/orionis/services/introspection/callables/contracts → orionis-0.409.0/orionis/services/introspection/concretes}/__init__.py +0 -0
- {orionis-0.407.0/orionis/services/introspection/concretes → orionis-0.409.0/orionis/services/introspection/concretes/contracts}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/services/introspection/concretes/contracts/concrete.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/services/introspection/concretes/reflection.py +0 -0
- {orionis-0.407.0/orionis/services/introspection/concretes/contracts → orionis-0.409.0/orionis/services/introspection/dependencies}/__init__.py +0 -0
- {orionis-0.407.0/orionis/services/introspection/dependencies → orionis-0.409.0/orionis/services/introspection/dependencies/contracts}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/services/introspection/dependencies/contracts/reflection.py +0 -0
- {orionis-0.407.0/orionis/services/introspection/dependencies/contracts → orionis-0.409.0/orionis/services/introspection/dependencies/entities}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/services/introspection/dependencies/entities/callable_dependencies.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/services/introspection/dependencies/entities/class_dependencies.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/services/introspection/dependencies/entities/known_dependencies.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/services/introspection/dependencies/entities/method_dependencies.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/services/introspection/dependencies/reflection.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/services/introspection/exceptions/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/services/introspection/exceptions/attribute.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/services/introspection/exceptions/type.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/services/introspection/exceptions/value.py +0 -0
- {orionis-0.407.0/orionis/services/introspection/dependencies/entities → orionis-0.409.0/orionis/services/introspection/instances}/__init__.py +0 -0
- {orionis-0.407.0/orionis/services/introspection/instances → orionis-0.409.0/orionis/services/introspection/instances/contracts}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/services/introspection/instances/contracts/reflection.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/services/introspection/instances/reflection.py +0 -0
- {orionis-0.407.0/orionis/services/introspection/instances/contracts → orionis-0.409.0/orionis/services/introspection/modules}/__init__.py +0 -0
- {orionis-0.407.0/orionis/services/introspection/modules → orionis-0.409.0/orionis/services/introspection/modules/contracts}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/services/introspection/modules/contracts/reflection.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/services/introspection/modules/reflection.py +0 -0
- {orionis-0.407.0/orionis/services/introspection/modules/contracts → orionis-0.409.0/orionis/services/introspection/objects}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/services/introspection/objects/types.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/services/introspection/reflection.py +0 -0
- {orionis-0.407.0/orionis/services/introspection/objects → orionis-0.409.0/orionis/services/log}/__init__.py +0 -0
- {orionis-0.407.0/orionis/services/log → orionis-0.409.0/orionis/services/log/contracts}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/services/log/exceptions/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/services/log/exceptions/runtime.py +0 -0
- {orionis-0.407.0/orionis/services/log/contracts → orionis-0.409.0/orionis/services/log/handlers}/__init__.py +0 -0
- {orionis-0.407.0/orionis/services/log/handlers → orionis-0.409.0/orionis/services/paths}/__init__.py +0 -0
- {orionis-0.407.0/orionis/services/paths → orionis-0.409.0/orionis/services/paths/contracts}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/services/paths/exceptions/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/services/paths/exceptions/exception.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/services/paths/exceptions/file.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/services/paths/resolver.py +0 -0
- {orionis-0.407.0/orionis/services/paths/contracts → orionis-0.409.0/orionis/services/system}/__init__.py +0 -0
- {orionis-0.407.0/orionis/services/system → orionis-0.409.0/orionis/services/system/contracts}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/services/system/contracts/imports.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/services/system/contracts/workers.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/services/system/imports.py +0 -0
- {orionis-0.407.0/orionis/services/system/contracts → orionis-0.409.0/orionis/services/system/runtime}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/services/system/runtime/imports.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/services/system/workers.py +0 -0
- {orionis-0.407.0/orionis/services/system/runtime → orionis-0.409.0/orionis/support}/__init__.py +0 -0
- {orionis-0.407.0/orionis/support → orionis-0.409.0/orionis/support/entities}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/support/entities/base.py +0 -0
- {orionis-0.407.0/orionis/support/entities → orionis-0.409.0/orionis/support/facades}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/support/facades/console.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/support/facades/dumper.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/support/facades/logger.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/support/facades/path_resolver.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/support/facades/progress_bar.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/support/facades/testing.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/support/facades/workers.py +0 -0
- {orionis-0.407.0/orionis/support/facades → orionis-0.409.0/orionis/support/formatter}/__init__.py +0 -0
- {orionis-0.407.0/orionis/support/formatter → orionis-0.409.0/orionis/support/formatter/exceptions}/__init__.py +0 -0
- {orionis-0.407.0/orionis/support/formatter/exceptions → orionis-0.409.0/orionis/support/formatter/exceptions/contracts}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/support/formatter/exceptions/contracts/parser.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/support/formatter/exceptions/parser.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/support/formatter/serializer.py +0 -0
- {orionis-0.407.0/orionis/support/formatter/exceptions/contracts → orionis-0.409.0/orionis/support/patterns}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/support/patterns/singleton/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/support/patterns/singleton/meta.py +0 -0
- {orionis-0.407.0/orionis/support/patterns → orionis-0.409.0/orionis/support/standard}/__init__.py +0 -0
- {orionis-0.407.0/orionis/support/standard → orionis-0.409.0/orionis/support/standard/contracts}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/support/standard/contracts/std.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/support/standard/exceptions/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/support/standard/exceptions/value.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/support/standard/std.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/support/wrapper/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/support/wrapper/dot_dict.py +0 -0
- {orionis-0.407.0/orionis/support/standard/contracts → orionis-0.409.0/orionis/test}/__init__.py +0 -0
- {orionis-0.407.0/orionis/test → orionis-0.409.0/orionis/test/cases}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/test/cases/asynchronous.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/test/cases/synchronous.py +0 -0
- {orionis-0.407.0/orionis/test/cases → orionis-0.409.0/orionis/test/contracts}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/test/contracts/dumper.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/test/contracts/kernel.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/test/contracts/logs.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/test/contracts/printer.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/test/contracts/render.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/test/contracts/test_result.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/test/contracts/unit_test.py +0 -0
- {orionis-0.407.0/orionis/test/contracts → orionis-0.409.0/orionis/test/core}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/test/core/unit_test.py +0 -0
- {orionis-0.407.0/orionis/test/core → orionis-0.409.0/orionis/test/entities}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/test/entities/result.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/test/enums/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/test/enums/status.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/test/exceptions/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/test/exceptions/config.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/test/exceptions/failure.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/test/exceptions/persistence.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/test/exceptions/runtime.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/test/exceptions/value.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/test/kernel.py +0 -0
- {orionis-0.407.0/orionis/test/entities → orionis-0.409.0/orionis/test/output}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/test/output/dumper.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/test/output/printer.py +0 -0
- {orionis-0.407.0/orionis/test/output → orionis-0.409.0/orionis/test/records}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/test/records/logs.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/test/validators/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/test/validators/base_path.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/test/validators/execution_mode.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/test/validators/fail_fast.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/test/validators/folder_path.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/test/validators/module_name.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/test/validators/name_pattern.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/test/validators/pattern.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/test/validators/persistent.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/test/validators/persistent_driver.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/test/validators/print_result.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/test/validators/tags.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/test/validators/throw_exception.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/test/validators/verbosity.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/test/validators/web_report.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/test/validators/workers.py +0 -0
- {orionis-0.407.0/orionis/test/records → orionis-0.409.0/orionis/test/view}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis/test/view/render.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis.egg-info/dependency_links.txt +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis.egg-info/requires.txt +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis.egg-info/top_level.txt +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/orionis.egg-info/zip-safe +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/setup.cfg +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/setup.py +0 -0
- {orionis-0.407.0/orionis/test/view → orionis-0.409.0/tests}/__init__.py +0 -0
- {orionis-0.407.0/tests → orionis-0.409.0/tests/container}/__init__.py +0 -0
- {orionis-0.407.0/tests/container → orionis-0.409.0/tests/container/context}/__init__.py +0 -0
- {orionis-0.407.0/tests/container/context → orionis-0.409.0/tests/container/entities}/__init__.py +0 -0
- {orionis-0.407.0/tests/container/entities → orionis-0.409.0/tests/container/enums}/__init__.py +0 -0
- {orionis-0.407.0/tests/container/enums → orionis-0.409.0/tests/container/facades}/__init__.py +0 -0
- {orionis-0.407.0/tests/container/facades → orionis-0.409.0/tests/container/mocks}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/container/mocks/mock_complex_classes.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/container/mocks/mock_simple_classes.py +0 -0
- {orionis-0.407.0/tests/container/mocks → orionis-0.409.0/tests/container/providers}/__init__.py +0 -0
- {orionis-0.407.0/tests/container/providers → orionis-0.409.0/tests/container/resolver}/__init__.py +0 -0
- {orionis-0.407.0/tests/container/resolver → orionis-0.409.0/tests/container/validators}/__init__.py +0 -0
- {orionis-0.407.0/tests/container/validators → orionis-0.409.0/tests/example}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/example/test_example.py +0 -0
- {orionis-0.407.0/tests/example → orionis-0.409.0/tests/foundation}/__init__.py +0 -0
- {orionis-0.407.0/tests/foundation → orionis-0.409.0/tests/foundation/config}/__init__.py +0 -0
- {orionis-0.407.0/tests/foundation/config → orionis-0.409.0/tests/foundation/config/app}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/foundation/config/app/test_foundation_config_app.py +0 -0
- {orionis-0.407.0/tests/foundation/config/app → orionis-0.409.0/tests/foundation/config/auth}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/foundation/config/auth/test_foundation_config_auth.py +0 -0
- {orionis-0.407.0/tests/foundation/config/auth → orionis-0.409.0/tests/foundation/config/cache}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/foundation/config/cache/test_foundation_config_cache.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/foundation/config/cache/test_foundation_config_cache_file.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/foundation/config/cache/test_foundation_config_cache_stores.py +0 -0
- {orionis-0.407.0/tests/foundation/config/cache → orionis-0.409.0/tests/foundation/config/cors}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/foundation/config/cors/test_foundation_config_cors.py +0 -0
- {orionis-0.407.0/tests/foundation/config/cors → orionis-0.409.0/tests/foundation/config/database}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/foundation/config/database/test_foundation_config_database.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/foundation/config/database/test_foundation_config_database_connections.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/foundation/config/database/test_foundation_config_database_mysql.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/foundation/config/database/test_foundation_config_database_oracle.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/foundation/config/database/test_foundation_config_database_pgsql.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/foundation/config/database/test_foundation_config_database_sqlite.py +0 -0
- {orionis-0.407.0/tests/foundation/config/database → orionis-0.409.0/tests/foundation/config/filesystems}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems_aws.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems_disks.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems_local.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems_public.py +0 -0
- {orionis-0.407.0/tests/foundation/config/filesystems → orionis-0.409.0/tests/foundation/config/logging}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/foundation/config/logging/test_foundation_config_logging.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/foundation/config/logging/test_foundation_config_logging_channels.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/foundation/config/logging/test_foundation_config_logging_chunked.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/foundation/config/logging/test_foundation_config_logging_daily.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/foundation/config/logging/test_foundation_config_logging_hourly.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/foundation/config/logging/test_foundation_config_logging_monthly.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/foundation/config/logging/test_foundation_config_logging_stack.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/foundation/config/logging/test_foundation_config_logging_weekly.py +0 -0
- {orionis-0.407.0/tests/foundation/config/logging → orionis-0.409.0/tests/foundation/config/mail}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/foundation/config/mail/test_foundation_config_mail.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/foundation/config/mail/test_foundation_config_mail_file.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/foundation/config/mail/test_foundation_config_mail_mailers.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/foundation/config/mail/test_foundation_config_mail_smtp.py +0 -0
- {orionis-0.407.0/tests/foundation/config/mail → orionis-0.409.0/tests/foundation/config/queue}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/foundation/config/queue/test_foundation_config_queue.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/foundation/config/queue/test_foundation_config_queue_brokers.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/foundation/config/queue/test_foundation_config_queue_database.py +0 -0
- {orionis-0.407.0/tests/foundation/config/queue → orionis-0.409.0/tests/foundation/config/root}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/foundation/config/root/test_foundation_config_root_paths.py +0 -0
- {orionis-0.407.0/tests/foundation/config/root → orionis-0.409.0/tests/foundation/config/session}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/foundation/config/session/test_foundation_config_session.py +0 -0
- {orionis-0.407.0/tests/foundation/config/session → orionis-0.409.0/tests/foundation/config/startup}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/foundation/config/startup/test_foundation_config_startup.py +0 -0
- {orionis-0.407.0/tests/foundation/config/startup → orionis-0.409.0/tests/foundation/config/testing}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/foundation/config/testing/test_foundation_config_testing.py +0 -0
- {orionis-0.407.0/tests/foundation/config/testing → orionis-0.409.0/tests/foundation/exceptions}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/foundation/exceptions/test_foundation_config_exceptions.py +0 -0
- {orionis-0.407.0/tests/foundation/exceptions → orionis-0.409.0/tests/metadata}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/metadata/test_metadata_framework.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/metadata/test_metadata_package.py +0 -0
- {orionis-0.407.0/tests/metadata → orionis-0.409.0/tests/services}/__init__.py +0 -0
- {orionis-0.407.0/tests/services → orionis-0.409.0/tests/services/asynchrony}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/services/asynchrony/test_services_asynchrony_coroutine.py +0 -0
- {orionis-0.407.0/tests/services/asynchrony → orionis-0.409.0/tests/services/environment}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/services/environment/test_services_environment.py +0 -0
- {orionis-0.407.0/tests/services/environment → orionis-0.409.0/tests/services/inspection}/__init__.py +0 -0
- {orionis-0.407.0/tests/services/inspection → orionis-0.409.0/tests/services/inspection/dependencies}/__init__.py +0 -0
- {orionis-0.407.0/tests/services/inspection/dependencies → orionis-0.409.0/tests/services/inspection/dependencies/mocks}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/services/inspection/dependencies/mocks/mock_user.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/services/inspection/dependencies/mocks/mock_user_controller.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/services/inspection/dependencies/mocks/mock_users_permissions.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/services/inspection/dependencies/test_reflect_dependencies.py +0 -0
- {orionis-0.407.0/tests/services/inspection/dependencies/mocks → orionis-0.409.0/tests/services/inspection/reflection}/__init__.py +0 -0
- {orionis-0.407.0/tests/services/inspection/reflection → orionis-0.409.0/tests/services/inspection/reflection/mock}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/services/inspection/reflection/mock/fake_reflect_instance.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/services/inspection/reflection/test_reflection_abstract.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/services/inspection/reflection/test_reflection_callable.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/services/inspection/reflection/test_reflection_concrete.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/services/inspection/reflection/test_reflection_instance.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/services/inspection/reflection/test_reflection_module.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/services/inspection/test_reflection.py +0 -0
- {orionis-0.407.0/tests/services/inspection/reflection/mock → orionis-0.409.0/tests/services/log}/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/services/path/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/services/path/test_services_resolver.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/services/system/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/services/system/test_services_system_imports.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/services/system/test_services_system_workers.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/support/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/support/parsers/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/support/parsers/mocks/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/support/parsers/mocks/mock_custom_error.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/support/parsers/test_services_parser_exceptions.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/support/patterns/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/support/patterns/singleton/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/support/patterns/singleton/test_patterns_singleton.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/support/standard/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/support/standard/test_services_std.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/support/wrapper/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/support/wrapper/test_services_wrapper_docdict.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/testing/__init__.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/testing/test_testing_result.py +0 -0
- {orionis-0.407.0 → orionis-0.409.0}/tests/testing/test_testing_unit.py +0 -0
|
@@ -6,15 +6,17 @@ from orionis.container.entities.binding import Binding
|
|
|
6
6
|
from orionis.container.enums.lifetimes import Lifetime
|
|
7
7
|
from orionis.container.exceptions import OrionisContainerException
|
|
8
8
|
from orionis.container.resolver.resolver import Resolver
|
|
9
|
-
from orionis.container.validators
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
9
|
+
from orionis.container.validators import (
|
|
10
|
+
ImplementsAbstractMethods,
|
|
11
|
+
IsAbstractClass,
|
|
12
|
+
IsCallable,
|
|
13
|
+
IsConcreteClass,
|
|
14
|
+
IsInstance,
|
|
15
|
+
IsNotSubclass,
|
|
16
|
+
IsSubclass,
|
|
17
|
+
IsValidAlias,
|
|
18
|
+
LifetimeValidator
|
|
19
|
+
)
|
|
18
20
|
from orionis.services.introspection.abstract.reflection import ReflectionAbstract
|
|
19
21
|
from orionis.services.introspection.callables.reflection import ReflectionCallable
|
|
20
22
|
|
|
@@ -23,7 +23,9 @@ class Lifetime(Enum):
|
|
|
23
23
|
|
|
24
24
|
# A new instance is provided every time the dependency is requested.
|
|
25
25
|
TRANSIENT = auto()
|
|
26
|
+
|
|
26
27
|
# A single shared instance is provided for the entire application lifetime.
|
|
27
28
|
SINGLETON = auto()
|
|
29
|
+
|
|
28
30
|
# An instance is provided per scope (e.g., per request or session).
|
|
29
31
|
SCOPED = auto()
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
from .implements import ImplementsAbstractMethods
|
|
2
|
+
from .is_abstract_class import IsAbstractClass
|
|
3
|
+
from .is_concrete_class import IsConcreteClass
|
|
4
|
+
from .is_instance import IsInstance
|
|
5
|
+
from .is_callable import IsCallable
|
|
6
|
+
from .is_subclass import IsSubclass
|
|
7
|
+
from .is_not_subclass import IsNotSubclass
|
|
8
|
+
from .is_valid_alias import IsValidAlias
|
|
9
|
+
from .lifetime import LifetimeValidator
|
|
10
|
+
|
|
11
|
+
__all__ = [
|
|
12
|
+
"ImplementsAbstractMethods",
|
|
13
|
+
"IsAbstractClass",
|
|
14
|
+
"IsConcreteClass",
|
|
15
|
+
"IsInstance",
|
|
16
|
+
"IsCallable",
|
|
17
|
+
"IsSubclass",
|
|
18
|
+
"IsNotSubclass",
|
|
19
|
+
"IsValidAlias",
|
|
20
|
+
"LifetimeValidator",
|
|
21
|
+
]
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
from abc import ABC, abstractmethod
|
|
2
|
+
|
|
3
|
+
class ILoggerService(ABC):
|
|
4
|
+
|
|
5
|
+
@abstractmethod
|
|
6
|
+
def info(self, message: str) -> None:
|
|
7
|
+
"""
|
|
8
|
+
Logs an informational message.
|
|
9
|
+
|
|
10
|
+
Parameters
|
|
11
|
+
----------
|
|
12
|
+
message : str
|
|
13
|
+
The message to be logged as informational.
|
|
14
|
+
|
|
15
|
+
Returns
|
|
16
|
+
-------
|
|
17
|
+
None
|
|
18
|
+
This method does not return any value.
|
|
19
|
+
"""
|
|
20
|
+
# To be implemented by subclasses
|
|
21
|
+
pass
|
|
22
|
+
|
|
23
|
+
@abstractmethod
|
|
24
|
+
def error(self, message: str) -> None:
|
|
25
|
+
"""
|
|
26
|
+
Logs an error message.
|
|
27
|
+
|
|
28
|
+
Parameters
|
|
29
|
+
----------
|
|
30
|
+
message : str
|
|
31
|
+
The message to be logged as an error.
|
|
32
|
+
|
|
33
|
+
Returns
|
|
34
|
+
-------
|
|
35
|
+
None
|
|
36
|
+
This method does not return any value.
|
|
37
|
+
"""
|
|
38
|
+
# To be implemented by subclasses
|
|
39
|
+
pass
|
|
40
|
+
|
|
41
|
+
@abstractmethod
|
|
42
|
+
def warning(self, message: str) -> None:
|
|
43
|
+
"""
|
|
44
|
+
Logs a warning message.
|
|
45
|
+
|
|
46
|
+
Parameters
|
|
47
|
+
----------
|
|
48
|
+
message : str
|
|
49
|
+
The message to be logged as a warning.
|
|
50
|
+
|
|
51
|
+
Returns
|
|
52
|
+
-------
|
|
53
|
+
None
|
|
54
|
+
This method does not return any value.
|
|
55
|
+
"""
|
|
56
|
+
# To be implemented by subclasses
|
|
57
|
+
pass
|
|
58
|
+
|
|
59
|
+
@abstractmethod
|
|
60
|
+
def debug(self, message: str) -> None:
|
|
61
|
+
"""
|
|
62
|
+
Logs a debug message.
|
|
63
|
+
|
|
64
|
+
Parameters
|
|
65
|
+
----------
|
|
66
|
+
message : str
|
|
67
|
+
The message to be logged for debugging purposes.
|
|
68
|
+
|
|
69
|
+
Returns
|
|
70
|
+
-------
|
|
71
|
+
None
|
|
72
|
+
This method does not return any value.
|
|
73
|
+
"""
|
|
74
|
+
# To be implemented by subclasses
|
|
75
|
+
pass
|
|
@@ -12,19 +12,27 @@ class FileNameLogger:
|
|
|
12
12
|
----------
|
|
13
13
|
path : str
|
|
14
14
|
The original file path for the log file.
|
|
15
|
-
"""
|
|
16
15
|
|
|
17
|
-
|
|
16
|
+
Raises
|
|
17
|
+
------
|
|
18
|
+
ValueError
|
|
19
|
+
If the provided path is not a non-empty string.
|
|
20
|
+
"""
|
|
21
|
+
# Validate that the path is a non-empty string
|
|
18
22
|
if not isinstance(path, str) or not path:
|
|
19
23
|
raise ValueError("The 'path' parameter must be a non-empty string.")
|
|
20
24
|
|
|
21
|
-
#
|
|
25
|
+
# Store the stripped path as a private instance variable
|
|
22
26
|
self.__path = path.strip()
|
|
23
27
|
|
|
24
28
|
def generate(self) -> str:
|
|
25
29
|
"""
|
|
26
30
|
Generate a new log file path with a timestamp prefix.
|
|
27
31
|
|
|
32
|
+
The method constructs a new file path by prefixing the original file name
|
|
33
|
+
with a timestamp in the format 'YYYYMMDD_HHMMSS'. It also ensures that the
|
|
34
|
+
directory for the log file exists, creating it if necessary.
|
|
35
|
+
|
|
28
36
|
Returns
|
|
29
37
|
-------
|
|
30
38
|
str
|
|
@@ -32,10 +40,10 @@ class FileNameLogger:
|
|
|
32
40
|
|
|
33
41
|
Notes
|
|
34
42
|
-----
|
|
35
|
-
The
|
|
43
|
+
- The timestamp is generated using the current date and time.
|
|
44
|
+
- The directory for the log file is created if it does not exist.
|
|
36
45
|
"""
|
|
37
|
-
|
|
38
|
-
# Split the original path to extract the base name and extension
|
|
46
|
+
# Split the original path into components based on the separator
|
|
39
47
|
if '/' in self.__path:
|
|
40
48
|
parts = self.__path.split('/')
|
|
41
49
|
elif '\\' in self.__path:
|
|
@@ -43,22 +51,22 @@ class FileNameLogger:
|
|
|
43
51
|
else:
|
|
44
52
|
parts = self.__path.split(os.sep)
|
|
45
53
|
|
|
46
|
-
#
|
|
54
|
+
# Extract the base file name and its extension
|
|
47
55
|
filename, ext = os.path.splitext(parts[-1])
|
|
48
56
|
|
|
49
|
-
#
|
|
57
|
+
# Reconstruct the directory path (excluding the file name)
|
|
50
58
|
path = os.path.join(*parts[:-1]) if len(parts) > 1 else ''
|
|
51
59
|
|
|
52
|
-
#
|
|
60
|
+
# Generate a timestamp prefix for the file name
|
|
53
61
|
prefix = datetime.now().strftime("%Y%m%d_%H%M%S")
|
|
54
62
|
|
|
55
|
-
#
|
|
63
|
+
# Build the full file path with the timestamped file name
|
|
56
64
|
full_path = os.path.join(path, f"{prefix}_{filename}{ext}")
|
|
57
65
|
|
|
58
|
-
# Ensure the log directory exists
|
|
66
|
+
# Ensure the log directory exists; create it if it does not
|
|
59
67
|
log_dir = Path(full_path).parent
|
|
60
68
|
if not log_dir.exists():
|
|
61
69
|
log_dir.mkdir(parents=True, exist_ok=True)
|
|
62
70
|
|
|
63
|
-
# Return the full path
|
|
71
|
+
# Return the full path to the timestamped log file
|
|
64
72
|
return full_path
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
from logging.handlers import RotatingFileHandler
|
|
2
|
+
from orionis.services.log.handlers.filename import FileNameLogger
|
|
3
|
+
|
|
4
|
+
class PrefixedSizeRotatingFileHandler(RotatingFileHandler):
|
|
5
|
+
|
|
6
|
+
def rotation_filename(self, default_name) -> str:
|
|
7
|
+
"""
|
|
8
|
+
Generates a rotated log filename by prefixing the original filename with a timestamp.
|
|
9
|
+
|
|
10
|
+
Parameters
|
|
11
|
+
----------
|
|
12
|
+
default_name : str
|
|
13
|
+
The original file path that is subject to rotation.
|
|
14
|
+
|
|
15
|
+
Returns
|
|
16
|
+
-------
|
|
17
|
+
str
|
|
18
|
+
The new file path as a string, where the base name is prefixed with a timestamp
|
|
19
|
+
in the format 'YYYYMMDD_HHMMSS'. This ensures uniqueness and chronological ordering
|
|
20
|
+
of rotated log files.
|
|
21
|
+
|
|
22
|
+
Notes
|
|
23
|
+
-----
|
|
24
|
+
This method utilizes the FileNameLogger class to construct the prefixed filename.
|
|
25
|
+
The timestamp prefix helps in identifying the creation time of each rotated log file.
|
|
26
|
+
"""
|
|
27
|
+
|
|
28
|
+
# Generate the new filename using FileNameLogger, which adds a timestamp prefix.
|
|
29
|
+
return FileNameLogger(default_name).generate()
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
from logging.handlers import TimedRotatingFileHandler
|
|
2
|
+
from orionis.services.log.handlers.filename import FileNameLogger
|
|
3
|
+
|
|
4
|
+
class PrefixedTimedRotatingFileHandler(TimedRotatingFileHandler):
|
|
5
|
+
|
|
6
|
+
def rotation_filename(self, default_name) -> str:
|
|
7
|
+
"""
|
|
8
|
+
Generates a rotated log filename by prefixing the original filename with a timestamp.
|
|
9
|
+
|
|
10
|
+
Parameters
|
|
11
|
+
----------
|
|
12
|
+
default_name : str
|
|
13
|
+
The original file path that is subject to rotation.
|
|
14
|
+
|
|
15
|
+
Returns
|
|
16
|
+
-------
|
|
17
|
+
str
|
|
18
|
+
The new file path as a string, where the base name is prefixed with a timestamp
|
|
19
|
+
in the format 'YYYYMMDD_HHMMSS'. This ensures each rotated log file is uniquely
|
|
20
|
+
identified by its creation time.
|
|
21
|
+
|
|
22
|
+
Notes
|
|
23
|
+
-----
|
|
24
|
+
This method utilizes the FileNameLogger class to construct the new filename.
|
|
25
|
+
The timestamp prefix helps in organizing and distinguishing rotated log files.
|
|
26
|
+
"""
|
|
27
|
+
|
|
28
|
+
# Use FileNameLogger to generate a new filename with a timestamp prefix
|
|
29
|
+
return FileNameLogger(default_name).generate()
|
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
from orionis.foundation.config.logging.entities.logging import Logging
|
|
2
|
+
from orionis.foundation.config.logging.enums import Level
|
|
3
|
+
from orionis.services.log.contracts.log_service import ILoggerService
|
|
4
|
+
from orionis.services.log.exceptions import LoggerRuntimeError
|
|
5
|
+
from orionis.services.log.handlers.filename import FileNameLogger
|
|
6
|
+
from orionis.services.log.handlers.size_rotating import PrefixedSizeRotatingFileHandler
|
|
7
|
+
from orionis.services.log.handlers.timed_rotating import PrefixedTimedRotatingFileHandler
|
|
8
|
+
|
|
9
|
+
class LoggerService(ILoggerService):
|
|
10
|
+
|
|
11
|
+
def __init__(
|
|
12
|
+
self,
|
|
13
|
+
config: Logging | dict = None,
|
|
14
|
+
**kwargs
|
|
15
|
+
):
|
|
16
|
+
"""
|
|
17
|
+
Initializes the LoggerService instance with the provided logging configuration.
|
|
18
|
+
|
|
19
|
+
This constructor sets up the logger configuration using either a `Logging` object,
|
|
20
|
+
a configuration dictionary, or keyword arguments. It validates the input and
|
|
21
|
+
ensures that the configuration is properly instantiated before initializing
|
|
22
|
+
the logger. If no configuration is provided, it attempts to create one using
|
|
23
|
+
the supplied keyword arguments.
|
|
24
|
+
|
|
25
|
+
Parameters
|
|
26
|
+
----------
|
|
27
|
+
config : Logging or dict, optional
|
|
28
|
+
The logging configuration. Can be an instance of the `Logging` class,
|
|
29
|
+
a dictionary containing configuration parameters, or None. If None,
|
|
30
|
+
configuration is initialized using `kwargs`.
|
|
31
|
+
**kwargs
|
|
32
|
+
Additional keyword arguments used to initialize the `Logging` configuration
|
|
33
|
+
if `config` is None.
|
|
34
|
+
|
|
35
|
+
Returns
|
|
36
|
+
-------
|
|
37
|
+
None
|
|
38
|
+
This method does not return any value. It sets up the logger service instance.
|
|
39
|
+
|
|
40
|
+
Raises
|
|
41
|
+
------
|
|
42
|
+
LoggerRuntimeError
|
|
43
|
+
If the logger configuration cannot be initialized from the provided arguments,
|
|
44
|
+
such as invalid types or missing required parameters.
|
|
45
|
+
"""
|
|
46
|
+
|
|
47
|
+
# Initialize private attributes for logger and configuration
|
|
48
|
+
self.__logger = None
|
|
49
|
+
self.__config = None
|
|
50
|
+
|
|
51
|
+
# If no configuration is provided, attempt to create one using kwargs
|
|
52
|
+
if config is None:
|
|
53
|
+
try:
|
|
54
|
+
self.__config = Logging(**kwargs)
|
|
55
|
+
except Exception as e:
|
|
56
|
+
# Raise a runtime error if configuration initialization fails
|
|
57
|
+
raise LoggerRuntimeError(
|
|
58
|
+
f"Error initializing logger configuration: {e}. "
|
|
59
|
+
"Please check the provided parameters. "
|
|
60
|
+
f"Expected a Logging dataclass or a configuration dictionary. "
|
|
61
|
+
f"Type received: {type(config).__module__}.{type(config).__name__}. "
|
|
62
|
+
f"Expected: {Logging.__module__}.{Logging.__name__} or dict."
|
|
63
|
+
)
|
|
64
|
+
|
|
65
|
+
# If config is a dictionary, convert it to a Logging instance
|
|
66
|
+
elif isinstance(config, dict):
|
|
67
|
+
self.__config = Logging(**config)
|
|
68
|
+
|
|
69
|
+
# If config is already a Logging instance, use it directly
|
|
70
|
+
elif isinstance(config, Logging):
|
|
71
|
+
self.__config = config
|
|
72
|
+
|
|
73
|
+
# Initialize the logger using the validated configuration
|
|
74
|
+
self.__initLogger()
|
|
75
|
+
|
|
76
|
+
def __initLogger(self):
|
|
77
|
+
"""
|
|
78
|
+
Initializes and configures the logger instance based on the provided settings.
|
|
79
|
+
|
|
80
|
+
This method sets up the logger to write logs to a file, using different handlers
|
|
81
|
+
depending on the logging channel type (e.g., stack, hourly, daily, weekly, monthly, chunked).
|
|
82
|
+
It ensures the log format includes a timestamp, log level, and message. If the specified
|
|
83
|
+
log directory does not exist, it is created automatically. The logger's level and retention
|
|
84
|
+
policies are determined by the configuration.
|
|
85
|
+
|
|
86
|
+
Parameters
|
|
87
|
+
----------
|
|
88
|
+
None
|
|
89
|
+
|
|
90
|
+
Returns
|
|
91
|
+
-------
|
|
92
|
+
None
|
|
93
|
+
This method does not return any value. It sets up the logger instance as an attribute.
|
|
94
|
+
|
|
95
|
+
Raises
|
|
96
|
+
------
|
|
97
|
+
LoggerRuntimeError
|
|
98
|
+
If the logger cannot be initialized due to an error in configuration or handler setup.
|
|
99
|
+
"""
|
|
100
|
+
import logging
|
|
101
|
+
from datetime import datetime
|
|
102
|
+
|
|
103
|
+
try:
|
|
104
|
+
# List to hold the logging handlers
|
|
105
|
+
handlers = []
|
|
106
|
+
|
|
107
|
+
# Retrieve the default logging channel from configuration
|
|
108
|
+
channel: str = self.__config.default
|
|
109
|
+
|
|
110
|
+
# Get the configuration object for the selected channel
|
|
111
|
+
config_channels = getattr(self.__config.channels, channel)
|
|
112
|
+
|
|
113
|
+
# Generate the log file path using the FileNameLogger utility
|
|
114
|
+
path: str = FileNameLogger(getattr(config_channels, 'path')).generate()
|
|
115
|
+
|
|
116
|
+
# Determine the logging level (default to DEBUG if not specified)
|
|
117
|
+
level: Level | int = getattr(config_channels, 'level', 10)
|
|
118
|
+
level = level if isinstance(level, int) else level.value
|
|
119
|
+
|
|
120
|
+
# Select and configure the appropriate handler based on the channel type
|
|
121
|
+
if channel == "stack":
|
|
122
|
+
# Simple file handler for stack channel
|
|
123
|
+
handlers = [
|
|
124
|
+
logging.FileHandler(
|
|
125
|
+
filename=path,
|
|
126
|
+
encoding="utf-8"
|
|
127
|
+
)
|
|
128
|
+
]
|
|
129
|
+
|
|
130
|
+
elif channel == "hourly":
|
|
131
|
+
# Rotating file handler for hourly logs
|
|
132
|
+
handlers = [
|
|
133
|
+
PrefixedTimedRotatingFileHandler(
|
|
134
|
+
filename=path,
|
|
135
|
+
when="h",
|
|
136
|
+
interval=1,
|
|
137
|
+
backupCount=getattr(config_channels, 'retention_hours', 24),
|
|
138
|
+
encoding="utf-8",
|
|
139
|
+
utc=False
|
|
140
|
+
)
|
|
141
|
+
]
|
|
142
|
+
|
|
143
|
+
elif channel == "daily":
|
|
144
|
+
# Rotating file handler for daily logs
|
|
145
|
+
handlers = [
|
|
146
|
+
PrefixedTimedRotatingFileHandler(
|
|
147
|
+
filename=path,
|
|
148
|
+
when="d",
|
|
149
|
+
interval=1,
|
|
150
|
+
backupCount=getattr(config_channels, 'retention_days', 7),
|
|
151
|
+
encoding="utf-8",
|
|
152
|
+
atTime=datetime.strptime(getattr(config_channels, 'at', "00:00"), "%H:%M").time(),
|
|
153
|
+
utc=False
|
|
154
|
+
)
|
|
155
|
+
]
|
|
156
|
+
|
|
157
|
+
elif channel == "weekly":
|
|
158
|
+
# Rotating file handler for weekly logs
|
|
159
|
+
handlers = [
|
|
160
|
+
PrefixedTimedRotatingFileHandler(
|
|
161
|
+
filename=path,
|
|
162
|
+
when="w0",
|
|
163
|
+
interval=1,
|
|
164
|
+
backupCount=getattr(config_channels, 'retention_weeks', 4),
|
|
165
|
+
encoding="utf-8",
|
|
166
|
+
utc=False
|
|
167
|
+
)
|
|
168
|
+
]
|
|
169
|
+
|
|
170
|
+
elif channel == "monthly":
|
|
171
|
+
# Rotating file handler for monthly logs
|
|
172
|
+
handlers = [
|
|
173
|
+
PrefixedTimedRotatingFileHandler(
|
|
174
|
+
filename=path,
|
|
175
|
+
when="midnight",
|
|
176
|
+
interval=30,
|
|
177
|
+
backupCount=getattr(config_channels, 'retention_months', 4),
|
|
178
|
+
encoding="utf-8",
|
|
179
|
+
utc=False
|
|
180
|
+
)
|
|
181
|
+
]
|
|
182
|
+
|
|
183
|
+
elif channel == "chunked":
|
|
184
|
+
# Size-based rotating file handler for chunked logs
|
|
185
|
+
handlers = [
|
|
186
|
+
PrefixedSizeRotatingFileHandler(
|
|
187
|
+
filename=path,
|
|
188
|
+
maxBytes=getattr(config_channels, 'mb_size', 10) * 1024 * 1024,
|
|
189
|
+
backupCount=getattr(config_channels, 'files', 5),
|
|
190
|
+
encoding="utf-8"
|
|
191
|
+
)
|
|
192
|
+
]
|
|
193
|
+
|
|
194
|
+
# Configure the logger with the selected handlers and formatting
|
|
195
|
+
logging.basicConfig(
|
|
196
|
+
level=level,
|
|
197
|
+
format="%(asctime)s [%(levelname)s] - %(message)s",
|
|
198
|
+
datefmt="%Y-%m-%d %H:%M:%S",
|
|
199
|
+
encoding="utf-8",
|
|
200
|
+
handlers=handlers
|
|
201
|
+
)
|
|
202
|
+
|
|
203
|
+
# Store the logger instance as a private attribute
|
|
204
|
+
self.__logger = logging.getLogger(__name__)
|
|
205
|
+
|
|
206
|
+
except Exception as e:
|
|
207
|
+
# Raise a runtime error if logger initialization fails
|
|
208
|
+
raise LoggerRuntimeError(f"Failed to initialize logger: {e}")
|
|
209
|
+
|
|
210
|
+
def info(self, message: str) -> None:
|
|
211
|
+
"""
|
|
212
|
+
Logs an informational message to the configured logger.
|
|
213
|
+
|
|
214
|
+
This method records informational messages that highlight the progress or state
|
|
215
|
+
of the application at a coarse-grained level. The message is stripped of leading
|
|
216
|
+
and trailing whitespace before being logged.
|
|
217
|
+
|
|
218
|
+
Parameters
|
|
219
|
+
----------
|
|
220
|
+
message : str
|
|
221
|
+
The informational message to log.
|
|
222
|
+
|
|
223
|
+
Returns
|
|
224
|
+
-------
|
|
225
|
+
None
|
|
226
|
+
This method does not return any value.
|
|
227
|
+
"""
|
|
228
|
+
|
|
229
|
+
# Log the informational message after stripping whitespace
|
|
230
|
+
self.__logger.info(message.strip())
|
|
231
|
+
|
|
232
|
+
def error(self, message: str) -> None:
|
|
233
|
+
"""
|
|
234
|
+
Logs an error-level message to the configured logger.
|
|
235
|
+
|
|
236
|
+
This method records error messages that indicate serious issues or failures
|
|
237
|
+
within the application. The message is stripped of leading and trailing
|
|
238
|
+
whitespace before being logged.
|
|
239
|
+
|
|
240
|
+
Parameters
|
|
241
|
+
----------
|
|
242
|
+
message : str
|
|
243
|
+
The error message to log.
|
|
244
|
+
|
|
245
|
+
Returns
|
|
246
|
+
-------
|
|
247
|
+
None
|
|
248
|
+
This method does not return any value.
|
|
249
|
+
"""
|
|
250
|
+
|
|
251
|
+
# Log the error message after stripping whitespace
|
|
252
|
+
self.__logger.error(message.strip())
|
|
253
|
+
|
|
254
|
+
def warning(self, message: str) -> None:
|
|
255
|
+
"""
|
|
256
|
+
Log a warning-level message to the configured logger.
|
|
257
|
+
|
|
258
|
+
This method records warning messages that indicate potential issues or
|
|
259
|
+
unexpected situations in the application. The message is stripped of
|
|
260
|
+
leading and trailing whitespace before being logged.
|
|
261
|
+
|
|
262
|
+
Parameters
|
|
263
|
+
----------
|
|
264
|
+
message : str
|
|
265
|
+
The warning message to log.
|
|
266
|
+
|
|
267
|
+
Returns
|
|
268
|
+
-------
|
|
269
|
+
None
|
|
270
|
+
This method does not return any value.
|
|
271
|
+
"""
|
|
272
|
+
|
|
273
|
+
# Log the warning message after stripping whitespace
|
|
274
|
+
self.__logger.warning(message.strip())
|
|
275
|
+
|
|
276
|
+
def debug(self, message: str) -> None:
|
|
277
|
+
"""
|
|
278
|
+
Logs a debug-level message to the configured logger.
|
|
279
|
+
|
|
280
|
+
This method records diagnostic messages that are useful for debugging
|
|
281
|
+
and development purposes. The message is stripped of leading and trailing
|
|
282
|
+
whitespace before being logged.
|
|
283
|
+
|
|
284
|
+
Parameters
|
|
285
|
+
----------
|
|
286
|
+
message : str
|
|
287
|
+
The debug message to be logged.
|
|
288
|
+
|
|
289
|
+
Returns
|
|
290
|
+
-------
|
|
291
|
+
None
|
|
292
|
+
This method does not return any value.
|
|
293
|
+
"""
|
|
294
|
+
|
|
295
|
+
# Log the debug message after stripping whitespace
|
|
296
|
+
self.__logger.debug(message.strip())
|
|
@@ -548,6 +548,8 @@ tests/services/inspection/reflection/test_reflection_instance.py
|
|
|
548
548
|
tests/services/inspection/reflection/test_reflection_module.py
|
|
549
549
|
tests/services/inspection/reflection/mock/__init__.py
|
|
550
550
|
tests/services/inspection/reflection/mock/fake_reflect_instance.py
|
|
551
|
+
tests/services/log/__init__.py
|
|
552
|
+
tests/services/log/test_log.py
|
|
551
553
|
tests/services/path/__init__.py
|
|
552
554
|
tests/services/path/test_services_resolver.py
|
|
553
555
|
tests/services/system/__init__.py
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
from orionis.container.context.manager import ScopeManager
|
|
2
|
+
from orionis.test.cases.asynchronous import AsyncTestCase
|
|
3
|
+
|
|
4
|
+
class TestScopeManagerMethods(AsyncTestCase):
|
|
5
|
+
|
|
6
|
+
def testMethodsExist(self):
|
|
7
|
+
"""
|
|
8
|
+
Checks that all required methods are present in the ScopeManager class.
|
|
9
|
+
|
|
10
|
+
This test verifies the existence of a predefined list of methods that are
|
|
11
|
+
essential for the correct functioning of ScopeManager. The methods checked
|
|
12
|
+
include initialization, item access, containment, clearing, and context
|
|
13
|
+
management methods.
|
|
14
|
+
|
|
15
|
+
Returns
|
|
16
|
+
-------
|
|
17
|
+
None
|
|
18
|
+
This method does not return any value. It asserts the existence of methods
|
|
19
|
+
and fails the test if any are missing.
|
|
20
|
+
"""
|
|
21
|
+
# List of expected method names in ScopeManager
|
|
22
|
+
expected_methods = [
|
|
23
|
+
"__init__",
|
|
24
|
+
"__getitem__",
|
|
25
|
+
"__setitem__",
|
|
26
|
+
"__contains__",
|
|
27
|
+
"clear",
|
|
28
|
+
"__enter__",
|
|
29
|
+
"__exit__"
|
|
30
|
+
]
|
|
31
|
+
|
|
32
|
+
# Check each method for existence in ScopeManager
|
|
33
|
+
for method in expected_methods:
|
|
34
|
+
self.assertTrue(
|
|
35
|
+
hasattr(ScopeManager, method), # Assert method exists
|
|
36
|
+
f"Method '{method}' does not exist in ScopeManager class."
|
|
37
|
+
)
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
from orionis.container.context.scope import ScopedContext
|
|
2
|
+
from orionis.test.cases.asynchronous import AsyncTestCase
|
|
3
|
+
|
|
4
|
+
class TestScopedContextMethods(AsyncTestCase):
|
|
5
|
+
|
|
6
|
+
def testMethodsExist(self):
|
|
7
|
+
"""
|
|
8
|
+
Checks that all required methods are present in the ScopedContext class.
|
|
9
|
+
|
|
10
|
+
This test verifies the existence of specific methods that are essential for the correct
|
|
11
|
+
operation of ScopedContext. It ensures that the class interface is complete and that
|
|
12
|
+
method names have not been changed or removed.
|
|
13
|
+
|
|
14
|
+
Returns
|
|
15
|
+
-------
|
|
16
|
+
None
|
|
17
|
+
This method does not return anything. It asserts the existence of methods and fails the test if any are missing.
|
|
18
|
+
"""
|
|
19
|
+
# List of method names expected to be present in ScopedContext
|
|
20
|
+
expected_methods = [
|
|
21
|
+
"getCurrentScope",
|
|
22
|
+
"setCurrentScope",
|
|
23
|
+
"clear"
|
|
24
|
+
]
|
|
25
|
+
|
|
26
|
+
# Iterate through each expected method and assert its existence
|
|
27
|
+
for method in expected_methods:
|
|
28
|
+
self.assertTrue(
|
|
29
|
+
hasattr(ScopedContext, method),
|
|
30
|
+
f"Method '{method}' does not exist in ScopedContext class."
|
|
31
|
+
)
|