orionis 0.400.0__tar.gz → 0.402.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.400.0/orionis.egg-info → orionis-0.402.0}/PKG-INFO +1 -1
- {orionis-0.400.0 → orionis-0.402.0}/orionis/console/output/console.py +26 -26
- {orionis-0.400.0 → orionis-0.402.0}/orionis/container/providers/service_provider.py +4 -4
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/application.py +4 -2
- orionis-0.402.0/orionis/foundation/config/base.py +112 -0
- orionis-0.402.0/orionis/foundation/config/logging/entities/channels.py +155 -0
- orionis-0.402.0/orionis/foundation/config/logging/entities/chunked.py +95 -0
- orionis-0.402.0/orionis/foundation/config/logging/entities/daily.py +97 -0
- orionis-0.402.0/orionis/foundation/config/logging/entities/hourly.py +67 -0
- orionis-0.402.0/orionis/foundation/config/logging/entities/logging.py +72 -0
- orionis-0.402.0/orionis/foundation/config/logging/entities/monthly.py +66 -0
- orionis-0.402.0/orionis/foundation/config/logging/entities/stack.py +40 -0
- orionis-0.402.0/orionis/foundation/config/logging/entities/weekly.py +68 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/logging/enums/levels.py +6 -7
- orionis-0.402.0/orionis/foundation/config/logging/validators/__init__.py +7 -0
- orionis-0.402.0/orionis/foundation/config/logging/validators/level.py +54 -0
- orionis-0.402.0/orionis/foundation/config/logging/validators/path.py +34 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/providers/console_provider.py +0 -4
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/providers/dumper_provider.py +0 -4
- orionis-0.402.0/orionis/foundation/providers/logger_provider.py +17 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/providers/path_resolver_provider.py +0 -4
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/providers/progress_bar_provider.py +0 -4
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/providers/workers_provider.py +0 -4
- {orionis-0.400.0 → orionis-0.402.0}/orionis/metadata/framework.py +1 -1
- orionis-0.402.0/orionis/services/log/contracts/log_service.py +23 -0
- orionis-0.402.0/orionis/services/log/exceptions/__init__.py +5 -0
- orionis-0.402.0/orionis/services/log/exceptions/runtime.py +19 -0
- orionis-0.402.0/orionis/services/log/handlers/size_rotating.py +52 -0
- orionis-0.402.0/orionis/services/log/handlers/timed_rotating.py +53 -0
- orionis-0.402.0/orionis/services/log/log_service.py +289 -0
- orionis-0.402.0/orionis/support/facades/logger.py +15 -0
- {orionis-0.400.0 → orionis-0.402.0/orionis.egg-info}/PKG-INFO +1 -1
- {orionis-0.400.0 → orionis-0.402.0}/orionis.egg-info/SOURCES.txt +13 -0
- orionis-0.402.0/tests/support/wrapper/__init__.py +0 -0
- orionis-0.402.0/tests/testing/__init__.py +0 -0
- orionis-0.400.0/orionis/foundation/config/logging/entities/channels.py +0 -137
- orionis-0.400.0/orionis/foundation/config/logging/entities/chunked.py +0 -150
- orionis-0.400.0/orionis/foundation/config/logging/entities/daily.py +0 -135
- orionis-0.400.0/orionis/foundation/config/logging/entities/hourly.py +0 -122
- orionis-0.400.0/orionis/foundation/config/logging/entities/logging.py +0 -73
- orionis-0.400.0/orionis/foundation/config/logging/entities/monthly.py +0 -122
- orionis-0.400.0/orionis/foundation/config/logging/entities/stack.py +0 -96
- orionis-0.400.0/orionis/foundation/config/logging/entities/weekly.py +0 -124
- orionis-0.400.0/orionis/services/log/log_service.py +0 -244
- {orionis-0.400.0 → orionis-0.402.0}/LICENCE +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/MANIFEST.in +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/README.md +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_console/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_console/base/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_console/base/command.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_console/command_filter.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_console/commands/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_console/commands/cache_clear.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_console/commands/help.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_console/commands/schedule_work.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_console/commands/version.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_console/dumper/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_console/dumper/dump_die.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_console/exceptions/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_console/exceptions/cli-orionis-value-error.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_console/exceptions/cli_exception.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_console/exceptions/cli_runtime_error.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_console/exceptions/cli_schedule_exception.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_console/kernel.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_console/output/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_console/output/console.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_console/output/executor.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_console/output/progress_bar.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_console/parser.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_contracts/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_contracts/application.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_contracts/config/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_contracts/config/config.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_contracts/console/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_contracts/console/base/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_contracts/console/base/command.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_contracts/console/command_filter.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_contracts/console/kernel.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_contracts/console/output/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_contracts/console/output/console.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_contracts/console/output/executor.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_contracts/console/parser.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_contracts/console/task_manager.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_contracts/facades/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_contracts/facades/commands/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_contracts/facades/commands/commands_facade.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_contracts/facades/commands/scheduler_facade.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_contracts/facades/config/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_contracts/facades/config/config_facade.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_contracts/facades/environment/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_contracts/facades/environment/environment_facade.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_contracts/facades/facade.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_contracts/facades/files/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_contracts/facades/files/path_facade.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_contracts/facades/log/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_contracts/facades/log/log_facade.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_contracts/facades/tests/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_contracts/facades/tests/tests_facade.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_contracts/foundation/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_contracts/foundation/bootstraper.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_contracts/foundation/config/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_contracts/foundation/config/config_bootstrapper.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_contracts/foundation/console/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_contracts/foundation/console/command_bootstrapper.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_contracts/foundation/environment/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_contracts/foundation/environment/environment_bootstrapper.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_contracts/foundation/providers/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_contracts/foundation/providers/service_providers_bootstrapper.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_contracts/providers/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_contracts/providers/service_provider.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_contracts/services/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_contracts/services/commands/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_contracts/services/commands/reactor_commands_service.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_contracts/services/commands/schedule_service.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_contracts/services/config/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_contracts/services/config/config_service.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_contracts/services/environment/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_contracts/services/environment/environment_service.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_contracts/services/files/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_contracts/services/files/path_resolver_service.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_contracts/services/log/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_contracts/services/log/log_service.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_contracts/support/exception_parse.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_contracts/support/reflection.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_foundation/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_foundation/console/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_foundation/console/command_bootstrapper.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_foundation/environment/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_foundation/environment/environment_bootstrapper.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_foundation/exceptions/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_foundation/exceptions/exception_bootstrapper.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_foundation/exceptions/exception_providers.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_foundation/foundation/config/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_foundation/foundation/config/config_bootstrapper.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_foundation/providers/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_foundation/providers/service_providers_bootstrapper.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_services/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_services/commands/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_services/commands/reactor_commands_service.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_services/commands/scheduler_service.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_services/config/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/_services/config/config_service.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/console/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/console/base/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/console/base/command.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/console/dumper/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/console/dumper/contracts/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/console/dumper/contracts/dump.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/console/dumper/dump.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/console/dynamic/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/console/dynamic/contracts/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/console/dynamic/contracts/progress_bar.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/console/dynamic/progress_bar.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/console/output/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/console/output/contracts/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/console/output/contracts/console.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/console/output/enums/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/console/output/enums/styles.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/container/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/container/container.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/container/context/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/container/context/manager.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/container/context/scope.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/container/contracts/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/container/contracts/container.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/container/contracts/resolver.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/container/contracts/service_provider.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/container/entities/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/container/entities/binding.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/container/enums/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/container/enums/lifetimes.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/container/exceptions/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/container/exceptions/attribute.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/container/exceptions/exception.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/container/exceptions/type.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/container/exceptions/value.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/container/facades/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/container/facades/facade.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/container/providers/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/container/resolver/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/container/resolver/resolver.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/container/validators/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/container/validators/implements.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/container/validators/is_abstract_class.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/container/validators/is_callable.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/container/validators/is_concrete_class.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/container/validators/is_instance.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/container/validators/is_not_subclass.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/container/validators/is_subclass.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/container/validators/is_valid_alias.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/container/validators/lifetime.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/app/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/app/entities/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/app/entities/app.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/app/enums/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/app/enums/ciphers.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/app/enums/environments.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/auth/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/auth/entities/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/auth/entities/auth.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/cache/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/cache/entities/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/cache/entities/cache.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/cache/entities/file.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/cache/entities/stores.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/cache/enums/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/cache/enums/drivers.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/cors/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/cors/entities/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/cors/entities/cors.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/database/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/database/entities/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/database/entities/connections.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/database/entities/database.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/database/entities/mysql.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/database/entities/oracle.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/database/entities/pgsql.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/database/entities/sqlite.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/database/enums/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/database/enums/mysql_charsets.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/database/enums/mysql_collations.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/database/enums/mysql_engine.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/database/enums/oracle_encoding.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/database/enums/oracle_nencoding.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/database/enums/pgsql_charsets.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/database/enums/pgsql_collations.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/database/enums/pgsql_mode.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/database/enums/sqlite_foreign_key.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/database/enums/sqlite_journal.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/database/enums/sqlite_synchronous.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/filesystems/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/filesystems/entitites/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/filesystems/entitites/aws.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/filesystems/entitites/disks.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/filesystems/entitites/filesystems.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/filesystems/entitites/local.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/filesystems/entitites/public.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/logging/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/logging/entities/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/logging/enums/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/mail/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/mail/entities/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/mail/entities/file.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/mail/entities/mail.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/mail/entities/mailers.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/mail/entities/smtp.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/queue/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/queue/entities/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/queue/entities/brokers.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/queue/entities/database.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/queue/entities/queue.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/queue/enums/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/queue/enums/strategy.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/roots/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/roots/paths.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/session/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/session/entities/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/session/entities/session.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/session/enums/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/session/enums/same_site_policy.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/session/helpers/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/session/helpers/secret_key.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/startup.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/testing/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/testing/entities/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/testing/entities/testing.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/testing/enums/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/config/testing/enums/test_mode.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/contracts/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/contracts/application.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/contracts/config.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/exceptions/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/exceptions/integrity.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/exceptions/runtime.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/exceptions/type.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/exceptions/value.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/foundation/providers/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/metadata/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/metadata/package.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/asynchrony/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/asynchrony/contracts/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/asynchrony/contracts/coroutines.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/asynchrony/coroutines.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/asynchrony/exceptions/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/asynchrony/exceptions/exception.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/environment/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/environment/contracts/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/environment/contracts/env.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/environment/contracts/types.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/environment/core/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/environment/core/dot_env.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/environment/dynamic/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/environment/dynamic/types.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/environment/env.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/environment/exceptions/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/environment/exceptions/exception.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/environment/exceptions/value.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/environment/helpers/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/environment/helpers/functions.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/introspection/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/introspection/abstract/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/introspection/abstract/contracts/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/introspection/abstract/contracts/reflection.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/introspection/abstract/reflection.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/introspection/callables/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/introspection/callables/contracts/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/introspection/callables/contracts/reflection.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/introspection/callables/reflection.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/introspection/concretes/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/introspection/concretes/contracts/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/introspection/concretes/contracts/concrete.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/introspection/concretes/reflection.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/introspection/dependencies/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/introspection/dependencies/contracts/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/introspection/dependencies/contracts/reflection.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/introspection/dependencies/entities/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/introspection/dependencies/entities/callable_dependencies.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/introspection/dependencies/entities/class_dependencies.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/introspection/dependencies/entities/known_dependencies.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/introspection/dependencies/entities/method_dependencies.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/introspection/dependencies/reflection.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/introspection/exceptions/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/introspection/exceptions/attribute.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/introspection/exceptions/type.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/introspection/exceptions/value.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/introspection/instances/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/introspection/instances/contracts/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/introspection/instances/contracts/reflection.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/introspection/instances/reflection.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/introspection/modules/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/introspection/modules/contracts/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/introspection/modules/contracts/reflection.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/introspection/modules/reflection.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/introspection/objects/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/introspection/objects/types.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/introspection/reflection.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/log/__init__.py +0 -0
- {orionis-0.400.0/orionis/services/paths → orionis-0.402.0/orionis/services/log/contracts}/__init__.py +0 -0
- {orionis-0.400.0/orionis/services/paths/contracts → orionis-0.402.0/orionis/services/log/handlers}/__init__.py +0 -0
- {orionis-0.400.0/orionis/services/system → orionis-0.402.0/orionis/services/paths}/__init__.py +0 -0
- {orionis-0.400.0/orionis/services/system → orionis-0.402.0/orionis/services/paths}/contracts/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/paths/contracts/resolver.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/paths/exceptions/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/paths/exceptions/exception.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/paths/exceptions/file.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/paths/resolver.py +0 -0
- {orionis-0.400.0/orionis/services/system/runtime → orionis-0.402.0/orionis/services/system}/__init__.py +0 -0
- {orionis-0.400.0/orionis/support → orionis-0.402.0/orionis/services/system/contracts}/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/system/contracts/imports.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/system/contracts/workers.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/system/imports.py +0 -0
- {orionis-0.400.0/orionis/support/facades → orionis-0.402.0/orionis/services/system/runtime}/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/system/runtime/imports.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/services/system/workers.py +0 -0
- {orionis-0.400.0/orionis/support/formatter → orionis-0.402.0/orionis/support}/__init__.py +0 -0
- {orionis-0.400.0/orionis/support/formatter/exceptions → orionis-0.402.0/orionis/support/facades}/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/support/facades/console.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/support/facades/dumper.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/support/facades/path_resolver.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/support/facades/progress_bar.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/support/facades/workers.py +0 -0
- {orionis-0.400.0/orionis/support/formatter/exceptions/contracts → orionis-0.402.0/orionis/support/formatter}/__init__.py +0 -0
- {orionis-0.400.0/orionis/support/patterns → orionis-0.402.0/orionis/support/formatter/exceptions}/__init__.py +0 -0
- {orionis-0.400.0/orionis/support/standard → orionis-0.402.0/orionis/support/formatter/exceptions/contracts}/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/support/formatter/exceptions/contracts/parser.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/support/formatter/exceptions/parser.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/support/formatter/serializer.py +0 -0
- {orionis-0.400.0/orionis/support/standard/contracts → orionis-0.402.0/orionis/support/patterns}/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/support/patterns/singleton/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/support/patterns/singleton/meta.py +0 -0
- {orionis-0.400.0/orionis/test → orionis-0.402.0/orionis/support/standard}/__init__.py +0 -0
- {orionis-0.400.0/orionis/test/arguments → orionis-0.402.0/orionis/support/standard/contracts}/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/support/standard/contracts/std.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/support/standard/exceptions/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/support/standard/exceptions/value.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/support/standard/std.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/support/wrapper/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/support/wrapper/dot_dict.py +0 -0
- {orionis-0.400.0/orionis/test/cases → orionis-0.402.0/orionis/test}/__init__.py +0 -0
- {orionis-0.400.0/orionis/test/contracts → orionis-0.402.0/orionis/test/arguments}/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/test/arguments/parser.py +0 -0
- {orionis-0.400.0/orionis/test/core → orionis-0.402.0/orionis/test/cases}/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/test/cases/asynchronous.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/test/cases/synchronous.py +0 -0
- {orionis-0.400.0/orionis/test/entities → orionis-0.402.0/orionis/test/contracts}/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/test/contracts/dumper.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/test/contracts/kernel.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/test/contracts/logs.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/test/contracts/parser.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/test/contracts/printer.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/test/contracts/render.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/test/contracts/unit_test.py +0 -0
- {orionis-0.400.0/orionis/test/output → orionis-0.402.0/orionis/test/core}/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/test/core/unit_test.py +0 -0
- {orionis-0.400.0/orionis/test/records → orionis-0.402.0/orionis/test/entities}/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/test/entities/arguments.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/test/entities/result.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/test/enums/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/test/enums/execution_mode.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/test/enums/status.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/test/exceptions/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/test/exceptions/config.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/test/exceptions/failure.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/test/exceptions/persistence.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/test/exceptions/runtime.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/test/exceptions/value.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/test/kernel.py +0 -0
- {orionis-0.400.0/orionis/test/view → orionis-0.402.0/orionis/test/output}/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/test/output/dumper.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/test/output/printer.py +0 -0
- {orionis-0.400.0/tests → orionis-0.402.0/orionis/test/records}/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/test/records/logs.py +0 -0
- {orionis-0.400.0/tests/example → orionis-0.402.0/orionis/test/view}/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis/test/view/render.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis.egg-info/dependency_links.txt +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis.egg-info/requires.txt +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis.egg-info/top_level.txt +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/orionis.egg-info/zip-safe +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/setup.cfg +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/setup.py +0 -0
- {orionis-0.400.0/tests/foundation → orionis-0.402.0/tests}/__init__.py +0 -0
- {orionis-0.400.0/tests/foundation/config → orionis-0.402.0/tests/example}/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/example/test_example.py +0 -0
- {orionis-0.400.0/tests/foundation/config/app → orionis-0.402.0/tests/foundation}/__init__.py +0 -0
- {orionis-0.400.0/tests/foundation/config/auth → orionis-0.402.0/tests/foundation/config}/__init__.py +0 -0
- {orionis-0.400.0/tests/foundation/config/cache → orionis-0.402.0/tests/foundation/config/app}/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/foundation/config/app/test_foundation_config_app.py +0 -0
- {orionis-0.400.0/tests/foundation/config/cors → orionis-0.402.0/tests/foundation/config/auth}/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/foundation/config/auth/test_foundation_config_auth.py +0 -0
- {orionis-0.400.0/tests/foundation/config/database → orionis-0.402.0/tests/foundation/config/cache}/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/foundation/config/cache/test_foundation_config_cache.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/foundation/config/cache/test_foundation_config_cache_file.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/foundation/config/cache/test_foundation_config_cache_stores.py +0 -0
- {orionis-0.400.0/tests/foundation/config/filesystems → orionis-0.402.0/tests/foundation/config/cors}/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/foundation/config/cors/test_foundation_config_cors.py +0 -0
- {orionis-0.400.0/tests/foundation/config/logging → orionis-0.402.0/tests/foundation/config/database}/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/foundation/config/database/test_foundation_config_database.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/foundation/config/database/test_foundation_config_database_connections.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/foundation/config/database/test_foundation_config_database_mysql.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/foundation/config/database/test_foundation_config_database_oracle.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/foundation/config/database/test_foundation_config_database_pgsql.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/foundation/config/database/test_foundation_config_database_sqlite.py +0 -0
- {orionis-0.400.0/tests/foundation/config/mail → orionis-0.402.0/tests/foundation/config/filesystems}/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems_aws.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems_disks.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems_local.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems_public.py +0 -0
- {orionis-0.400.0/tests/foundation/config/queue → orionis-0.402.0/tests/foundation/config/logging}/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/foundation/config/logging/test_foundation_config_logging.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/foundation/config/logging/test_foundation_config_logging_channels.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/foundation/config/logging/test_foundation_config_logging_chunked.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/foundation/config/logging/test_foundation_config_logging_daily.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/foundation/config/logging/test_foundation_config_logging_hourly.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/foundation/config/logging/test_foundation_config_logging_monthly.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/foundation/config/logging/test_foundation_config_logging_stack.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/foundation/config/logging/test_foundation_config_logging_weekly.py +0 -0
- {orionis-0.400.0/tests/foundation/config/root → orionis-0.402.0/tests/foundation/config/mail}/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/foundation/config/mail/test_foundation_config_mail.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/foundation/config/mail/test_foundation_config_mail_file.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/foundation/config/mail/test_foundation_config_mail_mailers.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/foundation/config/mail/test_foundation_config_mail_smtp.py +0 -0
- {orionis-0.400.0/tests/foundation/config/session → orionis-0.402.0/tests/foundation/config/queue}/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/foundation/config/queue/test_foundation_config_queue.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/foundation/config/queue/test_foundation_config_queue_brokers.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/foundation/config/queue/test_foundation_config_queue_database.py +0 -0
- {orionis-0.400.0/tests/foundation/config/startup → orionis-0.402.0/tests/foundation/config/root}/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/foundation/config/root/test_foundation_config_root_paths.py +0 -0
- {orionis-0.400.0/tests/foundation/config/testing → orionis-0.402.0/tests/foundation/config/session}/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/foundation/config/session/test_foundation_config_session.py +0 -0
- {orionis-0.400.0/tests/foundation/exceptions → orionis-0.402.0/tests/foundation/config/startup}/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/foundation/config/startup/test_foundation_config_startup.py +0 -0
- {orionis-0.400.0/tests/metadata → orionis-0.402.0/tests/foundation/config/testing}/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/foundation/config/testing/test_foundation_config_testing.py +0 -0
- {orionis-0.400.0/tests/services → orionis-0.402.0/tests/foundation/exceptions}/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/foundation/exceptions/test_foundation_config_exceptions.py +0 -0
- {orionis-0.400.0/tests/services/asynchrony → orionis-0.402.0/tests/metadata}/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/metadata/test_metadata_framework.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/metadata/test_metadata_package.py +0 -0
- {orionis-0.400.0/tests/services/environment → orionis-0.402.0/tests/services}/__init__.py +0 -0
- {orionis-0.400.0/tests/services/inspection → orionis-0.402.0/tests/services/asynchrony}/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/services/asynchrony/test_services_asynchrony_coroutine.py +0 -0
- {orionis-0.400.0/tests/services/inspection/dependencies → orionis-0.402.0/tests/services/environment}/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/services/environment/test_services_environment.py +0 -0
- {orionis-0.400.0/tests/services/inspection/dependencies/mocks → orionis-0.402.0/tests/services/inspection}/__init__.py +0 -0
- {orionis-0.400.0/tests/services/inspection/reflection → orionis-0.402.0/tests/services/inspection/dependencies}/__init__.py +0 -0
- {orionis-0.400.0/tests/services/inspection/reflection/mock → orionis-0.402.0/tests/services/inspection/dependencies/mocks}/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/services/inspection/dependencies/mocks/mock_user.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/services/inspection/dependencies/mocks/mock_user_controller.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/services/inspection/dependencies/mocks/mock_users_permissions.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/services/inspection/dependencies/test_reflect_dependencies.py +0 -0
- {orionis-0.400.0/tests/services/path → orionis-0.402.0/tests/services/inspection/reflection}/__init__.py +0 -0
- {orionis-0.400.0/tests/services/system → orionis-0.402.0/tests/services/inspection/reflection/mock}/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/services/inspection/reflection/mock/fake_reflect_instance.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/services/inspection/reflection/test_reflection_abstract.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/services/inspection/reflection/test_reflection_callable.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/services/inspection/reflection/test_reflection_concrete.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/services/inspection/reflection/test_reflection_instance.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/services/inspection/reflection/test_reflection_module.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/services/inspection/test_reflection.py +0 -0
- {orionis-0.400.0/tests/support → orionis-0.402.0/tests/services/path}/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/services/path/test_services_resolver.py +0 -0
- {orionis-0.400.0/tests/support/parsers → orionis-0.402.0/tests/services/system}/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/services/system/test_services_system_imports.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/services/system/test_services_system_workers.py +0 -0
- {orionis-0.400.0/tests/support/parsers/mocks → orionis-0.402.0/tests/support}/__init__.py +0 -0
- {orionis-0.400.0/tests/support/patterns → orionis-0.402.0/tests/support/parsers}/__init__.py +0 -0
- {orionis-0.400.0/tests/support/patterns/singleton → orionis-0.402.0/tests/support/parsers/mocks}/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/support/parsers/mocks/mock_custom_error.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/support/parsers/test_services_parser_exceptions.py +0 -0
- {orionis-0.400.0/tests/support/standard → orionis-0.402.0/tests/support/patterns}/__init__.py +0 -0
- {orionis-0.400.0/tests/support/wrapper → orionis-0.402.0/tests/support/patterns/singleton}/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/support/patterns/singleton/test_patterns_singleton.py +0 -0
- {orionis-0.400.0/tests/testing → orionis-0.402.0/tests/support/standard}/__init__.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/support/standard/test_services_std.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/support/wrapper/test_services_wrapper_docdict.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/testing/test_testing_result.py +0 -0
- {orionis-0.400.0 → orionis-0.402.0}/tests/testing/test_testing_unit.py +0 -0
|
@@ -25,7 +25,7 @@ class Console(IConsole):
|
|
|
25
25
|
"""
|
|
26
26
|
return f"{ANSIColors.TEXT_MUTED.value}{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}{ANSIColors.DEFAULT.value}"
|
|
27
27
|
|
|
28
|
-
def __printWithBackground(self, label: str, bg_color: ANSIColors, message: str, timestamp: bool):
|
|
28
|
+
def __printWithBackground(self, label: str, bg_color: ANSIColors, message: str, timestamp: bool) -> None:
|
|
29
29
|
"""
|
|
30
30
|
Prints a formatted message with a background color.
|
|
31
31
|
|
|
@@ -43,7 +43,7 @@ class Console(IConsole):
|
|
|
43
43
|
str_time = self.__getTimestamp() if timestamp else ''
|
|
44
44
|
print(f"{bg_color.value}{ANSIColors.TEXT_WHITE.value} {label} {ANSIColors.DEFAULT.value} {str_time} {message}{ANSIColors.DEFAULT.value}")
|
|
45
45
|
|
|
46
|
-
def __printColored(self, message: str, text_color: ANSIColors):
|
|
46
|
+
def __printColored(self, message: str, text_color: ANSIColors) -> None:
|
|
47
47
|
"""
|
|
48
48
|
Prints a message with a specified text color.
|
|
49
49
|
|
|
@@ -56,7 +56,7 @@ class Console(IConsole):
|
|
|
56
56
|
"""
|
|
57
57
|
print(f"{text_color.value}{message}{ANSIColors.DEFAULT.value}")
|
|
58
58
|
|
|
59
|
-
def success(self, message: str, timestamp: bool = True):
|
|
59
|
+
def success(self, message: str, timestamp: bool = True) -> None:
|
|
60
60
|
"""
|
|
61
61
|
Prints a success message with a green background.
|
|
62
62
|
|
|
@@ -69,7 +69,7 @@ class Console(IConsole):
|
|
|
69
69
|
"""
|
|
70
70
|
self.__printWithBackground("SUCCESS", ANSIColors.BG_SUCCESS, message, timestamp)
|
|
71
71
|
|
|
72
|
-
def textSuccess(self, message: str):
|
|
72
|
+
def textSuccess(self, message: str) -> None:
|
|
73
73
|
"""
|
|
74
74
|
Prints a success message in green.
|
|
75
75
|
|
|
@@ -80,7 +80,7 @@ class Console(IConsole):
|
|
|
80
80
|
"""
|
|
81
81
|
self.__printColored(message, ANSIColors.TEXT_SUCCESS)
|
|
82
82
|
|
|
83
|
-
def textSuccessBold(self, message: str):
|
|
83
|
+
def textSuccessBold(self, message: str) -> None:
|
|
84
84
|
"""
|
|
85
85
|
Prints a bold success message in green.
|
|
86
86
|
|
|
@@ -91,7 +91,7 @@ class Console(IConsole):
|
|
|
91
91
|
"""
|
|
92
92
|
self.__printColored(message, ANSIColors.TEXT_BOLD_SUCCESS)
|
|
93
93
|
|
|
94
|
-
def info(self, message: str, timestamp: bool = True):
|
|
94
|
+
def info(self, message: str, timestamp: bool = True) -> None:
|
|
95
95
|
"""
|
|
96
96
|
Prints an informational message with a blue background.
|
|
97
97
|
|
|
@@ -104,7 +104,7 @@ class Console(IConsole):
|
|
|
104
104
|
"""
|
|
105
105
|
self.__printWithBackground("INFO", ANSIColors.BG_INFO, message, timestamp)
|
|
106
106
|
|
|
107
|
-
def textInfo(self, message: str):
|
|
107
|
+
def textInfo(self, message: str) -> None:
|
|
108
108
|
"""
|
|
109
109
|
Prints an informational message in blue.
|
|
110
110
|
|
|
@@ -115,7 +115,7 @@ class Console(IConsole):
|
|
|
115
115
|
"""
|
|
116
116
|
self.__printColored(message, ANSIColors.TEXT_INFO)
|
|
117
117
|
|
|
118
|
-
def textInfoBold(self, message: str):
|
|
118
|
+
def textInfoBold(self, message: str) -> None:
|
|
119
119
|
"""
|
|
120
120
|
Prints a bold informational message in blue.
|
|
121
121
|
|
|
@@ -126,7 +126,7 @@ class Console(IConsole):
|
|
|
126
126
|
"""
|
|
127
127
|
self.__printColored(message, ANSIColors.TEXT_BOLD_INFO)
|
|
128
128
|
|
|
129
|
-
def warning(self, message: str, timestamp: bool = True):
|
|
129
|
+
def warning(self, message: str, timestamp: bool = True) -> None:
|
|
130
130
|
"""
|
|
131
131
|
Prints a warning message with a yellow background.
|
|
132
132
|
|
|
@@ -139,7 +139,7 @@ class Console(IConsole):
|
|
|
139
139
|
"""
|
|
140
140
|
self.__printWithBackground("WARNING", ANSIColors.BG_WARNING, message, timestamp)
|
|
141
141
|
|
|
142
|
-
def textWarning(self, message: str):
|
|
142
|
+
def textWarning(self, message: str) -> None:
|
|
143
143
|
"""
|
|
144
144
|
Prints a warning message in yellow.
|
|
145
145
|
|
|
@@ -150,7 +150,7 @@ class Console(IConsole):
|
|
|
150
150
|
"""
|
|
151
151
|
self.__printColored(message, ANSIColors.TEXT_WARNING)
|
|
152
152
|
|
|
153
|
-
def textWarningBold(self, message: str):
|
|
153
|
+
def textWarningBold(self, message: str) -> None:
|
|
154
154
|
"""
|
|
155
155
|
Prints a bold warning message in yellow.
|
|
156
156
|
|
|
@@ -161,7 +161,7 @@ class Console(IConsole):
|
|
|
161
161
|
"""
|
|
162
162
|
self.__printColored(message, ANSIColors.TEXT_BOLD_WARNING)
|
|
163
163
|
|
|
164
|
-
def fail(self, message: str, timestamp: bool = True):
|
|
164
|
+
def fail(self, message: str, timestamp: bool = True) -> None:
|
|
165
165
|
"""
|
|
166
166
|
Prints a failure message with a red background.
|
|
167
167
|
|
|
@@ -174,7 +174,7 @@ class Console(IConsole):
|
|
|
174
174
|
"""
|
|
175
175
|
self.__printWithBackground("FAIL", ANSIColors.BG_FAIL, message, timestamp)
|
|
176
176
|
|
|
177
|
-
def error(self, message: str, timestamp: bool = True):
|
|
177
|
+
def error(self, message: str, timestamp: bool = True) -> None:
|
|
178
178
|
"""
|
|
179
179
|
Prints an error message with a red background.
|
|
180
180
|
|
|
@@ -187,7 +187,7 @@ class Console(IConsole):
|
|
|
187
187
|
"""
|
|
188
188
|
self.__printWithBackground("ERROR", ANSIColors.BG_ERROR, message, timestamp)
|
|
189
189
|
|
|
190
|
-
def textError(self, message: str):
|
|
190
|
+
def textError(self, message: str) -> None:
|
|
191
191
|
"""
|
|
192
192
|
Prints an error message in red.
|
|
193
193
|
|
|
@@ -198,7 +198,7 @@ class Console(IConsole):
|
|
|
198
198
|
"""
|
|
199
199
|
self.__printColored(message, ANSIColors.TEXT_ERROR)
|
|
200
200
|
|
|
201
|
-
def textErrorBold(self, message: str):
|
|
201
|
+
def textErrorBold(self, message: str) -> None:
|
|
202
202
|
"""
|
|
203
203
|
Prints a bold error message in red.
|
|
204
204
|
|
|
@@ -209,7 +209,7 @@ class Console(IConsole):
|
|
|
209
209
|
"""
|
|
210
210
|
self.__printColored(message, ANSIColors.TEXT_BOLD_ERROR)
|
|
211
211
|
|
|
212
|
-
def textMuted(self, message: str):
|
|
212
|
+
def textMuted(self, message: str) -> None:
|
|
213
213
|
"""
|
|
214
214
|
Prints a muted (gray) message.
|
|
215
215
|
|
|
@@ -220,7 +220,7 @@ class Console(IConsole):
|
|
|
220
220
|
"""
|
|
221
221
|
self.__printColored(message, ANSIColors.TEXT_MUTED)
|
|
222
222
|
|
|
223
|
-
def textMutedBold(self, message: str):
|
|
223
|
+
def textMutedBold(self, message: str) -> None:
|
|
224
224
|
"""
|
|
225
225
|
Prints a bold muted (gray) message.
|
|
226
226
|
|
|
@@ -231,7 +231,7 @@ class Console(IConsole):
|
|
|
231
231
|
"""
|
|
232
232
|
self.__printColored(message, ANSIColors.TEXT_BOLD_MUTED)
|
|
233
233
|
|
|
234
|
-
def textUnderline(self, message: str):
|
|
234
|
+
def textUnderline(self, message: str) -> None:
|
|
235
235
|
"""
|
|
236
236
|
Prints an underlined message.
|
|
237
237
|
|
|
@@ -242,26 +242,26 @@ class Console(IConsole):
|
|
|
242
242
|
"""
|
|
243
243
|
print(f"{ANSIColors.TEXT_STYLE_UNDERLINE.value}{message}{ANSIColors.DEFAULT.value}")
|
|
244
244
|
|
|
245
|
-
def clear(self):
|
|
245
|
+
def clear(self) -> None:
|
|
246
246
|
"""
|
|
247
247
|
Clears the console screen.
|
|
248
248
|
"""
|
|
249
249
|
os.system('cls' if os.name == 'nt' else 'clear')
|
|
250
250
|
|
|
251
|
-
def clearLine(self):
|
|
251
|
+
def clearLine(self) -> None:
|
|
252
252
|
"""
|
|
253
253
|
Clears the current line in the console.
|
|
254
254
|
"""
|
|
255
255
|
sys.stdout.write("\r \r")
|
|
256
256
|
sys.stdout.flush()
|
|
257
257
|
|
|
258
|
-
def line(self):
|
|
258
|
+
def line(self) -> None:
|
|
259
259
|
"""
|
|
260
260
|
Prints a horizontal line in the console.
|
|
261
261
|
"""
|
|
262
262
|
print("\n", end="")
|
|
263
263
|
|
|
264
|
-
def newLine(self, count: int = 1):
|
|
264
|
+
def newLine(self, count: int = 1) -> None:
|
|
265
265
|
"""
|
|
266
266
|
Prints multiple new lines.
|
|
267
267
|
|
|
@@ -279,7 +279,7 @@ class Console(IConsole):
|
|
|
279
279
|
raise ValueError(f"Unsupported Value '{count}'")
|
|
280
280
|
print("\n" * count, end="")
|
|
281
281
|
|
|
282
|
-
def write(self, message: str):
|
|
282
|
+
def write(self, message: str) -> None:
|
|
283
283
|
"""
|
|
284
284
|
Prints a message without moving to the next line.
|
|
285
285
|
|
|
@@ -291,7 +291,7 @@ class Console(IConsole):
|
|
|
291
291
|
sys.stdout.write(f"{message}")
|
|
292
292
|
sys.stdout.flush()
|
|
293
293
|
|
|
294
|
-
def writeLine(self, message: str):
|
|
294
|
+
def writeLine(self, message: str) -> None:
|
|
295
295
|
"""
|
|
296
296
|
Prints a message and moves to the next line.
|
|
297
297
|
|
|
@@ -355,7 +355,7 @@ class Console(IConsole):
|
|
|
355
355
|
"""
|
|
356
356
|
return getpass.getpass(f"{ANSIColors.TEXT_INFO.value}{str(question).strip()}{ANSIColors.DEFAULT.value} ")
|
|
357
357
|
|
|
358
|
-
def table(self, headers: list, rows: list):
|
|
358
|
+
def table(self, headers: list, rows: list) -> None:
|
|
359
359
|
"""
|
|
360
360
|
Prints a table in the console with the given headers and rows, with bold headers.
|
|
361
361
|
|
|
@@ -402,7 +402,7 @@ class Console(IConsole):
|
|
|
402
402
|
|
|
403
403
|
print(bottom_border)
|
|
404
404
|
|
|
405
|
-
def anticipate(self, question: str, options: list, default=None):
|
|
405
|
+
def anticipate(self, question: str, options: list, default=None) -> str:
|
|
406
406
|
"""
|
|
407
407
|
Provides autocomplete suggestions based on user input.
|
|
408
408
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
from orionis.container.contracts.container import IContainer
|
|
2
1
|
from orionis.container.contracts.service_provider import IServiceProvider
|
|
2
|
+
from orionis.foundation.contracts.application import IApplication
|
|
3
3
|
|
|
4
4
|
class ServiceProvider(IServiceProvider):
|
|
5
5
|
"""
|
|
@@ -11,7 +11,7 @@ class ServiceProvider(IServiceProvider):
|
|
|
11
11
|
|
|
12
12
|
Parameters
|
|
13
13
|
----------
|
|
14
|
-
app :
|
|
14
|
+
app : IApplication
|
|
15
15
|
The application container instance to which services will be registered.
|
|
16
16
|
|
|
17
17
|
Notes
|
|
@@ -20,13 +20,13 @@ class ServiceProvider(IServiceProvider):
|
|
|
20
20
|
the `register` method at minimum.
|
|
21
21
|
"""
|
|
22
22
|
|
|
23
|
-
def __init__(self, app:
|
|
23
|
+
def __init__(self, app: IApplication) -> None:
|
|
24
24
|
"""
|
|
25
25
|
Initialize the service provider with the application container.
|
|
26
26
|
|
|
27
27
|
Parameters
|
|
28
28
|
----------
|
|
29
|
-
app :
|
|
29
|
+
app : IApplication
|
|
30
30
|
The application container instance.
|
|
31
31
|
"""
|
|
32
32
|
self.app = app
|
|
@@ -18,6 +18,7 @@ from orionis.foundation.config.testing.entities.testing import Testing
|
|
|
18
18
|
from orionis.foundation.contracts.application import IApplication
|
|
19
19
|
from orionis.foundation.contracts.config import IConfig
|
|
20
20
|
from orionis.foundation.exceptions import OrionisTypeError, OrionisRuntimeError
|
|
21
|
+
from orionis.foundation.providers.logger_provider import LoggerProvider
|
|
21
22
|
|
|
22
23
|
class Application(Container, IApplication):
|
|
23
24
|
"""
|
|
@@ -116,7 +117,8 @@ class Application(Container, IApplication):
|
|
|
116
117
|
DumperProvider,
|
|
117
118
|
PathResolverProvider,
|
|
118
119
|
ProgressBarProvider,
|
|
119
|
-
WorkersProvider
|
|
120
|
+
WorkersProvider,
|
|
121
|
+
LoggerProvider
|
|
120
122
|
]
|
|
121
123
|
|
|
122
124
|
# Register each core provider
|
|
@@ -1031,7 +1033,7 @@ class Application(Container, IApplication):
|
|
|
1031
1033
|
"""
|
|
1032
1034
|
|
|
1033
1035
|
# Ensure the application is booted before accessing configuration
|
|
1034
|
-
if not self.
|
|
1036
|
+
if not self.__config:
|
|
1035
1037
|
raise RuntimeError("Application must be booted before accessing configuration. Call create() first.")
|
|
1036
1038
|
|
|
1037
1039
|
# If key is None, raise an error to prevent ambiguity
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
from dataclasses import asdict, fields
|
|
2
|
+
from dataclasses import MISSING
|
|
3
|
+
|
|
4
|
+
class BaseConfigEntity:
|
|
5
|
+
|
|
6
|
+
def toDict(self) -> dict:
|
|
7
|
+
"""
|
|
8
|
+
Converts the current instance into a dictionary representation.
|
|
9
|
+
|
|
10
|
+
Returns
|
|
11
|
+
-------
|
|
12
|
+
dict
|
|
13
|
+
Dictionary representation of the current instance.
|
|
14
|
+
"""
|
|
15
|
+
return asdict(self)
|
|
16
|
+
|
|
17
|
+
def getFields(self):
|
|
18
|
+
"""
|
|
19
|
+
Retrieves a list of field information for the current dataclass instance.
|
|
20
|
+
|
|
21
|
+
Returns
|
|
22
|
+
-------
|
|
23
|
+
list
|
|
24
|
+
A list of dictionaries, each containing details about a field:
|
|
25
|
+
- name (str): The name of the field.
|
|
26
|
+
- type (type): The type of the field.
|
|
27
|
+
- default: The default value of the field, if specified; otherwise, the value from metadata or None.
|
|
28
|
+
- metadata (mapping): The metadata associated with the field.
|
|
29
|
+
"""
|
|
30
|
+
# Dictionary to hold field information
|
|
31
|
+
__fields = []
|
|
32
|
+
|
|
33
|
+
# Iterate over the fields of the dataclass
|
|
34
|
+
# and extract relevant information
|
|
35
|
+
for field in fields(self):
|
|
36
|
+
|
|
37
|
+
# Get the field name
|
|
38
|
+
__name = field.name
|
|
39
|
+
|
|
40
|
+
# Get the field type with better handling for complex types
|
|
41
|
+
__type = getattr(field.type, '__name__', None)
|
|
42
|
+
|
|
43
|
+
# If the type is None, handle it
|
|
44
|
+
if __type is None:
|
|
45
|
+
|
|
46
|
+
# Handle generic types, unions, and other complex annotations
|
|
47
|
+
type_str = str(field.type)
|
|
48
|
+
|
|
49
|
+
# Clean up typing module references
|
|
50
|
+
type_str = type_str.replace('typing.', '')
|
|
51
|
+
|
|
52
|
+
# Handle Union types (e.g., "Channels | dict" or "Union[Channels, dict]")
|
|
53
|
+
if '|' in type_str or 'Union[' in type_str:
|
|
54
|
+
|
|
55
|
+
# Extract individual types from Union
|
|
56
|
+
if 'Union[' in type_str:
|
|
57
|
+
|
|
58
|
+
# Handle typing.Union format
|
|
59
|
+
inner = type_str.replace('Union[', '').replace(']', '')
|
|
60
|
+
types = [t.strip() for t in inner.split(',')]
|
|
61
|
+
|
|
62
|
+
else:
|
|
63
|
+
# Handle | format (Python 3.10+)
|
|
64
|
+
types = [t.strip() for t in type_str.split('|')]
|
|
65
|
+
|
|
66
|
+
# Get class names for custom types
|
|
67
|
+
clean_types = []
|
|
68
|
+
for t in types:
|
|
69
|
+
if '.' in t:
|
|
70
|
+
clean_types.append(t.split('.')[-1])
|
|
71
|
+
else:
|
|
72
|
+
clean_types.append(t)
|
|
73
|
+
|
|
74
|
+
# Join cleaned types with ' | '
|
|
75
|
+
__type = ' | '.join(clean_types)
|
|
76
|
+
|
|
77
|
+
else:
|
|
78
|
+
|
|
79
|
+
# Handle other complex types
|
|
80
|
+
if '.' in type_str:
|
|
81
|
+
__type = type_str.split('.')[-1]
|
|
82
|
+
else:
|
|
83
|
+
__type = type_str
|
|
84
|
+
|
|
85
|
+
# Extract metadata, default value, and type
|
|
86
|
+
__metadata = dict(field.metadata) or {}
|
|
87
|
+
|
|
88
|
+
# Extract the default value, if specified
|
|
89
|
+
__default = None
|
|
90
|
+
|
|
91
|
+
# Field has a direct default value
|
|
92
|
+
if field.default is not MISSING:
|
|
93
|
+
__default = field.default
|
|
94
|
+
|
|
95
|
+
# Field has a default factory (like list, dict, etc.)
|
|
96
|
+
elif field.default_factory is not MISSING:
|
|
97
|
+
__default = f"<factory: {field.default_factory.__name__}>"
|
|
98
|
+
|
|
99
|
+
# No default found, check metadata for custom default
|
|
100
|
+
else:
|
|
101
|
+
__default = __metadata.get('default', None)
|
|
102
|
+
|
|
103
|
+
# Append the field information to the list
|
|
104
|
+
__fields.append({
|
|
105
|
+
"name": __name,
|
|
106
|
+
"type": __type,
|
|
107
|
+
"default": __default,
|
|
108
|
+
"metadata": __metadata
|
|
109
|
+
})
|
|
110
|
+
|
|
111
|
+
# Return the list of field information
|
|
112
|
+
return __fields
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
from dataclasses import dataclass, field
|
|
2
|
+
from orionis.foundation.config.base import BaseConfigEntity
|
|
3
|
+
from orionis.foundation.config.logging.entities.monthly import Monthly
|
|
4
|
+
from orionis.foundation.config.logging.entities.chunked import Chunked
|
|
5
|
+
from orionis.foundation.config.logging.entities.daily import Daily
|
|
6
|
+
from orionis.foundation.config.logging.entities.hourly import Hourly
|
|
7
|
+
from orionis.foundation.config.logging.entities.stack import Stack
|
|
8
|
+
from orionis.foundation.config.logging.entities.weekly import Weekly
|
|
9
|
+
from orionis.foundation.exceptions import OrionisIntegrityException
|
|
10
|
+
|
|
11
|
+
@dataclass(unsafe_hash=True, kw_only=True)
|
|
12
|
+
class Channels(BaseConfigEntity):
|
|
13
|
+
"""
|
|
14
|
+
Represents the different logging channels available.
|
|
15
|
+
"""
|
|
16
|
+
|
|
17
|
+
stack: Stack | dict = field(
|
|
18
|
+
default_factory = lambda: Stack(),
|
|
19
|
+
metadata={
|
|
20
|
+
"description": "Configuration for stack log channel.",
|
|
21
|
+
"default": lambda : Stack().toDict()
|
|
22
|
+
}
|
|
23
|
+
)
|
|
24
|
+
|
|
25
|
+
hourly: Hourly | dict = field(
|
|
26
|
+
default_factory = lambda: Hourly(),
|
|
27
|
+
metadata={
|
|
28
|
+
"description": "Configuration for hourly log rotation.",
|
|
29
|
+
"default": lambda: Hourly().toDict()
|
|
30
|
+
}
|
|
31
|
+
)
|
|
32
|
+
|
|
33
|
+
daily: Daily | dict = field(
|
|
34
|
+
default_factory = lambda: Daily(),
|
|
35
|
+
metadata={
|
|
36
|
+
"description": "Configuration for daily log rotation.",
|
|
37
|
+
"default": lambda: Daily().toDict()
|
|
38
|
+
}
|
|
39
|
+
)
|
|
40
|
+
|
|
41
|
+
weekly: Weekly | dict = field(
|
|
42
|
+
default_factory = lambda: Weekly(),
|
|
43
|
+
metadata={
|
|
44
|
+
"description": "Configuration for weekly log rotation.",
|
|
45
|
+
"default": lambda: Weekly().toDict()
|
|
46
|
+
}
|
|
47
|
+
)
|
|
48
|
+
|
|
49
|
+
monthly: Monthly | dict= field(
|
|
50
|
+
default_factory = lambda: Monthly(),
|
|
51
|
+
metadata={
|
|
52
|
+
"description": "Configuration for monthly log rotation.",
|
|
53
|
+
"default": lambda: Monthly().toDict()
|
|
54
|
+
}
|
|
55
|
+
)
|
|
56
|
+
|
|
57
|
+
chunked: Chunked | dict = field(
|
|
58
|
+
default_factory = lambda: Chunked(),
|
|
59
|
+
metadata={
|
|
60
|
+
"description": "Configuration for chunked log file storage.",
|
|
61
|
+
"default": lambda: Chunked().toDict()
|
|
62
|
+
}
|
|
63
|
+
)
|
|
64
|
+
|
|
65
|
+
def __post_init__(self):
|
|
66
|
+
"""
|
|
67
|
+
Post-initialization method to validate the types of log rotation properties.
|
|
68
|
+
Ensures that the following instance attributes are of the correct types:
|
|
69
|
+
- `stack` must be an instance of `Stack`
|
|
70
|
+
- `hourly` must be an instance of `Hourly`
|
|
71
|
+
- `daily` must be an instance of `Daily`
|
|
72
|
+
- `weekly` must be an instance of `Weekly`
|
|
73
|
+
- `monthly` must be an instance of `Monthly`
|
|
74
|
+
- `chunked` must be an instance of `Chunked`
|
|
75
|
+
Raises:
|
|
76
|
+
OrionisIntegrityException: If any of the properties are not instances of their expected classes.
|
|
77
|
+
"""
|
|
78
|
+
|
|
79
|
+
if not isinstance(self.stack, Stack):
|
|
80
|
+
if isinstance(self.stack, dict):
|
|
81
|
+
try:
|
|
82
|
+
self.stack = Stack(**self.stack)
|
|
83
|
+
except TypeError as e:
|
|
84
|
+
raise OrionisIntegrityException(
|
|
85
|
+
f"Invalid stack configuration: {e}"
|
|
86
|
+
)
|
|
87
|
+
else:
|
|
88
|
+
raise OrionisIntegrityException(
|
|
89
|
+
"The 'stack' property must be an instance of Stack or a dictionary."
|
|
90
|
+
)
|
|
91
|
+
|
|
92
|
+
if not isinstance(self.hourly, Hourly):
|
|
93
|
+
if isinstance(self.hourly, dict):
|
|
94
|
+
try:
|
|
95
|
+
self.hourly = Hourly(**self.hourly)
|
|
96
|
+
except TypeError as e:
|
|
97
|
+
raise OrionisIntegrityException(
|
|
98
|
+
f"Invalid hourly configuration: {e}"
|
|
99
|
+
)
|
|
100
|
+
else:
|
|
101
|
+
raise OrionisIntegrityException(
|
|
102
|
+
"The 'hourly' property must be an instance of Hourly or a dictionary."
|
|
103
|
+
)
|
|
104
|
+
|
|
105
|
+
if not isinstance(self.daily, Daily):
|
|
106
|
+
if isinstance(self.daily, dict):
|
|
107
|
+
try:
|
|
108
|
+
self.daily = Daily(**self.daily)
|
|
109
|
+
except TypeError as e:
|
|
110
|
+
raise OrionisIntegrityException(
|
|
111
|
+
f"Invalid daily configuration: {e}"
|
|
112
|
+
)
|
|
113
|
+
else:
|
|
114
|
+
raise OrionisIntegrityException(
|
|
115
|
+
"The 'daily' property must be an instance of Daily or a dictionary."
|
|
116
|
+
)
|
|
117
|
+
|
|
118
|
+
if not isinstance(self.weekly, Weekly):
|
|
119
|
+
if isinstance(self.weekly, dict):
|
|
120
|
+
try:
|
|
121
|
+
self.weekly = Weekly(**self.weekly)
|
|
122
|
+
except TypeError as e:
|
|
123
|
+
raise OrionisIntegrityException(
|
|
124
|
+
f"Invalid weekly configuration: {e}"
|
|
125
|
+
)
|
|
126
|
+
else:
|
|
127
|
+
raise OrionisIntegrityException(
|
|
128
|
+
"The 'weekly' property must be an instance of Weekly or a dictionary."
|
|
129
|
+
)
|
|
130
|
+
|
|
131
|
+
if not isinstance(self.monthly, Monthly):
|
|
132
|
+
if isinstance(self.monthly, dict):
|
|
133
|
+
try:
|
|
134
|
+
self.monthly = Monthly(**self.monthly)
|
|
135
|
+
except TypeError as e:
|
|
136
|
+
raise OrionisIntegrityException(
|
|
137
|
+
f"Invalid monthly configuration: {e}"
|
|
138
|
+
)
|
|
139
|
+
else:
|
|
140
|
+
raise OrionisIntegrityException(
|
|
141
|
+
"The 'monthly' property must be an instance of Monthly or a dictionary."
|
|
142
|
+
)
|
|
143
|
+
|
|
144
|
+
if not isinstance(self.chunked, Chunked):
|
|
145
|
+
if isinstance(self.chunked, dict):
|
|
146
|
+
try:
|
|
147
|
+
self.chunked = Chunked(**self.chunked)
|
|
148
|
+
except TypeError as e:
|
|
149
|
+
raise OrionisIntegrityException(
|
|
150
|
+
f"Invalid chunked configuration: {e}"
|
|
151
|
+
)
|
|
152
|
+
else:
|
|
153
|
+
raise OrionisIntegrityException(
|
|
154
|
+
"The 'chunked' property must be an instance of Chunked or a dictionary."
|
|
155
|
+
)
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
from dataclasses import dataclass, field
|
|
2
|
+
from orionis.foundation.config.base import BaseConfigEntity
|
|
3
|
+
from orionis.foundation.config.logging.validators import IsValidPath, IsValidLevel
|
|
4
|
+
from orionis.foundation.exceptions import OrionisIntegrityException
|
|
5
|
+
from orionis.foundation.config.logging.enums import Level
|
|
6
|
+
|
|
7
|
+
@dataclass(unsafe_hash=True, kw_only=True)
|
|
8
|
+
class Chunked(BaseConfigEntity):
|
|
9
|
+
"""
|
|
10
|
+
Configuration for chunked log file rotation.
|
|
11
|
+
|
|
12
|
+
This class defines the configuration for managing log files by splitting them into chunks
|
|
13
|
+
based on file size and limiting the number of retained log files. This prevents log files
|
|
14
|
+
from growing indefinitely and helps manage disk usage.
|
|
15
|
+
|
|
16
|
+
Attributes
|
|
17
|
+
----------
|
|
18
|
+
path : str
|
|
19
|
+
Filesystem path where chunked log files are stored.
|
|
20
|
+
level : int | str | Level
|
|
21
|
+
Logging level for the log file. Accepts an integer, string, or Level enum.
|
|
22
|
+
mb_size : int
|
|
23
|
+
Maximum size (in megabytes) of a single log file before a new chunk is created.
|
|
24
|
+
files : int
|
|
25
|
+
Maximum number of log files to retain. Older files are deleted when this limit is exceeded.
|
|
26
|
+
"""
|
|
27
|
+
|
|
28
|
+
path: str = field(
|
|
29
|
+
default = 'storage/log/application.log',
|
|
30
|
+
metadata = {
|
|
31
|
+
"description": "The file path where the log is stored.",
|
|
32
|
+
"default": "storage/log/application.log",
|
|
33
|
+
},
|
|
34
|
+
)
|
|
35
|
+
|
|
36
|
+
level: int | str | Level = field(
|
|
37
|
+
default = Level.INFO,
|
|
38
|
+
metadata = {
|
|
39
|
+
"description": "The logging level (e.g., DEBUG, INFO, WARNING, ERROR, CRITICAL).",
|
|
40
|
+
"default": Level.INFO,
|
|
41
|
+
},
|
|
42
|
+
)
|
|
43
|
+
|
|
44
|
+
mb_size: int = field(
|
|
45
|
+
default = 10,
|
|
46
|
+
metadata={
|
|
47
|
+
"description": "Maximum size (in MB) of a log file before chunking.",
|
|
48
|
+
"default": 10,
|
|
49
|
+
},
|
|
50
|
+
)
|
|
51
|
+
|
|
52
|
+
files: int = field(
|
|
53
|
+
default = 5,
|
|
54
|
+
metadata={
|
|
55
|
+
"description": "Maximum number of log files to retain.",
|
|
56
|
+
"default": 5,
|
|
57
|
+
},
|
|
58
|
+
)
|
|
59
|
+
|
|
60
|
+
def __post_init__(self):
|
|
61
|
+
"""
|
|
62
|
+
Performs validation and normalization of configuration fields.
|
|
63
|
+
|
|
64
|
+
- path: Validates that the path is correct using the IsValidPath validator.
|
|
65
|
+
- level: Validates that the log level is correct using the IsValidLevel validator.
|
|
66
|
+
- mb_size: Checks that it is an integer between 1 and 1000 (MB).
|
|
67
|
+
- files: Checks that it is a positive integer greater than 0.
|
|
68
|
+
|
|
69
|
+
Raises
|
|
70
|
+
------
|
|
71
|
+
OrionisIntegrityException
|
|
72
|
+
If any of the configuration values are invalid.
|
|
73
|
+
"""
|
|
74
|
+
|
|
75
|
+
# Validate 'path' using the IsValidPath validator
|
|
76
|
+
IsValidPath(self.path)
|
|
77
|
+
|
|
78
|
+
# Validate 'level' using the IsValidLevel validator
|
|
79
|
+
IsValidLevel(self.level)
|
|
80
|
+
|
|
81
|
+
# Validate 'mb_size'
|
|
82
|
+
if not isinstance(self.mb_size, int):
|
|
83
|
+
raise OrionisIntegrityException(
|
|
84
|
+
f"'mb_size' must be an integer in MB, got {type(self.mb_size).__name__}."
|
|
85
|
+
)
|
|
86
|
+
if self.mb_size < 1 or self.mb_size > 1000:
|
|
87
|
+
raise OrionisIntegrityException(
|
|
88
|
+
f"'mb_size' must be between 1 and 1000 MB, got {self.mb_size}."
|
|
89
|
+
)
|
|
90
|
+
|
|
91
|
+
# Validate 'files'
|
|
92
|
+
if not isinstance(self.files, int) or self.files < 1:
|
|
93
|
+
raise OrionisIntegrityException(
|
|
94
|
+
f"'files' must be a positive integer greater than 0, got {self.files} ({type(self.files).__name__})."
|
|
95
|
+
)
|