orionis 0.520.0__tar.gz → 0.521.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.520.0/orionis.egg-info → orionis-0.521.0}/PKG-INFO +1 -1
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/tasks/schedule.py +149 -68
- {orionis-0.520.0 → orionis-0.521.0}/orionis/metadata/framework.py +1 -1
- {orionis-0.520.0 → orionis-0.521.0/orionis.egg-info}/PKG-INFO +1 -1
- {orionis-0.520.0 → orionis-0.521.0}/LICENCE +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/MANIFEST.in +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/README.md +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/app.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/args/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/args/argument.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/args/enums/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/args/enums/actions.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/base/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/base/command.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/base/scheduler.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/base/scheduler_event_listener.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/commands/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/commands/cache.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/commands/help.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/commands/publisher.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/commands/scheduler_list.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/commands/scheduler_work.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/commands/test.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/commands/version.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/commands/workflow.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/contracts/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/contracts/command.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/contracts/event.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/contracts/kernel.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/contracts/reactor.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/contracts/schedule.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/contracts/schedule_event_listener.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/contracts/scheduler.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/core/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/core/reactor.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/dumper/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/dumper/contracts/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/dumper/contracts/dump.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/dumper/dump.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/dynamic/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/dynamic/contracts/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/dynamic/contracts/progress_bar.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/dynamic/progress_bar.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/entities/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/entities/all_jobs_removed.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/entities/executor_added.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/entities/executor_removed.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/entities/job_added.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/entities/job_error.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/entities/job_event_data.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/entities/job_executed.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/entities/job_max_instances.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/entities/job_missed.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/entities/job_modified.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/entities/job_pause.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/entities/job_removed.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/entities/job_resume.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/entities/job_store_added.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/entities/job_store_removed.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/entities/job_submitted.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/entities/request.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/entities/scheduler_event_data.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/entities/scheduler_paused.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/entities/scheduler_resumed.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/entities/scheduler_shutdown.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/entities/scheduler_started.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/enums/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/enums/command.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/enums/event.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/enums/listener.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/exceptions/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/exceptions/cli_exception.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/exceptions/cli_orionis_value_error.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/exceptions/cli_runtime_error.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/exceptions/cli_schedule_exception.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/kernel.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/output/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/output/console.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/output/contracts/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/output/contracts/console.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/output/contracts/executor.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/output/enums/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/output/enums/styles.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/output/executor.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/request/cli_request.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/tasks/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/tasks/event.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/console/tasks/listener.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/container/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/container/container.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/container/context/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/container/context/manager.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/container/context/scope.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/container/contracts/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/container/contracts/container.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/container/contracts/service_provider.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/container/entities/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/container/entities/binding.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/container/enums/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/container/enums/lifetimes.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/container/exceptions/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/container/exceptions/attribute.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/container/exceptions/exception.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/container/exceptions/type.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/container/exceptions/value.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/container/facades/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/container/facades/facade.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/container/providers/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/container/providers/service_provider.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/container/validators/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/container/validators/implements.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/container/validators/is_abstract_class.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/container/validators/is_callable.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/container/validators/is_concrete_class.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/container/validators/is_instance.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/container/validators/is_not_subclass.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/container/validators/is_subclass.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/container/validators/is_valid_alias.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/container/validators/lifetime.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/failure/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/failure/base/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/failure/base/handler.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/failure/catch.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/failure/contracts/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/failure/contracts/catch.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/failure/contracts/handler.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/failure/entities/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/failure/entities/throwable.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/application.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/app/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/app/entities/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/app/entities/app.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/app/enums/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/app/enums/ciphers.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/app/enums/environments.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/auth/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/auth/entities/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/auth/entities/auth.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/cache/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/cache/entities/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/cache/entities/cache.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/cache/entities/file.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/cache/entities/stores.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/cache/enums/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/cache/enums/drivers.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/cors/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/cors/entities/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/cors/entities/cors.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/database/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/database/entities/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/database/entities/connections.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/database/entities/database.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/database/entities/mysql.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/database/entities/oracle.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/database/entities/pgsql.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/database/entities/sqlite.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/database/enums/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/database/enums/mysql_charsets.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/database/enums/mysql_collations.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/database/enums/mysql_engine.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/database/enums/oracle_encoding.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/database/enums/oracle_nencoding.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/database/enums/pgsql_charsets.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/database/enums/pgsql_collations.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/database/enums/pgsql_mode.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/database/enums/sqlite_foreign_key.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/database/enums/sqlite_journal.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/database/enums/sqlite_synchronous.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/filesystems/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/filesystems/entitites/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/filesystems/entitites/aws.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/filesystems/entitites/disks.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/filesystems/entitites/filesystems.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/filesystems/entitites/local.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/filesystems/entitites/public.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/logging/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/logging/entities/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/logging/entities/channels.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/logging/entities/chunked.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/logging/entities/daily.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/logging/entities/hourly.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/logging/entities/logging.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/logging/entities/monthly.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/logging/entities/stack.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/logging/entities/weekly.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/logging/enums/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/logging/enums/levels.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/logging/validators/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/logging/validators/level.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/logging/validators/path.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/mail/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/mail/entities/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/mail/entities/file.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/mail/entities/mail.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/mail/entities/mailers.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/mail/entities/smtp.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/queue/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/queue/entities/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/queue/entities/brokers.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/queue/entities/database.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/queue/entities/queue.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/queue/enums/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/queue/enums/strategy.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/roots/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/roots/paths.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/session/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/session/entities/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/session/entities/session.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/session/enums/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/session/enums/same_site_policy.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/session/helpers/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/session/helpers/secret_key.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/startup.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/testing/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/testing/entities/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/testing/entities/testing.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/testing/enums/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/testing/enums/drivers.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/testing/enums/mode.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/config/testing/enums/verbosity.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/contracts/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/contracts/application.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/contracts/config.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/exceptions/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/exceptions/integrity.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/exceptions/runtime.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/exceptions/type.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/exceptions/value.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/providers/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/providers/catch_provider.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/providers/console_provider.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/providers/directory_provider.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/providers/dumper_provider.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/providers/executor_provider.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/providers/inspirational_provider.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/providers/logger_provider.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/providers/performance_counter_provider.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/providers/progress_bar_provider.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/providers/reactor_provider.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/providers/scheduler_provider.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/providers/testing_provider.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/foundation/providers/workers_provider.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/metadata/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/metadata/package.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/asynchrony/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/asynchrony/contracts/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/asynchrony/contracts/coroutines.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/asynchrony/coroutines.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/asynchrony/exceptions/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/asynchrony/exceptions/exception.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/environment/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/environment/contracts/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/environment/contracts/caster.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/environment/contracts/env.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/environment/core/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/environment/core/dot_env.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/environment/dynamic/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/environment/dynamic/caster.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/environment/enums/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/environment/enums/value_type.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/environment/env.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/environment/exceptions/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/environment/exceptions/exception.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/environment/exceptions/value.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/environment/helpers/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/environment/helpers/functions.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/environment/key/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/environment/key/key_generator.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/environment/validators/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/environment/validators/key_name.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/environment/validators/types.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/file/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/file/contracts/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/file/contracts/directory.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/file/directory.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/inspirational/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/inspirational/contracts/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/inspirational/contracts/inspire.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/inspirational/inspire.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/inspirational/quotes.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/introspection/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/introspection/abstract/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/introspection/abstract/contracts/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/introspection/abstract/contracts/reflection.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/introspection/abstract/reflection.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/introspection/callables/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/introspection/callables/contracts/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/introspection/callables/contracts/reflection.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/introspection/callables/reflection.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/introspection/concretes/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/introspection/concretes/contracts/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/introspection/concretes/contracts/reflection.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/introspection/concretes/reflection.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/introspection/dependencies/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/introspection/dependencies/contracts/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/introspection/dependencies/contracts/reflection.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/introspection/dependencies/entities/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/introspection/dependencies/entities/argument.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/introspection/dependencies/entities/resolve_argument.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/introspection/dependencies/reflection.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/introspection/exceptions/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/introspection/exceptions/attribute.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/introspection/exceptions/type.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/introspection/exceptions/value.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/introspection/instances/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/introspection/instances/contracts/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/introspection/instances/contracts/reflection.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/introspection/instances/reflection.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/introspection/modules/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/introspection/modules/contracts/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/introspection/modules/contracts/reflection.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/introspection/modules/reflection.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/introspection/objects/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/introspection/objects/types.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/introspection/reflection.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/log/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/log/contracts/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/log/contracts/log_service.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/log/exceptions/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/log/exceptions/runtime.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/log/handlers/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/log/handlers/filename.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/log/handlers/size_rotating.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/log/handlers/timed_rotating.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/log/log_service.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/system/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/system/contracts/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/system/contracts/imports.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/system/contracts/workers.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/system/imports.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/system/runtime/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/system/runtime/imports.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/services/system/workers.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/support/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/support/entities/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/support/entities/base.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/support/facades/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/support/facades/application.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/support/facades/console.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/support/facades/dumper.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/support/facades/executor.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/support/facades/inspire.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/support/facades/logger.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/support/facades/performance_counter.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/support/facades/progress_bar.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/support/facades/reactor.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/support/facades/testing.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/support/facades/workers.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/support/formatter/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/support/formatter/exceptions/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/support/formatter/exceptions/contracts/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/support/formatter/exceptions/contracts/parser.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/support/formatter/exceptions/parser.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/support/formatter/serializer.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/support/patterns/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/support/patterns/singleton/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/support/patterns/singleton/meta.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/support/performance/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/support/performance/contracts/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/support/performance/contracts/counter.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/support/performance/counter.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/support/standard/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/support/standard/contracts/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/support/standard/contracts/std.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/support/standard/exceptions/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/support/standard/exceptions/value.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/support/standard/std.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/support/wrapper/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/support/wrapper/dot_dict.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/test/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/test/cases/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/test/cases/asynchronous.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/test/cases/synchronous.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/test/contracts/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/test/contracts/dumper.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/test/contracts/kernel.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/test/contracts/logs.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/test/contracts/printer.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/test/contracts/render.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/test/contracts/test_result.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/test/contracts/unit_test.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/test/core/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/test/core/unit_test.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/test/entities/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/test/entities/result.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/test/enums/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/test/enums/status.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/test/exceptions/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/test/exceptions/config.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/test/exceptions/failure.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/test/exceptions/persistence.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/test/exceptions/runtime.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/test/exceptions/value.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/test/kernel.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/test/output/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/test/output/dumper.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/test/output/printer.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/test/records/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/test/records/logs.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/test/validators/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/test/validators/base_path.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/test/validators/execution_mode.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/test/validators/fail_fast.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/test/validators/folder_path.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/test/validators/module_name.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/test/validators/name_pattern.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/test/validators/pattern.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/test/validators/persistent.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/test/validators/persistent_driver.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/test/validators/print_result.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/test/validators/tags.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/test/validators/throw_exception.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/test/validators/verbosity.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/test/validators/web_report.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/test/validators/workers.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/test/view/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis/test/view/render.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis.egg-info/SOURCES.txt +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis.egg-info/dependency_links.txt +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis.egg-info/requires.txt +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis.egg-info/top_level.txt +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/orionis.egg-info/zip-safe +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/setup.cfg +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/setup.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/container/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/container/context/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/container/context/test_manager.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/container/context/test_scope.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/container/core/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/container/core/test_advanced_async.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/container/core/test_async_optimizations.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/container/core/test_container.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/container/core/test_singleton.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/container/core/test_thread_safety.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/container/entities/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/container/entities/test_binding.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/container/enums/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/container/enums/test_lifetimes.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/container/facades/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/container/facades/test_facade.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/container/mocks/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/container/mocks/mock_advanced_async.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/container/mocks/mock_async_optimizations.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/container/mocks/mock_auto_resolution.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/container/mocks/mock_complex_classes.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/container/mocks/mock_simple_classes.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/container/providers/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/container/providers/test_providers.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/container/validators/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/container/validators/test_implements.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/container/validators/test_is_abstract_class.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/container/validators/test_is_callable.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/container/validators/test_is_concrete_class.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/container/validators/test_is_instance.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/container/validators/test_is_not_subclass.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/container/validators/test_is_subclass.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/container/validators/test_is_valid_alias.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/container/validators/test_lifetime.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/example/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/example/test_example.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/foundation/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/foundation/config/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/foundation/config/app/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/foundation/config/app/test_foundation_config_app.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/foundation/config/auth/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/foundation/config/auth/test_foundation_config_auth.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/foundation/config/cache/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/foundation/config/cache/test_foundation_config_cache.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/foundation/config/cache/test_foundation_config_cache_file.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/foundation/config/cache/test_foundation_config_cache_stores.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/foundation/config/cors/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/foundation/config/cors/test_foundation_config_cors.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/foundation/config/database/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/foundation/config/database/test_foundation_config_database.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/foundation/config/database/test_foundation_config_database_connections.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/foundation/config/database/test_foundation_config_database_mysql.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/foundation/config/database/test_foundation_config_database_oracle.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/foundation/config/database/test_foundation_config_database_pgsql.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/foundation/config/database/test_foundation_config_database_sqlite.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/foundation/config/filesystems/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems_aws.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems_disks.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems_local.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems_public.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/foundation/config/logging/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/foundation/config/logging/test_foundation_config_logging.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/foundation/config/logging/test_foundation_config_logging_channels.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/foundation/config/logging/test_foundation_config_logging_chunked.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/foundation/config/logging/test_foundation_config_logging_daily.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/foundation/config/logging/test_foundation_config_logging_hourly.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/foundation/config/logging/test_foundation_config_logging_monthly.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/foundation/config/logging/test_foundation_config_logging_stack.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/foundation/config/logging/test_foundation_config_logging_weekly.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/foundation/config/mail/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/foundation/config/mail/test_foundation_config_mail.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/foundation/config/mail/test_foundation_config_mail_file.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/foundation/config/mail/test_foundation_config_mail_mailers.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/foundation/config/mail/test_foundation_config_mail_smtp.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/foundation/config/queue/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/foundation/config/queue/test_foundation_config_queue.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/foundation/config/queue/test_foundation_config_queue_brokers.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/foundation/config/queue/test_foundation_config_queue_database.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/foundation/config/root/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/foundation/config/root/test_foundation_config_root_paths.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/foundation/config/session/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/foundation/config/session/test_foundation_config_session.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/foundation/config/startup/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/foundation/config/startup/test_foundation_config_startup.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/foundation/config/testing/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/foundation/config/testing/test_foundation_config_testing.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/metadata/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/metadata/test_metadata_framework.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/metadata/test_metadata_package.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/services/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/services/asynchrony/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/services/asynchrony/test_services_asynchrony_coroutine.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/services/environment/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/services/environment/test_services_environment.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/services/introspection/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/services/introspection/dependencies/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/services/introspection/dependencies/mocks/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/services/introspection/dependencies/mocks/mock_user.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/services/introspection/dependencies/mocks/mock_user_controller.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/services/introspection/dependencies/mocks/mock_users_permissions.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/services/introspection/dependencies/test_reflect_dependencies.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/services/introspection/reflection/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/services/introspection/reflection/mock/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/services/introspection/reflection/mock/fake_reflect_instance.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/services/introspection/reflection/test_reflection_abstract.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/services/introspection/reflection/test_reflection_callable.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/services/introspection/reflection/test_reflection_concrete.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/services/introspection/reflection/test_reflection_instance.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/services/introspection/reflection/test_reflection_module.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/services/introspection/test_reflection.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/services/log/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/services/log/test_log.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/services/system/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/services/system/test_services_system_imports.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/services/system/test_services_system_workers.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/support/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/support/entities/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/support/entities/mock_dataclass.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/support/entities/test_base.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/support/patterns/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/support/patterns/singleton/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/support/patterns/singleton/test_patterns_singleton.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/support/standard/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/support/standard/test_services_std.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/support/wrapper/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/support/wrapper/test_services_wrapper_docdict.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/testing/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/testing/cases/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/testing/cases/test_testing_asynchronous.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/testing/cases/test_testing_synchronous.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/testing/entities/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/testing/entities/test_testing_result.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/testing/enums/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/testing/enums/test_testing_status.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/testing/output/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/testing/output/test_testing_dumper.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/testing/output/test_testing_printer.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/testing/records/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/testing/records/test_testing_records.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/testing/test_testing_unit.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/testing/validators/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/testing/validators/test_testing_validators.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/testing/view/__init__.py +0 -0
- {orionis-0.520.0 → orionis-0.521.0}/tests/testing/view/test_render.py +0 -0
|
@@ -113,6 +113,10 @@ class Scheduler(ISchedule):
|
|
|
113
113
|
# Initialize the listeners dictionary to manage event listeners.
|
|
114
114
|
self.__listeners: Dict[str, callable] = {}
|
|
115
115
|
|
|
116
|
+
# Add this line to the existing __init__ method
|
|
117
|
+
self._stop_event: Optional[asyncio.Event] = None
|
|
118
|
+
|
|
119
|
+
|
|
116
120
|
def __getCurrentTime(
|
|
117
121
|
self
|
|
118
122
|
) -> str:
|
|
@@ -978,9 +982,9 @@ class Scheduler(ISchedule):
|
|
|
978
982
|
"""
|
|
979
983
|
Schedule the scheduler to pause all operations at a specific datetime.
|
|
980
984
|
|
|
981
|
-
This method
|
|
982
|
-
|
|
983
|
-
|
|
985
|
+
This method schedules a job that pauses the AsyncIOScheduler at the specified datetime.
|
|
986
|
+
The job is added to the scheduler with a 'date' trigger, ensuring it executes exactly
|
|
987
|
+
at the given time. If a pause job already exists, it is replaced to avoid conflicts.
|
|
984
988
|
|
|
985
989
|
Parameters
|
|
986
990
|
----------
|
|
@@ -998,20 +1002,37 @@ class Scheduler(ISchedule):
|
|
|
998
1002
|
------
|
|
999
1003
|
ValueError
|
|
1000
1004
|
If the 'at' parameter is not a valid datetime object.
|
|
1005
|
+
CLIOrionisRuntimeError
|
|
1006
|
+
If the scheduler is not running or if an error occurs during job scheduling.
|
|
1001
1007
|
"""
|
|
1002
1008
|
|
|
1003
1009
|
# Validate that the 'at' parameter is a datetime object
|
|
1004
1010
|
if not isinstance(at, datetime):
|
|
1005
1011
|
raise ValueError("The 'at' parameter must be a datetime object.")
|
|
1006
1012
|
|
|
1007
|
-
#
|
|
1008
|
-
self.__scheduler.
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1013
|
+
# Ensure the scheduler is running before scheduling a pause operation
|
|
1014
|
+
if not self.__scheduler.running:
|
|
1015
|
+
raise CLIOrionisRuntimeError("Cannot schedule pause operation: scheduler is not running.")
|
|
1016
|
+
|
|
1017
|
+
try:
|
|
1018
|
+
# Remove any existing pause job to avoid conflicts
|
|
1019
|
+
try:
|
|
1020
|
+
self.__scheduler.remove_job(ListeningEvent.SCHEDULER_PAUSED.value)
|
|
1021
|
+
except:
|
|
1022
|
+
pass # If the job doesn't exist, it's fine to proceed
|
|
1023
|
+
|
|
1024
|
+
# Add a job to the scheduler to pause it at the specified datetime
|
|
1025
|
+
self.__scheduler.add_job(
|
|
1026
|
+
func=self.__scheduler.pause, # Function to pause the scheduler
|
|
1027
|
+
trigger=DateTrigger(run_date=at), # Trigger type is 'date' for one-time execution
|
|
1028
|
+
id=ListeningEvent.SCHEDULER_PAUSED.value, # Unique job ID for pausing the scheduler
|
|
1029
|
+
name="Pause Scheduler", # Descriptive name for the job
|
|
1030
|
+
replace_existing=True # Replace any existing job with the same ID
|
|
1031
|
+
)
|
|
1032
|
+
|
|
1033
|
+
except Exception as e:
|
|
1034
|
+
# Handle exceptions that may occur during job scheduling
|
|
1035
|
+
raise CLIOrionisRuntimeError(f"Failed to schedule scheduler pause: {str(e)}") from e
|
|
1015
1036
|
|
|
1016
1037
|
def resumeEverythingAt(
|
|
1017
1038
|
self,
|
|
@@ -1020,9 +1041,9 @@ class Scheduler(ISchedule):
|
|
|
1020
1041
|
"""
|
|
1021
1042
|
Schedule the scheduler to resume all operations at a specific datetime.
|
|
1022
1043
|
|
|
1023
|
-
This method
|
|
1024
|
-
|
|
1025
|
-
|
|
1044
|
+
This method schedules a job that resumes the AsyncIOScheduler at the specified datetime.
|
|
1045
|
+
The job is added to the scheduler with a 'date' trigger, ensuring it executes exactly
|
|
1046
|
+
at the given time. If a resume job already exists, it is replaced to avoid conflicts.
|
|
1026
1047
|
|
|
1027
1048
|
Parameters
|
|
1028
1049
|
----------
|
|
@@ -1040,20 +1061,37 @@ class Scheduler(ISchedule):
|
|
|
1040
1061
|
------
|
|
1041
1062
|
ValueError
|
|
1042
1063
|
If the 'at' parameter is not a valid datetime object.
|
|
1064
|
+
CLIOrionisRuntimeError
|
|
1065
|
+
If the scheduler is not running or if an error occurs during job scheduling.
|
|
1043
1066
|
"""
|
|
1044
1067
|
|
|
1045
1068
|
# Validate that the 'at' parameter is a datetime object
|
|
1046
1069
|
if not isinstance(at, datetime):
|
|
1047
1070
|
raise ValueError("The 'at' parameter must be a datetime object.")
|
|
1048
1071
|
|
|
1049
|
-
#
|
|
1050
|
-
self.__scheduler.
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1072
|
+
# Ensure the scheduler is running before scheduling a resume operation
|
|
1073
|
+
if not self.__scheduler.running:
|
|
1074
|
+
raise CLIOrionisRuntimeError("Cannot schedule resume operation: scheduler is not running.")
|
|
1075
|
+
|
|
1076
|
+
try:
|
|
1077
|
+
# Remove any existing resume job to avoid conflicts
|
|
1078
|
+
try:
|
|
1079
|
+
self.__scheduler.remove_job(ListeningEvent.SCHEDULER_RESUMED.value)
|
|
1080
|
+
except:
|
|
1081
|
+
pass # If the job doesn't exist, it's fine to proceed
|
|
1082
|
+
|
|
1083
|
+
# Add a job to the scheduler to resume it at the specified datetime
|
|
1084
|
+
self.__scheduler.add_job(
|
|
1085
|
+
func=self.__scheduler.resume, # Function to resume the scheduler
|
|
1086
|
+
trigger=DateTrigger(run_date=at), # Trigger type is 'date' for one-time execution
|
|
1087
|
+
id=ListeningEvent.SCHEDULER_RESUMED.value, # Unique job ID for resuming the scheduler
|
|
1088
|
+
name="Resume Scheduler", # Descriptive name for the job
|
|
1089
|
+
replace_existing=True # Replace any existing job with the same ID
|
|
1090
|
+
)
|
|
1091
|
+
|
|
1092
|
+
except Exception as e:
|
|
1093
|
+
# Handle exceptions that may occur during job scheduling
|
|
1094
|
+
raise CLIOrionisRuntimeError(f"Failed to schedule scheduler resume: {str(e)}") from e
|
|
1057
1095
|
|
|
1058
1096
|
def shutdownEverythingAt(
|
|
1059
1097
|
self,
|
|
@@ -1062,9 +1100,9 @@ class Scheduler(ISchedule):
|
|
|
1062
1100
|
"""
|
|
1063
1101
|
Schedule the scheduler to shut down all operations at a specific datetime.
|
|
1064
1102
|
|
|
1065
|
-
This method
|
|
1066
|
-
|
|
1067
|
-
|
|
1103
|
+
This method schedules a job that shuts down the AsyncIOScheduler at the specified datetime.
|
|
1104
|
+
The job is added to the scheduler with a 'date' trigger, ensuring it executes exactly
|
|
1105
|
+
at the given time. If a shutdown job already exists, it is replaced to avoid conflicts.
|
|
1068
1106
|
|
|
1069
1107
|
Parameters
|
|
1070
1108
|
----------
|
|
@@ -1082,87 +1120,123 @@ class Scheduler(ISchedule):
|
|
|
1082
1120
|
------
|
|
1083
1121
|
ValueError
|
|
1084
1122
|
If the 'at' parameter is not a valid datetime object.
|
|
1123
|
+
CLIOrionisRuntimeError
|
|
1124
|
+
If the scheduler is not running or if an error occurs during job scheduling.
|
|
1085
1125
|
"""
|
|
1086
1126
|
|
|
1087
1127
|
# Validate that the 'at' parameter is a datetime object
|
|
1088
1128
|
if not isinstance(at, datetime):
|
|
1089
1129
|
raise ValueError("The 'at' parameter must be a datetime object.")
|
|
1090
1130
|
|
|
1091
|
-
#
|
|
1092
|
-
self.__scheduler.
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1131
|
+
# Ensure the scheduler is running before scheduling a shutdown operation
|
|
1132
|
+
if not self.__scheduler.running:
|
|
1133
|
+
raise CLIOrionisRuntimeError("Cannot schedule shutdown operation: scheduler is not running.")
|
|
1134
|
+
|
|
1135
|
+
try:
|
|
1136
|
+
# Remove any existing shutdown job to avoid conflicts
|
|
1137
|
+
try:
|
|
1138
|
+
self.__scheduler.remove_job(ListeningEvent.SCHEDULER_SHUTDOWN.value)
|
|
1139
|
+
except:
|
|
1140
|
+
pass # If the job doesn't exist, it's fine to proceed
|
|
1141
|
+
|
|
1142
|
+
# Add a job to the scheduler to shut it down at the specified datetime
|
|
1143
|
+
self.__scheduler.add_job(
|
|
1144
|
+
func=self.__scheduler.shutdown, # Function to shut down the scheduler
|
|
1145
|
+
trigger=DateTrigger(run_date=at), # Trigger type is 'date' for one-time execution
|
|
1146
|
+
id=ListeningEvent.SCHEDULER_SHUTDOWN.value, # Unique job ID for shutting down the scheduler
|
|
1147
|
+
name="Shutdown Scheduler", # Descriptive name for the job
|
|
1148
|
+
replace_existing=True # Replace any existing job with the same ID
|
|
1149
|
+
)
|
|
1150
|
+
|
|
1151
|
+
except Exception as e:
|
|
1152
|
+
# Handle exceptions that may occur during job scheduling
|
|
1153
|
+
raise CLIOrionisRuntimeError(f"Failed to schedule scheduler shutdown: {str(e)}") from e
|
|
1099
1154
|
|
|
1100
1155
|
async def start(self) -> None:
|
|
1101
1156
|
"""
|
|
1102
1157
|
Start the AsyncIO scheduler instance and keep it running.
|
|
1103
1158
|
|
|
1104
|
-
This method
|
|
1105
|
-
|
|
1106
|
-
|
|
1159
|
+
This method initializes and starts the AsyncIOScheduler, which integrates with the asyncio event loop
|
|
1160
|
+
to manage asynchronous job execution. It ensures that all scheduled events are loaded, listeners are
|
|
1161
|
+
subscribed, and the scheduler is started within an asyncio context. The method keeps the scheduler
|
|
1162
|
+
running until a stop signal is received, handling graceful shutdowns and interruptions.
|
|
1107
1163
|
|
|
1108
1164
|
Returns
|
|
1109
1165
|
-------
|
|
1110
1166
|
None
|
|
1111
|
-
This method does not return any value. It starts the AsyncIO scheduler
|
|
1112
|
-
|
|
1167
|
+
This method does not return any value. It starts the AsyncIO scheduler, keeps it running, and
|
|
1168
|
+
ensures proper cleanup during shutdown.
|
|
1113
1169
|
|
|
1114
|
-
|
|
1170
|
+
Raises
|
|
1171
|
+
------
|
|
1172
|
+
CLIOrionisRuntimeError
|
|
1173
|
+
If the scheduler fails to start due to missing an asyncio event loop or other runtime issues.
|
|
1174
|
+
"""
|
|
1115
1175
|
try:
|
|
1176
|
+
# Ensure the method is called within an asyncio event loop
|
|
1177
|
+
loop = asyncio.get_running_loop()
|
|
1116
1178
|
|
|
1117
|
-
#
|
|
1118
|
-
asyncio.
|
|
1179
|
+
# Create an asyncio event to manage clean shutdowns
|
|
1180
|
+
self._stop_event = asyncio.Event()
|
|
1119
1181
|
|
|
1120
|
-
#
|
|
1182
|
+
# Load all scheduled events into the internal jobs list
|
|
1121
1183
|
self.__loadEvents()
|
|
1122
1184
|
|
|
1123
|
-
# Subscribe to scheduler events
|
|
1185
|
+
# Subscribe to scheduler events for monitoring and handling
|
|
1124
1186
|
self.__subscribeListeners()
|
|
1125
1187
|
|
|
1126
|
-
# Start the scheduler
|
|
1188
|
+
# Start the scheduler if it is not already running
|
|
1127
1189
|
if not self.__scheduler.running:
|
|
1128
1190
|
self.__scheduler.start()
|
|
1129
1191
|
|
|
1130
|
-
#
|
|
1131
|
-
|
|
1192
|
+
# Log that the scheduler is now active and waiting for events
|
|
1193
|
+
self.__logger.info("Scheduler is now active and waiting for events...")
|
|
1132
1194
|
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1195
|
+
try:
|
|
1196
|
+
# Wait for the stop event to be set, which signals a shutdown
|
|
1197
|
+
# This avoids using a busy loop and is more efficient
|
|
1198
|
+
await self._stop_event.wait()
|
|
1136
1199
|
|
|
1137
1200
|
except (KeyboardInterrupt, asyncio.CancelledError):
|
|
1138
|
-
|
|
1201
|
+
# Handle graceful shutdown when an interruption signal is received
|
|
1202
|
+
self.__logger.info("Received shutdown signal, stopping scheduler...")
|
|
1203
|
+
await self.shutdown(wait=True)
|
|
1204
|
+
|
|
1139
1205
|
except Exception as e:
|
|
1140
|
-
raise
|
|
1206
|
+
# Log and raise any unexpected exceptions during scheduler operation
|
|
1207
|
+
self.__logger.error(f"Error during scheduler operation: {str(e)}")
|
|
1208
|
+
raise CLIOrionisRuntimeError(f"Scheduler operation failed: {str(e)}") from e
|
|
1141
1209
|
|
|
1210
|
+
finally:
|
|
1211
|
+
# Ensure the scheduler is shut down properly, even if an error occurs
|
|
1212
|
+
if self.__scheduler.running:
|
|
1213
|
+
await self.shutdown(wait=False)
|
|
1142
1214
|
|
|
1143
|
-
except
|
|
1215
|
+
except RuntimeError as e:
|
|
1216
|
+
# Handle the case where no asyncio event loop is running
|
|
1217
|
+
if "no running event loop" in str(e):
|
|
1218
|
+
raise CLIOrionisRuntimeError("Scheduler must be started within an asyncio event loop") from e
|
|
1219
|
+
raise CLIOrionisRuntimeError(f"Failed to start the scheduler: {str(e)}") from e
|
|
1144
1220
|
|
|
1145
|
-
|
|
1146
|
-
|
|
1221
|
+
except Exception as e:
|
|
1222
|
+
# Raise a runtime error for any other issues during startup
|
|
1223
|
+
raise CLIOrionisRuntimeError(f"Failed to start the scheduler: {str(e)}") from e
|
|
1147
1224
|
|
|
1148
|
-
async def shutdown(self, wait=True) -> None:
|
|
1225
|
+
async def shutdown(self, wait: bool = True) -> None:
|
|
1149
1226
|
"""
|
|
1150
1227
|
Shut down the AsyncIO scheduler instance asynchronously.
|
|
1151
1228
|
|
|
1152
|
-
This method gracefully stops the AsyncIOScheduler
|
|
1153
|
-
|
|
1154
|
-
to complete currently executing jobs before shutting down.
|
|
1229
|
+
This method gracefully stops the AsyncIOScheduler and signals the main event loop
|
|
1230
|
+
to stop waiting, allowing for clean application shutdown.
|
|
1155
1231
|
|
|
1156
1232
|
Parameters
|
|
1157
1233
|
----------
|
|
1158
1234
|
wait : bool, optional
|
|
1159
|
-
If True,
|
|
1160
|
-
If False, the scheduler shuts down immediately without waiting for running jobs to finish. Default is True.
|
|
1235
|
+
If True, waits for currently executing jobs to complete. Default is True.
|
|
1161
1236
|
|
|
1162
1237
|
Returns
|
|
1163
1238
|
-------
|
|
1164
1239
|
None
|
|
1165
|
-
This method does not return any value. It performs the shutdown operation for the AsyncIO scheduler.
|
|
1166
1240
|
|
|
1167
1241
|
Raises
|
|
1168
1242
|
------
|
|
@@ -1172,25 +1246,32 @@ class Scheduler(ISchedule):
|
|
|
1172
1246
|
If an error occurs during the shutdown process.
|
|
1173
1247
|
"""
|
|
1174
1248
|
|
|
1175
|
-
#
|
|
1249
|
+
# Validate the wait parameter
|
|
1176
1250
|
if not isinstance(wait, bool):
|
|
1177
1251
|
raise ValueError("The 'wait' parameter must be a boolean value.")
|
|
1178
1252
|
|
|
1179
|
-
# If the scheduler is not running, there
|
|
1253
|
+
# If the scheduler is not running, there's nothing to shut down
|
|
1180
1254
|
if not self.__scheduler.running:
|
|
1181
1255
|
return
|
|
1182
1256
|
|
|
1183
1257
|
try:
|
|
1184
|
-
#
|
|
1258
|
+
# Log the shutdown process
|
|
1259
|
+
self.__logger.info(f"Shutting down scheduler (wait={wait})...")
|
|
1260
|
+
|
|
1261
|
+
# Shut down the AsyncIOScheduler
|
|
1185
1262
|
self.__scheduler.shutdown(wait=wait)
|
|
1186
1263
|
|
|
1187
|
-
#
|
|
1264
|
+
# Signal the stop event to break the wait in start()
|
|
1265
|
+
if self._stop_event and not self._stop_event.is_set():
|
|
1266
|
+
self._stop_event.set()
|
|
1267
|
+
|
|
1268
|
+
# Allow time for cleanup if waiting
|
|
1188
1269
|
if wait:
|
|
1189
|
-
await asyncio.sleep(0)
|
|
1270
|
+
await asyncio.sleep(0.1)
|
|
1190
1271
|
|
|
1191
|
-
|
|
1272
|
+
self.__logger.info("Scheduler shutdown completed successfully.")
|
|
1192
1273
|
|
|
1193
|
-
|
|
1274
|
+
except Exception as e:
|
|
1194
1275
|
raise CLIOrionisRuntimeError(f"Failed to shut down the scheduler: {str(e)}") from e
|
|
1195
1276
|
|
|
1196
1277
|
def pause(self, signature: str) -> bool:
|
|
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
|