orionis 0.254.0__tar.gz → 0.255.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.254.0/orionis.egg-info → orionis-0.255.0}/PKG-INFO +1 -1
- {orionis-0.254.0 → orionis-0.255.0}/orionis/framework.py +1 -1
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/app.py +1 -1
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/console/output/console.py +2 -2
- orionis-0.255.0/orionis/luminate/services/asynchrony/async_io.py +31 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/services/environment/contracts/env.py +0 -11
- orionis-0.255.0/orionis/luminate/services/environment/dot_env.py +217 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/services/environment/env.py +0 -11
- orionis-0.255.0/orionis/luminate/services/introspection/dependencies/entities/class_dependencies.py +59 -0
- orionis-0.255.0/orionis/luminate/services/introspection/dependencies/entities/method_dependencies.py +64 -0
- orionis-0.255.0/orionis/luminate/services/introspection/dependencies/entities/resolved_dependencies.py +60 -0
- {orionis-0.254.0/orionis/luminate/support → orionis-0.255.0/orionis/luminate/services}/introspection/dependencies/reflect_dependencies.py +4 -4
- orionis-0.254.0/orionis/luminate/support/parsers/exception_parser.py → orionis-0.255.0/orionis/luminate/services/parsers/exception.py +1 -1
- orionis-0.255.0/orionis/luminate/services/parsers/serializer.py +15 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/services/paths/resolver.py +1 -1
- {orionis-0.254.0/orionis/luminate/support → orionis-0.255.0/orionis/luminate/services}/standard/std.py +1 -1
- orionis-0.255.0/orionis/luminate/services/system/contracts/imports.py +31 -0
- orionis-0.255.0/orionis/luminate/services/system/imports.py +124 -0
- orionis-0.255.0/orionis/luminate/services/system/runtime_imports.py +70 -0
- orionis-0.255.0/orionis/luminate/services/wrapper/dicts/dot_dict.py +115 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/unittesting.py +29 -6
- {orionis-0.254.0 → orionis-0.255.0/orionis.egg-info}/PKG-INFO +1 -1
- {orionis-0.254.0 → orionis-0.255.0}/orionis.egg-info/SOURCES.txt +49 -48
- orionis-0.254.0/tests/support/async_io/test_async_coroutine.py → orionis-0.255.0/tests/services/asynchrony/test_async_io.py +6 -5
- orionis-0.255.0/tests/services/environment/test_env.py +155 -0
- orionis-0.255.0/tests/services/inspection/dependencies/mocks/mock_user.py +30 -0
- orionis-0.255.0/tests/services/inspection/dependencies/mocks/mock_user_controller.py +27 -0
- orionis-0.255.0/tests/services/inspection/dependencies/mocks/mock_users_permissions.py +41 -0
- orionis-0.255.0/tests/services/inspection/dependencies/test_reflect_dependencies.py +95 -0
- orionis-0.255.0/tests/services/parsers/mocks/mock_custom_error.py +15 -0
- {orionis-0.254.0/tests/support → orionis-0.255.0/tests/services}/parsers/test_exception_parser.py +8 -8
- orionis-0.255.0/tests/services/path/test_resolver.py +73 -0
- orionis-0.255.0/tests/services/standard/test_std.py +127 -0
- orionis-0.255.0/tests/services/wrapper/test_wrapper_doc_dict.py +129 -0
- orionis-0.255.0/tests/testing/test_testing_result.py +92 -0
- orionis-0.255.0/tests/testing/test_testing_unit.py +138 -0
- orionis-0.254.0/orionis/importscan.py +0 -46
- orionis-0.254.0/orionis/luminate/adapters/dicts/dot_dict.py +0 -63
- orionis-0.254.0/orionis/luminate/services/environment/dot_env.py +0 -293
- orionis-0.254.0/orionis/luminate/support/adapters/dot_dict.py +0 -29
- orionis-0.254.0/orionis/luminate/support/asynchrony/async_io.py +0 -40
- orionis-0.254.0/orionis/luminate/support/asynchrony/contracts/async_coroutine.py +0 -26
- orionis-0.254.0/orionis/luminate/support/introspection/dependencies/entities/class_dependencies.py +0 -11
- orionis-0.254.0/orionis/luminate/support/introspection/dependencies/entities/method_dependencies.py +0 -11
- orionis-0.254.0/orionis/luminate/support/introspection/dependencies/entities/resolved_dependencies.py +0 -12
- orionis-0.254.0/orionis/luminate/support/paths/contracts/resolver.py +0 -67
- orionis-0.254.0/orionis/luminate/support/paths/resolver.py +0 -83
- orionis-0.254.0/tests/services/environment/test_env.py +0 -33
- orionis-0.254.0/tests/support/adapters/fakes/fake_dict.py +0 -15
- orionis-0.254.0/tests/support/adapters/test_doct_dict.py +0 -21
- orionis-0.254.0/tests/support/inspection/fakes/fake_reflect_dependencies.py +0 -25
- orionis-0.254.0/tests/support/inspection/test_reflect_dependencies.py +0 -67
- orionis-0.254.0/tests/support/parsers/fakes/fake_custom_error.py +0 -27
- orionis-0.254.0/tests/support/path/test_resolver.py +0 -33
- orionis-0.254.0/tests/support/standard/test_std.py +0 -62
- orionis-0.254.0/tests/testing/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/LICENCE +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/MANIFEST.in +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/README.md +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/application.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/clinstall.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/installer/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/installer/contracts/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/installer/contracts/manager.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/installer/contracts/output.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/installer/contracts/setup.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/installer/manager.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/installer/output.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/installer/setup.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_application.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_container/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_container/container.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_container/container_integrity.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_container/exception.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_container/lifetimes.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_container/resolve.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_contracts/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_contracts/application.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_contracts/config/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_contracts/config/config.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_contracts/console/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_contracts/console/base/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_contracts/console/base/command.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_contracts/console/command_filter.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_contracts/console/kernel.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_contracts/console/output/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_contracts/console/output/console.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_contracts/console/output/executor.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_contracts/console/output/progress_bar.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_contracts/console/parser.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_contracts/console/task_manager.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_contracts/container/container.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_contracts/container/container_integrity.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_contracts/facades/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_contracts/facades/commands/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_contracts/facades/commands/commands_facade.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_contracts/facades/commands/scheduler_facade.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_contracts/facades/config/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_contracts/facades/config/config_facade.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_contracts/facades/environment/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_contracts/facades/environment/environment_facade.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_contracts/facades/facade.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_contracts/facades/files/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_contracts/facades/files/path_facade.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_contracts/facades/log/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_contracts/facades/log/log_facade.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_contracts/facades/tests/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_contracts/facades/tests/tests_facade.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_contracts/foundation/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_contracts/foundation/bootstraper.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_contracts/foundation/config/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_contracts/foundation/config/config_bootstrapper.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_contracts/foundation/console/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_contracts/foundation/console/command_bootstrapper.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_contracts/foundation/environment/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_contracts/foundation/environment/environment_bootstrapper.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_contracts/foundation/providers/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_contracts/foundation/providers/service_providers_bootstrapper.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_contracts/providers/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_contracts/providers/service_provider.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_contracts/services/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_contracts/services/commands/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_contracts/services/commands/reactor_commands_service.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_contracts/services/commands/schedule_service.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_contracts/services/config/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_contracts/services/config/config_service.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_contracts/services/environment/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_contracts/services/environment/environment_service.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_contracts/services/files/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_contracts/services/files/path_resolver_service.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_contracts/services/log/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_contracts/services/log/log_service.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_contracts/support/exception_parse.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_contracts/support/reflection.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_facades/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_facades/app_facade.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_facades/commands/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_facades/commands/commands_facade.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_facades/commands/scheduler_facade.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_facades/config/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_facades/config/config_facade.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_facades/environment/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_facades/environment/environment_facade.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_facades/files/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_facades/files/path_facade.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_facades/log/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_facades/log/log_facade.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_foundation/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_foundation/console/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_foundation/console/command_bootstrapper.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_foundation/environment/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_foundation/environment/environment_bootstrapper.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_foundation/exceptions/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_foundation/exceptions/exception_bootstrapper.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_foundation/exceptions/exception_providers.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_foundation/foundation/config/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_foundation/foundation/config/config_bootstrapper.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_foundation/providers/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_foundation/providers/service_providers_bootstrapper.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_providers/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_providers/commands/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_providers/commands/reactor_commands_service_provider.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_providers/commands/scheduler_provider.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_providers/config/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_providers/config/config_service_provider.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_providers/environment/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_providers/environment/environment__service_provider.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_providers/files/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_providers/files/paths_provider.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_providers/log/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_providers/log/log_service_provider.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_providers/service_provider.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_services/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_services/commands/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_services/commands/reactor_commands_service.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_services/commands/scheduler_service.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_services/config/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_services/config/config_service.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_services/log/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/_services/log/log_service.py +0 -0
- {orionis-0.254.0/orionis/luminate/adapters → orionis-0.255.0/orionis/luminate/console}/__init__.py +0 -0
- {orionis-0.254.0/orionis/luminate/adapters/dicts → orionis-0.255.0/orionis/luminate/console/base}/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/console/base/command.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/console/command_filter.py +0 -0
- {orionis-0.254.0/orionis/luminate/console → orionis-0.255.0/orionis/luminate/console/commands}/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/console/commands/cache_clear.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/console/commands/help.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/console/commands/schedule_work.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/console/commands/version.py +0 -0
- {orionis-0.254.0/orionis/luminate/console/base → orionis-0.255.0/orionis/luminate/console/dumper}/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/console/dumper/dump_die.py +0 -0
- {orionis-0.254.0/orionis/luminate/console/commands → orionis-0.255.0/orionis/luminate/console/exceptions}/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/console/exceptions/cli-orionis-value-error.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/console/exceptions/cli_exception.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/console/exceptions/cli_runtime_error.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/console/exceptions/cli_schedule_exception.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/console/kernel.py +0 -0
- {orionis-0.254.0/orionis/luminate/console/dumper → orionis-0.255.0/orionis/luminate/console/output}/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/console/output/executor.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/console/output/progress_bar.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/console/output/styles.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/console/parser.py +0 -0
- {orionis-0.254.0/orionis/luminate/console/exceptions → orionis-0.255.0/orionis/luminate/foundation}/__init__.py +0 -0
- {orionis-0.254.0/orionis/luminate/console/output → orionis-0.255.0/orionis/luminate/foundation/config}/__init__.py +0 -0
- {orionis-0.254.0/orionis/luminate/foundation → orionis-0.255.0/orionis/luminate/foundation/config/app}/__init__.py +0 -0
- {orionis-0.254.0/orionis/luminate/foundation/config → orionis-0.255.0/orionis/luminate/foundation/config/app/entities}/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/foundation/config/app/entities/app.py +0 -0
- {orionis-0.254.0/orionis/luminate/foundation/config/app → orionis-0.255.0/orionis/luminate/foundation/config/app/enums}/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/foundation/config/app/enums/ciphers.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/foundation/config/app/enums/environments.py +0 -0
- {orionis-0.254.0/orionis/luminate/foundation/config/app/entities → orionis-0.255.0/orionis/luminate/foundation/config/auth}/__init__.py +0 -0
- {orionis-0.254.0/orionis/luminate/foundation/config/app/enums → orionis-0.255.0/orionis/luminate/foundation/config/auth/entities}/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/foundation/config/auth/entities/auth.py +0 -0
- {orionis-0.254.0/orionis/luminate/foundation/config/auth → orionis-0.255.0/orionis/luminate/foundation/config/cache}/__init__.py +0 -0
- {orionis-0.254.0/orionis/luminate/foundation/config/auth → orionis-0.255.0/orionis/luminate/foundation/config/cache}/entities/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/foundation/config/cache/entities/cache.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/foundation/config/cache/entities/file.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/foundation/config/cache/entities/stores.py +0 -0
- {orionis-0.254.0/orionis/luminate/foundation/config/cache → orionis-0.255.0/orionis/luminate/foundation/config/cache/enums}/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/foundation/config/cache/enums/drivers.py +0 -0
- {orionis-0.254.0/orionis/luminate/foundation/config/cache/entities → orionis-0.255.0/orionis/luminate/foundation/config/contracts}/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/foundation/config/contracts/config.py +0 -0
- {orionis-0.254.0/orionis/luminate/foundation/config/cache/enums → orionis-0.255.0/orionis/luminate/foundation/config/cors}/__init__.py +0 -0
- {orionis-0.254.0/orionis/luminate/foundation/config/contracts → orionis-0.255.0/orionis/luminate/foundation/config/cors/entities}/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/foundation/config/cors/entities/cors.py +0 -0
- {orionis-0.254.0/orionis/luminate/foundation/config/cors → orionis-0.255.0/orionis/luminate/foundation/config/database}/__init__.py +0 -0
- {orionis-0.254.0/orionis/luminate/foundation/config/cors → orionis-0.255.0/orionis/luminate/foundation/config/database}/entities/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/foundation/config/database/entities/connections.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/foundation/config/database/entities/database.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/foundation/config/database/entities/mysql.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/foundation/config/database/entities/oracle.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/foundation/config/database/entities/pgsql.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/foundation/config/database/entities/sqlite.py +0 -0
- {orionis-0.254.0/orionis/luminate/foundation/config/database → orionis-0.255.0/orionis/luminate/foundation/config/database/enums}/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/foundation/config/database/enums/mysql_charsets.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/foundation/config/database/enums/mysql_collations.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/foundation/config/database/enums/mysql_engine.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/foundation/config/database/enums/oracle_encoding.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/foundation/config/database/enums/oracle_nencoding.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/foundation/config/database/enums/pgsql_charsets.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/foundation/config/database/enums/pgsql_collations.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/foundation/config/database/enums/pgsql_mode.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/foundation/config/database/enums/sqlite_foreign_key.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/foundation/config/database/enums/sqlite_journal.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/foundation/config/database/enums/sqlite_synchronous.py +0 -0
- {orionis-0.254.0/orionis/luminate/foundation/config/database/entities → orionis-0.255.0/orionis/luminate/foundation/config/exceptions}/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/foundation/config/exceptions/integrity.py +0 -0
- {orionis-0.254.0/orionis/luminate/foundation/config/database/enums → orionis-0.255.0/orionis/luminate/foundation/config/filesystems}/__init__.py +0 -0
- {orionis-0.254.0/orionis/luminate/foundation/config/exceptions → orionis-0.255.0/orionis/luminate/foundation/config/filesystems/entitites}/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/foundation/config/filesystems/entitites/aws.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/foundation/config/filesystems/entitites/disks.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/foundation/config/filesystems/entitites/filesystems.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/foundation/config/filesystems/entitites/local.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/foundation/config/filesystems/entitites/public.py +0 -0
- {orionis-0.254.0/orionis/luminate/foundation/config/filesystems → orionis-0.255.0/orionis/luminate/foundation/config/logging}/__init__.py +0 -0
- {orionis-0.254.0/orionis/luminate/foundation/config/filesystems/entitites → orionis-0.255.0/orionis/luminate/foundation/config/logging/entities}/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/foundation/config/logging/entities/channels.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/foundation/config/logging/entities/chunked.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/foundation/config/logging/entities/daily.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/foundation/config/logging/entities/hourly.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/foundation/config/logging/entities/logging.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/foundation/config/logging/entities/monthly.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/foundation/config/logging/entities/stack.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/foundation/config/logging/entities/weekly.py +0 -0
- {orionis-0.254.0/orionis/luminate/foundation/config/logging → orionis-0.255.0/orionis/luminate/foundation/config/logging/enums}/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/foundation/config/logging/enums/levels.py +0 -0
- {orionis-0.254.0/orionis/luminate/foundation/config/logging/entities → orionis-0.255.0/orionis/luminate/foundation/config/mail}/__init__.py +0 -0
- {orionis-0.254.0/orionis/luminate/foundation/config/logging/enums → orionis-0.255.0/orionis/luminate/foundation/config/mail/entities}/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/foundation/config/mail/entities/file.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/foundation/config/mail/entities/mail.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/foundation/config/mail/entities/mailers.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/foundation/config/mail/entities/smtp.py +0 -0
- {orionis-0.254.0/orionis/luminate/foundation/config/mail → orionis-0.255.0/orionis/luminate/foundation/config/queue}/__init__.py +0 -0
- {orionis-0.254.0/orionis/luminate/foundation/config/mail → orionis-0.255.0/orionis/luminate/foundation/config/queue}/entities/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/foundation/config/queue/entities/brokers.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/foundation/config/queue/entities/database.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/foundation/config/queue/entities/queue.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/foundation/config/queue/enums/strategy.py +0 -0
- {orionis-0.254.0/orionis/luminate/foundation/config/queue → orionis-0.255.0/orionis/luminate/foundation/config/session}/__init__.py +0 -0
- {orionis-0.254.0/orionis/luminate/foundation/config/queue → orionis-0.255.0/orionis/luminate/foundation/config/session}/entities/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/foundation/config/session/entities/session.py +0 -0
- {orionis-0.254.0/orionis/luminate/foundation/config/session → orionis-0.255.0/orionis/luminate/foundation/config/session/enums}/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/foundation/config/session/enums/same_site_policy.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/foundation/config/session/helpers/secret_key.py +0 -0
- /orionis-0.254.0/orionis/luminate/foundation/config/configuration.py → /orionis-0.255.0/orionis/luminate/foundation/config/startup.py +0 -0
- {orionis-0.254.0/orionis/luminate/foundation/config/session/entities → orionis-0.255.0/orionis/luminate/foundation/config/testing}/__init__.py +0 -0
- {orionis-0.254.0/orionis/luminate/foundation/config/session/enums → orionis-0.255.0/orionis/luminate/foundation/config/testing/entities}/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/foundation/config/testing/entities/testing.py +0 -0
- {orionis-0.254.0/orionis/luminate/foundation/config/testing → orionis-0.255.0/orionis/luminate/foundation/config/testing/enums}/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/foundation/config/testing/enums/test_mode.py +0 -0
- {orionis-0.254.0/orionis/luminate/foundation/config/testing/entities → orionis-0.255.0/orionis/luminate/patterns}/__init__.py +0 -0
- {orionis-0.254.0/orionis/luminate/foundation/config/testing/enums → orionis-0.255.0/orionis/luminate/patterns/singleton}/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/patterns/singleton/meta_class.py +0 -0
- {orionis-0.254.0/orionis/luminate/patterns → orionis-0.255.0/orionis/luminate/services}/__init__.py +0 -0
- {orionis-0.254.0/orionis/luminate/patterns/singleton → orionis-0.255.0/orionis/luminate/services/asynchrony}/__init__.py +0 -0
- {orionis-0.254.0/orionis/luminate/services → orionis-0.255.0/orionis/luminate/services/environment}/__init__.py +0 -0
- {orionis-0.254.0/orionis/luminate/services/environment → orionis-0.255.0/orionis/luminate/services/environment/contracts}/__init__.py +0 -0
- {orionis-0.254.0/orionis/luminate/services/environment/contracts → orionis-0.255.0/orionis/luminate/services/introspection}/__init__.py +0 -0
- {orionis-0.254.0/orionis/luminate/services/paths → orionis-0.255.0/orionis/luminate/services/introspection/dependencies}/__init__.py +0 -0
- {orionis-0.254.0/orionis/luminate/services/paths → orionis-0.255.0/orionis/luminate/services/introspection/dependencies}/contracts/__init__.py +0 -0
- {orionis-0.254.0/orionis/luminate/support → orionis-0.255.0/orionis/luminate/services}/introspection/dependencies/contracts/reflect_dependencies.py +0 -0
- {orionis-0.254.0/orionis/luminate/services/system → orionis-0.255.0/orionis/luminate/services/introspection/dependencies/entities}/__init__.py +0 -0
- {orionis-0.254.0/orionis/luminate/services/system/contracts → orionis-0.255.0/orionis/luminate/services/parsers}/__init__.py +0 -0
- {orionis-0.254.0/orionis/luminate/support → orionis-0.255.0/orionis/luminate/services/parsers/contracts}/__init__.py +0 -0
- {orionis-0.254.0/orionis/luminate/support → orionis-0.255.0/orionis/luminate/services}/parsers/contracts/exception_parser.py +0 -0
- {orionis-0.254.0/orionis/luminate/support/adapters → orionis-0.255.0/orionis/luminate/services/paths}/__init__.py +0 -0
- {orionis-0.254.0/orionis/luminate/support/asynchrony → orionis-0.255.0/orionis/luminate/services/paths/contracts}/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/services/paths/contracts/resolver.py +0 -0
- {orionis-0.254.0/orionis/luminate/support/asynchrony/contracts → orionis-0.255.0/orionis/luminate/services/standard}/__init__.py +0 -0
- {orionis-0.254.0/orionis/luminate/support/introspection → orionis-0.255.0/orionis/luminate/services/standard/contracts}/__init__.py +0 -0
- {orionis-0.254.0/orionis/luminate/support → orionis-0.255.0/orionis/luminate/services}/standard/contracts/std.py +0 -0
- {orionis-0.254.0/orionis/luminate/support/introspection/abstracts → orionis-0.255.0/orionis/luminate/services/system}/__init__.py +0 -0
- {orionis-0.254.0/orionis/luminate/support/introspection/abstracts/entities → orionis-0.255.0/orionis/luminate/services/system/contracts}/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/services/system/contracts/workers.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/services/system/workers.py +0 -0
- {orionis-0.254.0/orionis/luminate/support/introspection/contracts → orionis-0.255.0/orionis/luminate/services/wrapper}/__init__.py +0 -0
- {orionis-0.254.0/orionis/luminate/support/introspection/dependencies → orionis-0.255.0/orionis/luminate/services/wrapper/dicts}/__init__.py +0 -0
- {orionis-0.254.0/orionis/luminate/support/introspection/dependencies/contracts → orionis-0.255.0/orionis/luminate/support}/__init__.py +0 -0
- {orionis-0.254.0/orionis/luminate/support/introspection/dependencies/entities → orionis-0.255.0/orionis/luminate/support/introspection}/__init__.py +0 -0
- {orionis-0.254.0/orionis/luminate/support/introspection/helpers → orionis-0.255.0/orionis/luminate/support/introspection/abstracts}/__init__.py +0 -0
- {orionis-0.254.0/orionis/luminate/support/introspection/instances → orionis-0.255.0/orionis/luminate/support/introspection/abstracts/entities}/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/support/introspection/abstracts/entities/abstract_class_attributes.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/support/introspection/abstracts/reflect_abstract.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/support/introspection/container_integrity.py +0 -0
- {orionis-0.254.0/orionis/luminate/support/introspection/instances → orionis-0.255.0/orionis/luminate/support/introspection}/contracts/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/support/introspection/contracts/reflection.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/support/introspection/contracts/reflexion_abstract.py +0 -0
- {orionis-0.254.0/orionis/luminate/support/introspection/instances/entities → orionis-0.255.0/orionis/luminate/support/introspection/helpers}/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/support/introspection/helpers/functions.py +0 -0
- {orionis-0.254.0/orionis/luminate/support/parsers → orionis-0.255.0/orionis/luminate/support/introspection/instances}/__init__.py +0 -0
- {orionis-0.254.0/orionis/luminate/support/parsers → orionis-0.255.0/orionis/luminate/support/introspection/instances}/contracts/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/support/introspection/instances/contracts/reflection_instance.py +0 -0
- {orionis-0.254.0/orionis/luminate/support/paths → orionis-0.255.0/orionis/luminate/support/introspection/instances/entities}/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/support/introspection/instances/entities/class_attributes.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/support/introspection/instances/entities/class_method.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/support/introspection/instances/entities/class_parsed.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/support/introspection/instances/entities/class_property.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/support/introspection/instances/reflection_instance.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/support/introspection/reflect_decorators.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/support/introspection/reflection.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/support/introspection/reflexion_concrete.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/support/introspection/reflexion_concrete_with_abstract.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/support/introspection/reflexion_instance_with_abstract.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/support/introspection/reflexion_module.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/support/introspection/reflexion_module_with_classname.py +0 -0
- {orionis-0.254.0/orionis/luminate/support/paths/contracts → orionis-0.255.0/orionis/luminate/test}/__init__.py +0 -0
- {orionis-0.254.0/orionis/luminate/support/standard → orionis-0.255.0/orionis/luminate/test/cases}/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/test/cases/test_async.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/test/cases/test_case.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/test/cases/test_sync.py +0 -0
- {orionis-0.254.0/orionis/luminate/support/standard/contracts → orionis-0.255.0/orionis/luminate/test/entities}/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/test/entities/test_result.py +0 -0
- {orionis-0.254.0/orionis/luminate/test → orionis-0.255.0/orionis/luminate/test/enums}/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/test/enums/test_mode.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/test/enums/test_status.py +0 -0
- {orionis-0.254.0/orionis/luminate/test/cases → orionis-0.255.0/orionis/luminate/test/exceptions}/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/test/exceptions/test_config_exception.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/test/exceptions/test_failure_exception.py +0 -0
- {orionis-0.254.0/orionis/luminate/test/entities → orionis-0.255.0/orionis/luminate/test/output}/__init__.py +0 -0
- {orionis-0.254.0/orionis/luminate/test/enums → orionis-0.255.0/orionis/luminate/test/output/contracts}/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/test/output/contracts/dumper.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/test/output/dumper.py +0 -0
- {orionis-0.254.0/orionis/luminate/test/exceptions → orionis-0.255.0/orionis/luminate/test/suites}/__init__.py +0 -0
- {orionis-0.254.0/orionis/luminate/test/output → orionis-0.255.0/orionis/luminate/test/suites/contracts}/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/test/suites/contracts/test_suite.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/test/suites/contracts/test_unit.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/test/suites/test_suite.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/luminate/test/suites/test_unit.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/static/ascii/icon.ascii +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/static/ascii/info.ascii +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis/static/bg/galaxy.jpg +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis.egg-info/dependency_links.txt +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis.egg-info/entry_points.txt +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis.egg-info/requires.txt +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis.egg-info/top_level.txt +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/orionis.egg-info/zip-safe +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/setup.cfg +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/setup.py +0 -0
- {orionis-0.254.0/orionis/luminate/test/output/contracts → orionis-0.255.0/tests}/__init__.py +0 -0
- {orionis-0.254.0/orionis/luminate/test/suites → orionis-0.255.0/tests/config}/__init__.py +0 -0
- {orionis-0.254.0/orionis/luminate/test/suites/contracts → orionis-0.255.0/tests/config/app}/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/tests/config/app/test_app.py +0 -0
- {orionis-0.254.0/tests → orionis-0.255.0/tests/config/auth}/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/tests/config/auth/test_auth.py +0 -0
- {orionis-0.254.0/tests/config → orionis-0.255.0/tests/config/cache}/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/tests/config/cache/test_cache.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/tests/config/cache/test_cache_file.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/tests/config/cache/test_cache_stores.py +0 -0
- {orionis-0.254.0/tests/config/app → orionis-0.255.0/tests/config/cors}/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/tests/config/cors/test_cors.py +0 -0
- {orionis-0.254.0/tests/config/auth → orionis-0.255.0/tests/config/database}/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/tests/config/database/test_database.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/tests/config/database/test_database_connections.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/tests/config/database/test_database_mysql.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/tests/config/database/test_database_oracle.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/tests/config/database/test_database_pgsql.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/tests/config/database/test_database_sqlite.py +0 -0
- {orionis-0.254.0/tests/config/cache → orionis-0.255.0/tests/config/exceptions}/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/tests/config/exceptions/test_exceptions_integrity.py +0 -0
- {orionis-0.254.0/tests/config/cors → orionis-0.255.0/tests/config/filesystems}/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/tests/config/filesystems/test_filesystems.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/tests/config/filesystems/test_filesystems_aws.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/tests/config/filesystems/test_filesystems_disks.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/tests/config/filesystems/test_filesystems_local.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/tests/config/filesystems/test_filesystems_public.py +0 -0
- {orionis-0.254.0/tests/config/database → orionis-0.255.0/tests/config/logging}/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/tests/config/logging/test_logging.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/tests/config/logging/test_logging_channels.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/tests/config/logging/test_logging_chunked.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/tests/config/logging/test_logging_daily.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/tests/config/logging/test_logging_hourly.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/tests/config/logging/test_logging_monthly.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/tests/config/logging/test_logging_stack.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/tests/config/logging/test_logging_weekly.py +0 -0
- {orionis-0.254.0/tests/config/exceptions → orionis-0.255.0/tests/config/mail}/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/tests/config/mail/test_mail.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/tests/config/mail/test_mail_file.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/tests/config/mail/test_mail_mailers.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/tests/config/mail/test_mail_smtp.py +0 -0
- {orionis-0.254.0/tests/config/filesystems → orionis-0.255.0/tests/config/queue}/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/tests/config/queue/test_queue.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/tests/config/queue/test_queue_brokers.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/tests/config/queue/test_queue_database.py +0 -0
- {orionis-0.254.0/tests/config/logging → orionis-0.255.0/tests/config/testing}/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/tests/config/testing/test_testing.py +0 -0
- {orionis-0.254.0/tests/config/mail → orionis-0.255.0/tests/example}/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/tests/example/test_example.py +0 -0
- {orionis-0.254.0/tests/config/queue → orionis-0.255.0/tests/patterns}/__init__.py +0 -0
- {orionis-0.254.0/tests/config/testing → orionis-0.255.0/tests/patterns/singleton}/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/tests/patterns/singleton/test_singleton.py +0 -0
- {orionis-0.254.0/tests/example → orionis-0.255.0/tests/services}/__init__.py +0 -0
- {orionis-0.254.0/tests/patterns → orionis-0.255.0/tests/services/asynchrony}/__init__.py +0 -0
- {orionis-0.254.0/tests/patterns/singleton → orionis-0.255.0/tests/services/environment}/__init__.py +0 -0
- {orionis-0.254.0/tests/services → orionis-0.255.0/tests/services/inspection}/__init__.py +0 -0
- {orionis-0.254.0/tests/services/environment → orionis-0.255.0/tests/services/inspection/dependencies}/__init__.py +0 -0
- {orionis-0.254.0/tests/support → orionis-0.255.0/tests/services/inspection/dependencies/mocks}/__init__.py +0 -0
- {orionis-0.254.0/tests/support/adapters → orionis-0.255.0/tests/services/parsers}/__init__.py +0 -0
- {orionis-0.254.0/tests/support/adapters/fakes → orionis-0.255.0/tests/services/parsers/mocks}/__init__.py +0 -0
- {orionis-0.254.0/tests/support/async_io → orionis-0.255.0/tests/services/path}/__init__.py +0 -0
- {orionis-0.254.0/tests/support/inspection → orionis-0.255.0/tests/services/standard}/__init__.py +0 -0
- {orionis-0.254.0/tests/support/inspection/fakes → orionis-0.255.0/tests/services/wrapper}/__init__.py +0 -0
- {orionis-0.254.0/tests/support/parsers → orionis-0.255.0/tests/support}/__init__.py +0 -0
- {orionis-0.254.0/tests/support/parsers/fakes → orionis-0.255.0/tests/support/inspection}/__init__.py +0 -0
- {orionis-0.254.0/tests/support/path → orionis-0.255.0/tests/support/inspection/fakes}/__init__.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/tests/support/inspection/fakes/fake_reflect_abstract.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/tests/support/inspection/fakes/fake_reflect_instance.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/tests/support/inspection/fakes/fake_reflection_concrete.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/tests/support/inspection/fakes/fake_reflection_concrete_with_abstract.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/tests/support/inspection/fakes/fake_reflection_instance_with_abstract.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/tests/support/inspection/test_reflect_abstract.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/tests/support/inspection/test_reflect_instance.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/tests/support/inspection/test_reflection_concrete.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/tests/support/inspection/test_reflection_concrete_with_abstract.py +0 -0
- {orionis-0.254.0 → orionis-0.255.0}/tests/support/inspection/test_reflection_instance_with_abstract.py +0 -0
- {orionis-0.254.0/tests/support/standard → orionis-0.255.0/tests/testing}/__init__.py +0 -0
@@ -4,7 +4,7 @@ import os
|
|
4
4
|
import sys
|
5
5
|
from orionis.luminate.console.output.styles import ANSIColors
|
6
6
|
from orionis.luminate._contracts.console.output.console import IConsole
|
7
|
-
from orionis.luminate.
|
7
|
+
from orionis.luminate.services.parsers.serializer import Parser
|
8
8
|
|
9
9
|
class Console(IConsole):
|
10
10
|
"""
|
@@ -533,7 +533,7 @@ class Console(IConsole):
|
|
533
533
|
This method prints the exception type, message, and a detailed stack trace.
|
534
534
|
"""
|
535
535
|
|
536
|
-
errors =
|
536
|
+
errors = Parser.exception(e).toDict()
|
537
537
|
error_type = str(errors.get("error_type")).split(".")[-1]
|
538
538
|
error_message = str(errors.get("error_message")).replace(error_type, "").replace("[]", "").strip()
|
539
539
|
stack_trace = errors.get("stack_trace")
|
@@ -0,0 +1,31 @@
|
|
1
|
+
import asyncio
|
2
|
+
from typing import Any, Coroutine, TypeVar, Union
|
3
|
+
|
4
|
+
T = TypeVar("T")
|
5
|
+
|
6
|
+
def run_coroutine(coro: Coroutine[Any, Any, T]) -> Union[T, asyncio.Future]:
|
7
|
+
"""
|
8
|
+
Executes the given coroutine object, adapting to the current execution context.
|
9
|
+
If there is an active event loop, it uses `asyncio.ensure_future` to schedule the coroutine.
|
10
|
+
If there is no active event loop, it uses `asyncio.run` to run the coroutine directly.
|
11
|
+
If the coroutine is already running, it returns a `Future` object that can be awaited.
|
12
|
+
|
13
|
+
Parameters
|
14
|
+
----------
|
15
|
+
coro : Coroutine[Any, Any, T]
|
16
|
+
The coroutine object
|
17
|
+
"""
|
18
|
+
from inspect import iscoroutine
|
19
|
+
|
20
|
+
if not iscoroutine(coro):
|
21
|
+
raise TypeError("Expected a coroutine object.")
|
22
|
+
|
23
|
+
try:
|
24
|
+
loop = asyncio.get_running_loop()
|
25
|
+
except RuntimeError:
|
26
|
+
return asyncio.run(coro)
|
27
|
+
|
28
|
+
if loop.is_running():
|
29
|
+
return asyncio.ensure_future(coro)
|
30
|
+
else:
|
31
|
+
return loop.run_until_complete(coro)
|
@@ -59,17 +59,6 @@ class IEnv(ABC):
|
|
59
59
|
"""
|
60
60
|
pass
|
61
61
|
|
62
|
-
@staticmethod
|
63
|
-
@abstractmethod
|
64
|
-
def destroy() -> bool:
|
65
|
-
"""
|
66
|
-
Clears the entire environment.
|
67
|
-
|
68
|
-
Returns:
|
69
|
-
True if successful, False otherwise
|
70
|
-
"""
|
71
|
-
pass
|
72
|
-
|
73
62
|
@staticmethod
|
74
63
|
@abstractmethod
|
75
64
|
def toJson() -> str:
|
@@ -0,0 +1,217 @@
|
|
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.luminate.patterns.singleton.meta_class import Singleton
|
8
|
+
|
9
|
+
class DotEnv(metaclass=Singleton):
|
10
|
+
"""
|
11
|
+
DotEnv is a singleton class for managing environment variables using a `.env` file.
|
12
|
+
This class provides methods to load, get, set, unset, and list environment variables,
|
13
|
+
with automatic serialization and deserialization of common Python data types.
|
14
|
+
It ensures that changes to the `.env` file are reflected in the current process's
|
15
|
+
environment variables and vice versa.
|
16
|
+
"""
|
17
|
+
|
18
|
+
_lock = threading.RLock()
|
19
|
+
|
20
|
+
def __init__(self, path: str = None) -> None:
|
21
|
+
"""
|
22
|
+
Initializes the environment service by resolving the path to the `.env` file, ensuring its existence,
|
23
|
+
and loading environment variables from it.
|
24
|
+
Args:
|
25
|
+
path (str, optional): The path to the `.env` file. If not provided, defaults to a `.env` file
|
26
|
+
in the current working directory.
|
27
|
+
Raises:
|
28
|
+
OSError: If the `.env` file cannot be created when it does not exist.
|
29
|
+
"""
|
30
|
+
|
31
|
+
with self._lock:
|
32
|
+
if path:
|
33
|
+
self._resolved_path = Path(path).expanduser().resolve()
|
34
|
+
else:
|
35
|
+
self._resolved_path = Path(os.getcwd()) / ".env"
|
36
|
+
|
37
|
+
if not self._resolved_path.exists():
|
38
|
+
self._resolved_path.touch()
|
39
|
+
|
40
|
+
load_dotenv(self._resolved_path)
|
41
|
+
|
42
|
+
def get(self, key: str, default: Optional[Any] = None) -> Any:
|
43
|
+
"""
|
44
|
+
Retrieve the value of an environment variable by key.
|
45
|
+
|
46
|
+
This method first attempts to fetch the value from the dotenv file specified by
|
47
|
+
`self._resolved_path`. If the key is not found in the dotenv file, it falls back
|
48
|
+
to the system environment variables. If the key is not found in either location,
|
49
|
+
the provided `default` value is returned.
|
50
|
+
|
51
|
+
The returned value is parsed using the internal `__parseValue` method if found.
|
52
|
+
|
53
|
+
Args:
|
54
|
+
key (str): The name of the environment variable to retrieve.
|
55
|
+
default (Optional[Any], optional): The value to return if the key is not found.
|
56
|
+
Defaults to None.
|
57
|
+
|
58
|
+
Returns:
|
59
|
+
Any: The parsed value of the environment variable, or the default if not found.
|
60
|
+
"""
|
61
|
+
with self._lock:
|
62
|
+
value = dotenv_values(self._resolved_path).get(key)
|
63
|
+
if value is None:
|
64
|
+
value = os.getenv(key)
|
65
|
+
return self.__parseValue(value) if value is not None else default
|
66
|
+
|
67
|
+
def set(self, key: str, value: Union[str, int, float, bool, list, dict]) -> bool:
|
68
|
+
"""
|
69
|
+
Sets an environment variable with the specified key and value.
|
70
|
+
|
71
|
+
This method serializes the given value and updates both the .env file and the current process's environment variables.
|
72
|
+
|
73
|
+
Args:
|
74
|
+
key (str): The name of the environment variable to set.
|
75
|
+
value (Union[str, int, float, bool, list, dict]): The value to assign to the environment variable. Supported types include string, integer, float, boolean, list, and dictionary.
|
76
|
+
|
77
|
+
Returns:
|
78
|
+
bool: True if the environment variable was successfully set.
|
79
|
+
"""
|
80
|
+
with self._lock:
|
81
|
+
serialized_value = self.__serializeValue(value)
|
82
|
+
set_key(str(self._resolved_path), key, serialized_value)
|
83
|
+
os.environ[key] = str(value)
|
84
|
+
return True
|
85
|
+
|
86
|
+
def unset(self, key: str) -> bool:
|
87
|
+
"""
|
88
|
+
Removes the specified environment variable from both the .env file and the current process environment.
|
89
|
+
|
90
|
+
Args:
|
91
|
+
key (str): The name of the environment variable to unset.
|
92
|
+
|
93
|
+
Returns:
|
94
|
+
bool: True if the operation was successful.
|
95
|
+
"""
|
96
|
+
with self._lock:
|
97
|
+
unset_key(str(self._resolved_path), key)
|
98
|
+
os.environ.pop(key, None)
|
99
|
+
return True
|
100
|
+
|
101
|
+
def all(self) -> dict:
|
102
|
+
"""
|
103
|
+
Retrieves all environment variables from the resolved .env file.
|
104
|
+
|
105
|
+
Returns:
|
106
|
+
dict: A dictionary containing all environment variable key-value pairs,
|
107
|
+
with values parsed using the internal __parseValue method.
|
108
|
+
"""
|
109
|
+
with self._lock:
|
110
|
+
raw_values = dotenv_values(self._resolved_path)
|
111
|
+
return {k: self.__parseValue(v) for k, v in raw_values.items()}
|
112
|
+
|
113
|
+
def toJson(self) -> str:
|
114
|
+
"""
|
115
|
+
Serializes all environment variables managed by this instance to a JSON-formatted string.
|
116
|
+
|
117
|
+
Returns:
|
118
|
+
str: A JSON string representation of all environment variables, formatted with indentation for readability.
|
119
|
+
"""
|
120
|
+
import json
|
121
|
+
with self._lock:
|
122
|
+
return json.dumps(self.all(), indent=4)
|
123
|
+
|
124
|
+
def toBase64(self) -> str:
|
125
|
+
"""
|
126
|
+
Serializes all environment variables to a JSON string and encodes it in Base64.
|
127
|
+
|
128
|
+
Returns:
|
129
|
+
str: A Base64-encoded string representation of all environment variables.
|
130
|
+
"""
|
131
|
+
import base64
|
132
|
+
import json
|
133
|
+
with self._lock:
|
134
|
+
return base64.b64encode(json.dumps(self.all()).encode()).decode()
|
135
|
+
|
136
|
+
def __parseValue(self, value: Any) -> Any:
|
137
|
+
"""
|
138
|
+
Parses and converts the input value to an appropriate Python data type.
|
139
|
+
|
140
|
+
Args:
|
141
|
+
value (Any): The value to parse and convert.
|
142
|
+
|
143
|
+
Returns:
|
144
|
+
Any: The parsed value, which may be of type None, bool, int, float, or the original string.
|
145
|
+
- Returns None for None, empty strings, or strings like 'none', 'null', 'nan' (case-insensitive).
|
146
|
+
- Returns a boolean for 'true'/'false' strings (case-insensitive).
|
147
|
+
- Returns an int if the string represents an integer.
|
148
|
+
- Returns a float if the string represents a float.
|
149
|
+
- Attempts to evaluate the string as a Python literal (e.g., list, dict, tuple).
|
150
|
+
- Returns the original string if no conversion is possible.
|
151
|
+
"""
|
152
|
+
if value is None:
|
153
|
+
return None
|
154
|
+
if isinstance(value, (bool, int, float)):
|
155
|
+
return value
|
156
|
+
value_str = str(value).strip()
|
157
|
+
if not value_str or value_str.lower() in {'none', 'null', 'nan'}:
|
158
|
+
return None
|
159
|
+
if value_str.lower() == 'true':
|
160
|
+
return True
|
161
|
+
if value_str.lower() == 'false':
|
162
|
+
return False
|
163
|
+
try:
|
164
|
+
if value_str.isdigit() or (value_str.startswith('-') and value_str[1:].isdigit()):
|
165
|
+
return int(value_str)
|
166
|
+
except Exception:
|
167
|
+
pass
|
168
|
+
try:
|
169
|
+
float_val = float(value_str)
|
170
|
+
if '.' in value_str or 'e' in value_str.lower():
|
171
|
+
return float_val
|
172
|
+
except Exception:
|
173
|
+
pass
|
174
|
+
try:
|
175
|
+
return ast.literal_eval(value_str)
|
176
|
+
except Exception:
|
177
|
+
pass
|
178
|
+
return value_str
|
179
|
+
|
180
|
+
def __serializeValue(self, value: Any) -> str:
|
181
|
+
"""
|
182
|
+
Serializes a given value to a string suitable for storage in a .env file.
|
183
|
+
|
184
|
+
Parameters:
|
185
|
+
value (Any): The value to serialize. Supported types are None, str, bool, int, float, list, and dict.
|
186
|
+
|
187
|
+
Returns:
|
188
|
+
str: The serialized string representation of the value.
|
189
|
+
|
190
|
+
Raises:
|
191
|
+
ValueError: If a float value is in scientific notation.
|
192
|
+
TypeError: If the value's type is not serializable for .env files.
|
193
|
+
"""
|
194
|
+
if value is None:
|
195
|
+
return "None"
|
196
|
+
if isinstance(value, str):
|
197
|
+
return value
|
198
|
+
if isinstance(value, bool):
|
199
|
+
return str(value).lower()
|
200
|
+
if isinstance(value, int):
|
201
|
+
return str(value)
|
202
|
+
if isinstance(value, float):
|
203
|
+
value = str(value)
|
204
|
+
if 'e' in value or 'E' in value:
|
205
|
+
raise ValueError('scientific notation is not supported, use a string instead')
|
206
|
+
return value
|
207
|
+
if isinstance(value, (list, dict)):
|
208
|
+
return repr(value)
|
209
|
+
if hasattr(value, '__dict__'):
|
210
|
+
raise TypeError(f"Type {type(value).__name__} is not serializable for .env")
|
211
|
+
if not isinstance(value, (list, dict, bool, int, float, str)):
|
212
|
+
raise TypeError(f"Type {type(value).__name__} is not serializable for .env")
|
213
|
+
if isinstance(value, (list, dict, bool, int, float, str)):
|
214
|
+
if type(value).__module__ != "builtins" and not isinstance(value, str):
|
215
|
+
raise TypeError(f"Type {type(value).__name__} is not serializable for .env")
|
216
|
+
return repr(value) if not isinstance(value, str) else value
|
217
|
+
raise TypeError(f"Type {type(value).__name__} is not serializable for .env")
|
@@ -51,17 +51,6 @@ class Env(IEnv):
|
|
51
51
|
"""
|
52
52
|
return Env._dotenv().all()
|
53
53
|
|
54
|
-
@staticmethod
|
55
|
-
def destroy() -> bool:
|
56
|
-
"""
|
57
|
-
Destroys the current environment by resetting the DotEnv instance.
|
58
|
-
"""
|
59
|
-
if Env._dotenv_instance is not None:
|
60
|
-
result = Env._dotenv_instance.destroy()
|
61
|
-
Env._dotenv_instance = None
|
62
|
-
return result
|
63
|
-
return False
|
64
|
-
|
65
54
|
@staticmethod
|
66
55
|
def toJson() -> str:
|
67
56
|
"""
|
orionis-0.255.0/orionis/luminate/services/introspection/dependencies/entities/class_dependencies.py
ADDED
@@ -0,0 +1,59 @@
|
|
1
|
+
from dataclasses import dataclass
|
2
|
+
from typing import Any, Dict, List
|
3
|
+
from orionis.luminate.support.introspection.dependencies.entities.resolved_dependencies import ResolvedDependency
|
4
|
+
|
5
|
+
@dataclass(frozen=True, kw_only=True)
|
6
|
+
class ClassDependency:
|
7
|
+
"""
|
8
|
+
Represents the dependencies of a class, separating resolved and unresolved dependencies.
|
9
|
+
|
10
|
+
Attributes:
|
11
|
+
resolved (Dict[ResolvedDependency, Any]):
|
12
|
+
A dictionary mapping resolved dependency descriptors to their corresponding resolved instances or values.
|
13
|
+
All keys must be ResolvedDependency instances.
|
14
|
+
unresolved (List[str]):
|
15
|
+
A list of dependency names or identifiers that could not be resolved.
|
16
|
+
Must contain only strings.
|
17
|
+
"""
|
18
|
+
resolved: Dict[ResolvedDependency, Any]
|
19
|
+
unresolved: List[str]
|
20
|
+
|
21
|
+
def __post_init__(self):
|
22
|
+
"""
|
23
|
+
Validates types of attributes during initialization.
|
24
|
+
|
25
|
+
Raises:
|
26
|
+
TypeError: If types don't match the expected:
|
27
|
+
- resolved: Dict[ResolvedDependency, Any]
|
28
|
+
- unresolved: List[str]
|
29
|
+
ValueError: If resolved contains None keys or unresolved contains empty strings
|
30
|
+
"""
|
31
|
+
# Validate 'resolved' is a dict with ResolvedDependency keys
|
32
|
+
if not isinstance(self.resolved, dict):
|
33
|
+
raise TypeError(
|
34
|
+
f"'resolved' must be a dict, got {type(self.resolved).__name__}"
|
35
|
+
)
|
36
|
+
|
37
|
+
for key in self.resolved:
|
38
|
+
if not isinstance(key, ResolvedDependency):
|
39
|
+
raise TypeError(
|
40
|
+
f"All keys in 'resolved' must be ResolvedDependency, "
|
41
|
+
f"found {type(key).__name__}"
|
42
|
+
)
|
43
|
+
if key is None:
|
44
|
+
raise ValueError("'resolved' cannot contain None keys")
|
45
|
+
|
46
|
+
# Validate 'unresolved' is a list of non-empty strings
|
47
|
+
if not isinstance(self.unresolved, list):
|
48
|
+
raise TypeError(
|
49
|
+
f"'unresolved' must be a list, got {type(self.unresolved).__name__}"
|
50
|
+
)
|
51
|
+
|
52
|
+
for item in self.unresolved:
|
53
|
+
if not isinstance(item, str):
|
54
|
+
raise TypeError(
|
55
|
+
f"All items in 'unresolved' must be str, "
|
56
|
+
f"found {type(item).__name__}"
|
57
|
+
)
|
58
|
+
if not item.strip():
|
59
|
+
raise ValueError("'unresolved' cannot contain empty strings")
|
orionis-0.255.0/orionis/luminate/services/introspection/dependencies/entities/method_dependencies.py
ADDED
@@ -0,0 +1,64 @@
|
|
1
|
+
from dataclasses import dataclass
|
2
|
+
from typing import Any, Dict, List
|
3
|
+
from orionis.luminate.support.introspection.dependencies.entities.resolved_dependencies import ResolvedDependency
|
4
|
+
|
5
|
+
@dataclass(frozen=True, kw_only=True)
|
6
|
+
class MethodDependency:
|
7
|
+
"""
|
8
|
+
Represents the dependencies of a method, separating resolved and unresolved dependencies.
|
9
|
+
|
10
|
+
Attributes:
|
11
|
+
resolved (Dict[ResolvedDependency, Any]):
|
12
|
+
A dictionary mapping resolved dependency descriptors to their corresponding
|
13
|
+
resolved instances or values for the method.
|
14
|
+
All keys must be ResolvedDependency instances.
|
15
|
+
unresolved (List[str]):
|
16
|
+
A list of method parameter names or dependency identifiers that could not be resolved.
|
17
|
+
Must contain only non-empty strings.
|
18
|
+
"""
|
19
|
+
resolved: Dict[ResolvedDependency, Any]
|
20
|
+
unresolved: List[str]
|
21
|
+
|
22
|
+
def __post_init__(self):
|
23
|
+
"""
|
24
|
+
Validates types and values of attributes during initialization.
|
25
|
+
|
26
|
+
Raises:
|
27
|
+
TypeError: If types don't match the expected:
|
28
|
+
- resolved: Dict[ResolvedDependency, Any]
|
29
|
+
- unresolved: List[str]
|
30
|
+
ValueError: If resolved contains None keys or unresolved contains empty strings
|
31
|
+
"""
|
32
|
+
# Validate 'resolved' is a dict with proper key types
|
33
|
+
if not isinstance(self.resolved, dict):
|
34
|
+
raise TypeError(
|
35
|
+
f"'resolved' must be a dict, got {type(self.resolved).__name__}"
|
36
|
+
)
|
37
|
+
|
38
|
+
for dependency in self.resolved:
|
39
|
+
if not isinstance(dependency, ResolvedDependency):
|
40
|
+
raise TypeError(
|
41
|
+
f"All keys in 'resolved' must be ResolvedDependency instances, "
|
42
|
+
f"found {type(dependency).__name__}"
|
43
|
+
)
|
44
|
+
if dependency is None:
|
45
|
+
raise ValueError("'resolved' cannot contain None keys")
|
46
|
+
|
47
|
+
# Validate 'unresolved' is a list of valid parameter names
|
48
|
+
if not isinstance(self.unresolved, list):
|
49
|
+
raise TypeError(
|
50
|
+
f"'unresolved' must be a list, got {type(self.unresolved).__name__}"
|
51
|
+
)
|
52
|
+
|
53
|
+
for param in self.unresolved:
|
54
|
+
if not isinstance(param, str):
|
55
|
+
raise TypeError(
|
56
|
+
f"All items in 'unresolved' must be strings, "
|
57
|
+
f"found {type(param).__name__}"
|
58
|
+
)
|
59
|
+
if not param.strip():
|
60
|
+
raise ValueError("'unresolved' cannot contain empty parameter names")
|
61
|
+
if not param.isidentifier():
|
62
|
+
raise ValueError(
|
63
|
+
f"Parameter name '{param}' must be a valid Python identifier"
|
64
|
+
)
|
@@ -0,0 +1,60 @@
|
|
1
|
+
from dataclasses import dataclass
|
2
|
+
from typing import Type, Any
|
3
|
+
|
4
|
+
@dataclass(frozen=True, kw_only=True)
|
5
|
+
class ResolvedDependency:
|
6
|
+
"""
|
7
|
+
Represents a fully resolved dependency with complete type information.
|
8
|
+
|
9
|
+
Attributes:
|
10
|
+
module_name (str):
|
11
|
+
The name of the module where the dependency is defined.
|
12
|
+
Must be a non-empty string without spaces.
|
13
|
+
class_name (str):
|
14
|
+
The name of the class/type being resolved.
|
15
|
+
Must be a valid Python identifier.
|
16
|
+
type (Type):
|
17
|
+
The actual Python type object of the resolved dependency.
|
18
|
+
full_class_path (str):
|
19
|
+
The full import path to the class (e.g., 'package.module.ClassName').
|
20
|
+
Must match 'module_name.class_name' pattern.
|
21
|
+
"""
|
22
|
+
module_name: str
|
23
|
+
class_name: str
|
24
|
+
type: Type[Any]
|
25
|
+
full_class_path: str
|
26
|
+
|
27
|
+
def __post_init__(self):
|
28
|
+
"""
|
29
|
+
Validates all fields during initialization.
|
30
|
+
|
31
|
+
Raises:
|
32
|
+
TypeError: If any field has incorrect type.
|
33
|
+
ValueError: If string fields are empty or don't meet format requirements.
|
34
|
+
"""
|
35
|
+
# Validate module_name
|
36
|
+
if not isinstance(self.module_name, str):
|
37
|
+
raise TypeError(f"module_name must be str, got {type(self.module_name).__name__}")
|
38
|
+
if not self.module_name:
|
39
|
+
raise ValueError("module_name cannot be empty")
|
40
|
+
if any(c.isspace() for c in self.module_name):
|
41
|
+
raise ValueError("module_name cannot contain whitespace")
|
42
|
+
|
43
|
+
# Validate class_name
|
44
|
+
if not isinstance(self.class_name, str):
|
45
|
+
raise TypeError(f"class_name must be str, got {type(self.class_name).__name__}")
|
46
|
+
if not self.class_name.isidentifier():
|
47
|
+
raise ValueError(f"class_name must be valid Python identifier, got '{self.class_name}'")
|
48
|
+
|
49
|
+
# Validate type
|
50
|
+
if not isinstance(self.type, type):
|
51
|
+
raise TypeError(f"type must be a type object, got {type(self.type).__name__}")
|
52
|
+
|
53
|
+
# Validate full_class_path
|
54
|
+
if not isinstance(self.full_class_path, str):
|
55
|
+
raise TypeError(f"full_class_path must be str, got {type(self.full_class_path).__name__}")
|
56
|
+
expected_path = f"{self.module_name}.{self.class_name}"
|
57
|
+
if self.full_class_path != expected_path:
|
58
|
+
raise ValueError(
|
59
|
+
f"full_class_path must be '{expected_path}', got '{self.full_class_path}'"
|
60
|
+
)
|
@@ -1,9 +1,9 @@
|
|
1
1
|
import inspect
|
2
2
|
from typing import Any, Dict, List
|
3
|
-
from orionis.luminate.
|
4
|
-
from orionis.luminate.
|
5
|
-
from orionis.luminate.
|
6
|
-
from orionis.luminate.
|
3
|
+
from orionis.luminate.services.introspection.dependencies.contracts.reflect_dependencies import IReflectDependencies
|
4
|
+
from orionis.luminate.services.introspection.dependencies.entities.class_dependencies import ClassDependency
|
5
|
+
from orionis.luminate.services.introspection.dependencies.entities.method_dependencies import MethodDependency
|
6
|
+
from orionis.luminate.services.introspection.dependencies.entities.resolved_dependencies import ResolvedDependency
|
7
7
|
|
8
8
|
class ReflectDependencies(IReflectDependencies):
|
9
9
|
"""
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import traceback
|
2
2
|
from typing import Any, Dict, List, Optional, Union
|
3
|
-
from orionis.luminate.
|
3
|
+
from orionis.luminate.services.parsers.contracts.exception_parser import IExceptionParser
|
4
4
|
|
5
5
|
class ExceptionParser(IExceptionParser):
|
6
6
|
"""
|
@@ -0,0 +1,15 @@
|
|
1
|
+
from orionis.luminate.services.parsers.exception import ExceptionParser
|
2
|
+
|
3
|
+
class Parser:
|
4
|
+
|
5
|
+
@staticmethod
|
6
|
+
def exception(exception: Exception) -> ExceptionParser:
|
7
|
+
"""
|
8
|
+
Creates and returns an ExceptionParser instance for the given exception.
|
9
|
+
Args:
|
10
|
+
exception (Exception): The exception to be parsed.
|
11
|
+
Returns:
|
12
|
+
ExceptionParser: An instance of ExceptionParser initialized with the provided exception.
|
13
|
+
"""
|
14
|
+
|
15
|
+
return ExceptionParser(exception)
|
@@ -0,0 +1,31 @@
|
|
1
|
+
from abc import ABC, abstractmethod
|
2
|
+
|
3
|
+
class IImports(ABC):
|
4
|
+
"""
|
5
|
+
Interface for a utility to collect and display information about currently loaded Python modules.
|
6
|
+
"""
|
7
|
+
|
8
|
+
@abstractmethod
|
9
|
+
def collect(self):
|
10
|
+
"""
|
11
|
+
Collects information about user-defined Python modules currently loaded in sys.modules.
|
12
|
+
Returns:
|
13
|
+
IImports: The current instance with updated imports information.
|
14
|
+
"""
|
15
|
+
pass
|
16
|
+
|
17
|
+
@abstractmethod
|
18
|
+
def display(self) -> None:
|
19
|
+
"""
|
20
|
+
Displays a formatted table of collected import statements.
|
21
|
+
Returns:
|
22
|
+
None
|
23
|
+
"""
|
24
|
+
pass
|
25
|
+
|
26
|
+
@abstractmethod
|
27
|
+
def clear(self) -> None:
|
28
|
+
"""
|
29
|
+
Clears the collected imports list.
|
30
|
+
"""
|
31
|
+
pass
|