orionis 0.286.0__tar.gz → 0.287.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.286.0/orionis.egg-info → orionis-0.287.0}/PKG-INFO +1 -1
- {orionis-0.286.0 → orionis-0.287.0}/orionis/metadata/framework.py +1 -1
- orionis-0.287.0/orionis/services/environment/contracts/env.py +77 -0
- orionis-0.287.0/orionis/services/environment/dot_env.py +271 -0
- orionis-0.287.0/orionis/services/environment/env.py +97 -0
- orionis-0.287.0/orionis/services/environment/exceptions/environment_value_error.py +18 -0
- orionis-0.287.0/orionis/services/environment/exceptions/environment_value_exception.py +23 -0
- orionis-0.287.0/orionis/services/environment/type_hint.py +559 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/test/logs/history.py +3 -5
- {orionis-0.286.0 → orionis-0.287.0/orionis.egg-info}/PKG-INFO +1 -1
- {orionis-0.286.0 → orionis-0.287.0}/orionis.egg-info/SOURCES.txt +3 -1
- {orionis-0.286.0 → orionis-0.287.0}/tests/example/test_example.py +5 -2
- {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/app/test_app.py +13 -3
- {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/auth/test_auth.py +9 -4
- {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/cache/test_cache.py +60 -15
- {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/cache/test_cache_file.py +62 -14
- {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/cache/test_cache_stores.py +74 -14
- orionis-0.287.0/tests/foundation/config/cors/test_cors.py +190 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/database/test_database.py +38 -14
- {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/database/test_database_connections.py +79 -5
- {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/database/test_database_mysql.py +138 -15
- {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/database/test_database_oracle.py +110 -26
- {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/database/test_database_pgsql.py +96 -26
- {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/database/test_database_sqlite.py +56 -2
- {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/exceptions/test_exceptions_integrity.py +44 -10
- {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/filesystems/test_filesystems.py +64 -14
- {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/filesystems/test_filesystems_aws.py +45 -7
- {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/filesystems/test_filesystems_disks.py +78 -8
- {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/filesystems/test_filesystems_local.py +66 -18
- {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/filesystems/test_filesystems_public.py +37 -0
- orionis-0.287.0/tests/foundation/config/logging/test_logging.py +112 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/logging/test_logging_channels.py +79 -2
- {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/logging/test_logging_chunked.py +85 -12
- {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/logging/test_logging_daily.py +79 -12
- {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/logging/test_logging_hourly.py +68 -2
- {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/logging/test_logging_monthly.py +48 -2
- {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/logging/test_logging_stack.py +49 -14
- {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/logging/test_logging_weekly.py +92 -2
- orionis-0.287.0/tests/foundation/config/mail/test_mail.py +145 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/mail/test_mail_file.py +40 -4
- orionis-0.287.0/tests/foundation/config/mail/test_mail_mailers.py +106 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/mail/test_mail_smtp.py +58 -14
- orionis-0.287.0/tests/foundation/config/queue/test_queue.py +111 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/queue/test_queue_brokers.py +27 -10
- {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/queue/test_queue_database.py +53 -15
- {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/root/test_root_paths.py +69 -2
- {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/session/test_session.py +30 -1
- {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/startup/test_config_startup.py +77 -7
- {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/testing/test_testing.py +68 -0
- orionis-0.287.0/tests/patterns/singleton/test_singleton.py +27 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/services/environment/test_env.py +3 -4
- orionis-0.287.0/tests/testing/test_testing_result.py +129 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/testing/test_testing_unit.py +93 -24
- orionis-0.286.0/orionis/services/environment/contracts/env.py +0 -82
- orionis-0.286.0/orionis/services/environment/dot_env.py +0 -247
- orionis-0.286.0/orionis/services/environment/env.py +0 -114
- orionis-0.286.0/orionis/services/environment/exceptions/value_exception.py +0 -27
- orionis-0.286.0/tests/foundation/config/cors/test_cors.py +0 -121
- orionis-0.286.0/tests/foundation/config/logging/test_logging.py +0 -48
- orionis-0.286.0/tests/foundation/config/mail/test_mail.py +0 -73
- orionis-0.286.0/tests/foundation/config/mail/test_mail_mailers.py +0 -58
- orionis-0.286.0/tests/foundation/config/queue/test_queue.py +0 -58
- orionis-0.286.0/tests/patterns/singleton/test_singleton.py +0 -18
- orionis-0.286.0/tests/testing/test_testing_result.py +0 -92
- {orionis-0.286.0 → orionis-0.287.0}/LICENCE +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/MANIFEST.in +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/README.md +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_application.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_container/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_container/container.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_container/container_integrity.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_container/exception.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_container/lifetimes.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_container/resolve.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/application.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/config/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/config/config.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/console/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/console/base/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/console/base/command.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/console/command_filter.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/console/kernel.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/console/output/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/console/output/console.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/console/output/executor.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/console/output/progress_bar.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/console/parser.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/console/task_manager.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/container/container.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/container/container_integrity.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/facades/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/facades/commands/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/facades/commands/commands_facade.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/facades/commands/scheduler_facade.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/facades/config/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/facades/config/config_facade.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/facades/environment/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/facades/environment/environment_facade.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/facades/facade.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/facades/files/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/facades/files/path_facade.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/facades/log/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/facades/log/log_facade.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/facades/tests/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/facades/tests/tests_facade.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/foundation/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/foundation/bootstraper.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/foundation/config/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/foundation/config/config_bootstrapper.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/foundation/console/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/foundation/console/command_bootstrapper.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/foundation/environment/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/foundation/environment/environment_bootstrapper.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/foundation/providers/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/foundation/providers/service_providers_bootstrapper.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/providers/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/providers/service_provider.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/services/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/services/commands/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/services/commands/reactor_commands_service.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/services/commands/schedule_service.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/services/config/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/services/config/config_service.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/services/environment/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/services/environment/environment_service.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/services/files/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/services/files/path_resolver_service.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/services/log/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/services/log/log_service.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/support/exception_parse.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_contracts/support/reflection.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_facades/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_facades/app_facade.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_facades/commands/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_facades/commands/commands_facade.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_facades/commands/scheduler_facade.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_facades/config/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_facades/config/config_facade.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_facades/environment/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_facades/environment/environment_facade.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_facades/files/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_facades/files/path_facade.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_facades/log/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_facades/log/log_facade.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_foundation/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_foundation/console/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_foundation/console/command_bootstrapper.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_foundation/environment/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_foundation/environment/environment_bootstrapper.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_foundation/exceptions/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_foundation/exceptions/exception_bootstrapper.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_foundation/exceptions/exception_providers.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_foundation/foundation/config/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_foundation/foundation/config/config_bootstrapper.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_foundation/providers/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_foundation/providers/service_providers_bootstrapper.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_providers/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_providers/commands/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_providers/commands/reactor_commands_service_provider.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_providers/commands/scheduler_provider.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_providers/config/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_providers/config/config_service_provider.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_providers/environment/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_providers/environment/environment__service_provider.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_providers/files/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_providers/files/paths_provider.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_providers/log/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_providers/log/log_service_provider.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_providers/service_provider.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_services/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_services/commands/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_services/commands/reactor_commands_service.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_services/commands/scheduler_service.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_services/config/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_services/config/config_service.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_services/log/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/_services/log/log_service.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/application.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/console/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/console/base/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/console/base/command.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/console/command_filter.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/console/commands/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/console/commands/cache_clear.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/console/commands/help.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/console/commands/schedule_work.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/console/commands/version.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/console/dumper/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/console/dumper/dump_die.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/console/exceptions/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/console/exceptions/cli-orionis-value-error.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/console/exceptions/cli_exception.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/console/exceptions/cli_runtime_error.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/console/exceptions/cli_schedule_exception.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/console/kernel.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/console/output/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/console/output/console.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/console/output/executor.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/console/output/progress_bar.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/console/output/styles.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/console/parser.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/app/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/app/entities/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/app/entities/app.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/app/enums/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/app/enums/ciphers.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/app/enums/environments.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/auth/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/auth/entities/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/auth/entities/auth.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/cache/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/cache/entities/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/cache/entities/cache.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/cache/entities/file.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/cache/entities/stores.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/cache/enums/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/cache/enums/drivers.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/contracts/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/contracts/config.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/cors/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/cors/entities/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/cors/entities/cors.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/database/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/database/entities/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/database/entities/connections.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/database/entities/database.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/database/entities/mysql.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/database/entities/oracle.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/database/entities/pgsql.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/database/entities/sqlite.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/database/enums/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/database/enums/mysql_charsets.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/database/enums/mysql_collations.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/database/enums/mysql_engine.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/database/enums/oracle_encoding.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/database/enums/oracle_nencoding.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/database/enums/pgsql_charsets.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/database/enums/pgsql_collations.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/database/enums/pgsql_mode.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/database/enums/sqlite_foreign_key.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/database/enums/sqlite_journal.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/database/enums/sqlite_synchronous.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/exceptions/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/exceptions/integrity.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/filesystems/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/filesystems/entitites/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/filesystems/entitites/aws.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/filesystems/entitites/disks.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/filesystems/entitites/filesystems.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/filesystems/entitites/local.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/filesystems/entitites/public.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/logging/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/logging/entities/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/logging/entities/channels.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/logging/entities/chunked.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/logging/entities/daily.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/logging/entities/hourly.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/logging/entities/logging.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/logging/entities/monthly.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/logging/entities/stack.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/logging/entities/weekly.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/logging/enums/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/logging/enums/levels.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/mail/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/mail/entities/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/mail/entities/file.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/mail/entities/mail.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/mail/entities/mailers.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/mail/entities/smtp.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/queue/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/queue/entities/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/queue/entities/brokers.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/queue/entities/database.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/queue/entities/queue.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/queue/enums/strategy.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/roots/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/roots/paths.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/session/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/session/entities/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/session/entities/session.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/session/enums/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/session/enums/same_site_policy.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/session/helpers/secret_key.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/startup.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/testing/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/testing/entities/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/testing/entities/testing.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/testing/enums/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/foundation/config/testing/enums/test_mode.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/metadata/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/metadata/package.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/patterns/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/patterns/singleton/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/patterns/singleton/meta_class.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/services/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/services/asynchrony/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/services/asynchrony/contracts/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/services/asynchrony/contracts/coroutines.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/services/asynchrony/coroutines.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/services/asynchrony/exceptions/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/services/asynchrony/exceptions/coroutine_exception.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/services/environment/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/services/environment/contracts/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/services/environment/exceptions/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/services/introspection/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/services/introspection/abstracts/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/services/introspection/abstracts/entities/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/services/introspection/abstracts/entities/abstract_class_attributes.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/services/introspection/abstracts/reflect_abstract.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/services/introspection/dependencies/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/services/introspection/dependencies/contracts/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/services/introspection/dependencies/contracts/reflect_dependencies.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/services/introspection/dependencies/entities/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/services/introspection/dependencies/entities/class_dependencies.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/services/introspection/dependencies/entities/method_dependencies.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/services/introspection/dependencies/entities/resolved_dependencies.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/services/introspection/dependencies/reflect_dependencies.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/services/introspection/exceptions/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/services/introspection/exceptions/types.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/services/introspection/helpers/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/services/introspection/helpers/functions.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/services/introspection/reflection.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/services/parsers/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/services/parsers/contracts/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/services/parsers/contracts/exception_parser.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/services/parsers/exceptions/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/services/parsers/exceptions/exception_parser.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/services/parsers/serializer.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/services/paths/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/services/paths/contracts/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/services/paths/contracts/resolver.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/services/paths/exceptions/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/services/paths/exceptions/not_found_exceptions.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/services/paths/exceptions/path_value_exceptions.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/services/paths/resolver.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/services/standard/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/services/standard/contracts/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/services/standard/contracts/std.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/services/standard/exceptions/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/services/standard/exceptions/path_value_exceptions.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/services/standard/std.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/services/system/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/services/system/contracts/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/services/system/contracts/imports.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/services/system/contracts/workers.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/services/system/imports.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/services/system/runtime_imports.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/services/system/workers.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/services/wrapper/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/services/wrapper/dicts/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/services/wrapper/dicts/dot_dict.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/support/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/support/introspection/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/support/introspection/container_integrity.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/support/introspection/contracts/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/support/introspection/contracts/reflection.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/support/introspection/contracts/reflexion_abstract.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/support/introspection/helpers/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/support/introspection/helpers/functions.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/support/introspection/instances/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/support/introspection/instances/contracts/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/support/introspection/instances/contracts/reflection_instance.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/support/introspection/instances/entities/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/support/introspection/instances/entities/class_attributes.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/support/introspection/instances/entities/class_method.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/support/introspection/instances/entities/class_parsed.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/support/introspection/instances/entities/class_property.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/support/introspection/instances/reflection_instance.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/support/introspection/reflect_decorators.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/support/introspection/reflection.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/support/introspection/reflexion_concrete.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/support/introspection/reflexion_concrete_with_abstract.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/support/introspection/reflexion_instance_with_abstract.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/support/introspection/reflexion_module.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/support/introspection/reflexion_module_with_classname.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/test/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/test/cases/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/test/cases/test_async.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/test/cases/test_case.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/test/cases/test_sync.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/test/entities/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/test/entities/test_result.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/test/enums/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/test/enums/test_mode.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/test/enums/test_status.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/test/exceptions/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/test/exceptions/test_config_exception.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/test/exceptions/test_failure_exception.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/test/exceptions/test_persistence_error.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/test/exceptions/test_runtime_error.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/test/exceptions/test_value_error.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/test/logs/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/test/logs/contracts/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/test/logs/contracts/history.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/test/output/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/test/output/contracts/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/test/output/contracts/dumper.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/test/output/dumper.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/test/suites/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/test/suites/contracts/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/test/suites/contracts/test_suite.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/test/suites/contracts/test_unit.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/test/suites/test_suite.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/test/suites/test_unit.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/test/view/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/test/view/index.html +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis/unittesting.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis.egg-info/dependency_links.txt +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis.egg-info/requires.txt +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis.egg-info/top_level.txt +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/orionis.egg-info/zip-safe +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/setup.cfg +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/setup.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/example/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/app/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/auth/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/cache/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/cors/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/database/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/exceptions/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/filesystems/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/logging/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/mail/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/queue/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/root/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/session/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/startup/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/foundation/config/testing/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/patterns/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/patterns/singleton/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/services/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/services/asynchrony/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/services/asynchrony/test_async_io.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/services/environment/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/services/inspection/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/services/inspection/dependencies/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/services/inspection/dependencies/mocks/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/services/inspection/dependencies/mocks/mock_user.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/services/inspection/dependencies/mocks/mock_user_controller.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/services/inspection/dependencies/mocks/mock_users_permissions.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/services/inspection/dependencies/test_reflect_dependencies.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/services/parsers/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/services/parsers/mocks/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/services/parsers/mocks/mock_custom_error.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/services/parsers/test_exception_parser.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/services/path/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/services/path/test_resolver.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/services/standard/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/services/standard/test_std.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/services/wrapper/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/services/wrapper/test_wrapper_doc_dict.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/support/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/support/inspection/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/support/inspection/fakes/__init__.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/support/inspection/fakes/fake_reflect_abstract.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/support/inspection/fakes/fake_reflect_instance.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/support/inspection/fakes/fake_reflection_concrete.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/support/inspection/fakes/fake_reflection_concrete_with_abstract.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/support/inspection/fakes/fake_reflection_instance_with_abstract.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/support/inspection/test_reflect_abstract.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/support/inspection/test_reflect_instance.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/support/inspection/test_reflection_concrete.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/support/inspection/test_reflection_concrete_with_abstract.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/support/inspection/test_reflection_instance_with_abstract.py +0 -0
- {orionis-0.286.0 → orionis-0.287.0}/tests/testing/__init__.py +0 -0
@@ -0,0 +1,77 @@
|
|
1
|
+
from typing import Any, Dict
|
2
|
+
from abc import ABC, abstractmethod
|
3
|
+
|
4
|
+
class IEnv(ABC):
|
5
|
+
|
6
|
+
@staticmethod
|
7
|
+
@abstractmethod
|
8
|
+
def get(key: str, default: Any = None) -> Any:
|
9
|
+
"""
|
10
|
+
Retrieve the value of an environment variable by key.
|
11
|
+
|
12
|
+
Parameters
|
13
|
+
----------
|
14
|
+
key : str
|
15
|
+
The name of the environment variable to retrieve.
|
16
|
+
default : Any, optional
|
17
|
+
The value to return if the key is not found. Default is None.
|
18
|
+
|
19
|
+
Returns
|
20
|
+
-------
|
21
|
+
Any
|
22
|
+
The value of the environment variable if found, otherwise the default value.
|
23
|
+
"""
|
24
|
+
pass
|
25
|
+
|
26
|
+
@staticmethod
|
27
|
+
@abstractmethod
|
28
|
+
def set(key: str, value: str, type: str = None) -> bool:
|
29
|
+
"""
|
30
|
+
Set an environment variable in the .env file.
|
31
|
+
|
32
|
+
Parameters
|
33
|
+
----------
|
34
|
+
key : str
|
35
|
+
The name of the environment variable to set.
|
36
|
+
value : str
|
37
|
+
The value to assign to the environment variable.
|
38
|
+
type : str, optional
|
39
|
+
The type of the environment variable (e.g., 'str', 'int'). Default is None.
|
40
|
+
|
41
|
+
Returns
|
42
|
+
-------
|
43
|
+
bool
|
44
|
+
True if the variable was set successfully, False otherwise.
|
45
|
+
"""
|
46
|
+
pass
|
47
|
+
|
48
|
+
@staticmethod
|
49
|
+
@abstractmethod
|
50
|
+
def unset(key: str) -> bool:
|
51
|
+
"""
|
52
|
+
Remove the specified environment variable from the .env file.
|
53
|
+
|
54
|
+
Parameters
|
55
|
+
----------
|
56
|
+
key : str
|
57
|
+
The name of the environment variable to remove.
|
58
|
+
|
59
|
+
Returns
|
60
|
+
-------
|
61
|
+
bool
|
62
|
+
True if the variable was successfully removed, False otherwise.
|
63
|
+
"""
|
64
|
+
pass
|
65
|
+
|
66
|
+
@staticmethod
|
67
|
+
@abstractmethod
|
68
|
+
def all() -> Dict[str, Any]:
|
69
|
+
"""
|
70
|
+
Retrieve all environment variables as a dictionary.
|
71
|
+
|
72
|
+
Returns
|
73
|
+
-------
|
74
|
+
dict of str to Any
|
75
|
+
A dictionary containing all environment variables loaded by DotEnv.
|
76
|
+
"""
|
77
|
+
pass
|
@@ -0,0 +1,271 @@
|
|
1
|
+
import os
|
2
|
+
import ast
|
3
|
+
import threading
|
4
|
+
from pathlib import Path
|
5
|
+
from typing import Any, Optional, Union
|
6
|
+
from dotenv import dotenv_values, load_dotenv, set_key, unset_key
|
7
|
+
from orionis.patterns.singleton.meta_class import Singleton
|
8
|
+
from orionis.services.environment.exceptions.environment_value_exception import OrionisEnvironmentValueException
|
9
|
+
from orionis.services.environment.exceptions.environment_value_error import OrionisEnvironmentValueError
|
10
|
+
from orionis.services.environment.type_hint import EnvTypes
|
11
|
+
|
12
|
+
class DotEnv(metaclass=Singleton):
|
13
|
+
|
14
|
+
# Thread-safe singleton instance lock
|
15
|
+
_lock = threading.RLock()
|
16
|
+
|
17
|
+
def __init__(self, path: str = None) -> None:
|
18
|
+
"""
|
19
|
+
Initialize the environment service by resolving the path to the `.env` file, ensuring its existence,
|
20
|
+
and loading environment variables from it.
|
21
|
+
|
22
|
+
Parameters
|
23
|
+
----------
|
24
|
+
path : str, optional
|
25
|
+
Path to the `.env` file. If not provided, defaults to a `.env` file
|
26
|
+
in the current working directory.
|
27
|
+
|
28
|
+
Raises
|
29
|
+
------
|
30
|
+
OSError
|
31
|
+
If the `.env` file cannot be created when it does not exist.
|
32
|
+
"""
|
33
|
+
try:
|
34
|
+
with self._lock:
|
35
|
+
if path:
|
36
|
+
self._resolved_path = Path(path).expanduser().resolve()
|
37
|
+
else:
|
38
|
+
self._resolved_path = Path(os.getcwd()) / ".env"
|
39
|
+
|
40
|
+
if not self._resolved_path.exists():
|
41
|
+
self._resolved_path.touch()
|
42
|
+
|
43
|
+
load_dotenv(self._resolved_path)
|
44
|
+
except OSError as e:
|
45
|
+
raise OSError(f"Failed to create or access the .env file at {self._resolved_path}: {e}")
|
46
|
+
|
47
|
+
def get(self, key: str, default: Optional[Any] = None) -> Any:
|
48
|
+
"""
|
49
|
+
Get the value of an environment variable.
|
50
|
+
|
51
|
+
Parameters
|
52
|
+
----------
|
53
|
+
key : str
|
54
|
+
Name of the environment variable to retrieve.
|
55
|
+
default : Any, optional
|
56
|
+
Value to return if the key is not found. Default is None.
|
57
|
+
|
58
|
+
Returns
|
59
|
+
-------
|
60
|
+
Any
|
61
|
+
Parsed value of the environment variable, or `default` if not found.
|
62
|
+
|
63
|
+
Raises
|
64
|
+
------
|
65
|
+
OrionisEnvironmentValueError
|
66
|
+
If `key` is not a string.
|
67
|
+
"""
|
68
|
+
with self._lock:
|
69
|
+
|
70
|
+
# Ensure the key is a string.
|
71
|
+
if not isinstance(key, str):
|
72
|
+
raise OrionisEnvironmentValueError(
|
73
|
+
f"Key must be a string, got {type(key).__name__}."
|
74
|
+
)
|
75
|
+
|
76
|
+
# Get the value from the .env file or the current environment.
|
77
|
+
value = dotenv_values(self._resolved_path).get(key)
|
78
|
+
|
79
|
+
# If the value is not found in the .env file, check the current environment variables.
|
80
|
+
if value is None:
|
81
|
+
value = os.getenv(key)
|
82
|
+
|
83
|
+
# Parse the value using the internal __parseValue method and return it
|
84
|
+
return self.__parseValue(value) if value is not None else default
|
85
|
+
|
86
|
+
def __parseValue(self, value: Any) -> Any:
|
87
|
+
"""
|
88
|
+
Parse and convert the input value to an appropriate Python data type with enhanced features.
|
89
|
+
|
90
|
+
Parameters
|
91
|
+
----------
|
92
|
+
value : Any
|
93
|
+
The value to parse and convert.
|
94
|
+
|
95
|
+
Returns
|
96
|
+
-------
|
97
|
+
Any
|
98
|
+
The parsed value, which may be of type None, bool, int, float, list, dict, or str.
|
99
|
+
- Returns None for None, empty strings, or strings like 'none', 'null', 'nan' (case-insensitive).
|
100
|
+
- Returns a boolean for 'true'/'false' strings (case-insensitive) or 1/0.
|
101
|
+
- Returns an int if the string represents an integer.
|
102
|
+
- Returns a float if the string represents a float.
|
103
|
+
- Attempts to evaluate the string as a Python literal (e.g., list, dict, tuple).
|
104
|
+
- Handles type hints via 'type:' prefix (e.g., 'int:42', 'bool:true').
|
105
|
+
- Returns the original string if no conversion is possible.
|
106
|
+
|
107
|
+
Raises
|
108
|
+
------
|
109
|
+
OrionisEnvironmentValueException
|
110
|
+
If type conversion fails for explicitly typed values (e.g., 'abc::int').
|
111
|
+
"""
|
112
|
+
# Early return for None
|
113
|
+
if value is None:
|
114
|
+
return None
|
115
|
+
|
116
|
+
# Return immediately if already a basic type
|
117
|
+
if isinstance(value, (bool, int, float, dict, list, tuple)):
|
118
|
+
return value
|
119
|
+
|
120
|
+
# Convert to string and clean
|
121
|
+
value_str = str(value).strip()
|
122
|
+
|
123
|
+
# Handle empty strings and common null representations
|
124
|
+
# This includes 'none', 'null', 'nan', 'nil' (case-insensitive)
|
125
|
+
if not value_str or value_str.lower() in {'none', 'null', 'nan', 'nil'}:
|
126
|
+
return None
|
127
|
+
|
128
|
+
# Boolean detection (without type hint)
|
129
|
+
lower_val = value_str.lower()
|
130
|
+
if lower_val in ('true', 'false', 'yes', 'no', 'on', 'off', '1', '0'):
|
131
|
+
return lower_val in ('true', 'yes', 'on', '1')
|
132
|
+
|
133
|
+
# Handle type hints using the Type class
|
134
|
+
hints = EnvTypes(value_str)
|
135
|
+
if hints.hasValidTypeHint():
|
136
|
+
return hints.get()
|
137
|
+
|
138
|
+
# Try parseing to literal types, if failed, return the original value
|
139
|
+
try:
|
140
|
+
return ast.literal_eval(value_str)
|
141
|
+
except (ValueError, SyntaxError):
|
142
|
+
return value_str
|
143
|
+
|
144
|
+
def set(self, key: str, value: Union[str, int, float, bool, list, dict, tuple, set], type_hint: str = None) -> bool:
|
145
|
+
"""
|
146
|
+
Set an environment variable with the specified key and value.
|
147
|
+
|
148
|
+
Serializes the given value and updates both the .env file and the current process's environment variables.
|
149
|
+
|
150
|
+
Parameters
|
151
|
+
----------
|
152
|
+
key : str
|
153
|
+
The name of the environment variable to set.
|
154
|
+
value : Union[str, int, float, bool, list, dict]
|
155
|
+
The value to assign to the environment variable. Supported types include string, integer, float, boolean, list, and dictionary.
|
156
|
+
type_hint : str, optional
|
157
|
+
The type of the value being set. If provided, it can be (path, str, int, float, bool, list, dict, tuple, set).
|
158
|
+
|
159
|
+
Returns
|
160
|
+
-------
|
161
|
+
bool
|
162
|
+
True if the environment variable was successfully set.
|
163
|
+
"""
|
164
|
+
with self._lock:
|
165
|
+
|
166
|
+
|
167
|
+
# Ensure the value is a valid type.
|
168
|
+
if not isinstance(value, (str, int, float, bool, list, dict, tuple, set)):
|
169
|
+
raise OrionisEnvironmentValueError(
|
170
|
+
f"Unsupported value type: {type(value).__name__}. Allowed types are str, int, float, bool, list, dict, tuple, set."
|
171
|
+
)
|
172
|
+
|
173
|
+
# Ensure the type is a string.
|
174
|
+
if not isinstance(type_hint, str):
|
175
|
+
raise OrionisEnvironmentValueError(
|
176
|
+
f"Type hint must be a string, got {type(value).__name__}."
|
177
|
+
)
|
178
|
+
|
179
|
+
# Ensure the key is a string.
|
180
|
+
if not isinstance(key, str):
|
181
|
+
raise OrionisEnvironmentValueError(
|
182
|
+
f"Key must be a string, got {type(key).__name__}."
|
183
|
+
)
|
184
|
+
|
185
|
+
# Validate the type hint if provided.
|
186
|
+
options = EnvTypes.options()
|
187
|
+
if type_hint and type_hint not in options:
|
188
|
+
raise OrionisEnvironmentValueException(f"Invalid type hint: {type_hint}. Allowed types are {str(options)}.")
|
189
|
+
|
190
|
+
# Serialize the value based on its type.
|
191
|
+
serialized_value = self.__serializeValue(value, type_hint)
|
192
|
+
|
193
|
+
# Set the environment variable in the .env file and the current process environment.
|
194
|
+
set_key(str(self._resolved_path), key, serialized_value)
|
195
|
+
os.environ[key] = str(value)
|
196
|
+
|
197
|
+
# Return True to indicate success.
|
198
|
+
return True
|
199
|
+
|
200
|
+
def __serializeValue(self, value: Any, type_hint: str = None) -> str:
|
201
|
+
"""
|
202
|
+
Parameters
|
203
|
+
----------
|
204
|
+
value : Any
|
205
|
+
The value to serialize.
|
206
|
+
type_hint : str, optional
|
207
|
+
An optional type hint to guide serialization.
|
208
|
+
Returns
|
209
|
+
-------
|
210
|
+
str
|
211
|
+
The serialized string representation of the value.
|
212
|
+
Notes
|
213
|
+
-----
|
214
|
+
- If `value` is None, returns "null".
|
215
|
+
- If `type_hint` is provided, uses `EnvTypes` to serialize.
|
216
|
+
- Uses `repr()` for lists, dicts, tuples, and sets.
|
217
|
+
- Falls back to `str()` for other types.
|
218
|
+
"""
|
219
|
+
|
220
|
+
if value is None:
|
221
|
+
return "null"
|
222
|
+
|
223
|
+
if type_hint:
|
224
|
+
return EnvTypes(value).to(type_hint)
|
225
|
+
|
226
|
+
if isinstance(value, str):
|
227
|
+
return value.strip()
|
228
|
+
|
229
|
+
if isinstance(value, bool):
|
230
|
+
return str(value).lower()
|
231
|
+
|
232
|
+
if isinstance(value, int, float):
|
233
|
+
return str(value)
|
234
|
+
|
235
|
+
if isinstance(value, (list, dict, tuple, set)):
|
236
|
+
return repr(value)
|
237
|
+
|
238
|
+
return str(value)
|
239
|
+
|
240
|
+
def unset(self, key: str) -> bool:
|
241
|
+
"""
|
242
|
+
Remove the specified environment variable from both the .env file and the current process environment.
|
243
|
+
|
244
|
+
Parameters
|
245
|
+
----------
|
246
|
+
key : str
|
247
|
+
The name of the environment variable to unset.
|
248
|
+
|
249
|
+
Returns
|
250
|
+
-------
|
251
|
+
bool
|
252
|
+
True if the operation was successful.
|
253
|
+
"""
|
254
|
+
with self._lock:
|
255
|
+
unset_key(str(self._resolved_path), key)
|
256
|
+
os.environ.pop(key, None)
|
257
|
+
return True
|
258
|
+
|
259
|
+
def all(self) -> dict:
|
260
|
+
"""
|
261
|
+
Retrieve all environment variables from the resolved .env file.
|
262
|
+
|
263
|
+
Returns
|
264
|
+
-------
|
265
|
+
dict
|
266
|
+
Dictionary containing all environment variable key-value pairs,
|
267
|
+
with values parsed using the internal __parseValue method.
|
268
|
+
"""
|
269
|
+
with self._lock:
|
270
|
+
raw_values = dotenv_values(self._resolved_path)
|
271
|
+
return {k: self.__parseValue(v) for k, v in raw_values.items()}
|
@@ -0,0 +1,97 @@
|
|
1
|
+
from orionis.services.environment.contracts.env import IEnv
|
2
|
+
from orionis.services.environment.dot_env import DotEnv
|
3
|
+
from typing import Any, Dict
|
4
|
+
|
5
|
+
def env(key: str, default: Any = None) -> Any:
|
6
|
+
"""
|
7
|
+
Retrieve the value of an environment variable.
|
8
|
+
|
9
|
+
Parameters
|
10
|
+
----------
|
11
|
+
key : str
|
12
|
+
The name of the environment variable to retrieve.
|
13
|
+
default : Any, optional
|
14
|
+
The value to return if the environment variable is not found. Default is None.
|
15
|
+
|
16
|
+
Returns
|
17
|
+
-------
|
18
|
+
Any
|
19
|
+
The value of the environment variable if it exists, otherwise the default value.
|
20
|
+
"""
|
21
|
+
dotenv = DotEnv()
|
22
|
+
return dotenv.get(key, default)
|
23
|
+
|
24
|
+
class Env(IEnv):
|
25
|
+
|
26
|
+
@staticmethod
|
27
|
+
def get(key: str, default: Any = None) -> Any:
|
28
|
+
"""
|
29
|
+
Retrieve the value of an environment variable by key.
|
30
|
+
|
31
|
+
Parameters
|
32
|
+
----------
|
33
|
+
key : str
|
34
|
+
The name of the environment variable to retrieve.
|
35
|
+
default : Any, optional
|
36
|
+
The value to return if the key is not found. Default is None.
|
37
|
+
|
38
|
+
Returns
|
39
|
+
-------
|
40
|
+
Any
|
41
|
+
The value of the environment variable if found, otherwise the default value.
|
42
|
+
"""
|
43
|
+
dotenv = DotEnv()
|
44
|
+
return dotenv.get(key, default)
|
45
|
+
|
46
|
+
@staticmethod
|
47
|
+
def set(key: str, value: str, type_hint: str = None) -> bool:
|
48
|
+
"""
|
49
|
+
Set an environment variable in the .env file.
|
50
|
+
|
51
|
+
Parameters
|
52
|
+
----------
|
53
|
+
key : str
|
54
|
+
The name of the environment variable to set.
|
55
|
+
value : str
|
56
|
+
The value to assign to the environment variable.
|
57
|
+
type_hint : str, optional
|
58
|
+
The type of the environment variable (e.g., 'str', 'int'). Default is None.
|
59
|
+
|
60
|
+
Returns
|
61
|
+
-------
|
62
|
+
bool
|
63
|
+
True if the variable was set successfully, False otherwise.
|
64
|
+
"""
|
65
|
+
dotenv = DotEnv()
|
66
|
+
return dotenv.set(key, value, type_hint)
|
67
|
+
|
68
|
+
@staticmethod
|
69
|
+
def unset(key: str) -> bool:
|
70
|
+
"""
|
71
|
+
Remove the specified environment variable from the .env file.
|
72
|
+
|
73
|
+
Parameters
|
74
|
+
----------
|
75
|
+
key : str
|
76
|
+
The name of the environment variable to remove.
|
77
|
+
|
78
|
+
Returns
|
79
|
+
-------
|
80
|
+
bool
|
81
|
+
True if the variable was successfully removed, False otherwise.
|
82
|
+
"""
|
83
|
+
dotenv = DotEnv()
|
84
|
+
return dotenv.unset(key)
|
85
|
+
|
86
|
+
@staticmethod
|
87
|
+
def all() -> Dict[str, Any]:
|
88
|
+
"""
|
89
|
+
Retrieve all environment variables as a dictionary.
|
90
|
+
|
91
|
+
Returns
|
92
|
+
-------
|
93
|
+
dict of str to Any
|
94
|
+
A dictionary containing all environment variables loaded by DotEnv.
|
95
|
+
"""
|
96
|
+
dotenv = DotEnv()
|
97
|
+
return dotenv.all()
|
@@ -0,0 +1,18 @@
|
|
1
|
+
class OrionisEnvironmentValueError(Exception):
|
2
|
+
|
3
|
+
def __init__(self, msg: str):
|
4
|
+
"""
|
5
|
+
Initializes the exception with a custom error message.
|
6
|
+
Args:
|
7
|
+
msg (str): The error message describing the exception.
|
8
|
+
"""
|
9
|
+
super().__init__(msg)
|
10
|
+
|
11
|
+
def __str__(self) -> str:
|
12
|
+
"""
|
13
|
+
Return a string representation of the exception, including the class name and the first argument.
|
14
|
+
|
15
|
+
Returns:
|
16
|
+
str: A formatted string with the exception class name and its first argument.
|
17
|
+
"""
|
18
|
+
return f"{self.__class__.__name__}: {self.args[0]}"
|
@@ -0,0 +1,23 @@
|
|
1
|
+
class OrionisEnvironmentValueException(Exception):
|
2
|
+
|
3
|
+
def __init__(self, msg: str):
|
4
|
+
"""
|
5
|
+
Exception raised for errors related to environment values.
|
6
|
+
|
7
|
+
Parameters
|
8
|
+
----------
|
9
|
+
msg : str
|
10
|
+
The error message describing the exception.
|
11
|
+
"""
|
12
|
+
super().__init__(msg)
|
13
|
+
|
14
|
+
def __str__(self) -> str:
|
15
|
+
"""
|
16
|
+
Returns a string representation of the exception.
|
17
|
+
|
18
|
+
Returns
|
19
|
+
-------
|
20
|
+
str
|
21
|
+
A formatted string with the exception class name and its first argument.
|
22
|
+
"""
|
23
|
+
return f"{self.__class__.__name__}: {self.args[0]}"
|