orionis 0.513.0__tar.gz → 0.514.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.513.0/orionis.egg-info → orionis-0.514.0}/PKG-INFO +1 -1
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/base/scheduler_event_listener.py +9 -10
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/commands/scheduler_list.py +3 -3
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/commands/scheduler_work.py +19 -16
- orionis-0.514.0/orionis/console/contracts/schedule.py +327 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/contracts/schedule_event_listener.py +0 -34
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/entities/job_modified.py +1 -2
- orionis-0.514.0/orionis/console/enums/event.py +63 -0
- orionis-0.514.0/orionis/console/enums/listener.py +63 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/tasks/event.py +31 -13
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/tasks/schedule.py +589 -360
- {orionis-0.513.0 → orionis-0.514.0}/orionis/metadata/framework.py +1 -1
- {orionis-0.513.0 → orionis-0.514.0/orionis.egg-info}/PKG-INFO +1 -1
- orionis-0.513.0/orionis/console/contracts/schedule.py +0 -161
- orionis-0.513.0/orionis/console/enums/event.py +0 -55
- orionis-0.513.0/orionis/console/enums/listener.py +0 -75
- {orionis-0.513.0 → orionis-0.514.0}/LICENCE +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/MANIFEST.in +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/README.md +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/app.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/args/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/args/argument.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/args/enums/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/args/enums/actions.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/base/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/base/command.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/base/scheduler.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/commands/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/commands/cache.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/commands/help.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/commands/publisher.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/commands/test.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/commands/version.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/commands/workflow.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/contracts/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/contracts/command.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/contracts/event.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/contracts/kernel.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/contracts/reactor.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/contracts/scheduler.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/core/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/core/reactor.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/dumper/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/dumper/contracts/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/dumper/contracts/dump.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/dumper/dump.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/dynamic/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/dynamic/contracts/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/dynamic/contracts/progress_bar.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/dynamic/progress_bar.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/entities/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/entities/all_jobs_removed.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/entities/executor_added.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/entities/executor_removed.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/entities/job_added.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/entities/job_error.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/entities/job_event_data.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/entities/job_executed.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/entities/job_max_instances.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/entities/job_missed.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/entities/job_pause.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/entities/job_removed.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/entities/job_resume.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/entities/job_store_added.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/entities/job_store_removed.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/entities/job_submitted.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/entities/request.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/entities/scheduler_event_data.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/entities/scheduler_paused.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/entities/scheduler_resumed.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/entities/scheduler_shutdown.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/entities/scheduler_started.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/enums/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/enums/command.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/exceptions/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/exceptions/cli_exception.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/exceptions/cli_orionis_value_error.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/exceptions/cli_runtime_error.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/exceptions/cli_schedule_exception.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/kernel.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/output/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/output/console.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/output/contracts/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/output/contracts/console.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/output/contracts/executor.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/output/enums/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/output/enums/styles.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/output/executor.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/request/cli_request.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/tasks/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/console/tasks/listener.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/container/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/container/container.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/container/context/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/container/context/manager.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/container/context/scope.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/container/contracts/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/container/contracts/container.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/container/contracts/service_provider.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/container/entities/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/container/entities/binding.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/container/enums/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/container/enums/lifetimes.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/container/exceptions/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/container/exceptions/attribute.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/container/exceptions/exception.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/container/exceptions/type.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/container/exceptions/value.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/container/facades/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/container/facades/facade.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/container/providers/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/container/providers/service_provider.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/container/validators/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/container/validators/implements.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/container/validators/is_abstract_class.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/container/validators/is_callable.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/container/validators/is_concrete_class.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/container/validators/is_instance.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/container/validators/is_not_subclass.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/container/validators/is_subclass.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/container/validators/is_valid_alias.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/container/validators/lifetime.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/failure/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/failure/base/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/failure/base/handler.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/failure/catch.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/failure/contracts/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/failure/contracts/catch.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/failure/contracts/handler.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/failure/entities/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/failure/entities/throwable.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/application.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/app/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/app/entities/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/app/entities/app.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/app/enums/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/app/enums/ciphers.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/app/enums/environments.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/auth/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/auth/entities/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/auth/entities/auth.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/cache/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/cache/entities/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/cache/entities/cache.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/cache/entities/file.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/cache/entities/stores.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/cache/enums/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/cache/enums/drivers.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/cors/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/cors/entities/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/cors/entities/cors.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/database/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/database/entities/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/database/entities/connections.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/database/entities/database.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/database/entities/mysql.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/database/entities/oracle.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/database/entities/pgsql.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/database/entities/sqlite.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/database/enums/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/database/enums/mysql_charsets.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/database/enums/mysql_collations.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/database/enums/mysql_engine.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/database/enums/oracle_encoding.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/database/enums/oracle_nencoding.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/database/enums/pgsql_charsets.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/database/enums/pgsql_collations.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/database/enums/pgsql_mode.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/database/enums/sqlite_foreign_key.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/database/enums/sqlite_journal.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/database/enums/sqlite_synchronous.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/filesystems/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/filesystems/entitites/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/filesystems/entitites/aws.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/filesystems/entitites/disks.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/filesystems/entitites/filesystems.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/filesystems/entitites/local.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/filesystems/entitites/public.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/logging/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/logging/entities/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/logging/entities/channels.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/logging/entities/chunked.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/logging/entities/daily.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/logging/entities/hourly.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/logging/entities/logging.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/logging/entities/monthly.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/logging/entities/stack.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/logging/entities/weekly.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/logging/enums/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/logging/enums/levels.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/logging/validators/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/logging/validators/level.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/logging/validators/path.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/mail/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/mail/entities/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/mail/entities/file.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/mail/entities/mail.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/mail/entities/mailers.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/mail/entities/smtp.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/queue/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/queue/entities/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/queue/entities/brokers.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/queue/entities/database.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/queue/entities/queue.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/queue/enums/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/queue/enums/strategy.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/roots/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/roots/paths.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/session/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/session/entities/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/session/entities/session.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/session/enums/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/session/enums/same_site_policy.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/session/helpers/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/session/helpers/secret_key.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/startup.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/testing/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/testing/entities/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/testing/entities/testing.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/testing/enums/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/testing/enums/drivers.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/testing/enums/mode.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/config/testing/enums/verbosity.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/contracts/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/contracts/application.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/contracts/config.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/exceptions/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/exceptions/integrity.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/exceptions/runtime.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/exceptions/type.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/exceptions/value.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/providers/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/providers/catch_provider.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/providers/console_provider.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/providers/directory_provider.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/providers/dumper_provider.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/providers/executor_provider.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/providers/inspirational_provider.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/providers/logger_provider.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/providers/performance_counter_provider.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/providers/progress_bar_provider.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/providers/reactor_provider.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/providers/scheduler_provider.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/providers/testing_provider.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/foundation/providers/workers_provider.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/metadata/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/metadata/package.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/asynchrony/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/asynchrony/contracts/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/asynchrony/contracts/coroutines.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/asynchrony/coroutines.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/asynchrony/exceptions/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/asynchrony/exceptions/exception.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/environment/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/environment/contracts/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/environment/contracts/caster.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/environment/contracts/env.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/environment/core/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/environment/core/dot_env.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/environment/dynamic/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/environment/dynamic/caster.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/environment/enums/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/environment/enums/value_type.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/environment/env.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/environment/exceptions/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/environment/exceptions/exception.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/environment/exceptions/value.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/environment/helpers/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/environment/helpers/functions.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/environment/key/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/environment/key/key_generator.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/environment/validators/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/environment/validators/key_name.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/environment/validators/types.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/file/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/file/contracts/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/file/contracts/directory.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/file/directory.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/inspirational/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/inspirational/contracts/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/inspirational/contracts/inspire.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/inspirational/inspire.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/inspirational/quotes.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/introspection/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/introspection/abstract/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/introspection/abstract/contracts/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/introspection/abstract/contracts/reflection.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/introspection/abstract/reflection.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/introspection/callables/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/introspection/callables/contracts/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/introspection/callables/contracts/reflection.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/introspection/callables/reflection.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/introspection/concretes/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/introspection/concretes/contracts/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/introspection/concretes/contracts/reflection.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/introspection/concretes/reflection.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/introspection/dependencies/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/introspection/dependencies/contracts/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/introspection/dependencies/contracts/reflection.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/introspection/dependencies/entities/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/introspection/dependencies/entities/argument.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/introspection/dependencies/entities/resolve_argument.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/introspection/dependencies/reflection.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/introspection/exceptions/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/introspection/exceptions/attribute.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/introspection/exceptions/type.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/introspection/exceptions/value.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/introspection/instances/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/introspection/instances/contracts/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/introspection/instances/contracts/reflection.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/introspection/instances/reflection.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/introspection/modules/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/introspection/modules/contracts/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/introspection/modules/contracts/reflection.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/introspection/modules/reflection.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/introspection/objects/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/introspection/objects/types.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/introspection/reflection.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/log/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/log/contracts/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/log/contracts/log_service.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/log/exceptions/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/log/exceptions/runtime.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/log/handlers/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/log/handlers/filename.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/log/handlers/size_rotating.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/log/handlers/timed_rotating.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/log/log_service.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/system/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/system/contracts/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/system/contracts/imports.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/system/contracts/workers.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/system/imports.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/system/runtime/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/system/runtime/imports.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/services/system/workers.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/support/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/support/entities/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/support/entities/base.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/support/facades/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/support/facades/application.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/support/facades/console.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/support/facades/dumper.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/support/facades/executor.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/support/facades/inspire.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/support/facades/logger.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/support/facades/performance_counter.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/support/facades/progress_bar.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/support/facades/reactor.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/support/facades/testing.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/support/facades/workers.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/support/formatter/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/support/formatter/exceptions/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/support/formatter/exceptions/contracts/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/support/formatter/exceptions/contracts/parser.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/support/formatter/exceptions/parser.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/support/formatter/serializer.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/support/patterns/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/support/patterns/singleton/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/support/patterns/singleton/meta.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/support/performance/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/support/performance/contracts/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/support/performance/contracts/counter.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/support/performance/counter.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/support/standard/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/support/standard/contracts/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/support/standard/contracts/std.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/support/standard/exceptions/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/support/standard/exceptions/value.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/support/standard/std.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/support/wrapper/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/support/wrapper/dot_dict.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/test/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/test/cases/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/test/cases/asynchronous.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/test/cases/synchronous.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/test/contracts/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/test/contracts/dumper.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/test/contracts/kernel.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/test/contracts/logs.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/test/contracts/printer.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/test/contracts/render.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/test/contracts/test_result.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/test/contracts/unit_test.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/test/core/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/test/core/unit_test.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/test/entities/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/test/entities/result.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/test/enums/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/test/enums/status.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/test/exceptions/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/test/exceptions/config.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/test/exceptions/failure.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/test/exceptions/persistence.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/test/exceptions/runtime.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/test/exceptions/value.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/test/kernel.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/test/output/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/test/output/dumper.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/test/output/printer.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/test/records/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/test/records/logs.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/test/validators/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/test/validators/base_path.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/test/validators/execution_mode.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/test/validators/fail_fast.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/test/validators/folder_path.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/test/validators/module_name.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/test/validators/name_pattern.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/test/validators/pattern.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/test/validators/persistent.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/test/validators/persistent_driver.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/test/validators/print_result.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/test/validators/tags.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/test/validators/throw_exception.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/test/validators/verbosity.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/test/validators/web_report.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/test/validators/workers.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/test/view/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis/test/view/render.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis.egg-info/SOURCES.txt +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis.egg-info/dependency_links.txt +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis.egg-info/requires.txt +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis.egg-info/top_level.txt +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/orionis.egg-info/zip-safe +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/setup.cfg +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/setup.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/container/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/container/context/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/container/context/test_manager.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/container/context/test_scope.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/container/core/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/container/core/test_advanced_async.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/container/core/test_async_optimizations.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/container/core/test_container.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/container/core/test_singleton.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/container/core/test_thread_safety.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/container/entities/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/container/entities/test_binding.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/container/enums/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/container/enums/test_lifetimes.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/container/facades/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/container/facades/test_facade.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/container/mocks/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/container/mocks/mock_advanced_async.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/container/mocks/mock_async_optimizations.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/container/mocks/mock_auto_resolution.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/container/mocks/mock_complex_classes.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/container/mocks/mock_simple_classes.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/container/providers/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/container/providers/test_providers.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/container/validators/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/container/validators/test_implements.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/container/validators/test_is_abstract_class.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/container/validators/test_is_callable.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/container/validators/test_is_concrete_class.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/container/validators/test_is_instance.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/container/validators/test_is_not_subclass.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/container/validators/test_is_subclass.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/container/validators/test_is_valid_alias.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/container/validators/test_lifetime.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/example/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/example/test_example.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/foundation/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/foundation/config/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/foundation/config/app/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/foundation/config/app/test_foundation_config_app.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/foundation/config/auth/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/foundation/config/auth/test_foundation_config_auth.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/foundation/config/cache/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/foundation/config/cache/test_foundation_config_cache.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/foundation/config/cache/test_foundation_config_cache_file.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/foundation/config/cache/test_foundation_config_cache_stores.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/foundation/config/cors/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/foundation/config/cors/test_foundation_config_cors.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/foundation/config/database/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/foundation/config/database/test_foundation_config_database.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/foundation/config/database/test_foundation_config_database_connections.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/foundation/config/database/test_foundation_config_database_mysql.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/foundation/config/database/test_foundation_config_database_oracle.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/foundation/config/database/test_foundation_config_database_pgsql.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/foundation/config/database/test_foundation_config_database_sqlite.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/foundation/config/filesystems/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems_aws.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems_disks.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems_local.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems_public.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/foundation/config/logging/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/foundation/config/logging/test_foundation_config_logging.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/foundation/config/logging/test_foundation_config_logging_channels.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/foundation/config/logging/test_foundation_config_logging_chunked.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/foundation/config/logging/test_foundation_config_logging_daily.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/foundation/config/logging/test_foundation_config_logging_hourly.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/foundation/config/logging/test_foundation_config_logging_monthly.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/foundation/config/logging/test_foundation_config_logging_stack.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/foundation/config/logging/test_foundation_config_logging_weekly.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/foundation/config/mail/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/foundation/config/mail/test_foundation_config_mail.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/foundation/config/mail/test_foundation_config_mail_file.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/foundation/config/mail/test_foundation_config_mail_mailers.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/foundation/config/mail/test_foundation_config_mail_smtp.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/foundation/config/queue/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/foundation/config/queue/test_foundation_config_queue.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/foundation/config/queue/test_foundation_config_queue_brokers.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/foundation/config/queue/test_foundation_config_queue_database.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/foundation/config/root/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/foundation/config/root/test_foundation_config_root_paths.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/foundation/config/session/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/foundation/config/session/test_foundation_config_session.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/foundation/config/startup/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/foundation/config/startup/test_foundation_config_startup.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/foundation/config/testing/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/foundation/config/testing/test_foundation_config_testing.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/metadata/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/metadata/test_metadata_framework.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/metadata/test_metadata_package.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/services/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/services/asynchrony/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/services/asynchrony/test_services_asynchrony_coroutine.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/services/environment/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/services/environment/test_services_environment.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/services/introspection/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/services/introspection/dependencies/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/services/introspection/dependencies/mocks/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/services/introspection/dependencies/mocks/mock_user.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/services/introspection/dependencies/mocks/mock_user_controller.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/services/introspection/dependencies/mocks/mock_users_permissions.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/services/introspection/dependencies/test_reflect_dependencies.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/services/introspection/reflection/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/services/introspection/reflection/mock/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/services/introspection/reflection/mock/fake_reflect_instance.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/services/introspection/reflection/test_reflection_abstract.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/services/introspection/reflection/test_reflection_callable.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/services/introspection/reflection/test_reflection_concrete.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/services/introspection/reflection/test_reflection_instance.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/services/introspection/reflection/test_reflection_module.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/services/introspection/test_reflection.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/services/log/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/services/log/test_log.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/services/system/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/services/system/test_services_system_imports.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/services/system/test_services_system_workers.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/support/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/support/entities/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/support/entities/mock_dataclass.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/support/entities/test_base.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/support/patterns/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/support/patterns/singleton/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/support/patterns/singleton/test_patterns_singleton.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/support/standard/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/support/standard/test_services_std.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/support/wrapper/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/support/wrapper/test_services_wrapper_docdict.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/testing/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/testing/cases/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/testing/cases/test_testing_asynchronous.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/testing/cases/test_testing_synchronous.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/testing/entities/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/testing/entities/test_testing_result.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/testing/enums/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/testing/enums/test_testing_status.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/testing/output/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/testing/output/test_testing_dumper.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/testing/output/test_testing_printer.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/testing/records/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/testing/records/test_testing_records.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/testing/test_testing_unit.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/testing/validators/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/testing/validators/test_testing_validators.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/testing/view/__init__.py +0 -0
- {orionis-0.513.0 → orionis-0.514.0}/tests/testing/view/test_render.py +0 -0
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
from orionis.console.contracts.schedule import ISchedule
|
|
2
1
|
from orionis.console.contracts.schedule_event_listener import IScheduleEventListener
|
|
3
2
|
from orionis.console.entities.job_error import JobError
|
|
4
3
|
from orionis.console.entities.job_executed import JobExecuted
|
|
@@ -18,7 +17,7 @@ class BaseScheduleEventListener(IScheduleEventListener):
|
|
|
18
17
|
specific behavior for each event type.
|
|
19
18
|
"""
|
|
20
19
|
|
|
21
|
-
async def before(self, event: JobSubmitted, schedule
|
|
20
|
+
async def before(self, event: JobSubmitted, schedule):
|
|
22
21
|
"""
|
|
23
22
|
Called before processing a job submission event.
|
|
24
23
|
|
|
@@ -31,7 +30,7 @@ class BaseScheduleEventListener(IScheduleEventListener):
|
|
|
31
30
|
"""
|
|
32
31
|
pass
|
|
33
32
|
|
|
34
|
-
async def after(self, event: JobExecuted, schedule
|
|
33
|
+
async def after(self, event: JobExecuted, schedule):
|
|
35
34
|
"""
|
|
36
35
|
Called after processing a job execution event.
|
|
37
36
|
|
|
@@ -44,7 +43,7 @@ class BaseScheduleEventListener(IScheduleEventListener):
|
|
|
44
43
|
"""
|
|
45
44
|
pass
|
|
46
45
|
|
|
47
|
-
async def onSuccess(self, event: JobExecuted, schedule
|
|
46
|
+
async def onSuccess(self, event: JobExecuted, schedule):
|
|
48
47
|
"""
|
|
49
48
|
Called when a job is successfully executed.
|
|
50
49
|
|
|
@@ -57,7 +56,7 @@ class BaseScheduleEventListener(IScheduleEventListener):
|
|
|
57
56
|
"""
|
|
58
57
|
pass
|
|
59
58
|
|
|
60
|
-
async def onFailure(self, event: JobError, schedule
|
|
59
|
+
async def onFailure(self, event: JobError, schedule):
|
|
61
60
|
"""
|
|
62
61
|
Called when a job execution fails.
|
|
63
62
|
|
|
@@ -70,7 +69,7 @@ class BaseScheduleEventListener(IScheduleEventListener):
|
|
|
70
69
|
"""
|
|
71
70
|
pass
|
|
72
71
|
|
|
73
|
-
async def onMissed(self, event: JobMissed, schedule
|
|
72
|
+
async def onMissed(self, event: JobMissed, schedule):
|
|
74
73
|
"""
|
|
75
74
|
Called when a job execution is missed.
|
|
76
75
|
|
|
@@ -83,7 +82,7 @@ class BaseScheduleEventListener(IScheduleEventListener):
|
|
|
83
82
|
"""
|
|
84
83
|
pass
|
|
85
84
|
|
|
86
|
-
async def onMaxInstances(self, event: JobMaxInstances, schedule
|
|
85
|
+
async def onMaxInstances(self, event: JobMaxInstances, schedule):
|
|
87
86
|
"""
|
|
88
87
|
Called when a job exceeds the maximum allowed instances.
|
|
89
88
|
|
|
@@ -96,7 +95,7 @@ class BaseScheduleEventListener(IScheduleEventListener):
|
|
|
96
95
|
"""
|
|
97
96
|
pass
|
|
98
97
|
|
|
99
|
-
async def onPaused(self, event: JobPause, schedule
|
|
98
|
+
async def onPaused(self, event: JobPause, schedule):
|
|
100
99
|
"""
|
|
101
100
|
Called when the scheduler is paused.
|
|
102
101
|
|
|
@@ -109,7 +108,7 @@ class BaseScheduleEventListener(IScheduleEventListener):
|
|
|
109
108
|
"""
|
|
110
109
|
pass
|
|
111
110
|
|
|
112
|
-
async def onResumed(self, event: JobResume, schedule
|
|
111
|
+
async def onResumed(self, event: JobResume, schedule):
|
|
113
112
|
"""
|
|
114
113
|
Called when the scheduler is resumed.
|
|
115
114
|
|
|
@@ -122,7 +121,7 @@ class BaseScheduleEventListener(IScheduleEventListener):
|
|
|
122
121
|
"""
|
|
123
122
|
pass
|
|
124
123
|
|
|
125
|
-
async def onRemoved(self, event: JobRemoved, schedule
|
|
124
|
+
async def onRemoved(self, event: JobRemoved, schedule):
|
|
126
125
|
"""
|
|
127
126
|
Called when a job is removed from the scheduler.
|
|
128
127
|
|
|
@@ -38,7 +38,7 @@ class ScheduleListCommand(BaseCommand):
|
|
|
38
38
|
# Command description
|
|
39
39
|
description: str = "Executes the scheduled tasks defined in the application."
|
|
40
40
|
|
|
41
|
-
def handle(self, app: IApplication, console: Console) -> bool:
|
|
41
|
+
async def handle(self, app: IApplication, console: Console) -> bool:
|
|
42
42
|
"""
|
|
43
43
|
Displays a table of scheduled jobs defined in the application.
|
|
44
44
|
|
|
@@ -64,13 +64,13 @@ class ScheduleListCommand(BaseCommand):
|
|
|
64
64
|
try:
|
|
65
65
|
|
|
66
66
|
# Retrieve the Scheduler instance from the application
|
|
67
|
-
|
|
67
|
+
scheduler = app.getScheduler()
|
|
68
68
|
|
|
69
69
|
# Create an instance of the ISchedule service
|
|
70
70
|
schedule_service: ISchedule = app.make(ISchedule)
|
|
71
71
|
|
|
72
72
|
# Register scheduled tasks using the Scheduler's tasks method
|
|
73
|
-
|
|
73
|
+
await scheduler.tasks(schedule_service)
|
|
74
74
|
|
|
75
75
|
# Retrieve the list of scheduled jobs/events
|
|
76
76
|
list_tasks = schedule_service.events()
|
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
from datetime import datetime
|
|
2
2
|
from rich.console import Console
|
|
3
3
|
from rich.panel import Panel
|
|
4
|
-
from rich.text import Text
|
|
5
4
|
from orionis.console.base.command import BaseCommand
|
|
6
5
|
from orionis.console.contracts.schedule import ISchedule
|
|
7
6
|
from orionis.console.enums.listener import ListeningEvent
|
|
8
7
|
from orionis.console.exceptions import CLIOrionisRuntimeError
|
|
9
|
-
from orionis.container.exceptions.exception import OrionisContainerException
|
|
10
8
|
from orionis.foundation.contracts.application import IApplication
|
|
11
|
-
from orionis.foundation.exceptions.runtime import OrionisRuntimeError
|
|
12
9
|
|
|
13
10
|
class ScheduleWorkCommand(BaseCommand):
|
|
14
11
|
"""
|
|
@@ -94,33 +91,39 @@ class ScheduleWorkCommand(BaseCommand):
|
|
|
94
91
|
return True
|
|
95
92
|
|
|
96
93
|
# If there are scheduled jobs and the scheduler has an onStarted method
|
|
97
|
-
if hasattr(scheduler, "onStarted"):
|
|
98
|
-
schedule_service.
|
|
94
|
+
if hasattr(scheduler, "onStarted") and callable(scheduler.onStarted):
|
|
95
|
+
schedule_service.setListener(ListeningEvent.SCHEDULER_STARTED, scheduler.onStarted)
|
|
99
96
|
|
|
100
97
|
# If the scheduler has an onPaused method
|
|
101
|
-
if hasattr(scheduler, "onPaused"):
|
|
102
|
-
schedule_service.
|
|
98
|
+
if hasattr(scheduler, "onPaused") and callable(scheduler.onPaused):
|
|
99
|
+
schedule_service.setListener(ListeningEvent.SCHEDULER_PAUSED, scheduler.onPaused)
|
|
103
100
|
|
|
104
101
|
# If the scheduler has an onResumed method
|
|
105
|
-
if hasattr(scheduler, "onResumed"):
|
|
106
|
-
schedule_service.
|
|
102
|
+
if hasattr(scheduler, "onResumed") and callable(scheduler.onResumed):
|
|
103
|
+
schedule_service.setListener(ListeningEvent.SCHEDULER_RESUMED, scheduler.onResumed)
|
|
107
104
|
|
|
108
105
|
# If the scheduler has an onFinalized method
|
|
109
|
-
if hasattr(scheduler, "onFinalized"):
|
|
110
|
-
schedule_service.
|
|
106
|
+
if hasattr(scheduler, "onFinalized") and callable(scheduler.onFinalized):
|
|
107
|
+
schedule_service.setListener(ListeningEvent.SCHEDULER_SHUTDOWN, scheduler.onFinalized)
|
|
111
108
|
|
|
112
109
|
# If the scheduler has an onError method
|
|
113
|
-
if hasattr(scheduler, "onError"):
|
|
114
|
-
schedule_service.
|
|
110
|
+
if hasattr(scheduler, "onError") and callable(scheduler.onError):
|
|
111
|
+
schedule_service.setListener(ListeningEvent.SCHEDULER_ERROR, scheduler.onError)
|
|
115
112
|
|
|
116
113
|
# Check if the scheduler has specific pause, resume, and finalize times
|
|
117
|
-
if hasattr(scheduler, "PAUSE_AT") and
|
|
114
|
+
if hasattr(scheduler, "PAUSE_AT") and scheduler.PAUSE_AT is not None:
|
|
115
|
+
if not isinstance(scheduler.PAUSE_AT, datetime):
|
|
116
|
+
raise CLIOrionisRuntimeError("PAUSE_AT must be a datetime instance.")
|
|
118
117
|
schedule_service.pauseEverythingAt(scheduler.PAUSE_AT)
|
|
119
118
|
|
|
120
|
-
if hasattr(scheduler, "RESUME_AT") and
|
|
119
|
+
if hasattr(scheduler, "RESUME_AT") and scheduler.RESUME_AT is not None:
|
|
120
|
+
if not isinstance(scheduler.RESUME_AT, datetime):
|
|
121
|
+
raise CLIOrionisRuntimeError("RESUME_AT must be a datetime instance.")
|
|
121
122
|
schedule_service.resumeEverythingAt(scheduler.RESUME_AT)
|
|
122
123
|
|
|
123
|
-
if hasattr(scheduler, "FINALIZE_AT") and
|
|
124
|
+
if hasattr(scheduler, "FINALIZE_AT") and scheduler.FINALIZE_AT is not None:
|
|
125
|
+
if not isinstance(scheduler.FINALIZE_AT, datetime):
|
|
126
|
+
raise CLIOrionisRuntimeError("FINALIZE_AT must be a datetime instance.")
|
|
124
127
|
schedule_service.shutdownEverythingAt(scheduler.FINALIZE_AT)
|
|
125
128
|
|
|
126
129
|
# Start the scheduler worker asynchronously
|
|
@@ -0,0 +1,327 @@
|
|
|
1
|
+
from abc import ABC, abstractmethod
|
|
2
|
+
from datetime import datetime
|
|
3
|
+
from typing import List, Optional, Union
|
|
4
|
+
from orionis.console.contracts.schedule_event_listener import IScheduleEventListener
|
|
5
|
+
from orionis.console.enums.listener import ListeningEvent
|
|
6
|
+
from orionis.console.tasks.event import Event
|
|
7
|
+
|
|
8
|
+
class ISchedule(ABC):
|
|
9
|
+
|
|
10
|
+
@abstractmethod
|
|
11
|
+
def command(
|
|
12
|
+
self,
|
|
13
|
+
signature: str,
|
|
14
|
+
args: Optional[List[str]] = None
|
|
15
|
+
) -> 'Event':
|
|
16
|
+
"""
|
|
17
|
+
Prepare an Event instance for a given command signature and its arguments.
|
|
18
|
+
|
|
19
|
+
This method validates the provided command signature and arguments, ensuring
|
|
20
|
+
that the command exists among the registered commands and that the arguments
|
|
21
|
+
are in the correct format. If validation passes, it creates and returns an
|
|
22
|
+
Event object representing the scheduled command, including its signature,
|
|
23
|
+
arguments, and description.
|
|
24
|
+
|
|
25
|
+
Parameters
|
|
26
|
+
----------
|
|
27
|
+
signature : str
|
|
28
|
+
The unique signature identifying the command to be scheduled. Must be a non-empty string.
|
|
29
|
+
args : Optional[List[str]], optional
|
|
30
|
+
A list of string arguments to be passed to the command. Defaults to None.
|
|
31
|
+
|
|
32
|
+
Returns
|
|
33
|
+
-------
|
|
34
|
+
Event
|
|
35
|
+
An Event instance containing the command signature, arguments, and its description.
|
|
36
|
+
|
|
37
|
+
Raises
|
|
38
|
+
------
|
|
39
|
+
ValueError
|
|
40
|
+
If the command signature is not a non-empty string, if the arguments are not a list
|
|
41
|
+
of strings or None, or if the command does not exist among the registered commands.
|
|
42
|
+
"""
|
|
43
|
+
pass
|
|
44
|
+
|
|
45
|
+
@abstractmethod
|
|
46
|
+
def setListener(
|
|
47
|
+
self,
|
|
48
|
+
event: Union[str, ListeningEvent],
|
|
49
|
+
listener: Union[IScheduleEventListener, callable]
|
|
50
|
+
) -> None:
|
|
51
|
+
"""
|
|
52
|
+
Register a listener callback for a specific scheduler event.
|
|
53
|
+
|
|
54
|
+
This method registers a listener function or an instance of IScheduleEventListener
|
|
55
|
+
to be invoked when the specified scheduler event occurs. The event can be a global
|
|
56
|
+
event name (e.g., 'scheduler_started') or a specific job ID. The listener must be
|
|
57
|
+
callable and should accept the event object as a parameter.
|
|
58
|
+
|
|
59
|
+
Parameters
|
|
60
|
+
----------
|
|
61
|
+
event : str
|
|
62
|
+
The name of the event to listen for. This can be a global event name (e.g., 'scheduler_started')
|
|
63
|
+
or a specific job ID.
|
|
64
|
+
listener : IScheduleEventListener or callable
|
|
65
|
+
A callable function or an instance of IScheduleEventListener that will be invoked
|
|
66
|
+
when the specified event occurs. The listener should accept one parameter, which
|
|
67
|
+
will be the event object.
|
|
68
|
+
|
|
69
|
+
Returns
|
|
70
|
+
-------
|
|
71
|
+
None
|
|
72
|
+
This method does not return any value. It registers the listener for the specified event.
|
|
73
|
+
|
|
74
|
+
Raises
|
|
75
|
+
------
|
|
76
|
+
ValueError
|
|
77
|
+
If the event name is not a non-empty string or if the listener is not callable
|
|
78
|
+
or an instance of IScheduleEventListener.
|
|
79
|
+
"""
|
|
80
|
+
pass
|
|
81
|
+
|
|
82
|
+
@abstractmethod
|
|
83
|
+
def pauseEverythingAt(
|
|
84
|
+
self,
|
|
85
|
+
at: datetime
|
|
86
|
+
) -> None:
|
|
87
|
+
"""
|
|
88
|
+
Schedule the scheduler to pause all operations at a specific datetime.
|
|
89
|
+
|
|
90
|
+
This method allows you to schedule a job that will pause the AsyncIOScheduler
|
|
91
|
+
at the specified datetime. The job is added to the scheduler with a 'date'
|
|
92
|
+
trigger, ensuring it executes exactly at the given time.
|
|
93
|
+
|
|
94
|
+
Parameters
|
|
95
|
+
----------
|
|
96
|
+
at : datetime
|
|
97
|
+
The datetime at which the scheduler should be paused. Must be a valid
|
|
98
|
+
datetime object.
|
|
99
|
+
|
|
100
|
+
Returns
|
|
101
|
+
-------
|
|
102
|
+
None
|
|
103
|
+
This method does not return any value. It schedules a job to pause the
|
|
104
|
+
scheduler at the specified datetime.
|
|
105
|
+
|
|
106
|
+
Raises
|
|
107
|
+
------
|
|
108
|
+
ValueError
|
|
109
|
+
If the 'at' parameter is not a valid datetime object.
|
|
110
|
+
"""
|
|
111
|
+
pass
|
|
112
|
+
|
|
113
|
+
@abstractmethod
|
|
114
|
+
def resumeEverythingAt(
|
|
115
|
+
self,
|
|
116
|
+
at: datetime
|
|
117
|
+
) -> None:
|
|
118
|
+
"""
|
|
119
|
+
Schedule the scheduler to resume all operations at a specific datetime.
|
|
120
|
+
|
|
121
|
+
This method allows you to schedule a job that will resume the AsyncIOScheduler
|
|
122
|
+
at the specified datetime. The job is added to the scheduler with a 'date'
|
|
123
|
+
trigger, ensuring it executes exactly at the given time.
|
|
124
|
+
|
|
125
|
+
Parameters
|
|
126
|
+
----------
|
|
127
|
+
at : datetime
|
|
128
|
+
The datetime at which the scheduler should be resumed. Must be a valid
|
|
129
|
+
datetime object.
|
|
130
|
+
|
|
131
|
+
Returns
|
|
132
|
+
-------
|
|
133
|
+
None
|
|
134
|
+
This method does not return any value. It schedules a job to resume the
|
|
135
|
+
scheduler at the specified datetime.
|
|
136
|
+
|
|
137
|
+
Raises
|
|
138
|
+
------
|
|
139
|
+
ValueError
|
|
140
|
+
If the 'at' parameter is not a valid datetime object.
|
|
141
|
+
"""
|
|
142
|
+
pass
|
|
143
|
+
|
|
144
|
+
@abstractmethod
|
|
145
|
+
def shutdownEverythingAt(
|
|
146
|
+
self,
|
|
147
|
+
at: datetime
|
|
148
|
+
) -> None:
|
|
149
|
+
"""
|
|
150
|
+
Schedule the scheduler to shut down all operations at a specific datetime.
|
|
151
|
+
|
|
152
|
+
This method allows you to schedule a job that will shut down the AsyncIOScheduler
|
|
153
|
+
at the specified datetime. The job is added to the scheduler with a 'date'
|
|
154
|
+
trigger, ensuring it executes exactly at the given time.
|
|
155
|
+
|
|
156
|
+
Parameters
|
|
157
|
+
----------
|
|
158
|
+
at : datetime
|
|
159
|
+
The datetime at which the scheduler should be shut down. Must be a valid
|
|
160
|
+
datetime object.
|
|
161
|
+
|
|
162
|
+
Returns
|
|
163
|
+
-------
|
|
164
|
+
None
|
|
165
|
+
This method does not return any value. It schedules a job to shut down the
|
|
166
|
+
scheduler at the specified datetime.
|
|
167
|
+
|
|
168
|
+
Raises
|
|
169
|
+
------
|
|
170
|
+
ValueError
|
|
171
|
+
If the 'at' parameter is not a valid datetime object.
|
|
172
|
+
"""
|
|
173
|
+
pass
|
|
174
|
+
|
|
175
|
+
@abstractmethod
|
|
176
|
+
async def start(self) -> None:
|
|
177
|
+
"""
|
|
178
|
+
Start the AsyncIO scheduler instance and keep it running.
|
|
179
|
+
|
|
180
|
+
This method initiates the AsyncIOScheduler which integrates with asyncio event loops
|
|
181
|
+
for asynchronous job execution. It ensures the scheduler starts properly within
|
|
182
|
+
an asyncio context and maintains the event loop active to process scheduled jobs.
|
|
183
|
+
|
|
184
|
+
Returns
|
|
185
|
+
-------
|
|
186
|
+
None
|
|
187
|
+
This method does not return any value. It starts the AsyncIO scheduler and keeps it running.
|
|
188
|
+
"""
|
|
189
|
+
pass
|
|
190
|
+
|
|
191
|
+
@abstractmethod
|
|
192
|
+
async def shutdown(self, wait=True) -> None:
|
|
193
|
+
"""
|
|
194
|
+
Shut down the AsyncIO scheduler instance asynchronously.
|
|
195
|
+
|
|
196
|
+
This method gracefully stops the AsyncIOScheduler that manages asynchronous job execution.
|
|
197
|
+
It ensures proper cleanup in asyncio environments and allows for an optional wait period
|
|
198
|
+
to complete currently executing jobs before shutting down.
|
|
199
|
+
|
|
200
|
+
Parameters
|
|
201
|
+
----------
|
|
202
|
+
wait : bool, optional
|
|
203
|
+
If True, the method waits until all currently executing jobs are completed before shutting down the scheduler.
|
|
204
|
+
If False, the scheduler shuts down immediately without waiting for running jobs to finish. Default is True.
|
|
205
|
+
|
|
206
|
+
Returns
|
|
207
|
+
-------
|
|
208
|
+
None
|
|
209
|
+
This method does not return any value. It performs the shutdown operation for the AsyncIO scheduler.
|
|
210
|
+
|
|
211
|
+
Raises
|
|
212
|
+
------
|
|
213
|
+
ValueError
|
|
214
|
+
If the 'wait' parameter is not a boolean value.
|
|
215
|
+
CLIOrionisRuntimeError
|
|
216
|
+
If an error occurs during the shutdown process.
|
|
217
|
+
"""
|
|
218
|
+
pass
|
|
219
|
+
|
|
220
|
+
@abstractmethod
|
|
221
|
+
def pause(self, signature: str) -> bool:
|
|
222
|
+
"""
|
|
223
|
+
Pause a scheduled job in the AsyncIO scheduler.
|
|
224
|
+
|
|
225
|
+
This method pauses a job in the AsyncIOScheduler identified by its unique signature.
|
|
226
|
+
It validates the provided signature to ensure it is a non-empty string and attempts
|
|
227
|
+
to pause the job. If the operation is successful, it logs the action and returns True.
|
|
228
|
+
If the job cannot be paused (e.g., it does not exist), the method returns False.
|
|
229
|
+
|
|
230
|
+
Parameters
|
|
231
|
+
----------
|
|
232
|
+
signature : str
|
|
233
|
+
The unique signature (ID) of the job to pause. This must be a non-empty string.
|
|
234
|
+
|
|
235
|
+
Returns
|
|
236
|
+
-------
|
|
237
|
+
bool
|
|
238
|
+
True if the job was successfully paused.
|
|
239
|
+
False if the job does not exist or an error occurred.
|
|
240
|
+
|
|
241
|
+
Raises
|
|
242
|
+
------
|
|
243
|
+
CLIOrionisValueError
|
|
244
|
+
If the `signature` parameter is not a non-empty string.
|
|
245
|
+
"""
|
|
246
|
+
pass
|
|
247
|
+
|
|
248
|
+
@abstractmethod
|
|
249
|
+
def resume(self, signature: str) -> bool:
|
|
250
|
+
"""
|
|
251
|
+
Resume a paused job in the AsyncIO scheduler.
|
|
252
|
+
|
|
253
|
+
This method attempts to resume a job that was previously paused in the AsyncIOScheduler.
|
|
254
|
+
It validates the provided job signature, ensures it is a non-empty string, and then
|
|
255
|
+
resumes the job if it exists and is currently paused. If the operation is successful,
|
|
256
|
+
it logs the action and returns True. If the job cannot be resumed (e.g., it does not exist),
|
|
257
|
+
the method returns False.
|
|
258
|
+
|
|
259
|
+
Parameters
|
|
260
|
+
----------
|
|
261
|
+
signature : str
|
|
262
|
+
The unique signature (ID) of the job to resume. This must be a non-empty string.
|
|
263
|
+
|
|
264
|
+
Returns
|
|
265
|
+
-------
|
|
266
|
+
bool
|
|
267
|
+
True if the job was successfully resumed, False if the job does not exist or an error occurred.
|
|
268
|
+
|
|
269
|
+
Raises
|
|
270
|
+
------
|
|
271
|
+
CLIOrionisValueError
|
|
272
|
+
If the `signature` parameter is not a non-empty string.
|
|
273
|
+
"""
|
|
274
|
+
pass
|
|
275
|
+
|
|
276
|
+
@abstractmethod
|
|
277
|
+
def remove(self, signature: str) -> bool:
|
|
278
|
+
"""
|
|
279
|
+
Remove a scheduled job from the AsyncIO scheduler.
|
|
280
|
+
|
|
281
|
+
This method removes a job from the AsyncIOScheduler using its unique signature (ID).
|
|
282
|
+
It validates the provided signature to ensure it is a non-empty string, attempts to
|
|
283
|
+
remove the job from the scheduler, and updates the internal jobs list accordingly.
|
|
284
|
+
If the operation is successful, it logs the action and returns True. If the job
|
|
285
|
+
cannot be removed (e.g., it does not exist), the method returns False.
|
|
286
|
+
|
|
287
|
+
Parameters
|
|
288
|
+
----------
|
|
289
|
+
signature : str
|
|
290
|
+
The unique signature (ID) of the job to remove. This must be a non-empty string.
|
|
291
|
+
|
|
292
|
+
Returns
|
|
293
|
+
-------
|
|
294
|
+
bool
|
|
295
|
+
True if the job was successfully removed from the scheduler.
|
|
296
|
+
False if the job does not exist or an error occurred.
|
|
297
|
+
|
|
298
|
+
Raises
|
|
299
|
+
------
|
|
300
|
+
CLIOrionisValueError
|
|
301
|
+
If the `signature` parameter is not a non-empty string.
|
|
302
|
+
"""
|
|
303
|
+
pass
|
|
304
|
+
|
|
305
|
+
@abstractmethod
|
|
306
|
+
def events(self) -> list:
|
|
307
|
+
"""
|
|
308
|
+
Retrieve all scheduled jobs currently managed by the Scheduler.
|
|
309
|
+
|
|
310
|
+
This method loads and returns a list of dictionaries, each representing a scheduled job
|
|
311
|
+
managed by this Scheduler instance. Each dictionary contains details such as the command
|
|
312
|
+
signature, arguments, purpose, random delay, start and end dates, and additional job details.
|
|
313
|
+
|
|
314
|
+
Returns
|
|
315
|
+
-------
|
|
316
|
+
list of dict
|
|
317
|
+
A list where each element is a dictionary containing information about a scheduled job.
|
|
318
|
+
Each dictionary includes the following keys:
|
|
319
|
+
- 'signature': str, the command signature.
|
|
320
|
+
- 'args': list, the arguments passed to the command.
|
|
321
|
+
- 'purpose': str, the description or purpose of the job.
|
|
322
|
+
- 'random_delay': any, the random delay associated with the job (if any).
|
|
323
|
+
- 'start_date': str or None, the formatted start date and time of the job, or None if not set.
|
|
324
|
+
- 'end_date': str or None, the formatted end date and time of the job, or None if not set.
|
|
325
|
+
- 'details': any, additional details about the job.
|
|
326
|
+
"""
|
|
327
|
+
pass
|
|
@@ -81,40 +81,6 @@ class IScheduleEventListener(ABC):
|
|
|
81
81
|
# Subclasses must override this method to provide specific behavior.
|
|
82
82
|
pass
|
|
83
83
|
|
|
84
|
-
@abstractmethod
|
|
85
|
-
async def onSuccess(self, event: JobExecuted, schedule):
|
|
86
|
-
"""
|
|
87
|
-
Handle actions to be performed when an event is successfully processed.
|
|
88
|
-
|
|
89
|
-
This method is invoked after an event is processed successfully, allowing
|
|
90
|
-
for any follow-up actions, such as logging, notifications, or triggering
|
|
91
|
-
dependent tasks. Subclasses should override this method to define custom
|
|
92
|
-
behavior for handling successful event processing.
|
|
93
|
-
|
|
94
|
-
Parameters
|
|
95
|
-
----------
|
|
96
|
-
event : JobExecuted
|
|
97
|
-
The event object containing details about the successfully executed job,
|
|
98
|
-
such as its status, metadata, and execution results.
|
|
99
|
-
schedule : ISchedule
|
|
100
|
-
The schedule object associated with the event, providing context about
|
|
101
|
-
the scheduling system and its state.
|
|
102
|
-
|
|
103
|
-
Returns
|
|
104
|
-
-------
|
|
105
|
-
None
|
|
106
|
-
This method does not return any value.
|
|
107
|
-
|
|
108
|
-
Notes
|
|
109
|
-
-----
|
|
110
|
-
Override this method to implement specific actions or checks that should
|
|
111
|
-
occur after an event is successfully processed.
|
|
112
|
-
"""
|
|
113
|
-
|
|
114
|
-
# This is an abstract method, so it does not contain any implementation.
|
|
115
|
-
# Subclasses must override this method to provide specific behavior.
|
|
116
|
-
pass
|
|
117
|
-
|
|
118
84
|
@abstractmethod
|
|
119
85
|
async def onFailure(self, event: JobError, schedule):
|
|
120
86
|
"""
|
|
@@ -19,5 +19,4 @@ class JobModified(JobEventData):
|
|
|
19
19
|
This class does not return a value; it is used as a data container.
|
|
20
20
|
"""
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
# It serves as a specific type of event for job modifications.
|
|
22
|
+
next_run_time: str | None = None
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
from dataclasses import dataclass, field
|
|
2
|
+
from typing import List, Optional, Union
|
|
3
|
+
from datetime import datetime
|
|
4
|
+
from apscheduler.triggers.cron import CronTrigger
|
|
5
|
+
from apscheduler.triggers.date import DateTrigger
|
|
6
|
+
from apscheduler.triggers.interval import IntervalTrigger
|
|
7
|
+
from orionis.console.contracts.schedule_event_listener import IScheduleEventListener
|
|
8
|
+
|
|
9
|
+
@dataclass(kw_only=True)
|
|
10
|
+
class Event:
|
|
11
|
+
"""
|
|
12
|
+
Represents an event with scheduling and execution details.
|
|
13
|
+
|
|
14
|
+
Attributes
|
|
15
|
+
----------
|
|
16
|
+
signature : str
|
|
17
|
+
The unique identifier or signature of the event, used to distinguish it from other events.
|
|
18
|
+
args : Optional[List[str]]
|
|
19
|
+
A list of arguments associated with the event. Defaults to an empty list if not provided.
|
|
20
|
+
purpose : Optional[str]
|
|
21
|
+
A brief description of the event's purpose or intent. Can be None if not specified.
|
|
22
|
+
random_delay : Optional[int]
|
|
23
|
+
An optional random delay (in seconds) to be applied before the event is triggered. Can be None.
|
|
24
|
+
start_date : Optional[datetime]
|
|
25
|
+
The start date and time for the event. If None, the event starts immediately or based on the trigger.
|
|
26
|
+
end_date : Optional[datetime]
|
|
27
|
+
The end date and time for the event. If None, the event does not have a defined end time.
|
|
28
|
+
trigger : Optional[Union[CronTrigger, DateTrigger, IntervalTrigger]]
|
|
29
|
+
The trigger mechanism for the event, which determines when and how the event is executed.
|
|
30
|
+
Can be a CronTrigger, DateTrigger, or IntervalTrigger. Defaults to None.
|
|
31
|
+
details : Optional[str]
|
|
32
|
+
Additional details or metadata about the event. Can be None if not specified.
|
|
33
|
+
listener : Optional[IScheduleEventListener]
|
|
34
|
+
An optional listener object that implements the IScheduleEventListener interface.
|
|
35
|
+
This listener can handle event-specific logic. Defaults to None.
|
|
36
|
+
"""
|
|
37
|
+
|
|
38
|
+
# Unique identifier for the event
|
|
39
|
+
signature: str
|
|
40
|
+
|
|
41
|
+
# List of arguments for the event, defaults to empty list if not provided
|
|
42
|
+
args: Optional[List[str]] = field(default_factory=list)
|
|
43
|
+
|
|
44
|
+
# Description of the event's purpose
|
|
45
|
+
purpose: Optional[str] = None
|
|
46
|
+
|
|
47
|
+
# Optional random delay (in seconds) before the event is triggered
|
|
48
|
+
random_delay: Optional[int] = None
|
|
49
|
+
|
|
50
|
+
# Start date and time for the event
|
|
51
|
+
start_date: Optional[datetime] = None
|
|
52
|
+
|
|
53
|
+
# End date and time for the event
|
|
54
|
+
end_date: Optional[datetime] = None
|
|
55
|
+
|
|
56
|
+
# Trigger mechanism for the event (cron, date, or interval)
|
|
57
|
+
trigger: Optional[Union[CronTrigger, DateTrigger, IntervalTrigger]] = None
|
|
58
|
+
|
|
59
|
+
# Optional details about the event
|
|
60
|
+
details: Optional[str] = None
|
|
61
|
+
|
|
62
|
+
# Optional listener that implements IScheduleEventListener
|
|
63
|
+
listener: Optional[IScheduleEventListener] = None
|