orionis 0.653.0__tar.gz → 0.654.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.653.0/orionis.egg-info → orionis-0.654.0}/PKG-INFO +1 -1
- {orionis-0.653.0 → orionis-0.654.0}/orionis/container/container.py +102 -47
- {orionis-0.653.0 → orionis-0.654.0}/orionis/metadata/framework.py +1 -1
- {orionis-0.653.0 → orionis-0.654.0/orionis.egg-info}/PKG-INFO +1 -1
- {orionis-0.653.0 → orionis-0.654.0}/LICENCE +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/MANIFEST.in +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/README.md +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/args/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/args/argument.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/base/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/base/command.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/base/scheduler.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/base/scheduler_event_listener.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/commands/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/commands/__publisher__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/commands/__workflow__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/commands/cache_clear.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/commands/help.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/commands/log_clear.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/commands/make_command.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/commands/scheduler_list.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/commands/scheduler_work.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/commands/test.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/commands/version.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/contracts/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/contracts/base_command.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/contracts/base_scheduler.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/contracts/cli_request.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/contracts/command.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/contracts/console.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/contracts/dumper.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/contracts/event.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/contracts/executor.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/contracts/kernel.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/contracts/progress_bar.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/contracts/reactor.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/contracts/schedule.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/contracts/schedule_event_listener.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/core/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/core/reactor.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/debug/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/debug/dumper.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/dynamic/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/dynamic/progress_bar.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/entities/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/entities/command.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/entities/event.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/entities/event_job.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/entities/scheduler_error.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/entities/scheduler_event_data.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/entities/scheduler_paused.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/entities/scheduler_resumed.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/entities/scheduler_shutdown.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/entities/scheduler_started.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/enums/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/enums/actions.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/enums/listener.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/enums/styles.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/exceptions/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/exceptions/cli_exceptions.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/fluent/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/fluent/command.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/fluent/event.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/kernel.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/output/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/output/console.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/output/executor.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/request/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/request/cli_request.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/stubs/command.stub +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/stubs/listener.stub +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/tasks/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/console/tasks/schedule.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/container/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/container/context/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/container/context/manager.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/container/context/scope.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/container/contracts/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/container/contracts/container.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/container/contracts/service_provider.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/container/entities/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/container/entities/binding.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/container/enums/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/container/enums/lifetimes.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/container/exceptions/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/container/exceptions/container.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/container/facades/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/container/facades/facade.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/container/providers/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/container/providers/service_provider.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/container/validators/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/container/validators/implements.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/container/validators/is_abstract_class.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/container/validators/is_callable.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/container/validators/is_concrete_class.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/container/validators/is_instance.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/container/validators/is_not_subclass.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/container/validators/is_subclass.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/container/validators/is_valid_alias.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/container/validators/lifetime.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/failure/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/failure/base/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/failure/base/handler.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/failure/catch.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/failure/contracts/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/failure/contracts/catch.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/failure/contracts/handler.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/failure/entities/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/failure/entities/throwable.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/application.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/app/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/app/entities/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/app/entities/app.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/app/enums/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/app/enums/ciphers.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/app/enums/environments.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/auth/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/auth/entities/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/auth/entities/auth.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/cache/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/cache/entities/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/cache/entities/cache.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/cache/entities/file.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/cache/entities/stores.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/cache/enums/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/cache/enums/drivers.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/cors/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/cors/entities/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/cors/entities/cors.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/database/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/database/entities/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/database/entities/connections.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/database/entities/database.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/database/entities/mysql.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/database/entities/oracle.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/database/entities/pgsql.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/database/entities/sqlite.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/database/enums/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/database/enums/mysql_charsets.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/database/enums/mysql_collations.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/database/enums/mysql_engine.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/database/enums/oracle_encoding.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/database/enums/oracle_nencoding.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/database/enums/pgsql_charsets.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/database/enums/pgsql_collations.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/database/enums/pgsql_mode.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/database/enums/sqlite_foreign_key.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/database/enums/sqlite_journal.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/database/enums/sqlite_synchronous.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/filesystems/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/filesystems/entitites/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/filesystems/entitites/aws.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/filesystems/entitites/disks.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/filesystems/entitites/filesystems.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/filesystems/entitites/local.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/filesystems/entitites/public.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/logging/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/logging/entities/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/logging/entities/channels.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/logging/entities/chunked.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/logging/entities/daily.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/logging/entities/hourly.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/logging/entities/logging.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/logging/entities/monthly.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/logging/entities/stack.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/logging/entities/weekly.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/logging/enums/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/logging/enums/levels.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/logging/validators/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/logging/validators/level.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/logging/validators/path.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/mail/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/mail/entities/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/mail/entities/file.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/mail/entities/mail.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/mail/entities/mailers.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/mail/entities/smtp.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/queue/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/queue/entities/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/queue/entities/brokers.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/queue/entities/database.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/queue/entities/queue.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/queue/enums/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/queue/enums/strategy.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/roots/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/roots/paths.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/session/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/session/entities/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/session/entities/session.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/session/enums/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/session/enums/same_site_policy.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/session/helpers/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/session/helpers/secret_key.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/startup.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/testing/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/testing/entities/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/testing/entities/testing.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/testing/enums/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/testing/enums/drivers.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/testing/enums/mode.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/config/testing/enums/verbosity.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/contracts/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/contracts/application.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/exceptions/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/exceptions/application.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/providers/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/providers/catch_provider.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/providers/cli_request_provider.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/providers/console_provider.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/providers/directory_provider.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/providers/dumper_provider.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/providers/executor_provider.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/providers/inspirational_provider.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/providers/logger_provider.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/providers/performance_counter_provider.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/providers/progress_bar_provider.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/providers/reactor_provider.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/providers/scheduler_provider.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/providers/testing_provider.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/foundation/providers/workers_provider.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/metadata/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/metadata/package.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/asynchrony/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/asynchrony/contracts/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/asynchrony/contracts/coroutines.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/asynchrony/coroutines.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/asynchrony/exceptions/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/asynchrony/exceptions/asynchrony.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/encrypter/encrypter.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/environment/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/environment/contracts/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/environment/contracts/caster.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/environment/contracts/env.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/environment/core/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/environment/core/dot_env.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/environment/dynamic/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/environment/dynamic/caster.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/environment/enums/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/environment/enums/value_type.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/environment/env.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/environment/exceptions/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/environment/exceptions/environment.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/environment/helpers/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/environment/helpers/functions.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/environment/key/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/environment/key/key_generator.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/environment/validators/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/environment/validators/key_name.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/environment/validators/types.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/file/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/file/contracts/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/file/contracts/directory.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/file/directory.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/inspirational/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/inspirational/contracts/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/inspirational/contracts/inspire.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/inspirational/inspire.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/inspirational/quotes.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/introspection/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/introspection/abstract/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/introspection/abstract/contracts/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/introspection/abstract/contracts/reflection.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/introspection/abstract/reflection.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/introspection/callables/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/introspection/callables/contracts/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/introspection/callables/contracts/reflection.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/introspection/callables/reflection.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/introspection/concretes/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/introspection/concretes/contracts/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/introspection/concretes/contracts/reflection.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/introspection/concretes/reflection.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/introspection/dependencies/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/introspection/dependencies/contracts/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/introspection/dependencies/contracts/reflection.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/introspection/dependencies/entities/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/introspection/dependencies/entities/argument.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/introspection/dependencies/entities/resolve_argument.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/introspection/dependencies/reflection.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/introspection/exceptions/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/introspection/exceptions/introspection.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/introspection/instances/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/introspection/instances/contracts/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/introspection/instances/contracts/reflection.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/introspection/instances/reflection.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/introspection/modules/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/introspection/modules/contracts/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/introspection/modules/contracts/reflection.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/introspection/modules/reflection.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/introspection/objects/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/introspection/objects/types.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/introspection/reflection.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/log/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/log/contracts/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/log/contracts/log_service.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/log/exceptions/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/log/exceptions/log.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/log/handlers/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/log/handlers/filename.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/log/handlers/size_rotating.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/log/handlers/timed_rotating.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/log/log_service.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/system/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/system/contracts/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/system/contracts/imports.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/system/contracts/workers.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/system/imports.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/system/runtime/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/system/runtime/imports.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/services/system/workers.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/support/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/support/entities/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/support/entities/base.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/support/facades/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/support/facades/application.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/support/facades/application.pyi +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/support/facades/console.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/support/facades/console.pyi +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/support/facades/directory.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/support/facades/directory.pyi +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/support/facades/dumper.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/support/facades/dumper.pyi +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/support/facades/executor.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/support/facades/executor.pyi +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/support/facades/inspire.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/support/facades/inspire.pyi +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/support/facades/logger.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/support/facades/logger.pyi +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/support/facades/performance_counter.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/support/facades/performance_counter.pyi +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/support/facades/progress_bar.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/support/facades/progress_bar.pyi +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/support/facades/reactor.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/support/facades/reactor.pyi +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/support/facades/testing.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/support/facades/testing.pyi +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/support/facades/workers.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/support/facades/workers.pyi +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/support/formatter/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/support/formatter/exceptions/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/support/formatter/exceptions/contracts/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/support/formatter/exceptions/contracts/parser.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/support/formatter/exceptions/parser.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/support/formatter/serializer.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/support/patterns/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/support/patterns/singleton/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/support/patterns/singleton/meta.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/support/performance/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/support/performance/contracts/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/support/performance/contracts/counter.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/support/performance/counter.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/support/standard/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/support/standard/contracts/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/support/standard/contracts/std.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/support/standard/exceptions/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/support/standard/exceptions/standard.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/support/standard/std.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/support/wrapper/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/support/wrapper/dataclass.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/support/wrapper/dot_dict.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/test/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/test/cases/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/test/cases/asynchronous.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/test/cases/synchronous.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/test/contracts/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/test/contracts/dumper.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/test/contracts/kernel.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/test/contracts/logs.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/test/contracts/printer.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/test/contracts/render.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/test/contracts/test_result.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/test/contracts/unit_test.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/test/core/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/test/core/unit_test.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/test/entities/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/test/entities/result.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/test/enums/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/test/enums/status.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/test/exceptions/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/test/exceptions/config.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/test/exceptions/failure.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/test/exceptions/persistence.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/test/exceptions/runtime.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/test/exceptions/value.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/test/kernel.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/test/output/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/test/output/dumper.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/test/output/printer.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/test/records/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/test/records/logs.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/test/validators/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/test/validators/base_path.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/test/validators/execution_mode.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/test/validators/fail_fast.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/test/validators/folder_path.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/test/validators/module_name.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/test/validators/name_pattern.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/test/validators/pattern.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/test/validators/persistent.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/test/validators/persistent_driver.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/test/validators/throw_exception.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/test/validators/verbosity.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/test/validators/web_report.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/test/validators/workers.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/test/view/__init__.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/test/view/render.py +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis/test/view/report.stub +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis.egg-info/SOURCES.txt +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis.egg-info/dependency_links.txt +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis.egg-info/not-zip-safe +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis.egg-info/requires.txt +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/orionis.egg-info/top_level.txt +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/setup.cfg +0 -0
- {orionis-0.653.0 → orionis-0.654.0}/setup.py +0 -0
|
@@ -88,37 +88,38 @@ class Container(IContainer):
|
|
|
88
88
|
|
|
89
89
|
def __init__(self) -> None:
|
|
90
90
|
"""
|
|
91
|
-
Initializes
|
|
91
|
+
Initializes the internal state of the container instance.
|
|
92
92
|
|
|
93
|
-
This constructor sets up the internal dictionaries for bindings
|
|
94
|
-
|
|
95
|
-
|
|
93
|
+
This constructor sets up the internal dictionaries for service bindings, aliases,
|
|
94
|
+
singleton cache, and resolution cache. Initialization is performed only once per
|
|
95
|
+
instance, even if `__init__` is called multiple times due to inheritance or other
|
|
96
|
+
instantiation patterns. The container also registers itself under the `IContainer`
|
|
97
|
+
interface for dependency injection.
|
|
96
98
|
|
|
97
99
|
Notes
|
|
98
100
|
-----
|
|
99
|
-
- The `__bindings` dictionary
|
|
100
|
-
- The `__aliases` dictionary
|
|
101
|
-
-
|
|
102
|
-
- The
|
|
101
|
+
- The `__bindings` dictionary stores service bindings by abstract type.
|
|
102
|
+
- The `__aliases` dictionary maps aliases to their corresponding bindings.
|
|
103
|
+
- The `__singleton_cache` dictionary caches singleton instances.
|
|
104
|
+
- The `__resolution_cache` dictionary tracks types being resolved to prevent circular dependencies.
|
|
105
|
+
- Initialization is guarded to ensure it only occurs once per instance.
|
|
106
|
+
|
|
107
|
+
Returns
|
|
108
|
+
-------
|
|
109
|
+
None
|
|
110
|
+
This method does not return any value.
|
|
103
111
|
"""
|
|
104
112
|
|
|
105
|
-
#
|
|
113
|
+
# Only initialize if this instance hasn't been initialized before
|
|
106
114
|
if not hasattr(self, '_Container__initialized'):
|
|
107
115
|
|
|
108
|
-
#
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
self.__valid_namespaces = set(('app', 'orionis', 'requests', 'rich', 'apscheduler', 'dotenv', current_project_namespace))
|
|
114
|
-
|
|
115
|
-
# Initialize the container's internal state
|
|
116
|
-
self.__bindings = {}
|
|
117
|
-
self.__aliases = {}
|
|
118
|
-
self.__resolution_cache = {}
|
|
119
|
-
self.__singleton_cache = {}
|
|
116
|
+
# Set up the container's internal dictionaries for service management
|
|
117
|
+
self.__bindings = {} # Stores service bindings by abstract type
|
|
118
|
+
self.__aliases = {} # Maps aliases to bindings
|
|
119
|
+
self.__resolution_cache = {} # Tracks types currently being resolved
|
|
120
|
+
self.__singleton_cache = {} # Caches singleton instances
|
|
120
121
|
|
|
121
|
-
# Mark this instance as initialized
|
|
122
|
+
# Mark this instance as initialized to prevent re-initialization
|
|
122
123
|
self.__initialized = True
|
|
123
124
|
|
|
124
125
|
def __handleSyncAsyncResult(
|
|
@@ -1675,6 +1676,7 @@ class Container(IContainer):
|
|
|
1675
1676
|
The singleton instance to store cross-references for.
|
|
1676
1677
|
"""
|
|
1677
1678
|
|
|
1679
|
+
# Determine the primary cache key for this binding
|
|
1678
1680
|
primary_key = self.__getSingletonCacheKey(binding)
|
|
1679
1681
|
|
|
1680
1682
|
# Store cross-reference for contract if it's not the primary key
|
|
@@ -2037,6 +2039,7 @@ class Container(IContainer):
|
|
|
2037
2039
|
"""
|
|
2038
2040
|
|
|
2039
2041
|
try:
|
|
2042
|
+
|
|
2040
2043
|
# If there are no dependencies, return empty dict
|
|
2041
2044
|
if not dependencies:
|
|
2042
2045
|
return {}
|
|
@@ -2053,6 +2056,7 @@ class Container(IContainer):
|
|
|
2053
2056
|
for param_name, dep in dependencies.resolved.items():
|
|
2054
2057
|
params[param_name] = self.__resolveSingleDependency(name, param_name, dep)
|
|
2055
2058
|
|
|
2059
|
+
# Return the dictionary of resolved parameters
|
|
2056
2060
|
return params
|
|
2057
2061
|
|
|
2058
2062
|
except Exception as e:
|
|
@@ -2186,43 +2190,61 @@ class Container(IContainer):
|
|
|
2186
2190
|
**kwargs
|
|
2187
2191
|
) -> Any:
|
|
2188
2192
|
"""
|
|
2189
|
-
|
|
2193
|
+
Resolves and instantiates a type or callable regardless of its registration in the container.
|
|
2194
|
+
|
|
2195
|
+
This method attempts to instantiate or invoke the provided type or callable, even if it is not
|
|
2196
|
+
registered in the container. It first tries direct instantiation/invocation if arguments are provided,
|
|
2197
|
+
then attempts auto-resolution for eligible types, and finally falls back to reflection-based instantiation.
|
|
2198
|
+
If the type cannot be resolved by any means, an exception is raised.
|
|
2190
2199
|
|
|
2191
2200
|
Parameters
|
|
2192
2201
|
----------
|
|
2193
2202
|
type_ : Callable[..., Any]
|
|
2194
|
-
The
|
|
2203
|
+
The class or callable to resolve and instantiate.
|
|
2195
2204
|
*args : tuple
|
|
2196
|
-
Positional arguments to pass to the constructor
|
|
2205
|
+
Positional arguments to pass to the constructor or callable.
|
|
2197
2206
|
**kwargs : dict
|
|
2198
|
-
Keyword arguments to pass to the constructor
|
|
2207
|
+
Keyword arguments to pass to the constructor or callable.
|
|
2199
2208
|
|
|
2200
2209
|
Returns
|
|
2201
2210
|
-------
|
|
2202
2211
|
Any
|
|
2203
|
-
The
|
|
2212
|
+
The instantiated object or the result of the callable. If the type is a class, a new instance is returned.
|
|
2213
|
+
If the type is a callable, the result of its invocation is returned.
|
|
2204
2214
|
|
|
2205
2215
|
Raises
|
|
2206
2216
|
------
|
|
2207
2217
|
OrionisContainerException
|
|
2208
|
-
If the type cannot be resolved.
|
|
2218
|
+
If the type cannot be resolved, is not a concrete class or callable, or if an error occurs during instantiation.
|
|
2219
|
+
|
|
2220
|
+
Notes
|
|
2221
|
+
-----
|
|
2222
|
+
- Direct instantiation/invocation is prioritized when arguments are provided.
|
|
2223
|
+
- Auto-resolution is attempted for types eligible for automatic dependency resolution.
|
|
2224
|
+
- Reflection-based instantiation is used as a fallback for concrete classes or callables.
|
|
2225
|
+
- If none of the resolution strategies succeed, an exception is raised.
|
|
2209
2226
|
"""
|
|
2227
|
+
|
|
2210
2228
|
try:
|
|
2211
|
-
|
|
2229
|
+
|
|
2230
|
+
# If explicit arguments are provided, attempt direct instantiation or invocation
|
|
2212
2231
|
if args or kwargs:
|
|
2213
2232
|
if isinstance(type_, type):
|
|
2233
|
+
# Instantiate the class directly with provided arguments
|
|
2214
2234
|
return type_(*args, **kwargs)
|
|
2215
2235
|
elif callable(type_):
|
|
2236
|
+
# Invoke the callable directly with provided arguments
|
|
2216
2237
|
return type_(*args, **kwargs)
|
|
2217
2238
|
|
|
2218
|
-
#
|
|
2239
|
+
# Attempt auto-resolution for eligible types
|
|
2219
2240
|
if self.__canAutoResolve(type_):
|
|
2220
2241
|
return self.__autoResolve(type_)
|
|
2221
2242
|
|
|
2222
|
-
# Use
|
|
2243
|
+
# Use reflection-based instantiation for concrete classes
|
|
2223
2244
|
if ReflectionConcrete.isConcreteClass(type_):
|
|
2224
2245
|
return self.__instantiateWithReflection(type_, is_class=True)
|
|
2225
2246
|
|
|
2247
|
+
# Use reflection-based invocation for callables that are not classes
|
|
2226
2248
|
if callable(type_) and not isinstance(type_, type):
|
|
2227
2249
|
return self.__instantiateWithReflection(type_, is_class=False)
|
|
2228
2250
|
|
|
@@ -2232,9 +2254,12 @@ class Container(IContainer):
|
|
|
2232
2254
|
)
|
|
2233
2255
|
|
|
2234
2256
|
except Exception as e:
|
|
2257
|
+
|
|
2258
|
+
# Re-raise container exceptions directly
|
|
2235
2259
|
if isinstance(e, OrionisContainerException):
|
|
2236
2260
|
raise e from None
|
|
2237
2261
|
|
|
2262
|
+
# Wrap other exceptions in an OrionisContainerException with context
|
|
2238
2263
|
raise OrionisContainerException(
|
|
2239
2264
|
f"Error resolving '{getattr(type_, '__name__', str(type_))}': {str(e)}"
|
|
2240
2265
|
) from e
|
|
@@ -2299,26 +2324,34 @@ class Container(IContainer):
|
|
|
2299
2324
|
|
|
2300
2325
|
def __isValidNamespace(self, type_: type) -> bool:
|
|
2301
2326
|
"""
|
|
2302
|
-
|
|
2327
|
+
Determines if a type belongs to a valid namespace for auto-resolution.
|
|
2328
|
+
|
|
2329
|
+
This method checks whether the provided type is defined within one of the namespaces
|
|
2330
|
+
considered valid for automatic dependency resolution by the container. Valid namespaces
|
|
2331
|
+
are typically application-specific modules or packages that are explicitly allowed
|
|
2332
|
+
for auto-resolution. Built-in types and types from external libraries are excluded.
|
|
2303
2333
|
|
|
2304
2334
|
Parameters
|
|
2305
2335
|
----------
|
|
2306
2336
|
type_ : type
|
|
2307
|
-
The type to check for valid namespace.
|
|
2337
|
+
The type to check for valid namespace membership.
|
|
2308
2338
|
|
|
2309
2339
|
Returns
|
|
2310
2340
|
-------
|
|
2311
2341
|
bool
|
|
2312
|
-
True if the type belongs to a valid namespace
|
|
2313
|
-
|
|
2342
|
+
True if the type belongs to a valid namespace (i.e., its `__module__` attribute
|
|
2343
|
+
matches one of the namespaces in `self.__valid_namespaces`), otherwise False.
|
|
2314
2344
|
|
|
2315
|
-
|
|
2316
|
-
|
|
2317
|
-
|
|
2318
|
-
|
|
2345
|
+
Notes
|
|
2346
|
+
-----
|
|
2347
|
+
- The method relies on the presence of the `__module__` attribute on the type.
|
|
2348
|
+
- If the type does not have a `__module__` attribute, it cannot be considered valid.
|
|
2349
|
+
- The set of valid namespaces is initialized in the container and may include
|
|
2350
|
+
application modules, framework modules, and the current project namespace.
|
|
2351
|
+
"""
|
|
2319
2352
|
|
|
2320
|
-
#
|
|
2321
|
-
return
|
|
2353
|
+
# Ensure the type has a __module__ attribute before checking namespace validity
|
|
2354
|
+
return hasattr(type_, '__module__')
|
|
2322
2355
|
|
|
2323
2356
|
def __isInstantiable(self, type_: type) -> bool:
|
|
2324
2357
|
"""
|
|
@@ -2370,6 +2403,7 @@ class Container(IContainer):
|
|
|
2370
2403
|
return self.__canQuickInstantiate(type_)
|
|
2371
2404
|
|
|
2372
2405
|
except Exception:
|
|
2406
|
+
|
|
2373
2407
|
# If any check fails with an exception, consider it non-instantiable
|
|
2374
2408
|
return False
|
|
2375
2409
|
|
|
@@ -2394,22 +2428,31 @@ class Container(IContainer):
|
|
|
2394
2428
|
|
|
2395
2429
|
# Check if it inherits from ABC (safely)
|
|
2396
2430
|
try:
|
|
2431
|
+
|
|
2432
|
+
# Check if it inherits from abc.ABC
|
|
2397
2433
|
if issubclass(type_, abc.ABC):
|
|
2398
2434
|
return True
|
|
2435
|
+
|
|
2436
|
+
# type_ is not a class, so it can't be abstract
|
|
2399
2437
|
except TypeError:
|
|
2400
|
-
# type_ is not a class, so it can't be abstract
|
|
2401
2438
|
pass
|
|
2402
2439
|
|
|
2403
2440
|
# Check if it has abstract methods
|
|
2404
2441
|
try:
|
|
2405
2442
|
# Try to get abstract methods using reflection
|
|
2406
2443
|
for attr_name in dir(type_):
|
|
2444
|
+
|
|
2445
|
+
# Get the attribute
|
|
2407
2446
|
attr = getattr(type_, attr_name)
|
|
2447
|
+
|
|
2448
|
+
# Check if the attribute is marked as an abstract method
|
|
2408
2449
|
if hasattr(attr, '__isabstractmethod__') and attr.__isabstractmethod__:
|
|
2409
2450
|
return True
|
|
2451
|
+
|
|
2410
2452
|
except Exception:
|
|
2411
2453
|
pass
|
|
2412
2454
|
|
|
2455
|
+
# If none of the checks matched, it's not abstract
|
|
2413
2456
|
return False
|
|
2414
2457
|
|
|
2415
2458
|
def __isGenericType(self, type_: type) -> bool:
|
|
@@ -2443,6 +2486,7 @@ class Container(IContainer):
|
|
|
2443
2486
|
if hasattr(typing, 'TypeVar') and isinstance(type_, typing.TypeVar):
|
|
2444
2487
|
return True
|
|
2445
2488
|
|
|
2489
|
+
# If none of the checks matched, it's not a generic type
|
|
2446
2490
|
return False
|
|
2447
2491
|
|
|
2448
2492
|
def __isProtocolOrTyping(self, type_: type) -> bool:
|
|
@@ -2475,9 +2519,12 @@ class Container(IContainer):
|
|
|
2475
2519
|
|
|
2476
2520
|
# Check for common typing constructs that shouldn't be instantiated
|
|
2477
2521
|
typing_constructs = ['Union', 'Optional', 'Any', 'Callable', 'Type']
|
|
2522
|
+
|
|
2523
|
+
# If the type's name matches a known typing construct, it's not instantiable
|
|
2478
2524
|
if hasattr(type_, '__name__') and type_.__name__ in typing_constructs:
|
|
2479
2525
|
return True
|
|
2480
2526
|
|
|
2527
|
+
# If none of the checks matched, it's not a protocol or typing construct
|
|
2481
2528
|
return False
|
|
2482
2529
|
|
|
2483
2530
|
def __hasRequiredConstructorParams(self, type_: type) -> bool:
|
|
@@ -2539,6 +2586,7 @@ class Container(IContainer):
|
|
|
2539
2586
|
"""
|
|
2540
2587
|
|
|
2541
2588
|
try:
|
|
2589
|
+
|
|
2542
2590
|
# For safety, first check if the constructor signature suggests it's safe to instantiate
|
|
2543
2591
|
try:
|
|
2544
2592
|
|
|
@@ -2563,8 +2611,10 @@ class Container(IContainer):
|
|
|
2563
2611
|
# Attempt to create an instance only if it seems safe
|
|
2564
2612
|
instance = type_()
|
|
2565
2613
|
|
|
2566
|
-
# If successful, clean up
|
|
2614
|
+
# If successful, clean up
|
|
2567
2615
|
del instance
|
|
2616
|
+
|
|
2617
|
+
# Return True if instantiation succeeded
|
|
2568
2618
|
return True
|
|
2569
2619
|
|
|
2570
2620
|
except Exception:
|
|
@@ -2609,6 +2659,7 @@ class Container(IContainer):
|
|
|
2609
2659
|
)
|
|
2610
2660
|
|
|
2611
2661
|
try:
|
|
2662
|
+
|
|
2612
2663
|
# Mark this type as being resolved to prevent circular dependencies
|
|
2613
2664
|
self.__resolution_cache[type_key] = True
|
|
2614
2665
|
|
|
@@ -2634,17 +2685,21 @@ class Container(IContainer):
|
|
|
2634
2685
|
)
|
|
2635
2686
|
|
|
2636
2687
|
except Exception as e:
|
|
2688
|
+
|
|
2637
2689
|
# Remove the type from the resolution cache on error
|
|
2638
2690
|
self.__resolution_cache.pop(type_key, None)
|
|
2639
2691
|
|
|
2692
|
+
# If the exception is already an OrionisContainerException, re-raise it
|
|
2640
2693
|
if isinstance(e, OrionisContainerException):
|
|
2641
2694
|
raise
|
|
2642
|
-
|
|
2643
|
-
|
|
2644
|
-
|
|
2645
|
-
|
|
2695
|
+
|
|
2696
|
+
# Otherwise, raise a new OrionisContainerException with additional context
|
|
2697
|
+
raise OrionisContainerException(
|
|
2698
|
+
f"Failed to auto-resolve '{type_.__name__}': {str(e)}"
|
|
2699
|
+
) from e
|
|
2646
2700
|
|
|
2647
2701
|
finally:
|
|
2702
|
+
|
|
2648
2703
|
# Always clean up the resolution cache after resolution attempt
|
|
2649
2704
|
self.__resolution_cache.pop(type_key, None)
|
|
2650
2705
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|