orionis 0.516.0__tar.gz → 0.518.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.516.0/orionis.egg-info → orionis-0.518.0}/PKG-INFO +1 -1
- orionis-0.518.0/orionis/console/base/scheduler.py +195 -0
- orionis-0.518.0/orionis/console/contracts/scheduler.py +189 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/tasks/schedule.py +10 -46
- {orionis-0.516.0 → orionis-0.518.0}/orionis/metadata/framework.py +1 -1
- {orionis-0.516.0 → orionis-0.518.0/orionis.egg-info}/PKG-INFO +1 -1
- orionis-0.516.0/orionis/console/base/scheduler.py +0 -120
- orionis-0.516.0/orionis/console/contracts/scheduler.py +0 -140
- {orionis-0.516.0 → orionis-0.518.0}/LICENCE +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/MANIFEST.in +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/README.md +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/app.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/args/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/args/argument.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/args/enums/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/args/enums/actions.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/base/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/base/command.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/base/scheduler_event_listener.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/commands/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/commands/cache.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/commands/help.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/commands/publisher.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/commands/scheduler_list.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/commands/scheduler_work.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/commands/test.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/commands/version.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/commands/workflow.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/contracts/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/contracts/command.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/contracts/event.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/contracts/kernel.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/contracts/reactor.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/contracts/schedule.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/contracts/schedule_event_listener.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/core/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/core/reactor.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/dumper/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/dumper/contracts/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/dumper/contracts/dump.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/dumper/dump.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/dynamic/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/dynamic/contracts/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/dynamic/contracts/progress_bar.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/dynamic/progress_bar.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/entities/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/entities/all_jobs_removed.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/entities/executor_added.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/entities/executor_removed.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/entities/job_added.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/entities/job_error.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/entities/job_event_data.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/entities/job_executed.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/entities/job_max_instances.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/entities/job_missed.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/entities/job_modified.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/entities/job_pause.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/entities/job_removed.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/entities/job_resume.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/entities/job_store_added.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/entities/job_store_removed.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/entities/job_submitted.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/entities/request.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/entities/scheduler_event_data.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/entities/scheduler_paused.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/entities/scheduler_resumed.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/entities/scheduler_shutdown.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/entities/scheduler_started.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/enums/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/enums/command.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/enums/event.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/enums/listener.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/exceptions/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/exceptions/cli_exception.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/exceptions/cli_orionis_value_error.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/exceptions/cli_runtime_error.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/exceptions/cli_schedule_exception.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/kernel.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/output/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/output/console.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/output/contracts/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/output/contracts/console.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/output/contracts/executor.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/output/enums/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/output/enums/styles.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/output/executor.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/request/cli_request.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/tasks/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/tasks/event.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/console/tasks/listener.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/container/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/container/container.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/container/context/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/container/context/manager.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/container/context/scope.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/container/contracts/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/container/contracts/container.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/container/contracts/service_provider.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/container/entities/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/container/entities/binding.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/container/enums/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/container/enums/lifetimes.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/container/exceptions/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/container/exceptions/attribute.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/container/exceptions/exception.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/container/exceptions/type.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/container/exceptions/value.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/container/facades/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/container/facades/facade.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/container/providers/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/container/providers/service_provider.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/container/validators/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/container/validators/implements.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/container/validators/is_abstract_class.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/container/validators/is_callable.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/container/validators/is_concrete_class.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/container/validators/is_instance.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/container/validators/is_not_subclass.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/container/validators/is_subclass.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/container/validators/is_valid_alias.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/container/validators/lifetime.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/failure/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/failure/base/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/failure/base/handler.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/failure/catch.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/failure/contracts/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/failure/contracts/catch.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/failure/contracts/handler.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/failure/entities/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/failure/entities/throwable.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/application.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/app/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/app/entities/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/app/entities/app.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/app/enums/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/app/enums/ciphers.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/app/enums/environments.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/auth/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/auth/entities/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/auth/entities/auth.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/cache/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/cache/entities/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/cache/entities/cache.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/cache/entities/file.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/cache/entities/stores.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/cache/enums/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/cache/enums/drivers.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/cors/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/cors/entities/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/cors/entities/cors.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/database/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/database/entities/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/database/entities/connections.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/database/entities/database.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/database/entities/mysql.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/database/entities/oracle.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/database/entities/pgsql.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/database/entities/sqlite.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/database/enums/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/database/enums/mysql_charsets.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/database/enums/mysql_collations.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/database/enums/mysql_engine.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/database/enums/oracle_encoding.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/database/enums/oracle_nencoding.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/database/enums/pgsql_charsets.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/database/enums/pgsql_collations.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/database/enums/pgsql_mode.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/database/enums/sqlite_foreign_key.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/database/enums/sqlite_journal.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/database/enums/sqlite_synchronous.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/filesystems/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/filesystems/entitites/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/filesystems/entitites/aws.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/filesystems/entitites/disks.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/filesystems/entitites/filesystems.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/filesystems/entitites/local.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/filesystems/entitites/public.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/logging/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/logging/entities/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/logging/entities/channels.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/logging/entities/chunked.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/logging/entities/daily.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/logging/entities/hourly.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/logging/entities/logging.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/logging/entities/monthly.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/logging/entities/stack.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/logging/entities/weekly.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/logging/enums/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/logging/enums/levels.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/logging/validators/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/logging/validators/level.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/logging/validators/path.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/mail/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/mail/entities/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/mail/entities/file.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/mail/entities/mail.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/mail/entities/mailers.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/mail/entities/smtp.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/queue/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/queue/entities/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/queue/entities/brokers.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/queue/entities/database.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/queue/entities/queue.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/queue/enums/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/queue/enums/strategy.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/roots/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/roots/paths.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/session/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/session/entities/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/session/entities/session.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/session/enums/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/session/enums/same_site_policy.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/session/helpers/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/session/helpers/secret_key.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/startup.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/testing/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/testing/entities/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/testing/entities/testing.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/testing/enums/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/testing/enums/drivers.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/testing/enums/mode.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/config/testing/enums/verbosity.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/contracts/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/contracts/application.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/contracts/config.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/exceptions/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/exceptions/integrity.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/exceptions/runtime.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/exceptions/type.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/exceptions/value.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/providers/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/providers/catch_provider.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/providers/console_provider.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/providers/directory_provider.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/providers/dumper_provider.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/providers/executor_provider.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/providers/inspirational_provider.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/providers/logger_provider.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/providers/performance_counter_provider.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/providers/progress_bar_provider.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/providers/reactor_provider.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/providers/scheduler_provider.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/providers/testing_provider.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/foundation/providers/workers_provider.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/metadata/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/metadata/package.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/asynchrony/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/asynchrony/contracts/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/asynchrony/contracts/coroutines.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/asynchrony/coroutines.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/asynchrony/exceptions/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/asynchrony/exceptions/exception.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/environment/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/environment/contracts/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/environment/contracts/caster.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/environment/contracts/env.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/environment/core/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/environment/core/dot_env.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/environment/dynamic/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/environment/dynamic/caster.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/environment/enums/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/environment/enums/value_type.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/environment/env.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/environment/exceptions/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/environment/exceptions/exception.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/environment/exceptions/value.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/environment/helpers/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/environment/helpers/functions.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/environment/key/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/environment/key/key_generator.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/environment/validators/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/environment/validators/key_name.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/environment/validators/types.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/file/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/file/contracts/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/file/contracts/directory.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/file/directory.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/inspirational/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/inspirational/contracts/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/inspirational/contracts/inspire.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/inspirational/inspire.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/inspirational/quotes.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/introspection/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/introspection/abstract/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/introspection/abstract/contracts/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/introspection/abstract/contracts/reflection.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/introspection/abstract/reflection.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/introspection/callables/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/introspection/callables/contracts/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/introspection/callables/contracts/reflection.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/introspection/callables/reflection.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/introspection/concretes/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/introspection/concretes/contracts/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/introspection/concretes/contracts/reflection.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/introspection/concretes/reflection.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/introspection/dependencies/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/introspection/dependencies/contracts/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/introspection/dependencies/contracts/reflection.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/introspection/dependencies/entities/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/introspection/dependencies/entities/argument.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/introspection/dependencies/entities/resolve_argument.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/introspection/dependencies/reflection.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/introspection/exceptions/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/introspection/exceptions/attribute.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/introspection/exceptions/type.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/introspection/exceptions/value.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/introspection/instances/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/introspection/instances/contracts/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/introspection/instances/contracts/reflection.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/introspection/instances/reflection.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/introspection/modules/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/introspection/modules/contracts/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/introspection/modules/contracts/reflection.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/introspection/modules/reflection.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/introspection/objects/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/introspection/objects/types.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/introspection/reflection.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/log/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/log/contracts/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/log/contracts/log_service.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/log/exceptions/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/log/exceptions/runtime.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/log/handlers/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/log/handlers/filename.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/log/handlers/size_rotating.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/log/handlers/timed_rotating.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/log/log_service.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/system/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/system/contracts/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/system/contracts/imports.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/system/contracts/workers.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/system/imports.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/system/runtime/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/system/runtime/imports.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/services/system/workers.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/support/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/support/entities/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/support/entities/base.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/support/facades/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/support/facades/application.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/support/facades/console.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/support/facades/dumper.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/support/facades/executor.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/support/facades/inspire.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/support/facades/logger.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/support/facades/performance_counter.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/support/facades/progress_bar.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/support/facades/reactor.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/support/facades/testing.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/support/facades/workers.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/support/formatter/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/support/formatter/exceptions/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/support/formatter/exceptions/contracts/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/support/formatter/exceptions/contracts/parser.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/support/formatter/exceptions/parser.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/support/formatter/serializer.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/support/patterns/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/support/patterns/singleton/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/support/patterns/singleton/meta.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/support/performance/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/support/performance/contracts/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/support/performance/contracts/counter.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/support/performance/counter.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/support/standard/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/support/standard/contracts/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/support/standard/contracts/std.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/support/standard/exceptions/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/support/standard/exceptions/value.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/support/standard/std.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/support/wrapper/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/support/wrapper/dot_dict.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/test/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/test/cases/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/test/cases/asynchronous.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/test/cases/synchronous.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/test/contracts/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/test/contracts/dumper.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/test/contracts/kernel.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/test/contracts/logs.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/test/contracts/printer.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/test/contracts/render.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/test/contracts/test_result.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/test/contracts/unit_test.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/test/core/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/test/core/unit_test.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/test/entities/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/test/entities/result.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/test/enums/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/test/enums/status.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/test/exceptions/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/test/exceptions/config.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/test/exceptions/failure.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/test/exceptions/persistence.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/test/exceptions/runtime.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/test/exceptions/value.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/test/kernel.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/test/output/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/test/output/dumper.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/test/output/printer.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/test/records/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/test/records/logs.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/test/validators/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/test/validators/base_path.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/test/validators/execution_mode.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/test/validators/fail_fast.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/test/validators/folder_path.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/test/validators/module_name.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/test/validators/name_pattern.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/test/validators/pattern.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/test/validators/persistent.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/test/validators/persistent_driver.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/test/validators/print_result.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/test/validators/tags.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/test/validators/throw_exception.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/test/validators/verbosity.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/test/validators/web_report.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/test/validators/workers.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/test/view/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis/test/view/render.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis.egg-info/SOURCES.txt +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis.egg-info/dependency_links.txt +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis.egg-info/requires.txt +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis.egg-info/top_level.txt +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/orionis.egg-info/zip-safe +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/setup.cfg +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/setup.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/container/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/container/context/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/container/context/test_manager.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/container/context/test_scope.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/container/core/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/container/core/test_advanced_async.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/container/core/test_async_optimizations.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/container/core/test_container.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/container/core/test_singleton.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/container/core/test_thread_safety.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/container/entities/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/container/entities/test_binding.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/container/enums/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/container/enums/test_lifetimes.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/container/facades/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/container/facades/test_facade.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/container/mocks/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/container/mocks/mock_advanced_async.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/container/mocks/mock_async_optimizations.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/container/mocks/mock_auto_resolution.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/container/mocks/mock_complex_classes.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/container/mocks/mock_simple_classes.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/container/providers/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/container/providers/test_providers.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/container/validators/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/container/validators/test_implements.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/container/validators/test_is_abstract_class.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/container/validators/test_is_callable.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/container/validators/test_is_concrete_class.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/container/validators/test_is_instance.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/container/validators/test_is_not_subclass.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/container/validators/test_is_subclass.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/container/validators/test_is_valid_alias.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/container/validators/test_lifetime.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/example/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/example/test_example.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/foundation/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/foundation/config/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/foundation/config/app/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/foundation/config/app/test_foundation_config_app.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/foundation/config/auth/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/foundation/config/auth/test_foundation_config_auth.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/foundation/config/cache/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/foundation/config/cache/test_foundation_config_cache.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/foundation/config/cache/test_foundation_config_cache_file.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/foundation/config/cache/test_foundation_config_cache_stores.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/foundation/config/cors/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/foundation/config/cors/test_foundation_config_cors.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/foundation/config/database/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/foundation/config/database/test_foundation_config_database.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/foundation/config/database/test_foundation_config_database_connections.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/foundation/config/database/test_foundation_config_database_mysql.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/foundation/config/database/test_foundation_config_database_oracle.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/foundation/config/database/test_foundation_config_database_pgsql.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/foundation/config/database/test_foundation_config_database_sqlite.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/foundation/config/filesystems/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems_aws.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems_disks.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems_local.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems_public.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/foundation/config/logging/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/foundation/config/logging/test_foundation_config_logging.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/foundation/config/logging/test_foundation_config_logging_channels.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/foundation/config/logging/test_foundation_config_logging_chunked.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/foundation/config/logging/test_foundation_config_logging_daily.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/foundation/config/logging/test_foundation_config_logging_hourly.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/foundation/config/logging/test_foundation_config_logging_monthly.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/foundation/config/logging/test_foundation_config_logging_stack.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/foundation/config/logging/test_foundation_config_logging_weekly.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/foundation/config/mail/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/foundation/config/mail/test_foundation_config_mail.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/foundation/config/mail/test_foundation_config_mail_file.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/foundation/config/mail/test_foundation_config_mail_mailers.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/foundation/config/mail/test_foundation_config_mail_smtp.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/foundation/config/queue/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/foundation/config/queue/test_foundation_config_queue.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/foundation/config/queue/test_foundation_config_queue_brokers.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/foundation/config/queue/test_foundation_config_queue_database.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/foundation/config/root/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/foundation/config/root/test_foundation_config_root_paths.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/foundation/config/session/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/foundation/config/session/test_foundation_config_session.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/foundation/config/startup/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/foundation/config/startup/test_foundation_config_startup.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/foundation/config/testing/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/foundation/config/testing/test_foundation_config_testing.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/metadata/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/metadata/test_metadata_framework.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/metadata/test_metadata_package.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/services/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/services/asynchrony/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/services/asynchrony/test_services_asynchrony_coroutine.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/services/environment/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/services/environment/test_services_environment.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/services/introspection/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/services/introspection/dependencies/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/services/introspection/dependencies/mocks/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/services/introspection/dependencies/mocks/mock_user.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/services/introspection/dependencies/mocks/mock_user_controller.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/services/introspection/dependencies/mocks/mock_users_permissions.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/services/introspection/dependencies/test_reflect_dependencies.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/services/introspection/reflection/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/services/introspection/reflection/mock/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/services/introspection/reflection/mock/fake_reflect_instance.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/services/introspection/reflection/test_reflection_abstract.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/services/introspection/reflection/test_reflection_callable.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/services/introspection/reflection/test_reflection_concrete.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/services/introspection/reflection/test_reflection_instance.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/services/introspection/reflection/test_reflection_module.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/services/introspection/test_reflection.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/services/log/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/services/log/test_log.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/services/system/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/services/system/test_services_system_imports.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/services/system/test_services_system_workers.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/support/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/support/entities/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/support/entities/mock_dataclass.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/support/entities/test_base.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/support/patterns/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/support/patterns/singleton/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/support/patterns/singleton/test_patterns_singleton.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/support/standard/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/support/standard/test_services_std.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/support/wrapper/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/support/wrapper/test_services_wrapper_docdict.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/testing/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/testing/cases/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/testing/cases/test_testing_asynchronous.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/testing/cases/test_testing_synchronous.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/testing/entities/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/testing/entities/test_testing_result.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/testing/enums/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/testing/enums/test_testing_status.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/testing/output/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/testing/output/test_testing_dumper.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/testing/output/test_testing_printer.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/testing/records/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/testing/records/test_testing_records.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/testing/test_testing_unit.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/testing/validators/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/testing/validators/test_testing_validators.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/testing/view/__init__.py +0 -0
- {orionis-0.516.0 → orionis-0.518.0}/tests/testing/view/test_render.py +0 -0
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
from datetime import datetime
|
|
2
|
+
from orionis.console.contracts.scheduler import IBaseScheduler
|
|
3
|
+
from orionis.console.contracts.schedule import ISchedule
|
|
4
|
+
from orionis.console.entities.job_error import JobError
|
|
5
|
+
from orionis.console.entities.scheduler_paused import SchedulerPaused
|
|
6
|
+
from orionis.console.entities.scheduler_resumed import SchedulerResumed
|
|
7
|
+
from orionis.console.entities.scheduler_shutdown import SchedulerShutdown
|
|
8
|
+
from orionis.console.entities.scheduler_started import SchedulerStarted
|
|
9
|
+
|
|
10
|
+
class BaseScheduler(IBaseScheduler):
|
|
11
|
+
|
|
12
|
+
# Pause Global Scheduler at a specific time
|
|
13
|
+
PAUSE_AT: datetime = None
|
|
14
|
+
|
|
15
|
+
# Resume Global Scheduler at a specific time
|
|
16
|
+
RESUME_AT: datetime = None
|
|
17
|
+
|
|
18
|
+
# Finalize Global Scheduler at a specific time
|
|
19
|
+
FINALIZE_AT: datetime = None
|
|
20
|
+
|
|
21
|
+
async def tasks(self, schedule: ISchedule):
|
|
22
|
+
"""
|
|
23
|
+
Defines and registers scheduled tasks for the application.
|
|
24
|
+
|
|
25
|
+
This method is responsible for setting up the tasks that the scheduler will execute.
|
|
26
|
+
It uses the provided `schedule` object to define the properties and behavior of each task.
|
|
27
|
+
|
|
28
|
+
Parameters
|
|
29
|
+
----------
|
|
30
|
+
schedule : ISchedule
|
|
31
|
+
The schedule object used to define and register scheduled commands.
|
|
32
|
+
|
|
33
|
+
Returns
|
|
34
|
+
-------
|
|
35
|
+
None
|
|
36
|
+
This method does not return any value. It is used solely for task registration.
|
|
37
|
+
|
|
38
|
+
Notes
|
|
39
|
+
-----
|
|
40
|
+
Subclasses must override this method to implement their specific task scheduling logic.
|
|
41
|
+
The method should define the tasks, their execution intervals, and any additional
|
|
42
|
+
properties or constraints required for the tasks.
|
|
43
|
+
"""
|
|
44
|
+
|
|
45
|
+
# Raise an error to enforce implementation in subclasses
|
|
46
|
+
raise NotImplementedError("Subclasses must implement the tasks method.")
|
|
47
|
+
|
|
48
|
+
async def onStarted(self, event: SchedulerStarted, schedule: ISchedule):
|
|
49
|
+
"""
|
|
50
|
+
Handles the event triggered when the scheduler has started successfully.
|
|
51
|
+
|
|
52
|
+
This method is invoked when the scheduler begins its operation. It processes
|
|
53
|
+
the `SchedulerStarted` event and performs any necessary initialization or logging
|
|
54
|
+
tasks associated with the start of the scheduler.
|
|
55
|
+
|
|
56
|
+
Parameters
|
|
57
|
+
----------
|
|
58
|
+
event : SchedulerStarted
|
|
59
|
+
The event object containing details about the scheduler start event.
|
|
60
|
+
schedule : ISchedule
|
|
61
|
+
The schedule instance associated with the started scheduler.
|
|
62
|
+
|
|
63
|
+
Returns
|
|
64
|
+
-------
|
|
65
|
+
None
|
|
66
|
+
This method does not return any value. It is used for handling the
|
|
67
|
+
scheduler start event and performing related actions.
|
|
68
|
+
|
|
69
|
+
Notes
|
|
70
|
+
-----
|
|
71
|
+
This method calls the parent class's `onStarted` method to ensure that
|
|
72
|
+
any base functionality is executed.
|
|
73
|
+
"""
|
|
74
|
+
pass
|
|
75
|
+
|
|
76
|
+
async def onPaused(self, event: SchedulerPaused, schedule: ISchedule):
|
|
77
|
+
"""
|
|
78
|
+
Handles the event triggered when the scheduler is paused.
|
|
79
|
+
|
|
80
|
+
This method is invoked when the scheduler pauses its operation. It processes
|
|
81
|
+
the `SchedulerPaused` event and performs any necessary actions or logging
|
|
82
|
+
tasks associated with the pause of the scheduler.
|
|
83
|
+
|
|
84
|
+
Parameters
|
|
85
|
+
----------
|
|
86
|
+
event : SchedulerPaused
|
|
87
|
+
The event object containing details about the scheduler pause event.
|
|
88
|
+
schedule : ISchedule
|
|
89
|
+
The schedule instance associated with the paused scheduler.
|
|
90
|
+
|
|
91
|
+
Returns
|
|
92
|
+
-------
|
|
93
|
+
None
|
|
94
|
+
This method does not return any value. It is used for handling the
|
|
95
|
+
scheduler pause event and performing related actions.
|
|
96
|
+
|
|
97
|
+
Notes
|
|
98
|
+
-----
|
|
99
|
+
This method calls the parent class's `onPaused` method to ensure that
|
|
100
|
+
any base functionality is executed.
|
|
101
|
+
"""
|
|
102
|
+
pass
|
|
103
|
+
|
|
104
|
+
async def onResumed(self, event: SchedulerResumed, schedule: ISchedule):
|
|
105
|
+
"""
|
|
106
|
+
Handles the event triggered when the scheduler is resumed.
|
|
107
|
+
|
|
108
|
+
This method is invoked when the scheduler resumes its operation after being paused.
|
|
109
|
+
It processes the `SchedulerResumed` event and performs any necessary actions or logging
|
|
110
|
+
tasks associated with the resumption of the scheduler.
|
|
111
|
+
|
|
112
|
+
Parameters
|
|
113
|
+
----------
|
|
114
|
+
event : SchedulerResumed
|
|
115
|
+
The event object containing details about the scheduler resumption, such as the
|
|
116
|
+
timestamp of the resumption and any relevant metadata.
|
|
117
|
+
schedule : ISchedule
|
|
118
|
+
The schedule instance associated with the resumed scheduler, which can be used
|
|
119
|
+
to interact with or modify the scheduler's tasks.
|
|
120
|
+
|
|
121
|
+
Returns
|
|
122
|
+
-------
|
|
123
|
+
None
|
|
124
|
+
This method does not return any value. It is used for handling the scheduler
|
|
125
|
+
resumption event and performing related actions.
|
|
126
|
+
|
|
127
|
+
Notes
|
|
128
|
+
-----
|
|
129
|
+
This method calls the parent class's `onResumed` method to ensure that any base
|
|
130
|
+
functionality is executed. This allows the scheduler to maintain its default behavior
|
|
131
|
+
while enabling additional custom actions during the resumption process.
|
|
132
|
+
"""
|
|
133
|
+
pass
|
|
134
|
+
|
|
135
|
+
async def onFinalized(self, event: SchedulerShutdown, schedule: ISchedule):
|
|
136
|
+
"""
|
|
137
|
+
Handles the event triggered when the scheduler has been finalized.
|
|
138
|
+
|
|
139
|
+
This method is invoked after the scheduler has completed its shutdown process.
|
|
140
|
+
It processes the `SchedulerShutdown` event and performs any necessary cleanup
|
|
141
|
+
or logging tasks associated with the finalization of the scheduler.
|
|
142
|
+
|
|
143
|
+
Parameters
|
|
144
|
+
----------
|
|
145
|
+
event : SchedulerShutdown
|
|
146
|
+
The event object containing details about the scheduler shutdown, such as
|
|
147
|
+
the timestamp of the shutdown and any relevant metadata.
|
|
148
|
+
schedule : ISchedule
|
|
149
|
+
The schedule instance associated with the finalized scheduler, which can be
|
|
150
|
+
used to interact with or inspect the scheduler's tasks.
|
|
151
|
+
|
|
152
|
+
Returns
|
|
153
|
+
-------
|
|
154
|
+
None
|
|
155
|
+
This method does not return any value. It is used for handling the scheduler
|
|
156
|
+
shutdown event and performing related actions.
|
|
157
|
+
|
|
158
|
+
Notes
|
|
159
|
+
-----
|
|
160
|
+
This method calls the parent class's `onFinalized` method to ensure that any base
|
|
161
|
+
functionality is executed. This allows the scheduler to maintain its default behavior
|
|
162
|
+
while enabling additional custom actions during the finalization process.
|
|
163
|
+
"""
|
|
164
|
+
pass
|
|
165
|
+
|
|
166
|
+
async def onError(self, event: JobError, schedule: ISchedule):
|
|
167
|
+
"""
|
|
168
|
+
Handles the event triggered when a job encounters an error during execution.
|
|
169
|
+
|
|
170
|
+
This method is invoked when a job fails due to an exception. It processes the `JobError`
|
|
171
|
+
event and performs any necessary actions, such as logging the error details or notifying
|
|
172
|
+
relevant systems about the failure.
|
|
173
|
+
|
|
174
|
+
Parameters
|
|
175
|
+
----------
|
|
176
|
+
event : JobError
|
|
177
|
+
The event object containing details about the job error, including the job ID,
|
|
178
|
+
the exception that occurred, and any relevant metadata.
|
|
179
|
+
schedule : ISchedule
|
|
180
|
+
The schedule instance associated with the job, which can be used to interact with
|
|
181
|
+
or modify the scheduler's tasks.
|
|
182
|
+
|
|
183
|
+
Returns
|
|
184
|
+
-------
|
|
185
|
+
None
|
|
186
|
+
This method does not return any value. It is used for handling the job error event
|
|
187
|
+
and performing related actions, such as logging or cleanup.
|
|
188
|
+
|
|
189
|
+
Notes
|
|
190
|
+
-----
|
|
191
|
+
This method calls the parent class's `onError` method to ensure that any base functionality
|
|
192
|
+
is executed. This allows the scheduler to maintain its default behavior while enabling
|
|
193
|
+
additional custom actions during error handling.
|
|
194
|
+
"""
|
|
195
|
+
pass
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
from abc import ABC, abstractmethod
|
|
2
|
+
from orionis.console.contracts.schedule import ISchedule
|
|
3
|
+
from orionis.console.entities.job_error import JobError
|
|
4
|
+
from orionis.console.entities.scheduler_paused import SchedulerPaused
|
|
5
|
+
from orionis.console.entities.scheduler_resumed import SchedulerResumed
|
|
6
|
+
from orionis.console.entities.scheduler_shutdown import SchedulerShutdown
|
|
7
|
+
from orionis.console.entities.scheduler_started import SchedulerStarted
|
|
8
|
+
|
|
9
|
+
class IBaseScheduler(ABC):
|
|
10
|
+
|
|
11
|
+
@abstractmethod
|
|
12
|
+
async def tasks(self, schedule: ISchedule):
|
|
13
|
+
"""
|
|
14
|
+
Defines and registers scheduled tasks for the application.
|
|
15
|
+
|
|
16
|
+
This method is responsible for setting up the tasks that the scheduler will execute.
|
|
17
|
+
It uses the provided `schedule` object to define the properties and behavior of each task.
|
|
18
|
+
|
|
19
|
+
Parameters
|
|
20
|
+
----------
|
|
21
|
+
schedule : ISchedule
|
|
22
|
+
The schedule object used to define and register scheduled commands.
|
|
23
|
+
|
|
24
|
+
Returns
|
|
25
|
+
-------
|
|
26
|
+
None
|
|
27
|
+
This method does not return any value. It is used solely for task registration.
|
|
28
|
+
|
|
29
|
+
Notes
|
|
30
|
+
-----
|
|
31
|
+
Subclasses must override this method to implement their specific task scheduling logic.
|
|
32
|
+
The method should define the tasks, their execution intervals, and any additional
|
|
33
|
+
properties or constraints required for the tasks.
|
|
34
|
+
"""
|
|
35
|
+
pass
|
|
36
|
+
|
|
37
|
+
@abstractmethod
|
|
38
|
+
async def onStarted(self, event: SchedulerStarted, schedule: ISchedule):
|
|
39
|
+
"""
|
|
40
|
+
Handles the event triggered when the scheduler has started successfully.
|
|
41
|
+
|
|
42
|
+
This method is invoked when the scheduler begins its operation. It processes
|
|
43
|
+
the `SchedulerStarted` event and performs any necessary initialization or logging
|
|
44
|
+
tasks associated with the start of the scheduler.
|
|
45
|
+
|
|
46
|
+
Parameters
|
|
47
|
+
----------
|
|
48
|
+
event : SchedulerStarted
|
|
49
|
+
The event object containing details about the scheduler start event.
|
|
50
|
+
schedule : ISchedule
|
|
51
|
+
The schedule instance associated with the started scheduler.
|
|
52
|
+
|
|
53
|
+
Returns
|
|
54
|
+
-------
|
|
55
|
+
None
|
|
56
|
+
This method does not return any value. It is used for handling the
|
|
57
|
+
scheduler start event and performing related actions.
|
|
58
|
+
|
|
59
|
+
Notes
|
|
60
|
+
-----
|
|
61
|
+
This method calls the parent class's `onStarted` method to ensure that
|
|
62
|
+
any base functionality is executed.
|
|
63
|
+
"""
|
|
64
|
+
pass
|
|
65
|
+
|
|
66
|
+
@abstractmethod
|
|
67
|
+
async def onPaused(self, event: SchedulerPaused, schedule: ISchedule):
|
|
68
|
+
"""
|
|
69
|
+
Handles the event triggered when the scheduler is paused.
|
|
70
|
+
|
|
71
|
+
This method is invoked when the scheduler pauses its operation. It processes
|
|
72
|
+
the `SchedulerPaused` event and performs any necessary actions or logging
|
|
73
|
+
tasks associated with the pause of the scheduler.
|
|
74
|
+
|
|
75
|
+
Parameters
|
|
76
|
+
----------
|
|
77
|
+
event : SchedulerPaused
|
|
78
|
+
The event object containing details about the scheduler pause event.
|
|
79
|
+
schedule : ISchedule
|
|
80
|
+
The schedule instance associated with the paused scheduler.
|
|
81
|
+
|
|
82
|
+
Returns
|
|
83
|
+
-------
|
|
84
|
+
None
|
|
85
|
+
This method does not return any value. It is used for handling the
|
|
86
|
+
scheduler pause event and performing related actions.
|
|
87
|
+
|
|
88
|
+
Notes
|
|
89
|
+
-----
|
|
90
|
+
This method calls the parent class's `onPaused` method to ensure that
|
|
91
|
+
any base functionality is executed.
|
|
92
|
+
"""
|
|
93
|
+
pass
|
|
94
|
+
|
|
95
|
+
@abstractmethod
|
|
96
|
+
async def onResumed(self, event: SchedulerResumed, schedule: ISchedule):
|
|
97
|
+
"""
|
|
98
|
+
Handles the event triggered when the scheduler is resumed.
|
|
99
|
+
|
|
100
|
+
This method is invoked when the scheduler resumes its operation after being paused.
|
|
101
|
+
It processes the `SchedulerResumed` event and performs any necessary actions or logging
|
|
102
|
+
tasks associated with the resumption of the scheduler.
|
|
103
|
+
|
|
104
|
+
Parameters
|
|
105
|
+
----------
|
|
106
|
+
event : SchedulerResumed
|
|
107
|
+
The event object containing details about the scheduler resumption, such as the
|
|
108
|
+
timestamp of the resumption and any relevant metadata.
|
|
109
|
+
schedule : ISchedule
|
|
110
|
+
The schedule instance associated with the resumed scheduler, which can be used
|
|
111
|
+
to interact with or modify the scheduler's tasks.
|
|
112
|
+
|
|
113
|
+
Returns
|
|
114
|
+
-------
|
|
115
|
+
None
|
|
116
|
+
This method does not return any value. It is used for handling the scheduler
|
|
117
|
+
resumption event and performing related actions.
|
|
118
|
+
|
|
119
|
+
Notes
|
|
120
|
+
-----
|
|
121
|
+
This method calls the parent class's `onResumed` method to ensure that any base
|
|
122
|
+
functionality is executed. This allows the scheduler to maintain its default behavior
|
|
123
|
+
while enabling additional custom actions during the resumption process.
|
|
124
|
+
"""
|
|
125
|
+
pass
|
|
126
|
+
|
|
127
|
+
@abstractmethod
|
|
128
|
+
async def onFinalized(self, event: SchedulerShutdown, schedule: ISchedule):
|
|
129
|
+
"""
|
|
130
|
+
Handles the event triggered when the scheduler has been finalized.
|
|
131
|
+
|
|
132
|
+
This method is invoked after the scheduler has completed its shutdown process.
|
|
133
|
+
It processes the `SchedulerShutdown` event and performs any necessary cleanup
|
|
134
|
+
or logging tasks associated with the finalization of the scheduler.
|
|
135
|
+
|
|
136
|
+
Parameters
|
|
137
|
+
----------
|
|
138
|
+
event : SchedulerShutdown
|
|
139
|
+
The event object containing details about the scheduler shutdown, such as
|
|
140
|
+
the timestamp of the shutdown and any relevant metadata.
|
|
141
|
+
schedule : ISchedule
|
|
142
|
+
The schedule instance associated with the finalized scheduler, which can be
|
|
143
|
+
used to interact with or inspect the scheduler's tasks.
|
|
144
|
+
|
|
145
|
+
Returns
|
|
146
|
+
-------
|
|
147
|
+
None
|
|
148
|
+
This method does not return any value. It is used for handling the scheduler
|
|
149
|
+
shutdown event and performing related actions.
|
|
150
|
+
|
|
151
|
+
Notes
|
|
152
|
+
-----
|
|
153
|
+
This method calls the parent class's `onFinalized` method to ensure that any base
|
|
154
|
+
functionality is executed. This allows the scheduler to maintain its default behavior
|
|
155
|
+
while enabling additional custom actions during the finalization process.
|
|
156
|
+
"""
|
|
157
|
+
pass
|
|
158
|
+
|
|
159
|
+
@abstractmethod
|
|
160
|
+
async def onError(self, event: JobError, schedule: ISchedule):
|
|
161
|
+
"""
|
|
162
|
+
Handles the event triggered when a job encounters an error during execution.
|
|
163
|
+
|
|
164
|
+
This method is invoked when a job fails due to an exception. It processes the `JobError`
|
|
165
|
+
event and performs any necessary actions, such as logging the error details or notifying
|
|
166
|
+
relevant systems about the failure.
|
|
167
|
+
|
|
168
|
+
Parameters
|
|
169
|
+
----------
|
|
170
|
+
event : JobError
|
|
171
|
+
The event object containing details about the job error, including the job ID,
|
|
172
|
+
the exception that occurred, and any relevant metadata.
|
|
173
|
+
schedule : ISchedule
|
|
174
|
+
The schedule instance associated with the job, which can be used to interact with
|
|
175
|
+
or modify the scheduler's tasks.
|
|
176
|
+
|
|
177
|
+
Returns
|
|
178
|
+
-------
|
|
179
|
+
None
|
|
180
|
+
This method does not return any value. It is used for handling the job error event
|
|
181
|
+
and performing related actions, such as logging or cleanup.
|
|
182
|
+
|
|
183
|
+
Notes
|
|
184
|
+
-----
|
|
185
|
+
This method calls the parent class's `onError` method to ensure that any base functionality
|
|
186
|
+
is executed. This allows the scheduler to maintain its default behavior while enabling
|
|
187
|
+
additional custom actions during error handling.
|
|
188
|
+
"""
|
|
189
|
+
pass
|
|
@@ -3,6 +3,7 @@ from datetime import datetime
|
|
|
3
3
|
import logging
|
|
4
4
|
from typing import Dict, List, Optional, Union
|
|
5
5
|
import pytz
|
|
6
|
+
from apscheduler.triggers.date import DateTrigger
|
|
6
7
|
from apscheduler.events import (
|
|
7
8
|
EVENT_SCHEDULER_STARTED,
|
|
8
9
|
EVENT_SCHEDULER_PAUSED,
|
|
@@ -524,10 +525,6 @@ class Scheduler(ISchedule):
|
|
|
524
525
|
# Log an informational message indicating that the scheduler has been paused
|
|
525
526
|
self.__logger.info(message)
|
|
526
527
|
|
|
527
|
-
# Display a paused message for the scheduler worker on console
|
|
528
|
-
if self.__app.config('app.debug', False):
|
|
529
|
-
self.__console.info(message)
|
|
530
|
-
|
|
531
528
|
# Check if a listener is registered for the scheduler started event
|
|
532
529
|
self.__globalCallableListener(event, ListeningEvent.SCHEDULER_PAUSED)
|
|
533
530
|
|
|
@@ -565,10 +562,6 @@ class Scheduler(ISchedule):
|
|
|
565
562
|
# Log an informational message indicating that the scheduler has resumed
|
|
566
563
|
self.__logger.info(message)
|
|
567
564
|
|
|
568
|
-
# Display a resumed message for the scheduler worker on console
|
|
569
|
-
if self.__app.config('app.debug', False):
|
|
570
|
-
self.__console.info(message)
|
|
571
|
-
|
|
572
565
|
# Check if a listener is registered for the scheduler started event
|
|
573
566
|
self.__globalCallableListener(event, ListeningEvent.SCHEDULER_RESUMED)
|
|
574
567
|
|
|
@@ -606,10 +599,6 @@ class Scheduler(ISchedule):
|
|
|
606
599
|
# Log an informational message indicating that the scheduler has shut down
|
|
607
600
|
self.__logger.info(message)
|
|
608
601
|
|
|
609
|
-
# Display a shutdown message for the scheduler worker on console
|
|
610
|
-
if self.__app.config('app.debug', False):
|
|
611
|
-
self.__console.info(message)
|
|
612
|
-
|
|
613
602
|
# Check if a listener is registered for the scheduler started event
|
|
614
603
|
self.__globalCallableListener(event, ListeningEvent.SCHEDULER_SHUTDOWN)
|
|
615
604
|
|
|
@@ -644,10 +633,6 @@ class Scheduler(ISchedule):
|
|
|
644
633
|
# Log an error message indicating that the job raised an exception
|
|
645
634
|
self.__logger.error(message)
|
|
646
635
|
|
|
647
|
-
# If the application is in debug mode, display a message on the console
|
|
648
|
-
if self.__app.config('app.debug', False):
|
|
649
|
-
self.__console.error(message)
|
|
650
|
-
|
|
651
636
|
# If a listener is registered for this job ID, invoke the listener with the event details
|
|
652
637
|
self.__taskCallableListener(event, ListeningEvent.JOB_ON_FAILURE)
|
|
653
638
|
|
|
@@ -685,10 +670,6 @@ class Scheduler(ISchedule):
|
|
|
685
670
|
# Log an informational message indicating that the job has been submitted
|
|
686
671
|
self.__logger.info(message)
|
|
687
672
|
|
|
688
|
-
# If the application is in debug mode, display a message on the console
|
|
689
|
-
if self.__app.config('app.debug', False):
|
|
690
|
-
self.__console.info(message)
|
|
691
|
-
|
|
692
673
|
# If a listener is registered for this job ID, invoke the listener with the event details
|
|
693
674
|
self.__taskCallableListener(event, ListeningEvent.JOB_BEFORE)
|
|
694
675
|
|
|
@@ -724,10 +705,6 @@ class Scheduler(ISchedule):
|
|
|
724
705
|
# Log an informational message indicating that the job has been executed
|
|
725
706
|
self.__logger.info(message)
|
|
726
707
|
|
|
727
|
-
# If the application is in debug mode, display a message on the console
|
|
728
|
-
if self.__app.config('app.debug', False):
|
|
729
|
-
self.__console.info(message)
|
|
730
|
-
|
|
731
708
|
# If a listener is registered for this job ID, invoke the listener with the event details
|
|
732
709
|
self.__taskCallableListener(event, ListeningEvent.JOB_AFTER)
|
|
733
710
|
|
|
@@ -763,10 +740,6 @@ class Scheduler(ISchedule):
|
|
|
763
740
|
# Log a warning indicating that the job was missed
|
|
764
741
|
self.__logger.warning(message)
|
|
765
742
|
|
|
766
|
-
# If the application is in debug mode, report the missed job using the error reporter
|
|
767
|
-
if self.__app.config('app.debug', False):
|
|
768
|
-
self.__console.warning(message)
|
|
769
|
-
|
|
770
743
|
# If a listener is registered for this job ID, invoke the listener with the event details
|
|
771
744
|
self.__taskCallableListener(event, ListeningEvent.JOB_ON_MISSED)
|
|
772
745
|
|
|
@@ -802,10 +775,6 @@ class Scheduler(ISchedule):
|
|
|
802
775
|
# Log an error message indicating that the job exceeded maximum instances
|
|
803
776
|
self.__logger.error(message)
|
|
804
777
|
|
|
805
|
-
# If the application is in debug mode, display a message on the console
|
|
806
|
-
if self.__app.config('app.debug', False):
|
|
807
|
-
self.__console.error(message)
|
|
808
|
-
|
|
809
778
|
# If a listener is registered for this job ID, invoke the listener with the event details
|
|
810
779
|
self.__taskCallableListener(event, ListeningEvent.JOB_ON_MAXINSTANCES)
|
|
811
780
|
|
|
@@ -841,10 +810,6 @@ class Scheduler(ISchedule):
|
|
|
841
810
|
# Log an informational message indicating that the job has been modified
|
|
842
811
|
self.__logger.info(message)
|
|
843
812
|
|
|
844
|
-
# If the application is in debug mode, display a message on the console
|
|
845
|
-
if self.__app.config('app.debug', False):
|
|
846
|
-
self.__console.info(message)
|
|
847
|
-
|
|
848
813
|
# If a listener is registered for this job ID, invoke the listener with the event details
|
|
849
814
|
if event.next_run_time is None:
|
|
850
815
|
self.__taskCallableListener(event, ListeningEvent.JOB_ON_PAUSED)
|
|
@@ -882,10 +847,6 @@ class Scheduler(ISchedule):
|
|
|
882
847
|
# Log the removal of the job
|
|
883
848
|
self.__logger.info(message)
|
|
884
849
|
|
|
885
|
-
# If the application is in debug mode, display the message on the console
|
|
886
|
-
if self.__app.config('app.debug', False):
|
|
887
|
-
self.__console.info(message)
|
|
888
|
-
|
|
889
850
|
# If a listener is registered for this job ID, invoke the listener with the event details
|
|
890
851
|
self.__taskCallableListener(event, ListeningEvent.JOB_ON_REMOVED)
|
|
891
852
|
|
|
@@ -1019,8 +980,7 @@ class Scheduler(ISchedule):
|
|
|
1019
980
|
# Add a job to the scheduler to pause it at the specified datetime
|
|
1020
981
|
self.__scheduler.add_job(
|
|
1021
982
|
func=self.__scheduler.pause, # Function to pause the scheduler
|
|
1022
|
-
trigger=
|
|
1023
|
-
run_date=at, # The datetime at which the job will run
|
|
983
|
+
trigger=DateTrigger(run_date=at), # Trigger type is 'date' for one-time execution
|
|
1024
984
|
id=f"pause_scheduler_at_{at.isoformat()}", # Unique job ID based on the datetime
|
|
1025
985
|
name=f"Pause Scheduler at {at.isoformat()}", # Descriptive name for the job
|
|
1026
986
|
replace_existing=True # Replace any existing job with the same ID
|
|
@@ -1062,8 +1022,7 @@ class Scheduler(ISchedule):
|
|
|
1062
1022
|
# Add a job to the scheduler to resume it at the specified datetime
|
|
1063
1023
|
self.__scheduler.add_job(
|
|
1064
1024
|
func=self.__scheduler.resume, # Function to resume the scheduler
|
|
1065
|
-
trigger=
|
|
1066
|
-
run_date=at, # The datetime at which the job will run
|
|
1025
|
+
trigger=DateTrigger(run_date=at), # Trigger type is 'date' for one-time execution
|
|
1067
1026
|
id=f"resume_scheduler_at_{at.isoformat()}", # Unique job ID based on the datetime
|
|
1068
1027
|
name=f"Resume Scheduler at {at.isoformat()}", # Descriptive name for the job
|
|
1069
1028
|
replace_existing=True # Replace any existing job with the same ID
|
|
@@ -1105,8 +1064,7 @@ class Scheduler(ISchedule):
|
|
|
1105
1064
|
# Add a job to the scheduler to shut it down at the specified datetime
|
|
1106
1065
|
self.__scheduler.add_job(
|
|
1107
1066
|
func=self.__scheduler.shutdown, # Function to shut down the scheduler
|
|
1108
|
-
trigger=
|
|
1109
|
-
run_date=at, # The datetime at which the job will run
|
|
1067
|
+
trigger=DateTrigger(run_date=at), # Trigger type is 'date' for one-time execution
|
|
1110
1068
|
id=f"shutdown_scheduler_at_{at.isoformat()}", # Unique job ID based on the datetime
|
|
1111
1069
|
name=f"Shutdown Scheduler at {at.isoformat()}", # Descriptive name for the job
|
|
1112
1070
|
replace_existing=True # Replace any existing job with the same ID
|
|
@@ -1245,6 +1203,8 @@ class Scheduler(ISchedule):
|
|
|
1245
1203
|
|
|
1246
1204
|
# Log the successful pausing of the job
|
|
1247
1205
|
self.__logger.info(f"Job '{signature}' has been paused.")
|
|
1206
|
+
|
|
1207
|
+
# Return True to indicate the job was successfully paused
|
|
1248
1208
|
return True
|
|
1249
1209
|
|
|
1250
1210
|
except Exception:
|
|
@@ -1288,6 +1248,8 @@ class Scheduler(ISchedule):
|
|
|
1288
1248
|
|
|
1289
1249
|
# Log the successful resumption of the job
|
|
1290
1250
|
self.__logger.info(f"Job '{signature}' has been resumed.")
|
|
1251
|
+
|
|
1252
|
+
# Return True to indicate the job was successfully resumed
|
|
1291
1253
|
return True
|
|
1292
1254
|
|
|
1293
1255
|
except Exception:
|
|
@@ -1339,6 +1301,8 @@ class Scheduler(ISchedule):
|
|
|
1339
1301
|
|
|
1340
1302
|
# Log the successful removal of the job
|
|
1341
1303
|
self.__logger.info(f"Job '{signature}' has been removed from the scheduler.")
|
|
1304
|
+
|
|
1305
|
+
# Return True to indicate the job was successfully removed
|
|
1342
1306
|
return True
|
|
1343
1307
|
|
|
1344
1308
|
except Exception:
|