orionis 0.517.0__tar.gz → 0.519.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.517.0/orionis.egg-info → orionis-0.519.0}/PKG-INFO +1 -1
- orionis-0.519.0/orionis/console/base/scheduler.py +195 -0
- orionis-0.519.0/orionis/console/contracts/scheduler.py +189 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/tasks/schedule.py +38 -28
- {orionis-0.517.0 → orionis-0.519.0}/orionis/metadata/framework.py +1 -1
- {orionis-0.517.0 → orionis-0.519.0/orionis.egg-info}/PKG-INFO +1 -1
- orionis-0.517.0/orionis/console/base/scheduler.py +0 -120
- orionis-0.517.0/orionis/console/contracts/scheduler.py +0 -140
- {orionis-0.517.0 → orionis-0.519.0}/LICENCE +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/MANIFEST.in +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/README.md +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/app.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/args/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/args/argument.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/args/enums/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/args/enums/actions.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/base/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/base/command.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/base/scheduler_event_listener.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/commands/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/commands/cache.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/commands/help.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/commands/publisher.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/commands/scheduler_list.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/commands/scheduler_work.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/commands/test.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/commands/version.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/commands/workflow.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/contracts/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/contracts/command.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/contracts/event.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/contracts/kernel.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/contracts/reactor.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/contracts/schedule.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/contracts/schedule_event_listener.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/core/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/core/reactor.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/dumper/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/dumper/contracts/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/dumper/contracts/dump.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/dumper/dump.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/dynamic/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/dynamic/contracts/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/dynamic/contracts/progress_bar.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/dynamic/progress_bar.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/entities/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/entities/all_jobs_removed.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/entities/executor_added.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/entities/executor_removed.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/entities/job_added.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/entities/job_error.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/entities/job_event_data.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/entities/job_executed.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/entities/job_max_instances.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/entities/job_missed.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/entities/job_modified.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/entities/job_pause.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/entities/job_removed.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/entities/job_resume.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/entities/job_store_added.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/entities/job_store_removed.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/entities/job_submitted.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/entities/request.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/entities/scheduler_event_data.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/entities/scheduler_paused.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/entities/scheduler_resumed.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/entities/scheduler_shutdown.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/entities/scheduler_started.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/enums/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/enums/command.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/enums/event.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/enums/listener.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/exceptions/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/exceptions/cli_exception.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/exceptions/cli_orionis_value_error.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/exceptions/cli_runtime_error.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/exceptions/cli_schedule_exception.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/kernel.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/output/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/output/console.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/output/contracts/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/output/contracts/console.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/output/contracts/executor.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/output/enums/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/output/enums/styles.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/output/executor.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/request/cli_request.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/tasks/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/tasks/event.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/console/tasks/listener.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/container/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/container/container.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/container/context/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/container/context/manager.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/container/context/scope.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/container/contracts/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/container/contracts/container.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/container/contracts/service_provider.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/container/entities/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/container/entities/binding.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/container/enums/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/container/enums/lifetimes.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/container/exceptions/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/container/exceptions/attribute.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/container/exceptions/exception.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/container/exceptions/type.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/container/exceptions/value.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/container/facades/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/container/facades/facade.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/container/providers/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/container/providers/service_provider.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/container/validators/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/container/validators/implements.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/container/validators/is_abstract_class.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/container/validators/is_callable.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/container/validators/is_concrete_class.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/container/validators/is_instance.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/container/validators/is_not_subclass.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/container/validators/is_subclass.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/container/validators/is_valid_alias.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/container/validators/lifetime.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/failure/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/failure/base/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/failure/base/handler.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/failure/catch.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/failure/contracts/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/failure/contracts/catch.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/failure/contracts/handler.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/failure/entities/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/failure/entities/throwable.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/application.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/app/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/app/entities/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/app/entities/app.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/app/enums/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/app/enums/ciphers.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/app/enums/environments.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/auth/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/auth/entities/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/auth/entities/auth.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/cache/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/cache/entities/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/cache/entities/cache.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/cache/entities/file.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/cache/entities/stores.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/cache/enums/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/cache/enums/drivers.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/cors/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/cors/entities/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/cors/entities/cors.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/database/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/database/entities/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/database/entities/connections.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/database/entities/database.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/database/entities/mysql.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/database/entities/oracle.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/database/entities/pgsql.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/database/entities/sqlite.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/database/enums/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/database/enums/mysql_charsets.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/database/enums/mysql_collations.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/database/enums/mysql_engine.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/database/enums/oracle_encoding.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/database/enums/oracle_nencoding.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/database/enums/pgsql_charsets.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/database/enums/pgsql_collations.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/database/enums/pgsql_mode.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/database/enums/sqlite_foreign_key.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/database/enums/sqlite_journal.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/database/enums/sqlite_synchronous.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/filesystems/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/filesystems/entitites/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/filesystems/entitites/aws.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/filesystems/entitites/disks.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/filesystems/entitites/filesystems.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/filesystems/entitites/local.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/filesystems/entitites/public.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/logging/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/logging/entities/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/logging/entities/channels.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/logging/entities/chunked.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/logging/entities/daily.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/logging/entities/hourly.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/logging/entities/logging.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/logging/entities/monthly.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/logging/entities/stack.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/logging/entities/weekly.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/logging/enums/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/logging/enums/levels.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/logging/validators/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/logging/validators/level.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/logging/validators/path.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/mail/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/mail/entities/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/mail/entities/file.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/mail/entities/mail.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/mail/entities/mailers.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/mail/entities/smtp.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/queue/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/queue/entities/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/queue/entities/brokers.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/queue/entities/database.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/queue/entities/queue.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/queue/enums/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/queue/enums/strategy.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/roots/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/roots/paths.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/session/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/session/entities/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/session/entities/session.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/session/enums/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/session/enums/same_site_policy.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/session/helpers/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/session/helpers/secret_key.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/startup.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/testing/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/testing/entities/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/testing/entities/testing.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/testing/enums/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/testing/enums/drivers.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/testing/enums/mode.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/config/testing/enums/verbosity.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/contracts/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/contracts/application.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/contracts/config.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/exceptions/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/exceptions/integrity.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/exceptions/runtime.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/exceptions/type.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/exceptions/value.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/providers/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/providers/catch_provider.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/providers/console_provider.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/providers/directory_provider.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/providers/dumper_provider.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/providers/executor_provider.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/providers/inspirational_provider.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/providers/logger_provider.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/providers/performance_counter_provider.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/providers/progress_bar_provider.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/providers/reactor_provider.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/providers/scheduler_provider.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/providers/testing_provider.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/foundation/providers/workers_provider.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/metadata/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/metadata/package.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/asynchrony/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/asynchrony/contracts/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/asynchrony/contracts/coroutines.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/asynchrony/coroutines.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/asynchrony/exceptions/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/asynchrony/exceptions/exception.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/environment/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/environment/contracts/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/environment/contracts/caster.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/environment/contracts/env.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/environment/core/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/environment/core/dot_env.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/environment/dynamic/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/environment/dynamic/caster.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/environment/enums/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/environment/enums/value_type.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/environment/env.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/environment/exceptions/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/environment/exceptions/exception.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/environment/exceptions/value.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/environment/helpers/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/environment/helpers/functions.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/environment/key/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/environment/key/key_generator.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/environment/validators/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/environment/validators/key_name.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/environment/validators/types.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/file/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/file/contracts/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/file/contracts/directory.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/file/directory.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/inspirational/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/inspirational/contracts/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/inspirational/contracts/inspire.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/inspirational/inspire.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/inspirational/quotes.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/introspection/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/introspection/abstract/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/introspection/abstract/contracts/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/introspection/abstract/contracts/reflection.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/introspection/abstract/reflection.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/introspection/callables/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/introspection/callables/contracts/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/introspection/callables/contracts/reflection.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/introspection/callables/reflection.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/introspection/concretes/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/introspection/concretes/contracts/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/introspection/concretes/contracts/reflection.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/introspection/concretes/reflection.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/introspection/dependencies/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/introspection/dependencies/contracts/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/introspection/dependencies/contracts/reflection.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/introspection/dependencies/entities/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/introspection/dependencies/entities/argument.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/introspection/dependencies/entities/resolve_argument.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/introspection/dependencies/reflection.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/introspection/exceptions/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/introspection/exceptions/attribute.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/introspection/exceptions/type.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/introspection/exceptions/value.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/introspection/instances/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/introspection/instances/contracts/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/introspection/instances/contracts/reflection.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/introspection/instances/reflection.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/introspection/modules/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/introspection/modules/contracts/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/introspection/modules/contracts/reflection.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/introspection/modules/reflection.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/introspection/objects/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/introspection/objects/types.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/introspection/reflection.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/log/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/log/contracts/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/log/contracts/log_service.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/log/exceptions/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/log/exceptions/runtime.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/log/handlers/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/log/handlers/filename.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/log/handlers/size_rotating.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/log/handlers/timed_rotating.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/log/log_service.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/system/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/system/contracts/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/system/contracts/imports.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/system/contracts/workers.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/system/imports.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/system/runtime/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/system/runtime/imports.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/services/system/workers.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/support/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/support/entities/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/support/entities/base.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/support/facades/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/support/facades/application.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/support/facades/console.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/support/facades/dumper.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/support/facades/executor.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/support/facades/inspire.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/support/facades/logger.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/support/facades/performance_counter.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/support/facades/progress_bar.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/support/facades/reactor.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/support/facades/testing.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/support/facades/workers.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/support/formatter/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/support/formatter/exceptions/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/support/formatter/exceptions/contracts/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/support/formatter/exceptions/contracts/parser.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/support/formatter/exceptions/parser.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/support/formatter/serializer.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/support/patterns/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/support/patterns/singleton/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/support/patterns/singleton/meta.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/support/performance/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/support/performance/contracts/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/support/performance/contracts/counter.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/support/performance/counter.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/support/standard/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/support/standard/contracts/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/support/standard/contracts/std.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/support/standard/exceptions/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/support/standard/exceptions/value.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/support/standard/std.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/support/wrapper/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/support/wrapper/dot_dict.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/test/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/test/cases/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/test/cases/asynchronous.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/test/cases/synchronous.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/test/contracts/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/test/contracts/dumper.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/test/contracts/kernel.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/test/contracts/logs.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/test/contracts/printer.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/test/contracts/render.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/test/contracts/test_result.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/test/contracts/unit_test.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/test/core/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/test/core/unit_test.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/test/entities/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/test/entities/result.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/test/enums/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/test/enums/status.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/test/exceptions/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/test/exceptions/config.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/test/exceptions/failure.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/test/exceptions/persistence.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/test/exceptions/runtime.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/test/exceptions/value.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/test/kernel.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/test/output/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/test/output/dumper.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/test/output/printer.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/test/records/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/test/records/logs.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/test/validators/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/test/validators/base_path.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/test/validators/execution_mode.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/test/validators/fail_fast.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/test/validators/folder_path.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/test/validators/module_name.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/test/validators/name_pattern.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/test/validators/pattern.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/test/validators/persistent.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/test/validators/persistent_driver.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/test/validators/print_result.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/test/validators/tags.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/test/validators/throw_exception.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/test/validators/verbosity.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/test/validators/web_report.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/test/validators/workers.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/test/view/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis/test/view/render.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis.egg-info/SOURCES.txt +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis.egg-info/dependency_links.txt +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis.egg-info/requires.txt +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis.egg-info/top_level.txt +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/orionis.egg-info/zip-safe +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/setup.cfg +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/setup.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/container/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/container/context/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/container/context/test_manager.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/container/context/test_scope.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/container/core/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/container/core/test_advanced_async.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/container/core/test_async_optimizations.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/container/core/test_container.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/container/core/test_singleton.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/container/core/test_thread_safety.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/container/entities/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/container/entities/test_binding.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/container/enums/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/container/enums/test_lifetimes.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/container/facades/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/container/facades/test_facade.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/container/mocks/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/container/mocks/mock_advanced_async.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/container/mocks/mock_async_optimizations.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/container/mocks/mock_auto_resolution.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/container/mocks/mock_complex_classes.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/container/mocks/mock_simple_classes.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/container/providers/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/container/providers/test_providers.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/container/validators/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/container/validators/test_implements.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/container/validators/test_is_abstract_class.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/container/validators/test_is_callable.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/container/validators/test_is_concrete_class.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/container/validators/test_is_instance.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/container/validators/test_is_not_subclass.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/container/validators/test_is_subclass.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/container/validators/test_is_valid_alias.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/container/validators/test_lifetime.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/example/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/example/test_example.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/foundation/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/foundation/config/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/foundation/config/app/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/foundation/config/app/test_foundation_config_app.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/foundation/config/auth/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/foundation/config/auth/test_foundation_config_auth.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/foundation/config/cache/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/foundation/config/cache/test_foundation_config_cache.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/foundation/config/cache/test_foundation_config_cache_file.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/foundation/config/cache/test_foundation_config_cache_stores.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/foundation/config/cors/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/foundation/config/cors/test_foundation_config_cors.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/foundation/config/database/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/foundation/config/database/test_foundation_config_database.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/foundation/config/database/test_foundation_config_database_connections.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/foundation/config/database/test_foundation_config_database_mysql.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/foundation/config/database/test_foundation_config_database_oracle.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/foundation/config/database/test_foundation_config_database_pgsql.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/foundation/config/database/test_foundation_config_database_sqlite.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/foundation/config/filesystems/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems_aws.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems_disks.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems_local.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems_public.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/foundation/config/logging/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/foundation/config/logging/test_foundation_config_logging.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/foundation/config/logging/test_foundation_config_logging_channels.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/foundation/config/logging/test_foundation_config_logging_chunked.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/foundation/config/logging/test_foundation_config_logging_daily.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/foundation/config/logging/test_foundation_config_logging_hourly.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/foundation/config/logging/test_foundation_config_logging_monthly.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/foundation/config/logging/test_foundation_config_logging_stack.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/foundation/config/logging/test_foundation_config_logging_weekly.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/foundation/config/mail/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/foundation/config/mail/test_foundation_config_mail.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/foundation/config/mail/test_foundation_config_mail_file.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/foundation/config/mail/test_foundation_config_mail_mailers.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/foundation/config/mail/test_foundation_config_mail_smtp.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/foundation/config/queue/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/foundation/config/queue/test_foundation_config_queue.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/foundation/config/queue/test_foundation_config_queue_brokers.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/foundation/config/queue/test_foundation_config_queue_database.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/foundation/config/root/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/foundation/config/root/test_foundation_config_root_paths.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/foundation/config/session/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/foundation/config/session/test_foundation_config_session.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/foundation/config/startup/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/foundation/config/startup/test_foundation_config_startup.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/foundation/config/testing/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/foundation/config/testing/test_foundation_config_testing.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/metadata/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/metadata/test_metadata_framework.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/metadata/test_metadata_package.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/services/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/services/asynchrony/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/services/asynchrony/test_services_asynchrony_coroutine.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/services/environment/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/services/environment/test_services_environment.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/services/introspection/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/services/introspection/dependencies/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/services/introspection/dependencies/mocks/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/services/introspection/dependencies/mocks/mock_user.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/services/introspection/dependencies/mocks/mock_user_controller.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/services/introspection/dependencies/mocks/mock_users_permissions.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/services/introspection/dependencies/test_reflect_dependencies.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/services/introspection/reflection/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/services/introspection/reflection/mock/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/services/introspection/reflection/mock/fake_reflect_instance.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/services/introspection/reflection/test_reflection_abstract.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/services/introspection/reflection/test_reflection_callable.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/services/introspection/reflection/test_reflection_concrete.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/services/introspection/reflection/test_reflection_instance.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/services/introspection/reflection/test_reflection_module.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/services/introspection/test_reflection.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/services/log/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/services/log/test_log.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/services/system/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/services/system/test_services_system_imports.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/services/system/test_services_system_workers.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/support/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/support/entities/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/support/entities/mock_dataclass.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/support/entities/test_base.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/support/patterns/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/support/patterns/singleton/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/support/patterns/singleton/test_patterns_singleton.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/support/standard/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/support/standard/test_services_std.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/support/wrapper/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/support/wrapper/test_services_wrapper_docdict.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/testing/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/testing/cases/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/testing/cases/test_testing_asynchronous.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/testing/cases/test_testing_synchronous.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/testing/entities/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/testing/entities/test_testing_result.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/testing/enums/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/testing/enums/test_testing_status.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/testing/output/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/testing/output/test_testing_dumper.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/testing/output/test_testing_printer.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/testing/records/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/testing/records/test_testing_records.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/testing/test_testing_unit.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/testing/validators/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/testing/validators/test_testing_validators.py +0 -0
- {orionis-0.517.0 → orionis-0.519.0}/tests/testing/view/__init__.py +0 -0
- {orionis-0.517.0 → orionis-0.519.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,
|
|
@@ -288,7 +289,7 @@ class Scheduler(ISchedule):
|
|
|
288
289
|
# Return the Event instance for further scheduling configuration
|
|
289
290
|
return self.__events[signature]
|
|
290
291
|
|
|
291
|
-
def
|
|
292
|
+
def __subscribeListeners(
|
|
292
293
|
self
|
|
293
294
|
) -> None:
|
|
294
295
|
"""
|
|
@@ -366,12 +367,16 @@ class Scheduler(ISchedule):
|
|
|
366
367
|
|
|
367
368
|
# Ensure the listener is callable before invoking it
|
|
368
369
|
if callable(listener):
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
asyncio.
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
370
|
+
try:
|
|
371
|
+
# If the listener is a coroutine, schedule it as an asyncio task
|
|
372
|
+
if asyncio.iscoroutinefunction(listener):
|
|
373
|
+
asyncio.create_task(listener(event_data, self))
|
|
374
|
+
# Otherwise, invoke the listener directly as a regular function
|
|
375
|
+
else:
|
|
376
|
+
listener(event_data, self)
|
|
377
|
+
except Exception as e:
|
|
378
|
+
# Log any exceptions that occur during listener invocation
|
|
379
|
+
self.__logger.error(f"Error invoking global listener for event '{scheduler_event}': {str(e)}")
|
|
375
380
|
|
|
376
381
|
def __taskCallableListener(
|
|
377
382
|
self,
|
|
@@ -411,6 +416,10 @@ class Scheduler(ISchedule):
|
|
|
411
416
|
if not isinstance(listening_vent, ListeningEvent):
|
|
412
417
|
raise CLIOrionisValueError("The event must be an instance of ListeningEvent.")
|
|
413
418
|
|
|
419
|
+
# Validate that event_data is not None and has a job_id attribute
|
|
420
|
+
if event_data is None or not hasattr(event_data, 'job_id'):
|
|
421
|
+
return
|
|
422
|
+
|
|
414
423
|
# Retrieve the global identifier for the event from the ListeningEvent enum
|
|
415
424
|
scheduler_event = listening_vent.value
|
|
416
425
|
|
|
@@ -427,13 +436,17 @@ class Scheduler(ISchedule):
|
|
|
427
436
|
if hasattr(listener, scheduler_event) and callable(getattr(listener, scheduler_event)):
|
|
428
437
|
listener_method = getattr(listener, scheduler_event)
|
|
429
438
|
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
439
|
+
try:
|
|
440
|
+
# Invoke the listener method, handling both coroutine and regular functions
|
|
441
|
+
if asyncio.iscoroutinefunction(listener_method):
|
|
442
|
+
# Schedule the coroutine listener method as an asyncio task
|
|
443
|
+
asyncio.create_task(listener_method(event_data, self))
|
|
444
|
+
else:
|
|
445
|
+
# Call the regular listener method directly
|
|
446
|
+
listener_method(event_data, self)
|
|
447
|
+
except Exception as e:
|
|
448
|
+
# Log any exceptions that occur during listener invocation
|
|
449
|
+
self.__logger.error(f"Error invoking listener method '{scheduler_event}' for job '{event_data.job_id}': {str(e)}")
|
|
437
450
|
|
|
438
451
|
def __startedListener(
|
|
439
452
|
self,
|
|
@@ -524,7 +537,7 @@ class Scheduler(ISchedule):
|
|
|
524
537
|
# Log an informational message indicating that the scheduler has been paused
|
|
525
538
|
self.__logger.info(message)
|
|
526
539
|
|
|
527
|
-
# Check if a listener is registered for the scheduler
|
|
540
|
+
# Check if a listener is registered for the scheduler paused event
|
|
528
541
|
self.__globalCallableListener(event, ListeningEvent.SCHEDULER_PAUSED)
|
|
529
542
|
|
|
530
543
|
def __resumedListener(
|
|
@@ -561,7 +574,7 @@ class Scheduler(ISchedule):
|
|
|
561
574
|
# Log an informational message indicating that the scheduler has resumed
|
|
562
575
|
self.__logger.info(message)
|
|
563
576
|
|
|
564
|
-
# Check if a listener is registered for the scheduler
|
|
577
|
+
# Check if a listener is registered for the scheduler resumed event
|
|
565
578
|
self.__globalCallableListener(event, ListeningEvent.SCHEDULER_RESUMED)
|
|
566
579
|
|
|
567
580
|
def __shutdownListener(
|
|
@@ -598,7 +611,7 @@ class Scheduler(ISchedule):
|
|
|
598
611
|
# Log an informational message indicating that the scheduler has shut down
|
|
599
612
|
self.__logger.info(message)
|
|
600
613
|
|
|
601
|
-
# Check if a listener is registered for the scheduler
|
|
614
|
+
# Check if a listener is registered for the scheduler shutdown event
|
|
602
615
|
self.__globalCallableListener(event, ListeningEvent.SCHEDULER_SHUTDOWN)
|
|
603
616
|
|
|
604
617
|
def __errorListener(
|
|
@@ -878,11 +891,11 @@ class Scheduler(ISchedule):
|
|
|
878
891
|
self.__jobs.append(entity)
|
|
879
892
|
|
|
880
893
|
# Create a unique key for the job based on its signature
|
|
894
|
+
def create_job_func(cmd, args_list):
|
|
895
|
+
return lambda: self.__reactor.call(cmd, args_list)
|
|
896
|
+
|
|
881
897
|
self.__scheduler.add_job(
|
|
882
|
-
func=
|
|
883
|
-
command,
|
|
884
|
-
args
|
|
885
|
-
),
|
|
898
|
+
func=create_job_func(signature, list(entity.args)),
|
|
886
899
|
trigger=entity.trigger,
|
|
887
900
|
id=signature,
|
|
888
901
|
name=signature,
|
|
@@ -979,8 +992,7 @@ class Scheduler(ISchedule):
|
|
|
979
992
|
# Add a job to the scheduler to pause it at the specified datetime
|
|
980
993
|
self.__scheduler.add_job(
|
|
981
994
|
func=self.__scheduler.pause, # Function to pause the scheduler
|
|
982
|
-
trigger=
|
|
983
|
-
run_date=at, # The datetime at which the job will run
|
|
995
|
+
trigger=DateTrigger(run_date=at), # Trigger type is 'date' for one-time execution
|
|
984
996
|
id=f"pause_scheduler_at_{at.isoformat()}", # Unique job ID based on the datetime
|
|
985
997
|
name=f"Pause Scheduler at {at.isoformat()}", # Descriptive name for the job
|
|
986
998
|
replace_existing=True # Replace any existing job with the same ID
|
|
@@ -1022,8 +1034,7 @@ class Scheduler(ISchedule):
|
|
|
1022
1034
|
# Add a job to the scheduler to resume it at the specified datetime
|
|
1023
1035
|
self.__scheduler.add_job(
|
|
1024
1036
|
func=self.__scheduler.resume, # Function to resume the scheduler
|
|
1025
|
-
trigger=
|
|
1026
|
-
run_date=at, # The datetime at which the job will run
|
|
1037
|
+
trigger=DateTrigger(run_date=at), # Trigger type is 'date' for one-time execution
|
|
1027
1038
|
id=f"resume_scheduler_at_{at.isoformat()}", # Unique job ID based on the datetime
|
|
1028
1039
|
name=f"Resume Scheduler at {at.isoformat()}", # Descriptive name for the job
|
|
1029
1040
|
replace_existing=True # Replace any existing job with the same ID
|
|
@@ -1065,8 +1076,7 @@ class Scheduler(ISchedule):
|
|
|
1065
1076
|
# Add a job to the scheduler to shut it down at the specified datetime
|
|
1066
1077
|
self.__scheduler.add_job(
|
|
1067
1078
|
func=self.__scheduler.shutdown, # Function to shut down the scheduler
|
|
1068
|
-
trigger=
|
|
1069
|
-
run_date=at, # The datetime at which the job will run
|
|
1079
|
+
trigger=DateTrigger(run_date=at), # Trigger type is 'date' for one-time execution
|
|
1070
1080
|
id=f"shutdown_scheduler_at_{at.isoformat()}", # Unique job ID based on the datetime
|
|
1071
1081
|
name=f"Shutdown Scheduler at {at.isoformat()}", # Descriptive name for the job
|
|
1072
1082
|
replace_existing=True # Replace any existing job with the same ID
|
|
@@ -1093,7 +1103,7 @@ class Scheduler(ISchedule):
|
|
|
1093
1103
|
self.__loadEvents()
|
|
1094
1104
|
|
|
1095
1105
|
# Subscribe to scheduler events for monitoring and handling
|
|
1096
|
-
self.
|
|
1106
|
+
self.__subscribeListeners()
|
|
1097
1107
|
|
|
1098
1108
|
# Ensure we're in an asyncio context
|
|
1099
1109
|
asyncio.get_running_loop()
|
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
from datetime import datetime
|
|
2
|
-
from orionis.console.contracts.scheduler import IBaseScheduler
|
|
3
|
-
from orionis.console.contracts.schedule import ISchedule
|
|
4
|
-
|
|
5
|
-
class BaseScheduler(IBaseScheduler):
|
|
6
|
-
|
|
7
|
-
# Pause Global Scheduler at a specific time
|
|
8
|
-
PAUSE_AT: datetime = None
|
|
9
|
-
|
|
10
|
-
# Resume Global Scheduler at a specific time
|
|
11
|
-
RESUME_AT: datetime = None
|
|
12
|
-
|
|
13
|
-
# Finalize Global Scheduler at a specific time
|
|
14
|
-
FINALIZE_AT: datetime = None
|
|
15
|
-
|
|
16
|
-
async def tasks(self, schedule: ISchedule):
|
|
17
|
-
"""
|
|
18
|
-
Defines and registers scheduled tasks for the application.
|
|
19
|
-
|
|
20
|
-
Parameters
|
|
21
|
-
----------
|
|
22
|
-
schedule : ISchedule
|
|
23
|
-
The schedule object used to define and register scheduled commands.
|
|
24
|
-
|
|
25
|
-
Returns
|
|
26
|
-
-------
|
|
27
|
-
None
|
|
28
|
-
This method does not return any value. It is intended to be overridden
|
|
29
|
-
by subclasses to specify scheduled tasks.
|
|
30
|
-
"""
|
|
31
|
-
# Placeholder for task registration logic
|
|
32
|
-
pass
|
|
33
|
-
|
|
34
|
-
async def onStarted(self):
|
|
35
|
-
"""
|
|
36
|
-
Called when the scheduler is started.
|
|
37
|
-
|
|
38
|
-
Returns
|
|
39
|
-
-------
|
|
40
|
-
None
|
|
41
|
-
This method does not return any value.
|
|
42
|
-
|
|
43
|
-
Notes
|
|
44
|
-
-----
|
|
45
|
-
Intended to be overridden by subclasses to implement custom behavior that should
|
|
46
|
-
occur when the scheduler starts running.
|
|
47
|
-
"""
|
|
48
|
-
# Placeholder for logic to execute when the scheduler starts
|
|
49
|
-
pass
|
|
50
|
-
|
|
51
|
-
async def onPaused(self):
|
|
52
|
-
"""
|
|
53
|
-
Called when the scheduler is paused.
|
|
54
|
-
|
|
55
|
-
Returns
|
|
56
|
-
-------
|
|
57
|
-
None
|
|
58
|
-
This method does not return any value.
|
|
59
|
-
|
|
60
|
-
Notes
|
|
61
|
-
-----
|
|
62
|
-
Should be overridden to define custom behavior that occurs when the scheduler
|
|
63
|
-
enters a paused state.
|
|
64
|
-
"""
|
|
65
|
-
# Placeholder for logic to execute when the scheduler is paused
|
|
66
|
-
pass
|
|
67
|
-
|
|
68
|
-
async def onResumed(self):
|
|
69
|
-
"""
|
|
70
|
-
Called when the scheduler is resumed from a paused state.
|
|
71
|
-
|
|
72
|
-
Returns
|
|
73
|
-
-------
|
|
74
|
-
None
|
|
75
|
-
This method does not return any value.
|
|
76
|
-
|
|
77
|
-
Notes
|
|
78
|
-
-----
|
|
79
|
-
Should be overridden to implement any actions that need to occur when the
|
|
80
|
-
scheduler resumes operation.
|
|
81
|
-
"""
|
|
82
|
-
# Placeholder for logic to execute when the scheduler is resumed
|
|
83
|
-
pass
|
|
84
|
-
|
|
85
|
-
async def onFinalized(self):
|
|
86
|
-
"""
|
|
87
|
-
Called when the scheduler has completed its execution and is being finalized.
|
|
88
|
-
|
|
89
|
-
Returns
|
|
90
|
-
-------
|
|
91
|
-
None
|
|
92
|
-
This method does not return any value.
|
|
93
|
-
|
|
94
|
-
Notes
|
|
95
|
-
-----
|
|
96
|
-
Can be overridden to perform any necessary cleanup or finalization tasks.
|
|
97
|
-
"""
|
|
98
|
-
# Placeholder for logic to execute when the scheduler is finalized
|
|
99
|
-
pass
|
|
100
|
-
|
|
101
|
-
async def onError(self, error: Exception):
|
|
102
|
-
"""
|
|
103
|
-
Handles errors that occur within the scheduler.
|
|
104
|
-
|
|
105
|
-
Parameters
|
|
106
|
-
----------
|
|
107
|
-
error : Exception
|
|
108
|
-
The exception instance representing the error that occurred.
|
|
109
|
-
|
|
110
|
-
Returns
|
|
111
|
-
-------
|
|
112
|
-
None
|
|
113
|
-
This method does not return any value.
|
|
114
|
-
|
|
115
|
-
Notes
|
|
116
|
-
-----
|
|
117
|
-
Can be overridden to implement custom error handling logic for the scheduler.
|
|
118
|
-
"""
|
|
119
|
-
# Placeholder for logic to handle errors in the scheduler
|
|
120
|
-
pass
|