orionis 0.633.0__tar.gz → 0.635.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.633.0/orionis.egg-info → orionis-0.635.0}/PKG-INFO +1 -1
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/application.py +171 -122
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/contracts/application.py +66 -26
- {orionis-0.633.0 → orionis-0.635.0}/orionis/metadata/framework.py +1 -1
- {orionis-0.633.0 → orionis-0.635.0/orionis.egg-info}/PKG-INFO +1 -1
- {orionis-0.633.0 → orionis-0.635.0}/LICENCE +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/MANIFEST.in +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/README.md +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/args/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/args/argument.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/base/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/base/command.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/base/scheduler.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/base/scheduler_event_listener.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/commands/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/commands/cache.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/commands/help.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/commands/make_command.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/commands/publisher.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/commands/scheduler_list.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/commands/scheduler_work.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/commands/test.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/commands/version.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/commands/workflow.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/contracts/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/contracts/base_command.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/contracts/base_scheduler.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/contracts/cli_request.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/contracts/command.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/contracts/console.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/contracts/debug.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/contracts/event.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/contracts/executor.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/contracts/kernel.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/contracts/progress_bar.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/contracts/reactor.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/contracts/schedule.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/contracts/schedule_event_listener.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/core/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/core/reactor.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/dumper/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/dumper/debug.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/dynamic/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/dynamic/progress_bar.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/entities/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/entities/command.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/entities/event.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/entities/event_job.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/entities/scheduler_error.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/entities/scheduler_event_data.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/entities/scheduler_paused.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/entities/scheduler_resumed.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/entities/scheduler_shutdown.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/entities/scheduler_started.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/enums/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/enums/actions.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/enums/listener.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/enums/styles.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/exceptions/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/exceptions/cli_exceptions.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/fluent/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/fluent/command.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/fluent/event.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/kernel.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/output/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/output/console.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/output/executor.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/request/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/request/cli_request.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/stubs/command.stub +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/stubs/listener.stub +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/tasks/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/console/tasks/schedule.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/container/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/container/container.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/container/context/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/container/context/manager.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/container/context/scope.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/container/contracts/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/container/contracts/container.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/container/contracts/service_provider.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/container/entities/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/container/entities/binding.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/container/enums/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/container/enums/lifetimes.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/container/exceptions/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/container/exceptions/container.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/container/facades/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/container/facades/facade.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/container/providers/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/container/providers/service_provider.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/container/validators/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/container/validators/implements.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/container/validators/is_abstract_class.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/container/validators/is_callable.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/container/validators/is_concrete_class.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/container/validators/is_instance.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/container/validators/is_not_subclass.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/container/validators/is_subclass.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/container/validators/is_valid_alias.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/container/validators/lifetime.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/failure/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/failure/base/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/failure/base/handler.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/failure/catch.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/failure/contracts/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/failure/contracts/catch.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/failure/contracts/handler.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/failure/entities/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/failure/entities/throwable.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/app/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/app/entities/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/app/entities/app.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/app/enums/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/app/enums/ciphers.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/app/enums/environments.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/auth/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/auth/entities/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/auth/entities/auth.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/cache/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/cache/entities/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/cache/entities/cache.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/cache/entities/file.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/cache/entities/stores.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/cache/enums/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/cache/enums/drivers.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/cors/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/cors/entities/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/cors/entities/cors.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/database/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/database/entities/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/database/entities/connections.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/database/entities/database.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/database/entities/mysql.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/database/entities/oracle.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/database/entities/pgsql.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/database/entities/sqlite.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/database/enums/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/database/enums/mysql_charsets.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/database/enums/mysql_collations.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/database/enums/mysql_engine.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/database/enums/oracle_encoding.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/database/enums/oracle_nencoding.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/database/enums/pgsql_charsets.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/database/enums/pgsql_collations.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/database/enums/pgsql_mode.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/database/enums/sqlite_foreign_key.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/database/enums/sqlite_journal.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/database/enums/sqlite_synchronous.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/filesystems/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/filesystems/entitites/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/filesystems/entitites/aws.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/filesystems/entitites/disks.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/filesystems/entitites/filesystems.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/filesystems/entitites/local.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/filesystems/entitites/public.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/logging/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/logging/entities/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/logging/entities/channels.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/logging/entities/chunked.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/logging/entities/daily.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/logging/entities/hourly.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/logging/entities/logging.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/logging/entities/monthly.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/logging/entities/stack.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/logging/entities/weekly.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/logging/enums/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/logging/enums/levels.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/logging/validators/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/logging/validators/level.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/logging/validators/path.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/mail/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/mail/entities/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/mail/entities/file.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/mail/entities/mail.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/mail/entities/mailers.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/mail/entities/smtp.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/queue/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/queue/entities/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/queue/entities/brokers.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/queue/entities/database.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/queue/entities/queue.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/queue/enums/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/queue/enums/strategy.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/roots/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/roots/paths.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/session/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/session/entities/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/session/entities/session.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/session/enums/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/session/enums/same_site_policy.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/session/helpers/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/session/helpers/secret_key.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/startup.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/testing/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/testing/entities/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/testing/entities/testing.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/testing/enums/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/testing/enums/drivers.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/testing/enums/mode.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/config/testing/enums/verbosity.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/contracts/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/exceptions/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/exceptions/application.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/providers/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/providers/catch_provider.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/providers/cli_request_provider.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/providers/console_provider.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/providers/directory_provider.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/providers/dumper_provider.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/providers/executor_provider.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/providers/inspirational_provider.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/providers/logger_provider.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/providers/performance_counter_provider.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/providers/progress_bar_provider.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/providers/reactor_provider.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/providers/scheduler_provider.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/providers/testing_provider.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/foundation/providers/workers_provider.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/metadata/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/metadata/package.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/asynchrony/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/asynchrony/contracts/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/asynchrony/contracts/coroutines.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/asynchrony/coroutines.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/asynchrony/exceptions/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/asynchrony/exceptions/asynchrony.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/encrypter/encrypter.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/environment/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/environment/contracts/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/environment/contracts/caster.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/environment/contracts/env.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/environment/core/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/environment/core/dot_env.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/environment/dynamic/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/environment/dynamic/caster.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/environment/enums/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/environment/enums/value_type.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/environment/env.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/environment/exceptions/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/environment/exceptions/environment.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/environment/helpers/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/environment/helpers/functions.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/environment/key/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/environment/key/key_generator.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/environment/validators/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/environment/validators/key_name.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/environment/validators/types.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/file/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/file/contracts/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/file/contracts/directory.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/file/directory.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/inspirational/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/inspirational/contracts/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/inspirational/contracts/inspire.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/inspirational/inspire.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/inspirational/quotes.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/introspection/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/introspection/abstract/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/introspection/abstract/contracts/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/introspection/abstract/contracts/reflection.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/introspection/abstract/reflection.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/introspection/callables/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/introspection/callables/contracts/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/introspection/callables/contracts/reflection.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/introspection/callables/reflection.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/introspection/concretes/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/introspection/concretes/contracts/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/introspection/concretes/contracts/reflection.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/introspection/concretes/reflection.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/introspection/dependencies/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/introspection/dependencies/contracts/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/introspection/dependencies/contracts/reflection.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/introspection/dependencies/entities/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/introspection/dependencies/entities/argument.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/introspection/dependencies/entities/resolve_argument.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/introspection/dependencies/reflection.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/introspection/exceptions/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/introspection/exceptions/introspection.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/introspection/instances/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/introspection/instances/contracts/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/introspection/instances/contracts/reflection.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/introspection/instances/reflection.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/introspection/modules/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/introspection/modules/contracts/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/introspection/modules/contracts/reflection.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/introspection/modules/reflection.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/introspection/objects/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/introspection/objects/types.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/introspection/reflection.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/log/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/log/contracts/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/log/contracts/log_service.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/log/exceptions/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/log/exceptions/log.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/log/handlers/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/log/handlers/filename.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/log/handlers/size_rotating.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/log/handlers/timed_rotating.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/log/log_service.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/system/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/system/contracts/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/system/contracts/imports.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/system/contracts/workers.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/system/imports.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/system/runtime/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/system/runtime/imports.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/services/system/workers.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/support/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/support/entities/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/support/entities/base.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/support/facades/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/support/facades/application.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/support/facades/application.pyi +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/support/facades/console.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/support/facades/console.pyi +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/support/facades/directory.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/support/facades/directory.pyi +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/support/facades/dumper.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/support/facades/dumper.pyi +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/support/facades/executor.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/support/facades/executor.pyi +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/support/facades/inspire.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/support/facades/inspire.pyi +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/support/facades/logger.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/support/facades/logger.pyi +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/support/facades/performance_counter.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/support/facades/performance_counter.pyi +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/support/facades/progress_bar.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/support/facades/progress_bar.pyi +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/support/facades/reactor.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/support/facades/reactor.pyi +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/support/facades/testing.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/support/facades/testing.pyi +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/support/facades/workers.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/support/facades/workers.pyi +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/support/formatter/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/support/formatter/exceptions/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/support/formatter/exceptions/contracts/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/support/formatter/exceptions/contracts/parser.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/support/formatter/exceptions/parser.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/support/formatter/serializer.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/support/patterns/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/support/patterns/singleton/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/support/patterns/singleton/meta.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/support/performance/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/support/performance/contracts/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/support/performance/contracts/counter.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/support/performance/counter.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/support/standard/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/support/standard/contracts/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/support/standard/contracts/std.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/support/standard/exceptions/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/support/standard/exceptions/standard.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/support/standard/std.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/support/wrapper/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/support/wrapper/dataclass.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/support/wrapper/dot_dict.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/test/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/test/cases/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/test/cases/asynchronous.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/test/cases/synchronous.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/test/contracts/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/test/contracts/dumper.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/test/contracts/kernel.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/test/contracts/logs.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/test/contracts/printer.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/test/contracts/render.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/test/contracts/test_result.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/test/contracts/unit_test.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/test/core/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/test/core/unit_test.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/test/entities/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/test/entities/result.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/test/enums/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/test/enums/status.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/test/exceptions/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/test/exceptions/config.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/test/exceptions/failure.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/test/exceptions/persistence.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/test/exceptions/runtime.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/test/exceptions/value.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/test/kernel.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/test/output/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/test/output/dumper.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/test/output/printer.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/test/records/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/test/records/logs.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/test/validators/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/test/validators/base_path.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/test/validators/execution_mode.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/test/validators/fail_fast.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/test/validators/folder_path.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/test/validators/module_name.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/test/validators/name_pattern.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/test/validators/pattern.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/test/validators/persistent.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/test/validators/persistent_driver.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/test/validators/throw_exception.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/test/validators/verbosity.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/test/validators/web_report.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/test/validators/workers.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/test/view/__init__.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/test/view/render.py +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis/test/view/report.stub +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis.egg-info/SOURCES.txt +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis.egg-info/dependency_links.txt +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis.egg-info/not-zip-safe +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis.egg-info/requires.txt +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/orionis.egg-info/top_level.txt +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/setup.cfg +0 -0
- {orionis-0.633.0 → orionis-0.635.0}/setup.py +0 -0
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import asyncio
|
|
2
|
+
import copy
|
|
2
3
|
import time
|
|
3
4
|
from pathlib import Path
|
|
4
5
|
from typing import Any, List, Type, Dict
|
|
@@ -131,15 +132,14 @@ class Application(Container, IApplication):
|
|
|
131
132
|
# Propierty to store service providers.
|
|
132
133
|
self.__providers: List[IServiceProvider, Any] = []
|
|
133
134
|
|
|
134
|
-
# Property to store configurators and paths
|
|
135
|
-
self.__configurators : dict = {}
|
|
136
|
-
|
|
137
135
|
# Property to indicate if the application has been booted
|
|
138
136
|
self.__booted: bool = False
|
|
137
|
+
self.__configured: bool = False
|
|
139
138
|
|
|
140
|
-
#
|
|
141
|
-
# This will be initialized with default values or from configurators
|
|
139
|
+
# Properties to store configuration and runtime configuration
|
|
142
140
|
self.__config: dict = {}
|
|
141
|
+
self.__runtime_config: dict = {}
|
|
142
|
+
self.__runtime_path_config: dict = {}
|
|
143
143
|
|
|
144
144
|
# Property to store the scheduler instance
|
|
145
145
|
self.__scheduler: BaseScheduler = None
|
|
@@ -205,6 +205,7 @@ class Application(Container, IApplication):
|
|
|
205
205
|
ensure core framework services are available before any user-defined
|
|
206
206
|
providers are registered.
|
|
207
207
|
"""
|
|
208
|
+
|
|
208
209
|
# Import core framework providers
|
|
209
210
|
from orionis.foundation.providers.catch_provider import CathcProvider
|
|
210
211
|
from orionis.foundation.providers.cli_request_provider import CLRequestProvider
|
|
@@ -278,6 +279,10 @@ class Application(Container, IApplication):
|
|
|
278
279
|
registration.
|
|
279
280
|
"""
|
|
280
281
|
|
|
282
|
+
# Validate providers parameter
|
|
283
|
+
if not isinstance(providers, list):
|
|
284
|
+
raise OrionisTypeError(f"Expected list of IServiceProvider classes, got {type(providers).__name__}")
|
|
285
|
+
|
|
281
286
|
# Add each provider class
|
|
282
287
|
for provider_cls in providers:
|
|
283
288
|
|
|
@@ -413,7 +418,7 @@ class Application(Container, IApplication):
|
|
|
413
418
|
- This method is called automatically during application bootstrapping, after all providers
|
|
414
419
|
have been registered.
|
|
415
420
|
- Supports both synchronous and asynchronous `boot()` methods on providers.
|
|
416
|
-
- The providers list is
|
|
421
|
+
- The providers list is deleted after booting to optimize memory usage.
|
|
417
422
|
|
|
418
423
|
Returns
|
|
419
424
|
-------
|
|
@@ -437,8 +442,8 @@ class Application(Container, IApplication):
|
|
|
437
442
|
else:
|
|
438
443
|
boot_method()
|
|
439
444
|
|
|
440
|
-
#
|
|
441
|
-
self.__providers
|
|
445
|
+
# Delete the providers list property to free memory after booting is complete
|
|
446
|
+
del self.__providers
|
|
442
447
|
|
|
443
448
|
# === Application Skeleton Configuration Methods ===
|
|
444
449
|
# The Orionis framework provides methods to configure each component of the application,
|
|
@@ -786,7 +791,7 @@ class Application(Container, IApplication):
|
|
|
786
791
|
raise OrionisTypeError(f"Expected App instance or dict, got {type(app).__name__}")
|
|
787
792
|
|
|
788
793
|
# Store the configuration dictionary in internal configurators
|
|
789
|
-
self.
|
|
794
|
+
self.__config['app'] = _app
|
|
790
795
|
|
|
791
796
|
# Return self for method chaining
|
|
792
797
|
return self
|
|
@@ -882,7 +887,7 @@ class Application(Container, IApplication):
|
|
|
882
887
|
raise OrionisTypeError(f"Expected Auth instance or dict, got {type(auth).__name__}")
|
|
883
888
|
|
|
884
889
|
# Store the configuration dictionary in internal configurators
|
|
885
|
-
self.
|
|
890
|
+
self.__config['auth'] = _auth
|
|
886
891
|
|
|
887
892
|
# Return self for method chaining
|
|
888
893
|
return self
|
|
@@ -978,7 +983,7 @@ class Application(Container, IApplication):
|
|
|
978
983
|
raise OrionisTypeError(f"Expected Cache instance or dict, got {type(cache).__name__}")
|
|
979
984
|
|
|
980
985
|
# Store the configuration dictionary in internal configurators
|
|
981
|
-
self.
|
|
986
|
+
self.__config['cache'] = _cache
|
|
982
987
|
|
|
983
988
|
# Return self for method chaining
|
|
984
989
|
return self
|
|
@@ -1074,7 +1079,7 @@ class Application(Container, IApplication):
|
|
|
1074
1079
|
raise OrionisTypeError(f"Expected Cors instance or dict, got {type(cors).__name__}")
|
|
1075
1080
|
|
|
1076
1081
|
# Store the configuration dictionary in internal configurators
|
|
1077
|
-
self.
|
|
1082
|
+
self.__config['cors'] = _cors
|
|
1078
1083
|
|
|
1079
1084
|
# Return self for method chaining
|
|
1080
1085
|
return self
|
|
@@ -1170,7 +1175,7 @@ class Application(Container, IApplication):
|
|
|
1170
1175
|
raise OrionisTypeError(f"Expected Database instance or dict, got {type(database).__name__}")
|
|
1171
1176
|
|
|
1172
1177
|
# Store the configuration dictionary in internal configurators
|
|
1173
|
-
self.
|
|
1178
|
+
self.__config['database'] = _database
|
|
1174
1179
|
|
|
1175
1180
|
# Return self for method chaining
|
|
1176
1181
|
return self
|
|
@@ -1266,7 +1271,7 @@ class Application(Container, IApplication):
|
|
|
1266
1271
|
raise OrionisTypeError(f"Expected Filesystems instance or dict, got {type(filesystems).__name__}")
|
|
1267
1272
|
|
|
1268
1273
|
# Store the configuration dictionary in internal configurators
|
|
1269
|
-
self.
|
|
1274
|
+
self.__config['filesystems'] = _filesystems
|
|
1270
1275
|
|
|
1271
1276
|
# Return self for method chaining
|
|
1272
1277
|
return self
|
|
@@ -1362,7 +1367,7 @@ class Application(Container, IApplication):
|
|
|
1362
1367
|
raise OrionisTypeError(f"Expected Logging instance or dict, got {type(logging).__name__}")
|
|
1363
1368
|
|
|
1364
1369
|
# Store the configuration dictionary in internal configurators
|
|
1365
|
-
self.
|
|
1370
|
+
self.__config['logging'] = _logging
|
|
1366
1371
|
|
|
1367
1372
|
# Return self for method chaining
|
|
1368
1373
|
return self
|
|
@@ -1458,7 +1463,7 @@ class Application(Container, IApplication):
|
|
|
1458
1463
|
raise OrionisTypeError(f"Expected Mail instance or dict, got {type(mail).__name__}")
|
|
1459
1464
|
|
|
1460
1465
|
# Store the configuration dictionary in internal configurators
|
|
1461
|
-
self.
|
|
1466
|
+
self.__config['mail'] = _mail
|
|
1462
1467
|
|
|
1463
1468
|
# Return self for method chaining
|
|
1464
1469
|
return self
|
|
@@ -1554,7 +1559,7 @@ class Application(Container, IApplication):
|
|
|
1554
1559
|
raise OrionisTypeError(f"Expected Queue instance or dict, got {type(queue).__name__}")
|
|
1555
1560
|
|
|
1556
1561
|
# Store the configuration dictionary in internal configurators
|
|
1557
|
-
self.
|
|
1562
|
+
self.__config['queue'] = _queue
|
|
1558
1563
|
|
|
1559
1564
|
# Return self for method chaining
|
|
1560
1565
|
return self
|
|
@@ -1650,7 +1655,7 @@ class Application(Container, IApplication):
|
|
|
1650
1655
|
raise OrionisTypeError(f"Expected Session instance or dict, got {type(session).__name__}")
|
|
1651
1656
|
|
|
1652
1657
|
# Store the configuration dictionary in internal configurators
|
|
1653
|
-
self.
|
|
1658
|
+
self.__config['session'] = _session
|
|
1654
1659
|
|
|
1655
1660
|
# Return self for method chaining
|
|
1656
1661
|
return self
|
|
@@ -1746,7 +1751,7 @@ class Application(Container, IApplication):
|
|
|
1746
1751
|
raise OrionisTypeError(f"Expected Testing instance or dict, got {type(testing).__name__}")
|
|
1747
1752
|
|
|
1748
1753
|
# Store the configuration dictionary in internal configurators
|
|
1749
|
-
self.
|
|
1754
|
+
self.__config['testing'] = _testing
|
|
1750
1755
|
|
|
1751
1756
|
# Return self for method chaining
|
|
1752
1757
|
return self
|
|
@@ -1802,25 +1807,25 @@ class Application(Container, IApplication):
|
|
|
1802
1807
|
Returns the current Application instance to enable method chaining.
|
|
1803
1808
|
"""
|
|
1804
1809
|
|
|
1805
|
-
self.
|
|
1806
|
-
'root':
|
|
1807
|
-
'app':
|
|
1808
|
-
'console':
|
|
1809
|
-
'exceptions':
|
|
1810
|
-
'http':
|
|
1811
|
-
'models':
|
|
1812
|
-
'providers':
|
|
1813
|
-
'notifications':
|
|
1814
|
-
'services':
|
|
1815
|
-
'jobs':
|
|
1816
|
-
'bootstrap':
|
|
1817
|
-
'config':
|
|
1818
|
-
'database':
|
|
1819
|
-
'resources':
|
|
1820
|
-
'routes':
|
|
1821
|
-
'storage':
|
|
1822
|
-
'tests':
|
|
1823
|
-
}
|
|
1810
|
+
self.loadConfigPaths({
|
|
1811
|
+
'root': root,
|
|
1812
|
+
'app': app,
|
|
1813
|
+
'console': console,
|
|
1814
|
+
'exceptions': exceptions,
|
|
1815
|
+
'http': http,
|
|
1816
|
+
'models': models,
|
|
1817
|
+
'providers': providers,
|
|
1818
|
+
'notifications': notifications,
|
|
1819
|
+
'services': services,
|
|
1820
|
+
'jobs': jobs,
|
|
1821
|
+
'bootstrap': bootstrap,
|
|
1822
|
+
'config': config,
|
|
1823
|
+
'database': database,
|
|
1824
|
+
'resources': resources,
|
|
1825
|
+
'routes': routes,
|
|
1826
|
+
'storage': storage,
|
|
1827
|
+
'tests': tests
|
|
1828
|
+
})
|
|
1824
1829
|
|
|
1825
1830
|
return self
|
|
1826
1831
|
|
|
@@ -1878,7 +1883,7 @@ class Application(Container, IApplication):
|
|
|
1878
1883
|
raise OrionisTypeError(f"Expected Paths instance or dict, got {type(paths).__name__}")
|
|
1879
1884
|
|
|
1880
1885
|
# Store the configuration dictionary in internal configurators
|
|
1881
|
-
self.
|
|
1886
|
+
self.__config['path'] = _paths
|
|
1882
1887
|
|
|
1883
1888
|
# Return self for method chaining
|
|
1884
1889
|
return self
|
|
@@ -1911,17 +1916,18 @@ class Application(Container, IApplication):
|
|
|
1911
1916
|
# Try to load the configuration
|
|
1912
1917
|
try:
|
|
1913
1918
|
|
|
1914
|
-
# Check if
|
|
1919
|
+
# Check if there are any configurators set
|
|
1915
1920
|
if not self.__config:
|
|
1921
|
+
self.__config = Configuration().toDict()
|
|
1916
1922
|
|
|
1917
|
-
|
|
1918
|
-
|
|
1919
|
-
self.__config = Configuration().toDict()
|
|
1923
|
+
# Create a deep copy of the current configuration
|
|
1924
|
+
local_config_copy = copy.deepcopy(self.__config)
|
|
1920
1925
|
|
|
1921
|
-
|
|
1922
|
-
|
|
1923
|
-
|
|
1924
|
-
|
|
1926
|
+
# Copy all config except the 'path' key
|
|
1927
|
+
self.__runtime_config = {k: v for k, v in local_config_copy.items() if k != 'path'}
|
|
1928
|
+
|
|
1929
|
+
# Copy contains only the 'path' key
|
|
1930
|
+
self.__runtime_path_config = local_config_copy.get('path', {})
|
|
1925
1931
|
|
|
1926
1932
|
except Exception as e:
|
|
1927
1933
|
|
|
@@ -1936,87 +1942,104 @@ class Application(Container, IApplication):
|
|
|
1936
1942
|
|
|
1937
1943
|
def config(
|
|
1938
1944
|
self,
|
|
1939
|
-
key: str = None
|
|
1945
|
+
key: str = None,
|
|
1946
|
+
value: Any = None
|
|
1940
1947
|
) -> Any:
|
|
1941
1948
|
"""
|
|
1942
|
-
Retrieve application configuration values using dot notation.
|
|
1949
|
+
Retrieve or set application configuration values using dot notation.
|
|
1943
1950
|
|
|
1944
|
-
|
|
1945
|
-
|
|
1946
|
-
If
|
|
1947
|
-
If no key is provided, it returns the entire configuration dictionary, excluding
|
|
1948
|
-
path-related configuration (which should be accessed via the `path()` method).
|
|
1951
|
+
If only `key` is provided, returns the configuration value for that key.
|
|
1952
|
+
If both `key` and `value` are provided, sets the configuration value.
|
|
1953
|
+
If neither is provided, returns the entire configuration dictionary (excluding 'path').
|
|
1949
1954
|
|
|
1950
1955
|
Parameters
|
|
1951
1956
|
----------
|
|
1952
1957
|
key : str, optional
|
|
1953
|
-
|
|
1954
|
-
|
|
1955
|
-
the
|
|
1956
|
-
Default is None.
|
|
1958
|
+
Dot-notated configuration key (e.g., "database.default"). If None, returns all config.
|
|
1959
|
+
value : Any, optional
|
|
1960
|
+
Value to set for the given key. If None, performs a get operation.
|
|
1957
1961
|
|
|
1958
1962
|
Returns
|
|
1959
1963
|
-------
|
|
1960
1964
|
Any
|
|
1961
|
-
|
|
1962
|
-
If `key` is None, returns the entire configuration dictionary (excluding 'path').
|
|
1963
|
-
If the key is not found, returns None.
|
|
1965
|
+
The configuration value, or None if not found.
|
|
1964
1966
|
|
|
1965
1967
|
Raises
|
|
1966
1968
|
------
|
|
1967
1969
|
OrionisRuntimeError
|
|
1968
|
-
If
|
|
1969
|
-
has not been called before accessing configuration).
|
|
1970
|
+
If configuration is not initialized.
|
|
1970
1971
|
OrionisValueError
|
|
1971
|
-
If
|
|
1972
|
-
|
|
1973
|
-
Notes
|
|
1974
|
-
-----
|
|
1975
|
-
The method traverses nested configuration structures by splitting the key
|
|
1976
|
-
on dots and navigating through dictionary levels. Path configurations are
|
|
1977
|
-
excluded from full configuration returns and should be accessed via the
|
|
1978
|
-
`path()` method instead.
|
|
1972
|
+
If key is not a string.
|
|
1979
1973
|
"""
|
|
1980
1974
|
|
|
1981
|
-
|
|
1982
|
-
if not hasattr(self, '_Application__runtime_config') or self.__runtime_config is None:
|
|
1983
|
-
self.__runtime_config = self.__config.copy()
|
|
1984
|
-
|
|
1985
|
-
# Remove 'path' from the local copy to ensure path config is not returned here
|
|
1986
|
-
if 'path' in self.__runtime_config:
|
|
1987
|
-
del self.__runtime_config['path']
|
|
1988
|
-
|
|
1989
|
-
# Ensure the application is booted before accessing configuration
|
|
1990
|
-
if not self.__runtime_config:
|
|
1975
|
+
if not self.__configured:
|
|
1991
1976
|
raise OrionisRuntimeError(
|
|
1992
1977
|
"Application configuration is not initialized. Please call create() before accessing configuration."
|
|
1993
1978
|
)
|
|
1994
1979
|
|
|
1995
|
-
#
|
|
1996
|
-
if key is None:
|
|
1980
|
+
# Return all config if no key is provided
|
|
1981
|
+
if key is None and value is None:
|
|
1997
1982
|
return self.__runtime_config
|
|
1998
1983
|
|
|
1999
|
-
# Ensure the key is a string
|
|
2000
1984
|
if not isinstance(key, str):
|
|
2001
1985
|
raise OrionisValueError(
|
|
2002
|
-
"
|
|
1986
|
+
"The configuration key must be a string. To retrieve the entire configuration, call config() without any arguments."
|
|
2003
1987
|
)
|
|
2004
1988
|
|
|
2005
|
-
|
|
2006
|
-
|
|
2007
|
-
|
|
2008
|
-
#
|
|
2009
|
-
|
|
2010
|
-
|
|
2011
|
-
|
|
2012
|
-
|
|
2013
|
-
|
|
1989
|
+
key_parts = key.split('.')
|
|
1990
|
+
config_dict = self.__runtime_config
|
|
1991
|
+
|
|
1992
|
+
# If setting a value
|
|
1993
|
+
if value is not None:
|
|
1994
|
+
current_dict = config_dict
|
|
1995
|
+
for part in key_parts[:-1]:
|
|
1996
|
+
if part not in current_dict or not isinstance(current_dict[part], dict):
|
|
1997
|
+
current_dict[part] = {}
|
|
1998
|
+
current_dict = current_dict[part]
|
|
1999
|
+
current_dict[key_parts[-1]] = value
|
|
2000
|
+
return value
|
|
2001
|
+
|
|
2002
|
+
# Getting a value
|
|
2003
|
+
current_dict = config_dict
|
|
2004
|
+
for part in key_parts:
|
|
2005
|
+
if isinstance(current_dict, dict) and part in current_dict:
|
|
2006
|
+
current_dict = current_dict[part]
|
|
2014
2007
|
else:
|
|
2015
|
-
# If any part is missing, return None
|
|
2016
2008
|
return None
|
|
2009
|
+
return current_dict
|
|
2017
2010
|
|
|
2018
|
-
|
|
2019
|
-
|
|
2011
|
+
def resetConfig(
|
|
2012
|
+
self
|
|
2013
|
+
) -> 'Application':
|
|
2014
|
+
"""
|
|
2015
|
+
Reset the application configuration to an uninitialized state.
|
|
2016
|
+
|
|
2017
|
+
This method clears the current runtime configuration and marks the application
|
|
2018
|
+
as unconfigured, allowing for re-initialization of the configuration by calling
|
|
2019
|
+
`create()` again. This is useful in scenarios such as testing or when dynamic
|
|
2020
|
+
reloading of configuration is required.
|
|
2021
|
+
|
|
2022
|
+
Notes
|
|
2023
|
+
-----
|
|
2024
|
+
- After calling this method, you must call `create()` to reinitialize
|
|
2025
|
+
the configuration before accessing it again.
|
|
2026
|
+
- This method does not affect other aspects of the application state,
|
|
2027
|
+
such as registered providers or boot status.
|
|
2028
|
+
|
|
2029
|
+
Returns
|
|
2030
|
+
-------
|
|
2031
|
+
Application
|
|
2032
|
+
Returns the current `Application` instance to enable method chaining.
|
|
2033
|
+
"""
|
|
2034
|
+
|
|
2035
|
+
# Create a deep copy of the current configuration
|
|
2036
|
+
local_config_copy = copy.deepcopy(self.__config)
|
|
2037
|
+
|
|
2038
|
+
# Reset the runtime configuration to match the current config (excluding 'path')
|
|
2039
|
+
self.__runtime_config = {k: v for k, v in local_config_copy.items() if k != 'path'}
|
|
2040
|
+
|
|
2041
|
+
# Return the application instance for method chaining
|
|
2042
|
+
return self
|
|
2020
2043
|
|
|
2021
2044
|
# === Path Configuration Access Method ===
|
|
2022
2045
|
# The path() method provides access to application path configurations.
|
|
@@ -2030,7 +2053,7 @@ class Application(Container, IApplication):
|
|
|
2030
2053
|
"""
|
|
2031
2054
|
Retrieve application path configuration values using dot notation.
|
|
2032
2055
|
|
|
2033
|
-
|
|
2056
|
+
This method provides access to the application's path configuration, allowing retrieval of either a specific path value or the entire paths configuration dictionary. If a key is provided, the corresponding path is returned as a `Path` object. If no key is provided, a dictionary mapping all path configuration keys to their resolved `Path` objects is returned.
|
|
2034
2057
|
|
|
2035
2058
|
Parameters
|
|
2036
2059
|
----------
|
|
@@ -2042,7 +2065,7 @@ class Application(Container, IApplication):
|
|
|
2042
2065
|
-------
|
|
2043
2066
|
Path or dict
|
|
2044
2067
|
If `key` is provided and found, returns the resolved `Path` object for that key.
|
|
2045
|
-
If `key` is None, returns a dictionary mapping all path keys to their `Path` objects.
|
|
2068
|
+
If `key` is None, returns a dictionary mapping all path keys to their resolved `Path` objects.
|
|
2046
2069
|
If `key` is not found, returns None.
|
|
2047
2070
|
|
|
2048
2071
|
Raises
|
|
@@ -2058,23 +2081,21 @@ class Application(Container, IApplication):
|
|
|
2058
2081
|
- This method is specifically designed for path-related configuration access, separate from general application configuration.
|
|
2059
2082
|
- All returned paths are resolved as `Path` objects for consistency and ease of use.
|
|
2060
2083
|
"""
|
|
2061
|
-
|
|
2062
|
-
|
|
2063
|
-
if not hasattr(self, '_Application__runtime_path_config') or self.__runtime_path_config is None:
|
|
2064
|
-
self.__runtime_path_config = self.__config.get('path', {}).copy() if self.__config else {}
|
|
2065
|
-
|
|
2066
|
-
# Ensure the application is booted before accessing configuration
|
|
2067
|
-
if not self.__runtime_path_config:
|
|
2084
|
+
# Ensure the application configuration has been initialized
|
|
2085
|
+
if not self.__configured:
|
|
2068
2086
|
raise OrionisRuntimeError(
|
|
2069
|
-
"Application configuration is not initialized. Please call create() before accessing
|
|
2087
|
+
"Application configuration is not initialized. Please call create() before accessing configuration."
|
|
2070
2088
|
)
|
|
2071
2089
|
|
|
2072
2090
|
# If no key is provided, return all paths as a dictionary of Path objects
|
|
2073
2091
|
if key is None:
|
|
2074
2092
|
path_resolved: Dict[str, Path] = {}
|
|
2093
|
+
# Convert all path values to Path objects
|
|
2075
2094
|
for k, v in self.__runtime_path_config.items():
|
|
2076
|
-
|
|
2077
|
-
|
|
2095
|
+
if not isinstance(v, Path):
|
|
2096
|
+
path_resolved[k] = Path(v)
|
|
2097
|
+
else:
|
|
2098
|
+
path_resolved[k] = v
|
|
2078
2099
|
return path_resolved
|
|
2079
2100
|
|
|
2080
2101
|
# Ensure the key is a string
|
|
@@ -2117,9 +2138,8 @@ class Application(Container, IApplication):
|
|
|
2117
2138
|
1. Load and process all configuration from configurators
|
|
2118
2139
|
2. Register core framework service providers
|
|
2119
2140
|
3. Register and boot all service providers
|
|
2120
|
-
4. Initialize framework kernels
|
|
2121
|
-
5.
|
|
2122
|
-
6. Mark application as booted to prevent re-initialization
|
|
2141
|
+
4. Initialize framework kernels
|
|
2142
|
+
5. Mark application as booted to prevent re-initialization
|
|
2123
2143
|
|
|
2124
2144
|
This method is idempotent - calling it multiple times will not cause
|
|
2125
2145
|
duplicate initialization. The startup time is calculated and logged
|
|
@@ -2139,6 +2159,7 @@ class Application(Container, IApplication):
|
|
|
2139
2159
|
|
|
2140
2160
|
# Load configuration if not already set
|
|
2141
2161
|
self.__loadConfig()
|
|
2162
|
+
self.__configured = True
|
|
2142
2163
|
|
|
2143
2164
|
# Load framework providers and register them
|
|
2144
2165
|
self.__loadFrameworkProviders()
|
|
@@ -2151,15 +2172,6 @@ class Application(Container, IApplication):
|
|
|
2151
2172
|
# Load core framework kernels with app booted
|
|
2152
2173
|
self.__loadFrameworksKernel()
|
|
2153
2174
|
|
|
2154
|
-
# Retrieve logger and console instances from the container
|
|
2155
|
-
logger: ILogger = self.make(ILogger)
|
|
2156
|
-
|
|
2157
|
-
# Calculate elapsed time in milliseconds since application start
|
|
2158
|
-
elapsed_ms = (time.time_ns() - self.startAt) // 1_000_000
|
|
2159
|
-
|
|
2160
|
-
# Log message to the logger
|
|
2161
|
-
logger.info(f"Orionis Framework has been successfully booted. Startup time: {elapsed_ms} ms. Started at: {self.startAt} ns")
|
|
2162
|
-
|
|
2163
2175
|
# Return the application instance for method chaining
|
|
2164
2176
|
return self
|
|
2165
2177
|
|
|
@@ -2198,4 +2210,41 @@ class Application(Container, IApplication):
|
|
|
2198
2210
|
)
|
|
2199
2211
|
|
|
2200
2212
|
# Return True if the environment is 'production', otherwise False
|
|
2201
|
-
return str(app_env).lower() == 'production'
|
|
2213
|
+
return str(app_env).lower() == 'production'
|
|
2214
|
+
|
|
2215
|
+
def isDebug(
|
|
2216
|
+
self
|
|
2217
|
+
) -> bool:
|
|
2218
|
+
"""
|
|
2219
|
+
Check if the application is running in debug mode.
|
|
2220
|
+
|
|
2221
|
+
This method determines whether the current application is set to run in debug mode.
|
|
2222
|
+
It checks the 'app.debug' configuration value to make this determination.
|
|
2223
|
+
|
|
2224
|
+
Returns
|
|
2225
|
+
-------
|
|
2226
|
+
bool
|
|
2227
|
+
True if the application is in debug mode, False otherwise.
|
|
2228
|
+
|
|
2229
|
+
Raises
|
|
2230
|
+
------
|
|
2231
|
+
OrionisRuntimeError
|
|
2232
|
+
If the application configuration has not been initialized (i.e., if `create()` has not been called).
|
|
2233
|
+
|
|
2234
|
+
Notes
|
|
2235
|
+
-----
|
|
2236
|
+
The debug mode is typically defined in the application configuration and can be enabled or disabled based on the environment or specific settings.
|
|
2237
|
+
This method is useful for conditionally executing code based on whether debugging features should be active, such as detailed error reporting or verbose logging.
|
|
2238
|
+
"""
|
|
2239
|
+
|
|
2240
|
+
# Retrieve the current debug setting from configuration
|
|
2241
|
+
app_debug = self.config('app.debug')
|
|
2242
|
+
|
|
2243
|
+
# Ensure the application is booted before accessing configuration
|
|
2244
|
+
if app_debug is None:
|
|
2245
|
+
raise OrionisRuntimeError(
|
|
2246
|
+
"Application configuration is not initialized. Please call create() before checking the debug mode."
|
|
2247
|
+
)
|
|
2248
|
+
|
|
2249
|
+
# Return True if the debug mode is enabled, otherwise False
|
|
2250
|
+
return bool(app_debug)
|