orionis 0.380.0__tar.gz → 0.382.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.380.0/orionis.egg-info → orionis-0.382.0}/PKG-INFO +1 -1
- {orionis-0.380.0 → orionis-0.382.0}/orionis/container/contracts/resolver.py +58 -1
- {orionis-0.380.0 → orionis-0.382.0}/orionis/container/resolver/resolver.py +141 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/metadata/framework.py +1 -1
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/paths/contracts/resolver.py +1 -13
- {orionis-0.380.0 → orionis-0.382.0}/orionis/test/core/unit_test.py +50 -60
- {orionis-0.380.0 → orionis-0.382.0}/orionis/test/kernel.py +1 -4
- {orionis-0.380.0 → orionis-0.382.0/orionis.egg-info}/PKG-INFO +1 -1
- orionis-0.382.0/tests/example/test_example.py +33 -0
- orionis-0.380.0/tests/example/test_example.py +0 -28
- {orionis-0.380.0 → orionis-0.382.0}/LICENCE +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/MANIFEST.in +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/README.md +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_console/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_console/base/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_console/base/command.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_console/command_filter.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_console/commands/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_console/commands/cache_clear.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_console/commands/help.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_console/commands/schedule_work.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_console/commands/version.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_console/dumper/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_console/dumper/dump_die.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_console/exceptions/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_console/exceptions/cli-orionis-value-error.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_console/exceptions/cli_exception.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_console/exceptions/cli_runtime_error.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_console/exceptions/cli_schedule_exception.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_console/kernel.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_console/output/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_console/output/console.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_console/output/executor.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_console/output/progress_bar.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_console/parser.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_contracts/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_contracts/application.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_contracts/config/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_contracts/config/config.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_contracts/console/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_contracts/console/base/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_contracts/console/base/command.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_contracts/console/command_filter.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_contracts/console/kernel.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_contracts/console/output/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_contracts/console/output/console.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_contracts/console/output/executor.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_contracts/console/parser.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_contracts/console/task_manager.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_contracts/facades/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_contracts/facades/commands/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_contracts/facades/commands/commands_facade.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_contracts/facades/commands/scheduler_facade.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_contracts/facades/config/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_contracts/facades/config/config_facade.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_contracts/facades/environment/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_contracts/facades/environment/environment_facade.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_contracts/facades/facade.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_contracts/facades/files/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_contracts/facades/files/path_facade.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_contracts/facades/log/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_contracts/facades/log/log_facade.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_contracts/facades/tests/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_contracts/facades/tests/tests_facade.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_contracts/foundation/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_contracts/foundation/bootstraper.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_contracts/foundation/config/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_contracts/foundation/config/config_bootstrapper.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_contracts/foundation/console/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_contracts/foundation/console/command_bootstrapper.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_contracts/foundation/environment/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_contracts/foundation/environment/environment_bootstrapper.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_contracts/foundation/providers/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_contracts/foundation/providers/service_providers_bootstrapper.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_contracts/providers/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_contracts/providers/service_provider.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_contracts/services/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_contracts/services/commands/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_contracts/services/commands/reactor_commands_service.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_contracts/services/commands/schedule_service.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_contracts/services/config/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_contracts/services/config/config_service.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_contracts/services/environment/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_contracts/services/environment/environment_service.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_contracts/services/files/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_contracts/services/files/path_resolver_service.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_contracts/services/log/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_contracts/services/log/log_service.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_contracts/support/exception_parse.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_contracts/support/reflection.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_foundation/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_foundation/console/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_foundation/console/command_bootstrapper.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_foundation/environment/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_foundation/environment/environment_bootstrapper.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_foundation/exceptions/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_foundation/exceptions/exception_bootstrapper.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_foundation/exceptions/exception_providers.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_foundation/foundation/config/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_foundation/foundation/config/config_bootstrapper.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_foundation/providers/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_foundation/providers/service_providers_bootstrapper.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_services/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_services/commands/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_services/commands/reactor_commands_service.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_services/commands/scheduler_service.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_services/config/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/_services/config/config_service.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/console/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/console/base/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/console/base/command.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/console/dumper/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/console/dumper/contracts/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/console/dumper/contracts/dump.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/console/dumper/dump.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/console/dynamic/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/console/dynamic/contracts/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/console/dynamic/contracts/progress_bar.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/console/dynamic/progress_bar.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/console/output/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/console/output/console.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/console/output/contracts/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/console/output/contracts/console.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/console/output/enums/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/console/output/enums/styles.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/container/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/container/container.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/container/context/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/container/context/manager.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/container/context/scope.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/container/contracts/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/container/contracts/container.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/container/contracts/service_provider.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/container/entities/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/container/entities/binding.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/container/enums/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/container/enums/lifetimes.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/container/exceptions/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/container/exceptions/attribute.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/container/exceptions/exception.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/container/exceptions/type.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/container/exceptions/value.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/container/facades/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/container/facades/facade.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/container/providers/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/container/providers/service_provider.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/container/resolver/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/container/validators/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/container/validators/implements.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/container/validators/is_abstract_class.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/container/validators/is_callable.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/container/validators/is_concrete_class.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/container/validators/is_instance.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/container/validators/is_not_subclass.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/container/validators/is_subclass.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/container/validators/is_valid_alias.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/container/validators/lifetime.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/application.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/app/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/app/entities/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/app/entities/app.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/app/enums/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/app/enums/ciphers.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/app/enums/environments.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/auth/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/auth/entities/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/auth/entities/auth.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/cache/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/cache/entities/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/cache/entities/cache.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/cache/entities/file.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/cache/entities/stores.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/cache/enums/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/cache/enums/drivers.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/cors/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/cors/entities/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/cors/entities/cors.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/database/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/database/entities/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/database/entities/connections.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/database/entities/database.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/database/entities/mysql.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/database/entities/oracle.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/database/entities/pgsql.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/database/entities/sqlite.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/database/enums/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/database/enums/mysql_charsets.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/database/enums/mysql_collations.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/database/enums/mysql_engine.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/database/enums/oracle_encoding.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/database/enums/oracle_nencoding.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/database/enums/pgsql_charsets.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/database/enums/pgsql_collations.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/database/enums/pgsql_mode.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/database/enums/sqlite_foreign_key.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/database/enums/sqlite_journal.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/database/enums/sqlite_synchronous.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/filesystems/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/filesystems/entitites/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/filesystems/entitites/aws.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/filesystems/entitites/disks.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/filesystems/entitites/filesystems.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/filesystems/entitites/local.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/filesystems/entitites/public.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/logging/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/logging/entities/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/logging/entities/channels.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/logging/entities/chunked.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/logging/entities/daily.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/logging/entities/hourly.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/logging/entities/logging.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/logging/entities/monthly.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/logging/entities/stack.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/logging/entities/weekly.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/logging/enums/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/logging/enums/levels.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/mail/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/mail/entities/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/mail/entities/file.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/mail/entities/mail.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/mail/entities/mailers.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/mail/entities/smtp.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/queue/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/queue/entities/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/queue/entities/brokers.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/queue/entities/database.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/queue/entities/queue.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/queue/enums/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/queue/enums/strategy.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/roots/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/roots/paths.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/session/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/session/entities/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/session/entities/session.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/session/enums/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/session/enums/same_site_policy.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/session/helpers/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/session/helpers/secret_key.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/startup.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/testing/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/testing/entities/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/testing/entities/testing.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/testing/enums/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/config/testing/enums/test_mode.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/contracts/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/contracts/application.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/contracts/config.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/exceptions/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/exceptions/integrity.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/exceptions/value.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/providers/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/providers/console_provider.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/providers/dumper_provider.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/providers/path_resolver_provider.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/providers/progress_bar_provider.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/foundation/providers/workers_provider.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/metadata/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/metadata/package.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/asynchrony/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/asynchrony/contracts/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/asynchrony/contracts/coroutines.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/asynchrony/coroutines.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/asynchrony/exceptions/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/asynchrony/exceptions/exception.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/environment/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/environment/contracts/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/environment/contracts/env.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/environment/contracts/types.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/environment/core/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/environment/core/dot_env.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/environment/dynamic/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/environment/dynamic/types.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/environment/env.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/environment/exceptions/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/environment/exceptions/exception.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/environment/exceptions/value.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/environment/helpers/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/environment/helpers/functions.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/introspection/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/introspection/abstract/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/introspection/abstract/contracts/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/introspection/abstract/contracts/reflection.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/introspection/abstract/reflection.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/introspection/callables/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/introspection/callables/contracts/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/introspection/callables/contracts/reflection.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/introspection/callables/reflection.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/introspection/concretes/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/introspection/concretes/contracts/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/introspection/concretes/contracts/concrete.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/introspection/concretes/reflection.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/introspection/dependencies/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/introspection/dependencies/contracts/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/introspection/dependencies/contracts/reflection.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/introspection/dependencies/entities/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/introspection/dependencies/entities/callable_dependencies.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/introspection/dependencies/entities/class_dependencies.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/introspection/dependencies/entities/known_dependencies.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/introspection/dependencies/entities/method_dependencies.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/introspection/dependencies/reflection.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/introspection/exceptions/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/introspection/exceptions/attribute.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/introspection/exceptions/type.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/introspection/exceptions/value.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/introspection/instances/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/introspection/instances/contracts/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/introspection/instances/contracts/reflection.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/introspection/instances/reflection.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/introspection/modules/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/introspection/modules/contracts/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/introspection/modules/contracts/reflection.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/introspection/modules/reflection.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/introspection/objects/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/introspection/objects/types.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/introspection/reflection.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/log/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/log/log_service.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/paths/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/paths/contracts/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/paths/exceptions/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/paths/exceptions/exception.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/paths/exceptions/file.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/paths/resolver.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/system/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/system/contracts/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/system/contracts/imports.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/system/contracts/workers.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/system/imports.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/system/runtime/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/system/runtime/imports.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/services/system/workers.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/support/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/support/facades/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/support/facades/console.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/support/facades/dumper.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/support/facades/path_resolver.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/support/facades/progress_bar.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/support/facades/workers.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/support/formatter/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/support/formatter/exceptions/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/support/formatter/exceptions/contracts/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/support/formatter/exceptions/contracts/parser.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/support/formatter/exceptions/parser.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/support/formatter/serializer.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/support/patterns/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/support/patterns/singleton/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/support/patterns/singleton/meta.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/support/standard/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/support/standard/contracts/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/support/standard/contracts/std.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/support/standard/exceptions/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/support/standard/exceptions/value.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/support/standard/std.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/support/wrapper/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/support/wrapper/dot_dict.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/test/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/test/arguments/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/test/arguments/parser.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/test/cases/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/test/cases/asynchronous.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/test/cases/synchronous.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/test/contracts/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/test/contracts/dumper.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/test/contracts/kernel.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/test/contracts/logs.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/test/contracts/parser.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/test/contracts/printer.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/test/contracts/render.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/test/contracts/unit_test.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/test/core/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/test/entities/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/test/entities/arguments.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/test/entities/result.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/test/enums/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/test/enums/execution_mode.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/test/enums/status.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/test/exceptions/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/test/exceptions/config.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/test/exceptions/failure.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/test/exceptions/persistence.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/test/exceptions/runtime.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/test/exceptions/value.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/test/output/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/test/output/dumper.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/test/output/printer.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/test/record/history.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/test/records/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/test/records/logs.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/test/view/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis/test/view/render.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis.egg-info/SOURCES.txt +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis.egg-info/dependency_links.txt +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis.egg-info/requires.txt +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis.egg-info/top_level.txt +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/orionis.egg-info/zip-safe +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/setup.cfg +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/setup.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/example/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/foundation/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/foundation/config/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/foundation/config/app/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/foundation/config/app/test_foundation_config_app.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/foundation/config/auth/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/foundation/config/auth/test_foundation_config_auth.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/foundation/config/cache/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/foundation/config/cache/test_foundation_config_cache.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/foundation/config/cache/test_foundation_config_cache_file.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/foundation/config/cache/test_foundation_config_cache_stores.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/foundation/config/cors/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/foundation/config/cors/test_foundation_config_cors.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/foundation/config/database/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/foundation/config/database/test_foundation_config_database.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/foundation/config/database/test_foundation_config_database_connections.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/foundation/config/database/test_foundation_config_database_mysql.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/foundation/config/database/test_foundation_config_database_oracle.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/foundation/config/database/test_foundation_config_database_pgsql.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/foundation/config/database/test_foundation_config_database_sqlite.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/foundation/config/filesystems/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems_aws.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems_disks.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems_local.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems_public.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/foundation/config/logging/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/foundation/config/logging/test_foundation_config_logging.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/foundation/config/logging/test_foundation_config_logging_channels.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/foundation/config/logging/test_foundation_config_logging_chunked.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/foundation/config/logging/test_foundation_config_logging_daily.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/foundation/config/logging/test_foundation_config_logging_hourly.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/foundation/config/logging/test_foundation_config_logging_monthly.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/foundation/config/logging/test_foundation_config_logging_stack.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/foundation/config/logging/test_foundation_config_logging_weekly.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/foundation/config/mail/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/foundation/config/mail/test_foundation_config_mail.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/foundation/config/mail/test_foundation_config_mail_file.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/foundation/config/mail/test_foundation_config_mail_mailers.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/foundation/config/mail/test_foundation_config_mail_smtp.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/foundation/config/queue/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/foundation/config/queue/test_foundation_config_queue.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/foundation/config/queue/test_foundation_config_queue_brokers.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/foundation/config/queue/test_foundation_config_queue_database.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/foundation/config/root/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/foundation/config/root/test_foundation_config_root_paths.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/foundation/config/session/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/foundation/config/session/test_foundation_config_session.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/foundation/config/startup/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/foundation/config/startup/test_foundation_config_startup.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/foundation/config/testing/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/foundation/config/testing/test_foundation_config_testing.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/foundation/exceptions/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/foundation/exceptions/test_foundation_config_exceptions.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/metadata/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/metadata/test_metadata_framework.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/metadata/test_metadata_package.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/services/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/services/asynchrony/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/services/asynchrony/test_services_asynchrony_coroutine.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/services/environment/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/services/environment/test_services_environment.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/services/inspection/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/services/inspection/dependencies/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/services/inspection/dependencies/mocks/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/services/inspection/dependencies/mocks/mock_user.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/services/inspection/dependencies/mocks/mock_user_controller.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/services/inspection/dependencies/mocks/mock_users_permissions.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/services/inspection/dependencies/test_reflect_dependencies.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/services/inspection/reflection/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/services/inspection/reflection/mock/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/services/inspection/reflection/mock/fake_reflect_instance.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/services/inspection/reflection/test_reflection_abstract.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/services/inspection/reflection/test_reflection_callable.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/services/inspection/reflection/test_reflection_concrete.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/services/inspection/reflection/test_reflection_instance.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/services/inspection/reflection/test_reflection_module.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/services/inspection/test_reflection.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/services/path/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/services/path/test_services_resolver.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/services/system/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/services/system/test_services_system_imports.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/services/system/test_services_system_workers.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/support/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/support/parsers/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/support/parsers/mocks/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/support/parsers/mocks/mock_custom_error.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/support/parsers/test_services_parser_exceptions.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/support/patterns/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/support/patterns/singleton/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/support/patterns/singleton/test_patterns_singleton.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/support/standard/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/support/standard/test_services_std.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/support/wrapper/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/support/wrapper/test_services_wrapper_docdict.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/testing/__init__.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/testing/test_testing_result.py +0 -0
- {orionis-0.380.0 → orionis-0.382.0}/tests/testing/test_testing_unit.py +0 -0
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
from abc import ABC, abstractmethod
|
|
2
|
-
from typing import Any
|
|
2
|
+
from typing import Any, Callable
|
|
3
3
|
from orionis.container.contracts.container import IContainer
|
|
4
4
|
from orionis.container.entities.binding import Binding
|
|
5
|
+
from orionis.services.introspection.dependencies.entities.method_dependencies import MethodDependency
|
|
5
6
|
|
|
6
7
|
class IResolver(ABC):
|
|
7
8
|
"""
|
|
@@ -55,4 +56,60 @@ class IResolver(ABC):
|
|
|
55
56
|
OrionisContainerException
|
|
56
57
|
If the binding is not an instance of Binding or if resolution fails.
|
|
57
58
|
"""
|
|
59
|
+
pass
|
|
60
|
+
|
|
61
|
+
@abstractmethod
|
|
62
|
+
def resolveType(
|
|
63
|
+
self,
|
|
64
|
+
type_: Callable[..., Any],
|
|
65
|
+
*args,
|
|
66
|
+
**kwargs
|
|
67
|
+
) -> Any:
|
|
68
|
+
"""
|
|
69
|
+
Forces resolution of a type whether it's registered in the container or not.
|
|
70
|
+
|
|
71
|
+
Parameters
|
|
72
|
+
----------
|
|
73
|
+
type_ : Callable[..., Any]
|
|
74
|
+
The type or callable to resolve.
|
|
75
|
+
*args : tuple
|
|
76
|
+
Positional arguments to pass to the constructor/callable.
|
|
77
|
+
**kwargs : dict
|
|
78
|
+
Keyword arguments to pass to the constructor/callable.
|
|
79
|
+
|
|
80
|
+
Returns
|
|
81
|
+
-------
|
|
82
|
+
Any
|
|
83
|
+
The resolved instance.
|
|
84
|
+
|
|
85
|
+
Raises
|
|
86
|
+
------
|
|
87
|
+
OrionisContainerException
|
|
88
|
+
If the type cannot be resolved.
|
|
89
|
+
"""
|
|
90
|
+
pass
|
|
91
|
+
|
|
92
|
+
@abstractmethod
|
|
93
|
+
def resolveSignature(
|
|
94
|
+
self,
|
|
95
|
+
signature: MethodDependency
|
|
96
|
+
) -> dict:
|
|
97
|
+
"""
|
|
98
|
+
Resolves dependencies defined in a method signature.
|
|
99
|
+
|
|
100
|
+
Parameters
|
|
101
|
+
----------
|
|
102
|
+
signature : MethodDependency
|
|
103
|
+
The method dependency information to resolve.
|
|
104
|
+
|
|
105
|
+
Returns
|
|
106
|
+
-------
|
|
107
|
+
dict
|
|
108
|
+
A dictionary of resolved parameter values.
|
|
109
|
+
|
|
110
|
+
Raises
|
|
111
|
+
------
|
|
112
|
+
OrionisContainerException
|
|
113
|
+
If any dependencies cannot be resolved.
|
|
114
|
+
"""
|
|
58
115
|
pass
|
|
@@ -8,6 +8,7 @@ from orionis.container.exceptions import OrionisContainerException
|
|
|
8
8
|
from orionis.services.introspection.callables.reflection import ReflectionCallable
|
|
9
9
|
from orionis.services.introspection.concretes.reflection import ReflectionConcrete
|
|
10
10
|
from orionis.services.introspection.dependencies.entities.known_dependencies import KnownDependency
|
|
11
|
+
from orionis.services.introspection.dependencies.entities.method_dependencies import MethodDependency
|
|
11
12
|
|
|
12
13
|
class Resolver(IResolver):
|
|
13
14
|
"""
|
|
@@ -65,6 +66,146 @@ class Resolver(IResolver):
|
|
|
65
66
|
elif binding.lifetime == Lifetime.SCOPED:
|
|
66
67
|
return self.__resolveScoped(binding, *args, **kwargs)
|
|
67
68
|
|
|
69
|
+
def resolveType(
|
|
70
|
+
self,
|
|
71
|
+
type_: Callable[..., Any],
|
|
72
|
+
*args,
|
|
73
|
+
**kwargs
|
|
74
|
+
) -> Any:
|
|
75
|
+
"""
|
|
76
|
+
Forces resolution of a type whether it's registered in the container or not.
|
|
77
|
+
|
|
78
|
+
Parameters
|
|
79
|
+
----------
|
|
80
|
+
type_ : Callable[..., Any]
|
|
81
|
+
The type or callable to resolve.
|
|
82
|
+
*args : tuple
|
|
83
|
+
Positional arguments to pass to the constructor/callable.
|
|
84
|
+
**kwargs : dict
|
|
85
|
+
Keyword arguments to pass to the constructor/callable.
|
|
86
|
+
|
|
87
|
+
Returns
|
|
88
|
+
-------
|
|
89
|
+
Any
|
|
90
|
+
The resolved instance.
|
|
91
|
+
|
|
92
|
+
Raises
|
|
93
|
+
------
|
|
94
|
+
OrionisContainerException
|
|
95
|
+
If the type cannot be resolved.
|
|
96
|
+
"""
|
|
97
|
+
|
|
98
|
+
# Try to resolve the type with the provided arguments
|
|
99
|
+
# If the type is already bound in the container, resolve it directly
|
|
100
|
+
# or if args or kwargs are provided, instantiate it directly
|
|
101
|
+
# If the type is a concrete class, instantiate it with resolved dependencies
|
|
102
|
+
try:
|
|
103
|
+
|
|
104
|
+
# Check if the type is already bound in the container
|
|
105
|
+
if self.container.bound(type_):
|
|
106
|
+
binding = self.container.getBinding(type_)
|
|
107
|
+
return self.resolve(binding, *args, **kwargs)
|
|
108
|
+
|
|
109
|
+
# If args or kwargs are provided, use them directly
|
|
110
|
+
if args or kwargs:
|
|
111
|
+
|
|
112
|
+
# For classes
|
|
113
|
+
if isinstance(type_, type):
|
|
114
|
+
return type_(*args, **kwargs)
|
|
115
|
+
|
|
116
|
+
# For callables
|
|
117
|
+
elif callable(type_):
|
|
118
|
+
return type_(*args, **kwargs)
|
|
119
|
+
|
|
120
|
+
# Otherwise use reflection to resolve dependencies
|
|
121
|
+
# If the type is a concrete class, instantiate it with resolved dependencies
|
|
122
|
+
elif ReflectionConcrete.isConcreteClass(type_):
|
|
123
|
+
return type_(**self.__resolveDependencies(type_, is_class=True))
|
|
124
|
+
|
|
125
|
+
# Try to call directly if it's a callable
|
|
126
|
+
elif callable(type_) and not isinstance(type_, type):
|
|
127
|
+
return type_(**self.__resolveDependencies(type_, is_class=False))
|
|
128
|
+
|
|
129
|
+
# If the type is neither a concrete class nor a callable, raise an exception
|
|
130
|
+
raise OrionisContainerException(
|
|
131
|
+
f"Cannot force resolve: {getattr(type_, '__name__', str(type_))} is neither a concrete class nor a callable."
|
|
132
|
+
)
|
|
133
|
+
|
|
134
|
+
except Exception as e:
|
|
135
|
+
|
|
136
|
+
# Get the type name safely to avoid AttributeError
|
|
137
|
+
type_name = getattr(type_, '__name__', str(type_))
|
|
138
|
+
module_name = getattr(type_, '__module__', "unknown module")
|
|
139
|
+
|
|
140
|
+
# Provide more detailed error message
|
|
141
|
+
error_msg = f"Error while force-resolving '{type_name}' from '{module_name}':\n{str(e)}"
|
|
142
|
+
|
|
143
|
+
# If it's already an OrionisContainerException, just re-raise it with the context
|
|
144
|
+
if isinstance(e, OrionisContainerException):
|
|
145
|
+
raise e from None
|
|
146
|
+
|
|
147
|
+
# Raise a new OrionisContainerException with the original exception as context
|
|
148
|
+
else:
|
|
149
|
+
raise OrionisContainerException(error_msg) from e
|
|
150
|
+
|
|
151
|
+
def resolveSignature(
|
|
152
|
+
self,
|
|
153
|
+
signature: MethodDependency
|
|
154
|
+
) -> dict:
|
|
155
|
+
"""
|
|
156
|
+
Resolves dependencies defined in a method signature.
|
|
157
|
+
|
|
158
|
+
Parameters
|
|
159
|
+
----------
|
|
160
|
+
signature : MethodDependency
|
|
161
|
+
The method dependency information to resolve.
|
|
162
|
+
|
|
163
|
+
Returns
|
|
164
|
+
-------
|
|
165
|
+
dict
|
|
166
|
+
A dictionary of resolved parameter values.
|
|
167
|
+
|
|
168
|
+
Raises
|
|
169
|
+
------
|
|
170
|
+
OrionisContainerException
|
|
171
|
+
If any dependencies cannot be resolved.
|
|
172
|
+
"""
|
|
173
|
+
# If no dependencies to resolve, return empty dict
|
|
174
|
+
if not signature.resolved and not signature.unresolved:
|
|
175
|
+
return {}
|
|
176
|
+
|
|
177
|
+
# If there are unresolved dependencies, raise an error
|
|
178
|
+
if signature.unresolved:
|
|
179
|
+
raise OrionisContainerException(
|
|
180
|
+
f"Cannot resolve method dependencies because the following parameters are unresolved: {', '.join(signature.unresolved)}."
|
|
181
|
+
)
|
|
182
|
+
|
|
183
|
+
# Create a dict of resolved dependencies
|
|
184
|
+
params = {}
|
|
185
|
+
for param_name, dep in signature.resolved.items():
|
|
186
|
+
if isinstance(dep, KnownDependency):
|
|
187
|
+
# Try to resolve the dependency using the container
|
|
188
|
+
if self.container.bound(dep.type):
|
|
189
|
+
params[param_name] = self.resolve(
|
|
190
|
+
self.container.getBinding(dep.type)
|
|
191
|
+
)
|
|
192
|
+
elif self.container.bound(dep.full_class_path):
|
|
193
|
+
params[param_name] = self.resolve(
|
|
194
|
+
self.container.getBinding(dep.full_class_path)
|
|
195
|
+
)
|
|
196
|
+
# Try to resolve directly if it's a concrete type
|
|
197
|
+
elif ReflectionConcrete.isConcreteClass(dep.type):
|
|
198
|
+
params[param_name] = self.resolveType(dep.type)
|
|
199
|
+
else:
|
|
200
|
+
raise OrionisContainerException(
|
|
201
|
+
f"Cannot resolve dependency '{param_name}' of type '{dep.type.__name__}'."
|
|
202
|
+
)
|
|
203
|
+
else:
|
|
204
|
+
# Use default value
|
|
205
|
+
params[param_name] = dep
|
|
206
|
+
|
|
207
|
+
return params
|
|
208
|
+
|
|
68
209
|
def __resolveTransient(self, binding: Binding, *args, **kwargs) -> Any:
|
|
69
210
|
"""
|
|
70
211
|
Resolves a service with transient lifetime.
|
|
@@ -7,19 +7,7 @@ class IResolver(ABC):
|
|
|
7
7
|
"""
|
|
8
8
|
|
|
9
9
|
@abstractmethod
|
|
10
|
-
def
|
|
11
|
-
"""
|
|
12
|
-
Initializes the resolver with an optional root path.
|
|
13
|
-
|
|
14
|
-
Parameters
|
|
15
|
-
----------
|
|
16
|
-
root_path : str, optional
|
|
17
|
-
The root directory to resolve relative paths from.
|
|
18
|
-
"""
|
|
19
|
-
pass
|
|
20
|
-
|
|
21
|
-
@abstractmethod
|
|
22
|
-
def relativePath(self, relative_path: str):
|
|
10
|
+
def relativePath(self, relative_path: str) -> 'IResolver':
|
|
23
11
|
"""
|
|
24
12
|
Resolves a relative path into an absolute one and validates its existence.
|
|
25
13
|
|
|
@@ -12,9 +12,7 @@ from pathlib import Path
|
|
|
12
12
|
from typing import Any, Dict, List, Optional, Tuple
|
|
13
13
|
from orionis.container.resolver.resolver import Resolver
|
|
14
14
|
from orionis.foundation.contracts.application import IApplication
|
|
15
|
-
from orionis.services.introspection.concretes.reflection import ReflectionConcrete
|
|
16
15
|
from orionis.services.introspection.instances.reflection import ReflectionInstance
|
|
17
|
-
from orionis.services.introspection.dependencies.entities.known_dependencies import KnownDependency
|
|
18
16
|
from orionis.services.system.workers import Workers
|
|
19
17
|
from orionis.test.entities.result import TestResult
|
|
20
18
|
from orionis.test.enums import (
|
|
@@ -667,26 +665,35 @@ class UnitTest(IUnitTest):
|
|
|
667
665
|
# Return the result along with captured output and error streams
|
|
668
666
|
return result, output_buffer, error_buffer
|
|
669
667
|
|
|
670
|
-
def
|
|
671
|
-
self
|
|
672
|
-
|
|
673
|
-
error_buffer: io.StringIO
|
|
674
|
-
) -> unittest.TestResult:
|
|
668
|
+
def __resolveFlattenedTestSuite(
|
|
669
|
+
self
|
|
670
|
+
) -> unittest.TestSuite:
|
|
675
671
|
"""
|
|
676
|
-
|
|
672
|
+
Resolves dependencies for all test cases in the suite and creates a flattened test suite with injected dependencies.
|
|
673
|
+
|
|
674
|
+
Processes each test case, identifies dependencies in test method signatures, and resolves
|
|
675
|
+
them using the application's dependency resolver. Creates wrapper methods that automatically
|
|
676
|
+
inject the resolved dependencies when tests are executed.
|
|
677
677
|
|
|
678
678
|
Parameters
|
|
679
679
|
----------
|
|
680
|
-
|
|
681
|
-
A buffer to capture the standard output during test execution.
|
|
682
|
-
error_buffer : io.StringIO
|
|
683
|
-
A buffer to capture the standard error during test execution.
|
|
680
|
+
None
|
|
684
681
|
|
|
685
682
|
Returns
|
|
686
683
|
-------
|
|
687
|
-
unittest.
|
|
688
|
-
|
|
689
|
-
|
|
684
|
+
unittest.TestSuite
|
|
685
|
+
A new test suite with all tests having their dependencies resolved and injected.
|
|
686
|
+
|
|
687
|
+
Raises
|
|
688
|
+
------
|
|
689
|
+
OrionisTestValueError
|
|
690
|
+
If any test method has dependencies that cannot be resolved.
|
|
691
|
+
|
|
692
|
+
Notes
|
|
693
|
+
-----
|
|
694
|
+
- Test methods with decorators are left as-is
|
|
695
|
+
- Test methods without dependencies are added directly
|
|
696
|
+
- Test methods with unresolved dependencies trigger an error
|
|
690
697
|
"""
|
|
691
698
|
|
|
692
699
|
# Create a new test suite with tests that have their dependencies resolved
|
|
@@ -746,49 +753,7 @@ class UnitTest(IUnitTest):
|
|
|
746
753
|
original_method = getattr(test_class, method_name)
|
|
747
754
|
|
|
748
755
|
# Create a dict of resolved dependencies
|
|
749
|
-
params =
|
|
750
|
-
resolve = Resolver(self.app)
|
|
751
|
-
for key, value in signature.resolved.items():
|
|
752
|
-
|
|
753
|
-
# If the dependency is a KnownDependency, resolve it
|
|
754
|
-
if isinstance(value, KnownDependency):
|
|
755
|
-
|
|
756
|
-
# If the dependency is a built-in type, raise an exception
|
|
757
|
-
if value.module_name == 'builtins':
|
|
758
|
-
raise OrionisTestValueError(
|
|
759
|
-
f"Cannot resolve built-in type '{value.type.__name__}' for dependency '{key}' in test method '{method_name}'. "
|
|
760
|
-
"Built-in types cannot be resolved by the container."
|
|
761
|
-
)
|
|
762
|
-
|
|
763
|
-
# Try to resolve from container using type (Abstract or Interface)
|
|
764
|
-
if self.app.bound(value.type):
|
|
765
|
-
params[key] = resolve.resolve(
|
|
766
|
-
self.app.getBinding(value.type)
|
|
767
|
-
)
|
|
768
|
-
|
|
769
|
-
# Try to resolve from container using full class path
|
|
770
|
-
elif self.app.bound(value.full_class_path):
|
|
771
|
-
params[key] = resolve.resolve(
|
|
772
|
-
self.app.getBinding(value.full_class_path)
|
|
773
|
-
)
|
|
774
|
-
|
|
775
|
-
# Try to instantiate directly if it's a concrete class
|
|
776
|
-
elif ReflectionConcrete.isConcreteClass(value.type):
|
|
777
|
-
params[key] = value.type(**resolve._Resolver__resolveDependencies(value.type, is_class=True))
|
|
778
|
-
|
|
779
|
-
# Try to call directly if it's a callable
|
|
780
|
-
elif callable(value.type) and not isinstance(value.type, type):
|
|
781
|
-
params[key] = value.type(**self._Resolver__resolveDependencies(value.type, is_class=False))
|
|
782
|
-
|
|
783
|
-
# If the dependency cannot be resolved, raise an exception
|
|
784
|
-
else:
|
|
785
|
-
raise OrionisTestValueError(
|
|
786
|
-
f"Cannot resolve dependency '{key}' of type '{value.type.__name__}' in test method '{method_name}'. "
|
|
787
|
-
"Ensure that the dependency is bound in the container or is a concrete class."
|
|
788
|
-
)
|
|
789
|
-
else:
|
|
790
|
-
# Use default value
|
|
791
|
-
params[key] = value
|
|
756
|
+
params = Resolver(self.app).resolveSignature(signature)
|
|
792
757
|
|
|
793
758
|
# Create a wrapper method that injects dependencies
|
|
794
759
|
def create_test_wrapper(original_test, resolved_args:dict):
|
|
@@ -803,6 +768,31 @@ class UnitTest(IUnitTest):
|
|
|
803
768
|
# Add the modified test case to the suite
|
|
804
769
|
flattened_suite.addTest(test_case)
|
|
805
770
|
|
|
771
|
+
# Return the flattened suite with resolved dependencies
|
|
772
|
+
return flattened_suite
|
|
773
|
+
|
|
774
|
+
def __runTestsSequentially(
|
|
775
|
+
self,
|
|
776
|
+
output_buffer: io.StringIO,
|
|
777
|
+
error_buffer: io.StringIO
|
|
778
|
+
) -> unittest.TestResult:
|
|
779
|
+
"""
|
|
780
|
+
Executes the test suite sequentially, capturing the output and error streams.
|
|
781
|
+
|
|
782
|
+
Parameters
|
|
783
|
+
----------
|
|
784
|
+
output_buffer : io.StringIO
|
|
785
|
+
A buffer to capture the standard output during test execution.
|
|
786
|
+
error_buffer : io.StringIO
|
|
787
|
+
A buffer to capture the standard error during test execution.
|
|
788
|
+
|
|
789
|
+
Returns
|
|
790
|
+
-------
|
|
791
|
+
unittest.TestResult
|
|
792
|
+
The result of the test suite execution, containing information about
|
|
793
|
+
passed, failed, and skipped tests.
|
|
794
|
+
"""
|
|
795
|
+
|
|
806
796
|
# Create a custom result class to capture detailed test results
|
|
807
797
|
with redirect_stdout(output_buffer), redirect_stderr(error_buffer):
|
|
808
798
|
runner = unittest.TextTestRunner(
|
|
@@ -811,7 +801,7 @@ class UnitTest(IUnitTest):
|
|
|
811
801
|
failfast=self.fail_fast,
|
|
812
802
|
resultclass=self.__customResultClass()
|
|
813
803
|
)
|
|
814
|
-
result = runner.run(
|
|
804
|
+
result = runner.run(self.__resolveFlattenedTestSuite())
|
|
815
805
|
|
|
816
806
|
# Return the result object containing test outcomes
|
|
817
807
|
return result
|
|
@@ -845,7 +835,7 @@ class UnitTest(IUnitTest):
|
|
|
845
835
|
"""
|
|
846
836
|
|
|
847
837
|
# Flatten the test suite to get individual test cases
|
|
848
|
-
test_cases = list(self.
|
|
838
|
+
test_cases = list(self.__resolveFlattenedTestSuite())
|
|
849
839
|
|
|
850
840
|
# Create a custom result instance to collect all results
|
|
851
841
|
result_class = self.__customResultClass()
|
|
@@ -277,10 +277,7 @@ class TestKernel(ITestKernel):
|
|
|
277
277
|
throw_exception = bool(args.throw_exception),
|
|
278
278
|
persistent = bool(args.persistent),
|
|
279
279
|
persistent_driver = str(args.persistent_driver) if args.persistent_driver else None,
|
|
280
|
-
web_report = bool(args.web_report)
|
|
281
|
-
folder_path=[
|
|
282
|
-
'example'
|
|
283
|
-
]
|
|
280
|
+
web_report = bool(args.web_report)
|
|
284
281
|
)
|
|
285
282
|
|
|
286
283
|
# If requested, print the output buffer
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
from orionis.services.paths.contracts.resolver import IResolver
|
|
2
|
+
from orionis.test.cases.synchronous import SyncTestCase
|
|
3
|
+
|
|
4
|
+
class TestExample(SyncTestCase):
|
|
5
|
+
|
|
6
|
+
def testUnitExample(self, paths:IResolver) -> None:
|
|
7
|
+
"""
|
|
8
|
+
Unit test example function.
|
|
9
|
+
|
|
10
|
+
This method demonstrates basic unit testing functionality using assertions.
|
|
11
|
+
It checks simple equality conditions and verifies path resolution through
|
|
12
|
+
the injected paths service.
|
|
13
|
+
|
|
14
|
+
Parameters
|
|
15
|
+
----------
|
|
16
|
+
paths : IResolver
|
|
17
|
+
Service for resolving paths within the application.
|
|
18
|
+
|
|
19
|
+
Returns
|
|
20
|
+
-------
|
|
21
|
+
None
|
|
22
|
+
This test method doesn't return anything.
|
|
23
|
+
"""
|
|
24
|
+
|
|
25
|
+
# Check if 1 equals 1
|
|
26
|
+
self.assertEqual(2, 2)
|
|
27
|
+
|
|
28
|
+
# Check if 2 equals 2
|
|
29
|
+
self.assertEqual(3, 3)
|
|
30
|
+
|
|
31
|
+
# Inyect the paths service to resolve a relative path
|
|
32
|
+
path = paths.relativePath("tests/example/test_example.py").toString()
|
|
33
|
+
self.assertTrue(path.endswith("test_example.py"))
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
from unittest.mock import patch
|
|
2
|
-
from orionis.console.output.console import Console
|
|
3
|
-
from orionis.console.output.contracts.console import IConsole
|
|
4
|
-
from orionis.test.cases.synchronous import SyncTestCase
|
|
5
|
-
|
|
6
|
-
class TestExample(SyncTestCase):
|
|
7
|
-
"""
|
|
8
|
-
Unit tests for basic example functionality.
|
|
9
|
-
"""
|
|
10
|
-
|
|
11
|
-
# @patch('orionis.console.output.contracts.console.IConsole', autospec=True)
|
|
12
|
-
# @patch('orionis.console.output.contracts.console.IConsole', autospec=True)
|
|
13
|
-
def testUnitExample(self, cos:Console) -> None:
|
|
14
|
-
"""
|
|
15
|
-
Test that basic equality assertions work as expected.
|
|
16
|
-
|
|
17
|
-
Asserts
|
|
18
|
-
-------
|
|
19
|
-
1 == 1 : bool
|
|
20
|
-
Ensures that the integer 1 is equal to itself.
|
|
21
|
-
2 == 2 : bool
|
|
22
|
-
Ensures that the integer 2 is equal to itself.
|
|
23
|
-
"""
|
|
24
|
-
# Check if 1 equals 1
|
|
25
|
-
self.assertEqual(2, 2)
|
|
26
|
-
|
|
27
|
-
# Check if 2 equals 2
|
|
28
|
-
self.assertEqual(3, 3)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{orionis-0.380.0 → orionis-0.382.0}/orionis/_contracts/facades/environment/environment_facade.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|