orionis 0.482.0__tar.gz → 0.484.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.482.0/orionis.egg-info → orionis-0.484.0}/PKG-INFO +1 -1
- orionis-0.484.0/orionis/console/commands/scheduler_list.py +139 -0
- orionis-0.484.0/orionis/console/commands/scheduler_work.py +141 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/console/core/reactor.py +3 -1
- orionis-0.484.0/orionis/console/entities/listeners.py +241 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/console/tasks/schedule.py +22 -2
- {orionis-0.482.0 → orionis-0.484.0}/orionis/metadata/framework.py +1 -1
- {orionis-0.482.0 → orionis-0.484.0/orionis.egg-info}/PKG-INFO +1 -1
- {orionis-0.482.0 → orionis-0.484.0}/orionis.egg-info/SOURCES.txt +3 -0
- orionis-0.484.0/tests/testing/view/__init__.py +0 -0
- orionis-0.482.0/orionis/console/commands/scheduler_work.py +0 -88
- {orionis-0.482.0 → orionis-0.484.0}/LICENCE +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/MANIFEST.in +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/README.md +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/app.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/console/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/console/args/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/console/args/argument.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/console/args/enums/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/console/args/enums/actions.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/console/base/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/console/base/command.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/console/base/contracts/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/console/base/contracts/command.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/console/commands/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/console/commands/cache.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/console/commands/help.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/console/commands/publisher.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/console/commands/test.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/console/commands/version.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/console/commands/workflow.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/console/contracts/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/console/contracts/event.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/console/contracts/kernel.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/console/contracts/reactor.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/console/contracts/schedule.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/console/core/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/console/dumper/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/console/dumper/contracts/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/console/dumper/contracts/dump.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/console/dumper/dump.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/console/dynamic/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/console/dynamic/contracts/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/console/dynamic/contracts/progress_bar.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/console/dynamic/progress_bar.py +0 -0
- {orionis-0.482.0/orionis/console/enums → orionis-0.484.0/orionis/console/entities}/__init__.py +0 -0
- {orionis-0.482.0/orionis/console/output → orionis-0.484.0/orionis/console/enums}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/console/enums/command.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/console/enums/event.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/console/exceptions/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/console/exceptions/cli_exception.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/console/exceptions/cli_orionis_value_error.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/console/exceptions/cli_runtime_error.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/console/exceptions/cli_schedule_exception.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/console/kernel.py +0 -0
- {orionis-0.482.0/orionis/console/output/contracts → orionis-0.484.0/orionis/console/output}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/console/output/console.py +0 -0
- {orionis-0.482.0/orionis/console/tasks → orionis-0.484.0/orionis/console/output/contracts}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/console/output/contracts/console.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/console/output/contracts/executor.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/console/output/enums/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/console/output/enums/styles.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/console/output/executor.py +0 -0
- {orionis-0.482.0/orionis/container → orionis-0.484.0/orionis/console/tasks}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/console/tasks/event.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/console/tasks/exception_report.py +0 -0
- {orionis-0.482.0/orionis/container/context → orionis-0.484.0/orionis/container}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/container/container.py +0 -0
- {orionis-0.482.0/orionis/container/contracts → orionis-0.484.0/orionis/container/context}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/container/context/manager.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/container/context/scope.py +0 -0
- {orionis-0.482.0/orionis/container/entities → orionis-0.484.0/orionis/container/contracts}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/container/contracts/container.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/container/contracts/service_provider.py +0 -0
- {orionis-0.482.0/orionis/container/facades → orionis-0.484.0/orionis/container/entities}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/container/entities/binding.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/container/enums/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/container/enums/lifetimes.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/container/exceptions/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/container/exceptions/attribute.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/container/exceptions/exception.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/container/exceptions/type.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/container/exceptions/value.py +0 -0
- {orionis-0.482.0/orionis/container/providers → orionis-0.484.0/orionis/container/facades}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/container/facades/facade.py +0 -0
- {orionis-0.482.0/orionis/foundation → orionis-0.484.0/orionis/container/providers}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/container/providers/service_provider.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/container/validators/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/container/validators/implements.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/container/validators/is_abstract_class.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/container/validators/is_callable.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/container/validators/is_concrete_class.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/container/validators/is_instance.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/container/validators/is_not_subclass.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/container/validators/is_subclass.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/container/validators/is_valid_alias.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/container/validators/lifetime.py +0 -0
- {orionis-0.482.0/orionis/foundation/config → orionis-0.484.0/orionis/foundation}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/application.py +0 -0
- {orionis-0.482.0/orionis/foundation/config/app → orionis-0.484.0/orionis/foundation/config}/__init__.py +0 -0
- {orionis-0.482.0/orionis/foundation/config/app/entities → orionis-0.484.0/orionis/foundation/config/app}/__init__.py +0 -0
- {orionis-0.482.0/orionis/foundation/config/auth → orionis-0.484.0/orionis/foundation/config/app/entities}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/app/entities/app.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/app/enums/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/app/enums/ciphers.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/app/enums/environments.py +0 -0
- {orionis-0.482.0/orionis/foundation/config/auth/entities → orionis-0.484.0/orionis/foundation/config/auth}/__init__.py +0 -0
- {orionis-0.482.0/orionis/foundation/config/cache → orionis-0.484.0/orionis/foundation/config/auth/entities}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/auth/entities/auth.py +0 -0
- {orionis-0.482.0/orionis/foundation/config/cache/entities → orionis-0.484.0/orionis/foundation/config/cache}/__init__.py +0 -0
- {orionis-0.482.0/orionis/foundation/config/cors → orionis-0.484.0/orionis/foundation/config/cache/entities}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/cache/entities/cache.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/cache/entities/file.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/cache/entities/stores.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/cache/enums/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/cache/enums/drivers.py +0 -0
- {orionis-0.482.0/orionis/foundation/config/cors/entities → orionis-0.484.0/orionis/foundation/config/cors}/__init__.py +0 -0
- {orionis-0.482.0/orionis/foundation/config/database → orionis-0.484.0/orionis/foundation/config/cors/entities}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/cors/entities/cors.py +0 -0
- {orionis-0.482.0/orionis/foundation/config/database/entities → orionis-0.484.0/orionis/foundation/config/database}/__init__.py +0 -0
- {orionis-0.482.0/orionis/foundation/config/filesystems → orionis-0.484.0/orionis/foundation/config/database/entities}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/database/entities/connections.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/database/entities/database.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/database/entities/mysql.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/database/entities/oracle.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/database/entities/pgsql.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/database/entities/sqlite.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/database/enums/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/database/enums/mysql_charsets.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/database/enums/mysql_collations.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/database/enums/mysql_engine.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/database/enums/oracle_encoding.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/database/enums/oracle_nencoding.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/database/enums/pgsql_charsets.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/database/enums/pgsql_collations.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/database/enums/pgsql_mode.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/database/enums/sqlite_foreign_key.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/database/enums/sqlite_journal.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/database/enums/sqlite_synchronous.py +0 -0
- {orionis-0.482.0/orionis/foundation/config/filesystems/entitites → orionis-0.484.0/orionis/foundation/config/filesystems}/__init__.py +0 -0
- {orionis-0.482.0/orionis/foundation/config/logging → orionis-0.484.0/orionis/foundation/config/filesystems/entitites}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/filesystems/entitites/aws.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/filesystems/entitites/disks.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/filesystems/entitites/filesystems.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/filesystems/entitites/local.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/filesystems/entitites/public.py +0 -0
- {orionis-0.482.0/orionis/foundation/config/logging/entities → orionis-0.484.0/orionis/foundation/config/logging}/__init__.py +0 -0
- {orionis-0.482.0/orionis/foundation/config/mail → orionis-0.484.0/orionis/foundation/config/logging/entities}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/logging/entities/channels.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/logging/entities/chunked.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/logging/entities/daily.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/logging/entities/hourly.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/logging/entities/logging.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/logging/entities/monthly.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/logging/entities/stack.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/logging/entities/weekly.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/logging/enums/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/logging/enums/levels.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/logging/validators/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/logging/validators/level.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/logging/validators/path.py +0 -0
- {orionis-0.482.0/orionis/foundation/config/mail/entities → orionis-0.484.0/orionis/foundation/config/mail}/__init__.py +0 -0
- {orionis-0.482.0/orionis/foundation/config/queue → orionis-0.484.0/orionis/foundation/config/mail/entities}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/mail/entities/file.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/mail/entities/mail.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/mail/entities/mailers.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/mail/entities/smtp.py +0 -0
- {orionis-0.482.0/orionis/foundation/config/queue/entities → orionis-0.484.0/orionis/foundation/config/queue}/__init__.py +0 -0
- {orionis-0.482.0/orionis/foundation/config/roots → orionis-0.484.0/orionis/foundation/config/queue/entities}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/queue/entities/brokers.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/queue/entities/database.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/queue/entities/queue.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/queue/enums/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/queue/enums/strategy.py +0 -0
- {orionis-0.482.0/orionis/foundation/config/session → orionis-0.484.0/orionis/foundation/config/roots}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/roots/paths.py +0 -0
- {orionis-0.482.0/orionis/foundation/config/session/entities → orionis-0.484.0/orionis/foundation/config/session}/__init__.py +0 -0
- {orionis-0.482.0/orionis/foundation/config/session/helpers → orionis-0.484.0/orionis/foundation/config/session/entities}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/session/entities/session.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/session/enums/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/session/enums/same_site_policy.py +0 -0
- {orionis-0.482.0/orionis/foundation/config/testing → orionis-0.484.0/orionis/foundation/config/session/helpers}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/session/helpers/secret_key.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/startup.py +0 -0
- {orionis-0.482.0/orionis/foundation/config/testing/entities → orionis-0.484.0/orionis/foundation/config/testing}/__init__.py +0 -0
- {orionis-0.482.0/orionis/foundation/contracts → orionis-0.484.0/orionis/foundation/config/testing/entities}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/testing/entities/testing.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/testing/enums/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/testing/enums/drivers.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/testing/enums/mode.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/config/testing/enums/verbosity.py +0 -0
- {orionis-0.482.0/orionis/foundation/providers → orionis-0.484.0/orionis/foundation/contracts}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/contracts/application.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/contracts/config.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/exceptions/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/exceptions/integrity.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/exceptions/runtime.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/exceptions/type.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/exceptions/value.py +0 -0
- {orionis-0.482.0/orionis/metadata → orionis-0.484.0/orionis/foundation/providers}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/providers/console_provider.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/providers/dumper_provider.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/providers/executor_provider.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/providers/inspirational_provider.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/providers/logger_provider.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/providers/performance_counter_provider.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/providers/progress_bar_provider.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/providers/reactor_provider.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/providers/scheduler_provider.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/providers/testing_provider.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/foundation/providers/workers_provider.py +0 -0
- {orionis-0.482.0/orionis/services → orionis-0.484.0/orionis/metadata}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/metadata/package.py +0 -0
- {orionis-0.482.0/orionis/services/asynchrony → orionis-0.484.0/orionis/services}/__init__.py +0 -0
- {orionis-0.482.0/orionis/services/asynchrony/contracts → orionis-0.484.0/orionis/services/asynchrony}/__init__.py +0 -0
- {orionis-0.482.0/orionis/services/environment → orionis-0.484.0/orionis/services/asynchrony/contracts}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/services/asynchrony/contracts/coroutines.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/services/asynchrony/coroutines.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/services/asynchrony/exceptions/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/services/asynchrony/exceptions/exception.py +0 -0
- {orionis-0.482.0/orionis/services/environment/contracts → orionis-0.484.0/orionis/services/environment}/__init__.py +0 -0
- {orionis-0.482.0/orionis/services/environment/core → orionis-0.484.0/orionis/services/environment/contracts}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/services/environment/contracts/caster.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/services/environment/contracts/env.py +0 -0
- {orionis-0.482.0/orionis/services/environment/dynamic → orionis-0.484.0/orionis/services/environment/core}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/services/environment/core/dot_env.py +0 -0
- {orionis-0.482.0/orionis/services/environment/helpers → orionis-0.484.0/orionis/services/environment/dynamic}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/services/environment/dynamic/caster.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/services/environment/enums/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/services/environment/enums/value_type.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/services/environment/env.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/services/environment/exceptions/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/services/environment/exceptions/exception.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/services/environment/exceptions/value.py +0 -0
- {orionis-0.482.0/orionis/services/environment/key → orionis-0.484.0/orionis/services/environment/helpers}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/services/environment/helpers/functions.py +0 -0
- {orionis-0.482.0/orionis/services/inspirational → orionis-0.484.0/orionis/services/environment/key}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/services/environment/key/key_generator.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/services/environment/validators/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/services/environment/validators/key_name.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/services/environment/validators/types.py +0 -0
- {orionis-0.482.0/orionis/services/inspirational/contracts → orionis-0.484.0/orionis/services/inspirational}/__init__.py +0 -0
- {orionis-0.482.0/orionis/services/introspection → orionis-0.484.0/orionis/services/inspirational/contracts}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/services/inspirational/contracts/inspire.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/services/inspirational/inspire.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/services/inspirational/quotes.py +0 -0
- {orionis-0.482.0/orionis/services/introspection/abstract → orionis-0.484.0/orionis/services/introspection}/__init__.py +0 -0
- {orionis-0.482.0/orionis/services/introspection/abstract/contracts → orionis-0.484.0/orionis/services/introspection/abstract}/__init__.py +0 -0
- {orionis-0.482.0/orionis/services/introspection/callables → orionis-0.484.0/orionis/services/introspection/abstract/contracts}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/services/introspection/abstract/contracts/reflection.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/services/introspection/abstract/reflection.py +0 -0
- {orionis-0.482.0/orionis/services/introspection/callables/contracts → orionis-0.484.0/orionis/services/introspection/callables}/__init__.py +0 -0
- {orionis-0.482.0/orionis/services/introspection/concretes → orionis-0.484.0/orionis/services/introspection/callables/contracts}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/services/introspection/callables/contracts/reflection.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/services/introspection/callables/reflection.py +0 -0
- {orionis-0.482.0/orionis/services/introspection/concretes/contracts → orionis-0.484.0/orionis/services/introspection/concretes}/__init__.py +0 -0
- {orionis-0.482.0/orionis/services/introspection/dependencies → orionis-0.484.0/orionis/services/introspection/concretes/contracts}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/services/introspection/concretes/contracts/reflection.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/services/introspection/concretes/reflection.py +0 -0
- {orionis-0.482.0/orionis/services/introspection/dependencies/contracts → orionis-0.484.0/orionis/services/introspection/dependencies}/__init__.py +0 -0
- {orionis-0.482.0/orionis/services/introspection/dependencies/entities → orionis-0.484.0/orionis/services/introspection/dependencies/contracts}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/services/introspection/dependencies/contracts/reflection.py +0 -0
- {orionis-0.482.0/orionis/services/introspection/instances → orionis-0.484.0/orionis/services/introspection/dependencies/entities}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/services/introspection/dependencies/entities/argument.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/services/introspection/dependencies/entities/resolve_argument.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/services/introspection/dependencies/reflection.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/services/introspection/exceptions/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/services/introspection/exceptions/attribute.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/services/introspection/exceptions/type.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/services/introspection/exceptions/value.py +0 -0
- {orionis-0.482.0/orionis/services/introspection/instances/contracts → orionis-0.484.0/orionis/services/introspection/instances}/__init__.py +0 -0
- {orionis-0.482.0/orionis/services/introspection/modules → orionis-0.484.0/orionis/services/introspection/instances/contracts}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/services/introspection/instances/contracts/reflection.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/services/introspection/instances/reflection.py +0 -0
- {orionis-0.482.0/orionis/services/introspection/modules/contracts → orionis-0.484.0/orionis/services/introspection/modules}/__init__.py +0 -0
- {orionis-0.482.0/orionis/services/introspection/objects → orionis-0.484.0/orionis/services/introspection/modules/contracts}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/services/introspection/modules/contracts/reflection.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/services/introspection/modules/reflection.py +0 -0
- {orionis-0.482.0/orionis/services/log → orionis-0.484.0/orionis/services/introspection/objects}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/services/introspection/objects/types.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/services/introspection/reflection.py +0 -0
- {orionis-0.482.0/orionis/services/log/contracts → orionis-0.484.0/orionis/services/log}/__init__.py +0 -0
- {orionis-0.482.0/orionis/services/log/handlers → orionis-0.484.0/orionis/services/log/contracts}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/services/log/contracts/log_service.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/services/log/exceptions/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/services/log/exceptions/runtime.py +0 -0
- {orionis-0.482.0/orionis/services/system → orionis-0.484.0/orionis/services/log/handlers}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/services/log/handlers/filename.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/services/log/handlers/size_rotating.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/services/log/handlers/timed_rotating.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/services/log/log_service.py +0 -0
- {orionis-0.482.0/orionis/services/system/contracts → orionis-0.484.0/orionis/services/system}/__init__.py +0 -0
- {orionis-0.482.0/orionis/services/system/runtime → orionis-0.484.0/orionis/services/system/contracts}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/services/system/contracts/imports.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/services/system/contracts/workers.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/services/system/imports.py +0 -0
- {orionis-0.482.0/orionis/support → orionis-0.484.0/orionis/services/system/runtime}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/services/system/runtime/imports.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/services/system/workers.py +0 -0
- {orionis-0.482.0/orionis/support/entities → orionis-0.484.0/orionis/support}/__init__.py +0 -0
- {orionis-0.482.0/orionis/support/facades → orionis-0.484.0/orionis/support/entities}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/support/entities/base.py +0 -0
- {orionis-0.482.0/orionis/support/formatter → orionis-0.484.0/orionis/support/facades}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/support/facades/application.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/support/facades/console.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/support/facades/dumper.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/support/facades/executor.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/support/facades/inspire.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/support/facades/logger.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/support/facades/performance_counter.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/support/facades/progress_bar.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/support/facades/reactor.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/support/facades/testing.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/support/facades/workers.py +0 -0
- {orionis-0.482.0/orionis/support/formatter/exceptions → orionis-0.484.0/orionis/support/formatter}/__init__.py +0 -0
- {orionis-0.482.0/orionis/support/formatter/exceptions/contracts → orionis-0.484.0/orionis/support/formatter/exceptions}/__init__.py +0 -0
- {orionis-0.482.0/orionis/support/patterns → orionis-0.484.0/orionis/support/formatter/exceptions/contracts}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/support/formatter/exceptions/contracts/parser.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/support/formatter/exceptions/parser.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/support/formatter/serializer.py +0 -0
- {orionis-0.482.0/orionis/support/performance → orionis-0.484.0/orionis/support/patterns}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/support/patterns/singleton/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/support/patterns/singleton/meta.py +0 -0
- {orionis-0.482.0/orionis/support/performance/contracts → orionis-0.484.0/orionis/support/performance}/__init__.py +0 -0
- {orionis-0.482.0/orionis/support/standard → orionis-0.484.0/orionis/support/performance/contracts}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/support/performance/contracts/counter.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/support/performance/counter.py +0 -0
- {orionis-0.482.0/orionis/support/standard/contracts → orionis-0.484.0/orionis/support/standard}/__init__.py +0 -0
- {orionis-0.482.0/orionis/test → orionis-0.484.0/orionis/support/standard/contracts}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/support/standard/contracts/std.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/support/standard/exceptions/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/support/standard/exceptions/value.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/support/standard/std.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/support/wrapper/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/support/wrapper/dot_dict.py +0 -0
- {orionis-0.482.0/orionis/test/cases → orionis-0.484.0/orionis/test}/__init__.py +0 -0
- {orionis-0.482.0/orionis/test/contracts → orionis-0.484.0/orionis/test/cases}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/test/cases/asynchronous.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/test/cases/synchronous.py +0 -0
- {orionis-0.482.0/orionis/test/core → orionis-0.484.0/orionis/test/contracts}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/test/contracts/dumper.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/test/contracts/kernel.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/test/contracts/logs.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/test/contracts/printer.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/test/contracts/render.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/test/contracts/test_result.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/test/contracts/unit_test.py +0 -0
- {orionis-0.482.0/orionis/test/entities → orionis-0.484.0/orionis/test/core}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/test/core/unit_test.py +0 -0
- {orionis-0.482.0/orionis/test/output → orionis-0.484.0/orionis/test/entities}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/test/entities/result.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/test/enums/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/test/enums/status.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/test/exceptions/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/test/exceptions/config.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/test/exceptions/failure.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/test/exceptions/persistence.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/test/exceptions/runtime.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/test/exceptions/value.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/test/kernel.py +0 -0
- {orionis-0.482.0/orionis/test/records → orionis-0.484.0/orionis/test/output}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/test/output/dumper.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/test/output/printer.py +0 -0
- {orionis-0.482.0/orionis/test/view → orionis-0.484.0/orionis/test/records}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/test/records/logs.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/test/validators/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/test/validators/base_path.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/test/validators/execution_mode.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/test/validators/fail_fast.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/test/validators/folder_path.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/test/validators/module_name.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/test/validators/name_pattern.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/test/validators/pattern.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/test/validators/persistent.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/test/validators/persistent_driver.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/test/validators/print_result.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/test/validators/tags.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/test/validators/throw_exception.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/test/validators/verbosity.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/test/validators/web_report.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/test/validators/workers.py +0 -0
- {orionis-0.482.0/tests → orionis-0.484.0/orionis/test/view}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis/test/view/render.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis.egg-info/dependency_links.txt +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis.egg-info/requires.txt +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis.egg-info/top_level.txt +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/orionis.egg-info/zip-safe +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/setup.cfg +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/setup.py +0 -0
- {orionis-0.482.0/tests/container → orionis-0.484.0/tests}/__init__.py +0 -0
- {orionis-0.482.0/tests/container/context → orionis-0.484.0/tests/container}/__init__.py +0 -0
- {orionis-0.482.0/tests/container/core → orionis-0.484.0/tests/container/context}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/container/context/test_manager.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/container/context/test_scope.py +0 -0
- {orionis-0.482.0/tests/container/entities → orionis-0.484.0/tests/container/core}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/container/core/test_advanced_async.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/container/core/test_async_optimizations.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/container/core/test_container.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/container/core/test_singleton.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/container/core/test_thread_safety.py +0 -0
- {orionis-0.482.0/tests/container/enums → orionis-0.484.0/tests/container/entities}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/container/entities/test_binding.py +0 -0
- {orionis-0.482.0/tests/container/facades → orionis-0.484.0/tests/container/enums}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/container/enums/test_lifetimes.py +0 -0
- {orionis-0.482.0/tests/container/mocks → orionis-0.484.0/tests/container/facades}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/container/facades/test_facade.py +0 -0
- {orionis-0.482.0/tests/container/providers → orionis-0.484.0/tests/container/mocks}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/container/mocks/mock_advanced_async.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/container/mocks/mock_async_optimizations.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/container/mocks/mock_auto_resolution.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/container/mocks/mock_complex_classes.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/container/mocks/mock_simple_classes.py +0 -0
- {orionis-0.482.0/tests/container/validators → orionis-0.484.0/tests/container/providers}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/container/providers/test_providers.py +0 -0
- {orionis-0.482.0/tests/example → orionis-0.484.0/tests/container/validators}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/container/validators/test_implements.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/container/validators/test_is_abstract_class.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/container/validators/test_is_callable.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/container/validators/test_is_concrete_class.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/container/validators/test_is_instance.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/container/validators/test_is_not_subclass.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/container/validators/test_is_subclass.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/container/validators/test_is_valid_alias.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/container/validators/test_lifetime.py +0 -0
- {orionis-0.482.0/tests/foundation → orionis-0.484.0/tests/example}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/example/test_example.py +0 -0
- {orionis-0.482.0/tests/foundation/config → orionis-0.484.0/tests/foundation}/__init__.py +0 -0
- {orionis-0.482.0/tests/foundation/config/app → orionis-0.484.0/tests/foundation/config}/__init__.py +0 -0
- {orionis-0.482.0/tests/foundation/config/auth → orionis-0.484.0/tests/foundation/config/app}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/foundation/config/app/test_foundation_config_app.py +0 -0
- {orionis-0.482.0/tests/foundation/config/cache → orionis-0.484.0/tests/foundation/config/auth}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/foundation/config/auth/test_foundation_config_auth.py +0 -0
- {orionis-0.482.0/tests/foundation/config/cors → orionis-0.484.0/tests/foundation/config/cache}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/foundation/config/cache/test_foundation_config_cache.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/foundation/config/cache/test_foundation_config_cache_file.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/foundation/config/cache/test_foundation_config_cache_stores.py +0 -0
- {orionis-0.482.0/tests/foundation/config/database → orionis-0.484.0/tests/foundation/config/cors}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/foundation/config/cors/test_foundation_config_cors.py +0 -0
- {orionis-0.482.0/tests/foundation/config/filesystems → orionis-0.484.0/tests/foundation/config/database}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/foundation/config/database/test_foundation_config_database.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/foundation/config/database/test_foundation_config_database_connections.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/foundation/config/database/test_foundation_config_database_mysql.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/foundation/config/database/test_foundation_config_database_oracle.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/foundation/config/database/test_foundation_config_database_pgsql.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/foundation/config/database/test_foundation_config_database_sqlite.py +0 -0
- {orionis-0.482.0/tests/foundation/config/logging → orionis-0.484.0/tests/foundation/config/filesystems}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems_aws.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems_disks.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems_local.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems_public.py +0 -0
- {orionis-0.482.0/tests/foundation/config/mail → orionis-0.484.0/tests/foundation/config/logging}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/foundation/config/logging/test_foundation_config_logging.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/foundation/config/logging/test_foundation_config_logging_channels.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/foundation/config/logging/test_foundation_config_logging_chunked.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/foundation/config/logging/test_foundation_config_logging_daily.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/foundation/config/logging/test_foundation_config_logging_hourly.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/foundation/config/logging/test_foundation_config_logging_monthly.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/foundation/config/logging/test_foundation_config_logging_stack.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/foundation/config/logging/test_foundation_config_logging_weekly.py +0 -0
- {orionis-0.482.0/tests/foundation/config/queue → orionis-0.484.0/tests/foundation/config/mail}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/foundation/config/mail/test_foundation_config_mail.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/foundation/config/mail/test_foundation_config_mail_file.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/foundation/config/mail/test_foundation_config_mail_mailers.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/foundation/config/mail/test_foundation_config_mail_smtp.py +0 -0
- {orionis-0.482.0/tests/foundation/config/root → orionis-0.484.0/tests/foundation/config/queue}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/foundation/config/queue/test_foundation_config_queue.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/foundation/config/queue/test_foundation_config_queue_brokers.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/foundation/config/queue/test_foundation_config_queue_database.py +0 -0
- {orionis-0.482.0/tests/foundation/config/session → orionis-0.484.0/tests/foundation/config/root}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/foundation/config/root/test_foundation_config_root_paths.py +0 -0
- {orionis-0.482.0/tests/foundation/config/startup → orionis-0.484.0/tests/foundation/config/session}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/foundation/config/session/test_foundation_config_session.py +0 -0
- {orionis-0.482.0/tests/foundation/config/testing → orionis-0.484.0/tests/foundation/config/startup}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/foundation/config/startup/test_foundation_config_startup.py +0 -0
- {orionis-0.482.0/tests/metadata → orionis-0.484.0/tests/foundation/config/testing}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/foundation/config/testing/test_foundation_config_testing.py +0 -0
- {orionis-0.482.0/tests/services → orionis-0.484.0/tests/metadata}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/metadata/test_metadata_framework.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/metadata/test_metadata_package.py +0 -0
- {orionis-0.482.0/tests/services/asynchrony → orionis-0.484.0/tests/services}/__init__.py +0 -0
- {orionis-0.482.0/tests/services/environment → orionis-0.484.0/tests/services/asynchrony}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/services/asynchrony/test_services_asynchrony_coroutine.py +0 -0
- {orionis-0.482.0/tests/services/introspection → orionis-0.484.0/tests/services/environment}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/services/environment/test_services_environment.py +0 -0
- {orionis-0.482.0/tests/services/introspection/dependencies → orionis-0.484.0/tests/services/introspection}/__init__.py +0 -0
- {orionis-0.482.0/tests/services/introspection/dependencies/mocks → orionis-0.484.0/tests/services/introspection/dependencies}/__init__.py +0 -0
- {orionis-0.482.0/tests/services/introspection/reflection → orionis-0.484.0/tests/services/introspection/dependencies/mocks}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/services/introspection/dependencies/mocks/mock_user.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/services/introspection/dependencies/mocks/mock_user_controller.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/services/introspection/dependencies/mocks/mock_users_permissions.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/services/introspection/dependencies/test_reflect_dependencies.py +0 -0
- {orionis-0.482.0/tests/services/introspection/reflection/mock → orionis-0.484.0/tests/services/introspection/reflection}/__init__.py +0 -0
- {orionis-0.482.0/tests/services/log → orionis-0.484.0/tests/services/introspection/reflection/mock}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/services/introspection/reflection/mock/fake_reflect_instance.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/services/introspection/reflection/test_reflection_abstract.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/services/introspection/reflection/test_reflection_callable.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/services/introspection/reflection/test_reflection_concrete.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/services/introspection/reflection/test_reflection_instance.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/services/introspection/reflection/test_reflection_module.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/services/introspection/test_reflection.py +0 -0
- {orionis-0.482.0/tests/services/system → orionis-0.484.0/tests/services/log}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/services/log/test_log.py +0 -0
- {orionis-0.482.0/tests/support → orionis-0.484.0/tests/services/system}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/services/system/test_services_system_imports.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/services/system/test_services_system_workers.py +0 -0
- {orionis-0.482.0/tests/support/entities → orionis-0.484.0/tests/support}/__init__.py +0 -0
- {orionis-0.482.0/tests/support/patterns → orionis-0.484.0/tests/support/entities}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/support/entities/mock_dataclass.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/support/entities/test_base.py +0 -0
- {orionis-0.482.0/tests/support/patterns/singleton → orionis-0.484.0/tests/support/patterns}/__init__.py +0 -0
- {orionis-0.482.0/tests/support/standard → orionis-0.484.0/tests/support/patterns/singleton}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/support/patterns/singleton/test_patterns_singleton.py +0 -0
- {orionis-0.482.0/tests/support/wrapper → orionis-0.484.0/tests/support/standard}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/support/standard/test_services_std.py +0 -0
- {orionis-0.482.0/tests/testing → orionis-0.484.0/tests/support/wrapper}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/support/wrapper/test_services_wrapper_docdict.py +0 -0
- {orionis-0.482.0/tests/testing/cases → orionis-0.484.0/tests/testing}/__init__.py +0 -0
- {orionis-0.482.0/tests/testing/entities → orionis-0.484.0/tests/testing/cases}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/testing/cases/test_testing_asynchronous.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/testing/cases/test_testing_synchronous.py +0 -0
- {orionis-0.482.0/tests/testing/enums → orionis-0.484.0/tests/testing/entities}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/testing/entities/test_testing_result.py +0 -0
- {orionis-0.482.0/tests/testing/output → orionis-0.484.0/tests/testing/enums}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/testing/enums/test_testing_status.py +0 -0
- {orionis-0.482.0/tests/testing/records → orionis-0.484.0/tests/testing/output}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/testing/output/test_testing_dumper.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/testing/output/test_testing_printer.py +0 -0
- {orionis-0.482.0/tests/testing/validators → orionis-0.484.0/tests/testing/records}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/testing/records/test_testing_records.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/testing/test_testing_unit.py +0 -0
- {orionis-0.482.0/tests/testing/view → orionis-0.484.0/tests/testing/validators}/__init__.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/testing/validators/test_testing_validators.py +0 -0
- {orionis-0.482.0 → orionis-0.484.0}/tests/testing/view/test_render.py +0 -0
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import importlib
|
|
2
|
+
import os
|
|
3
|
+
from pathlib import Path
|
|
4
|
+
from rich.console import Console
|
|
5
|
+
from rich.panel import Panel
|
|
6
|
+
from rich.table import Table
|
|
7
|
+
from orionis.console.base.command import BaseCommand
|
|
8
|
+
from orionis.console.contracts.schedule import ISchedule
|
|
9
|
+
from orionis.console.exceptions import CLIOrionisRuntimeError
|
|
10
|
+
from orionis.foundation.contracts.application import IApplication
|
|
11
|
+
|
|
12
|
+
class ScheduleListCommand(BaseCommand):
|
|
13
|
+
"""
|
|
14
|
+
Command class to display usage information for the Orionis CLI.
|
|
15
|
+
|
|
16
|
+
Methods
|
|
17
|
+
-------
|
|
18
|
+
handle(orionis: IApplication, console: Console) -> bool
|
|
19
|
+
Displays a table of scheduled tasks defined in the application.
|
|
20
|
+
Imports the scheduler module, retrieves scheduled jobs, and prints them
|
|
21
|
+
in a formatted table using the rich library.
|
|
22
|
+
|
|
23
|
+
Returns
|
|
24
|
+
-------
|
|
25
|
+
bool
|
|
26
|
+
Returns True if the scheduled jobs are listed successfully or if no jobs are found.
|
|
27
|
+
Raises CLIOrionisRuntimeError if an error occurs during execution.
|
|
28
|
+
"""
|
|
29
|
+
|
|
30
|
+
# Indicates whether timestamps will be shown in the command output
|
|
31
|
+
timestamps: bool = False
|
|
32
|
+
|
|
33
|
+
# Command signature and description
|
|
34
|
+
signature: str = "schedule:list"
|
|
35
|
+
|
|
36
|
+
# Command description
|
|
37
|
+
description: str = "Executes the scheduled tasks defined in the application."
|
|
38
|
+
|
|
39
|
+
def handle(self, orionis: IApplication, console: Console) -> bool:
|
|
40
|
+
"""
|
|
41
|
+
Displays a table of scheduled jobs defined in the application.
|
|
42
|
+
|
|
43
|
+
This method dynamically imports the scheduler module, retrieves the list of
|
|
44
|
+
scheduled jobs using the ISchedule service, and prints the jobs in a formatted
|
|
45
|
+
table. If no jobs are found, a message is displayed. Handles and reports errors
|
|
46
|
+
encountered during the process.
|
|
47
|
+
|
|
48
|
+
Parameters
|
|
49
|
+
----------
|
|
50
|
+
orionis : IApplication
|
|
51
|
+
The application instance providing configuration and service resolution.
|
|
52
|
+
console : Console
|
|
53
|
+
The rich Console instance used for output.
|
|
54
|
+
|
|
55
|
+
Returns
|
|
56
|
+
-------
|
|
57
|
+
bool
|
|
58
|
+
Returns True if the scheduled jobs are listed successfully or if no jobs are found.
|
|
59
|
+
Raises CLIOrionisRuntimeError if an error occurs during execution.
|
|
60
|
+
"""
|
|
61
|
+
|
|
62
|
+
try:
|
|
63
|
+
|
|
64
|
+
# Get the absolute path of the scheduler from the application configuration
|
|
65
|
+
scheduler_path = orionis.path('console_scheduler')
|
|
66
|
+
|
|
67
|
+
# Get the base path from the current working directory
|
|
68
|
+
base_path = Path(os.getcwd()).resolve()
|
|
69
|
+
scheduler_path = Path(scheduler_path).resolve()
|
|
70
|
+
rel_path = scheduler_path.relative_to(base_path)
|
|
71
|
+
|
|
72
|
+
# Convert the path to a module name (replace separators with dots, remove .py)
|
|
73
|
+
module_name = ".".join(rel_path.with_suffix('').parts)
|
|
74
|
+
|
|
75
|
+
# Dynamically import the scheduler module
|
|
76
|
+
scheduler_module = importlib.import_module(module_name)
|
|
77
|
+
|
|
78
|
+
# Retrieve the Scheduler class from the imported module
|
|
79
|
+
Scheduler = getattr(scheduler_module, "Scheduler", None)
|
|
80
|
+
|
|
81
|
+
# Raise an error if the Scheduler class is not found
|
|
82
|
+
if Scheduler is None:
|
|
83
|
+
raise CLIOrionisRuntimeError(f"Scheduler class not found in module {module_name}")
|
|
84
|
+
|
|
85
|
+
# Retrieve the 'tasks' method from the Scheduler class
|
|
86
|
+
task_method = getattr(Scheduler, "tasks", None)
|
|
87
|
+
|
|
88
|
+
# Raise an error if the 'tasks' method is not found
|
|
89
|
+
if task_method is None:
|
|
90
|
+
raise CLIOrionisRuntimeError(f"Method 'tasks' not found in Scheduler class in module {module_name}")
|
|
91
|
+
|
|
92
|
+
# Create an instance of ISchedule using the application container
|
|
93
|
+
schedule_serice: ISchedule = orionis.make(ISchedule)
|
|
94
|
+
|
|
95
|
+
# Initialize the scheduled tasks by calling the 'tasks' method
|
|
96
|
+
task_method(schedule_serice)
|
|
97
|
+
|
|
98
|
+
# Retrieve the list of scheduled jobs/events
|
|
99
|
+
list_tasks = schedule_serice.events()
|
|
100
|
+
|
|
101
|
+
# Display a message if no scheduled jobs are found
|
|
102
|
+
if not list_tasks:
|
|
103
|
+
console.line()
|
|
104
|
+
console.print(Panel("No scheduled jobs found.", border_style="green"))
|
|
105
|
+
console.line()
|
|
106
|
+
return True
|
|
107
|
+
|
|
108
|
+
# Create and configure a table to display scheduled jobs
|
|
109
|
+
table = Table(title="Scheduled Jobs", show_lines=True)
|
|
110
|
+
table.add_column("Signature", style="cyan", no_wrap=True)
|
|
111
|
+
table.add_column("Arguments", style="magenta")
|
|
112
|
+
table.add_column("Purpose", style="green")
|
|
113
|
+
table.add_column("Random Delay", style="yellow")
|
|
114
|
+
table.add_column("Start Date", style="white")
|
|
115
|
+
table.add_column("End Date", style="white")
|
|
116
|
+
table.add_column("Details", style="dim")
|
|
117
|
+
|
|
118
|
+
# Populate the table with job details
|
|
119
|
+
for job in list_tasks:
|
|
120
|
+
signature = str(job.get("signature", ""))
|
|
121
|
+
args = ", ".join(map(str, job.get("args", [])))
|
|
122
|
+
purpose = str(job.get("purpose", ""))
|
|
123
|
+
random_delay = str(job.get("random_delay", ""))
|
|
124
|
+
start_date = str(job.get("start_date", "")) if job.get("start_date") else "-"
|
|
125
|
+
end_date = str(job.get("end_date", "")) if job.get("end_date") else "-"
|
|
126
|
+
details = str(job.get("details", ""))
|
|
127
|
+
|
|
128
|
+
table.add_row(signature, args, purpose, random_delay, start_date, end_date, details)
|
|
129
|
+
|
|
130
|
+
# Print the table to the console
|
|
131
|
+
console.line()
|
|
132
|
+
console.print(table)
|
|
133
|
+
console.line()
|
|
134
|
+
return True
|
|
135
|
+
|
|
136
|
+
except Exception as exc:
|
|
137
|
+
|
|
138
|
+
# Catch any unexpected exceptions and raise as a CLIOrionisRuntimeError
|
|
139
|
+
raise CLIOrionisRuntimeError(f"An unexpected error occurred while clearing the cache: {exc}")
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import importlib
|
|
2
|
+
import os
|
|
3
|
+
from datetime import datetime
|
|
4
|
+
from pathlib import Path
|
|
5
|
+
from rich.console import Console
|
|
6
|
+
from rich.panel import Panel
|
|
7
|
+
from rich.text import Text
|
|
8
|
+
from orionis.console.base.command import BaseCommand
|
|
9
|
+
from orionis.console.contracts.schedule import ISchedule
|
|
10
|
+
from orionis.console.exceptions import CLIOrionisRuntimeError
|
|
11
|
+
from orionis.foundation.contracts.application import IApplication
|
|
12
|
+
|
|
13
|
+
class ScheduleWorkCommand(BaseCommand):
|
|
14
|
+
"""
|
|
15
|
+
Executes the scheduled tasks defined in the application's scheduler.
|
|
16
|
+
|
|
17
|
+
This command dynamically loads the scheduler module specified in the application's configuration,
|
|
18
|
+
retrieves the `Scheduler` class and its `tasks` method, registers the scheduled tasks with the
|
|
19
|
+
ISchedule service, and starts the scheduler worker. It provides user feedback via the console and
|
|
20
|
+
handles errors by raising CLIOrionisRuntimeError exceptions.
|
|
21
|
+
|
|
22
|
+
Parameters
|
|
23
|
+
----------
|
|
24
|
+
orionis : IApplication
|
|
25
|
+
The application instance providing configuration and service resolution.
|
|
26
|
+
console : Console
|
|
27
|
+
The Rich console instance used for displaying output to the user.
|
|
28
|
+
|
|
29
|
+
Returns
|
|
30
|
+
-------
|
|
31
|
+
bool
|
|
32
|
+
Returns True if the scheduler worker starts successfully. If an error occurs during the process,
|
|
33
|
+
a CLIOrionisRuntimeError is raised.
|
|
34
|
+
|
|
35
|
+
Raises
|
|
36
|
+
------
|
|
37
|
+
CLIOrionisRuntimeError
|
|
38
|
+
If the scheduler module, class, or tasks method cannot be found, or if any unexpected error occurs.
|
|
39
|
+
"""
|
|
40
|
+
|
|
41
|
+
# Indicates whether timestamps will be shown in the command output
|
|
42
|
+
timestamps: bool = False
|
|
43
|
+
|
|
44
|
+
# Command signature and description
|
|
45
|
+
signature: str = "schedule:work"
|
|
46
|
+
|
|
47
|
+
# Command description
|
|
48
|
+
description: str = "Executes the scheduled tasks defined in the application."
|
|
49
|
+
|
|
50
|
+
async def handle(self, orionis: IApplication, console: Console) -> bool:
|
|
51
|
+
"""
|
|
52
|
+
Executes the scheduled tasks defined in the application's scheduler.
|
|
53
|
+
|
|
54
|
+
This method dynamically loads the scheduler module specified in the application's configuration,
|
|
55
|
+
retrieves the `Scheduler` class and its `tasks` method, registers the scheduled tasks with the
|
|
56
|
+
ISchedule service, and starts the scheduler worker. It provides user feedback via the console and
|
|
57
|
+
handles errors by raising CLIOrionisRuntimeError exceptions.
|
|
58
|
+
|
|
59
|
+
Parameters
|
|
60
|
+
----------
|
|
61
|
+
orionis : IApplication
|
|
62
|
+
The application instance providing configuration and service resolution.
|
|
63
|
+
console : Console
|
|
64
|
+
The Rich console instance used for displaying output to the user.
|
|
65
|
+
|
|
66
|
+
Returns
|
|
67
|
+
-------
|
|
68
|
+
bool
|
|
69
|
+
Returns True if the scheduler worker starts successfully. If an error occurs during the process,
|
|
70
|
+
a CLIOrionisRuntimeError is raised.
|
|
71
|
+
|
|
72
|
+
Raises
|
|
73
|
+
------
|
|
74
|
+
CLIOrionisRuntimeError
|
|
75
|
+
If the scheduler module, class, or tasks method cannot be found, or if any unexpected error occurs.
|
|
76
|
+
"""
|
|
77
|
+
try:
|
|
78
|
+
# Get the absolute path to the scheduler module from the application configuration
|
|
79
|
+
scheduler_path = orionis.path('console_scheduler')
|
|
80
|
+
|
|
81
|
+
# Resolve the base path (current working directory)
|
|
82
|
+
base_path = Path(os.getcwd()).resolve()
|
|
83
|
+
scheduler_path = Path(scheduler_path).resolve()
|
|
84
|
+
|
|
85
|
+
# Compute the relative path from the base path to the scheduler module
|
|
86
|
+
rel_path = scheduler_path.relative_to(base_path)
|
|
87
|
+
|
|
88
|
+
# Convert the relative path to a Python module name (dot notation, no .py extension)
|
|
89
|
+
module_name = ".".join(rel_path.with_suffix('').parts)
|
|
90
|
+
|
|
91
|
+
# Dynamically import the scheduler module
|
|
92
|
+
scheduler_module = importlib.import_module(module_name)
|
|
93
|
+
|
|
94
|
+
# Retrieve the Scheduler class from the imported module
|
|
95
|
+
Scheduler = getattr(scheduler_module, "Scheduler", None)
|
|
96
|
+
if Scheduler is None:
|
|
97
|
+
raise CLIOrionisRuntimeError(f"Scheduler class not found in module {module_name}")
|
|
98
|
+
|
|
99
|
+
# Create an instance of the Scheduler class
|
|
100
|
+
Scheduler = Scheduler()
|
|
101
|
+
|
|
102
|
+
# Retrieve the 'tasks' method from the Scheduler class
|
|
103
|
+
task_method = getattr(Scheduler, "tasks", None)
|
|
104
|
+
if task_method is None:
|
|
105
|
+
raise CLIOrionisRuntimeError(f"Method 'tasks' not found in Scheduler class in module {module_name}")
|
|
106
|
+
|
|
107
|
+
# Create an instance of the ISchedule service
|
|
108
|
+
schedule_serice: ISchedule = orionis.make(ISchedule)
|
|
109
|
+
|
|
110
|
+
# Register scheduled tasks using the Scheduler's tasks method
|
|
111
|
+
task_method(schedule_serice)
|
|
112
|
+
|
|
113
|
+
# Register event listeners for the scheduler
|
|
114
|
+
onSchedulerStarted = getattr(Scheduler, "onSchedulerStarted", None)
|
|
115
|
+
if onSchedulerStarted:
|
|
116
|
+
schedule_serice.addListenerOnSchedulerStarted(onSchedulerStarted)
|
|
117
|
+
|
|
118
|
+
# Display a start message for the scheduler worker
|
|
119
|
+
console.line()
|
|
120
|
+
start_time = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
|
|
121
|
+
panel_content = Text.assemble(
|
|
122
|
+
(" Orionis Scheduler Worker ", "bold white on green"),
|
|
123
|
+
("\n\n", ""),
|
|
124
|
+
("The scheduled tasks worker has started successfully.\n", "white"),
|
|
125
|
+
(f"Started at: {start_time}\n", "dim"),
|
|
126
|
+
("To stop the worker, press ", "white"),
|
|
127
|
+
("Ctrl+C", "bold yellow"),
|
|
128
|
+
(".", "white")
|
|
129
|
+
)
|
|
130
|
+
console.print(
|
|
131
|
+
Panel(panel_content, border_style="green", padding=(1, 2))
|
|
132
|
+
)
|
|
133
|
+
console.line()
|
|
134
|
+
|
|
135
|
+
# Start the scheduler worker asynchronously
|
|
136
|
+
await schedule_serice.start()
|
|
137
|
+
return True
|
|
138
|
+
|
|
139
|
+
except Exception as exc:
|
|
140
|
+
# Raise any unexpected exceptions as CLIOrionisRuntimeError
|
|
141
|
+
raise CLIOrionisRuntimeError(f"An unexpected error occurred while clearing the cache: {exc}")
|
|
@@ -112,6 +112,7 @@ class Reactor(IReactor):
|
|
|
112
112
|
from orionis.console.commands.workflow import WorkFlowGithubCommand
|
|
113
113
|
from orionis.console.commands.cache import CacheClearCommand
|
|
114
114
|
from orionis.console.commands.scheduler_work import ScheduleWorkCommand
|
|
115
|
+
from orionis.console.commands.scheduler_list import ScheduleListCommand
|
|
115
116
|
|
|
116
117
|
# List of core command classes to load (extend this list as more core commands are added)
|
|
117
118
|
core_commands = [
|
|
@@ -121,7 +122,8 @@ class Reactor(IReactor):
|
|
|
121
122
|
PublisherCommand,
|
|
122
123
|
WorkFlowGithubCommand,
|
|
123
124
|
CacheClearCommand,
|
|
124
|
-
ScheduleWorkCommand
|
|
125
|
+
ScheduleWorkCommand,
|
|
126
|
+
ScheduleListCommand
|
|
125
127
|
]
|
|
126
128
|
|
|
127
129
|
# Iterate through the core command classes and register them
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
from dataclasses import dataclass
|
|
2
|
+
from datetime import datetime
|
|
3
|
+
from typing import Any
|
|
4
|
+
|
|
5
|
+
# ==============================================================
|
|
6
|
+
# Base Events
|
|
7
|
+
# ==============================================================
|
|
8
|
+
|
|
9
|
+
@dataclass
|
|
10
|
+
class SchedulerEventData:
|
|
11
|
+
"""
|
|
12
|
+
Base class for scheduler-related events.
|
|
13
|
+
|
|
14
|
+
Attributes
|
|
15
|
+
----------
|
|
16
|
+
code : int
|
|
17
|
+
The numeric event code indicating the event type.
|
|
18
|
+
"""
|
|
19
|
+
code: int
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
@dataclass
|
|
23
|
+
class JobEventData(SchedulerEventData):
|
|
24
|
+
"""
|
|
25
|
+
Base class for job-related events.
|
|
26
|
+
|
|
27
|
+
Attributes
|
|
28
|
+
----------
|
|
29
|
+
code : int
|
|
30
|
+
The numeric event code indicating the event type.
|
|
31
|
+
job_id : str
|
|
32
|
+
The identifier of the job.
|
|
33
|
+
jobstore : str
|
|
34
|
+
The name of the job store where the job is located.
|
|
35
|
+
"""
|
|
36
|
+
job_id: str
|
|
37
|
+
jobstore: str
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
# ==============================================================
|
|
41
|
+
# Scheduler Lifecycle Events
|
|
42
|
+
# ==============================================================
|
|
43
|
+
|
|
44
|
+
@dataclass
|
|
45
|
+
class SchedulerStarted(SchedulerEventData):
|
|
46
|
+
"""
|
|
47
|
+
Event triggered when the scheduler starts running.
|
|
48
|
+
"""
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
@dataclass
|
|
52
|
+
class SchedulerShutdown(SchedulerEventData):
|
|
53
|
+
"""
|
|
54
|
+
Event triggered when the scheduler shuts down.
|
|
55
|
+
"""
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
@dataclass
|
|
59
|
+
class SchedulerPaused(SchedulerEventData):
|
|
60
|
+
"""
|
|
61
|
+
Event triggered when the scheduler is paused.
|
|
62
|
+
"""
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
@dataclass
|
|
66
|
+
class SchedulerResumed(SchedulerEventData):
|
|
67
|
+
"""
|
|
68
|
+
Event triggered when the scheduler is resumed.
|
|
69
|
+
"""
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
# ==============================================================
|
|
73
|
+
# Executor and JobStore Events
|
|
74
|
+
# ==============================================================
|
|
75
|
+
|
|
76
|
+
@dataclass
|
|
77
|
+
class ExecutorAdded(SchedulerEventData):
|
|
78
|
+
"""
|
|
79
|
+
Event triggered when an executor is added.
|
|
80
|
+
|
|
81
|
+
Attributes
|
|
82
|
+
----------
|
|
83
|
+
alias : str
|
|
84
|
+
The alias of the added executor.
|
|
85
|
+
"""
|
|
86
|
+
alias: str
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
@dataclass
|
|
90
|
+
class ExecutorRemoved(SchedulerEventData):
|
|
91
|
+
"""
|
|
92
|
+
Event triggered when an executor is removed.
|
|
93
|
+
|
|
94
|
+
Attributes
|
|
95
|
+
----------
|
|
96
|
+
alias : str
|
|
97
|
+
The alias of the removed executor.
|
|
98
|
+
"""
|
|
99
|
+
alias: str
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
@dataclass
|
|
103
|
+
class JobstoreAdded(SchedulerEventData):
|
|
104
|
+
"""
|
|
105
|
+
Event triggered when a job store is added.
|
|
106
|
+
|
|
107
|
+
Attributes
|
|
108
|
+
----------
|
|
109
|
+
alias : str
|
|
110
|
+
The alias of the added job store.
|
|
111
|
+
"""
|
|
112
|
+
alias: str
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
@dataclass
|
|
116
|
+
class JobstoreRemoved(SchedulerEventData):
|
|
117
|
+
"""
|
|
118
|
+
Event triggered when a job store is removed.
|
|
119
|
+
|
|
120
|
+
Attributes
|
|
121
|
+
----------
|
|
122
|
+
alias : str
|
|
123
|
+
The alias of the removed job store.
|
|
124
|
+
"""
|
|
125
|
+
alias: str
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
@dataclass
|
|
129
|
+
class AllJobsRemoved(SchedulerEventData):
|
|
130
|
+
"""
|
|
131
|
+
Event triggered when all jobs are removed from a job store.
|
|
132
|
+
|
|
133
|
+
Attributes
|
|
134
|
+
----------
|
|
135
|
+
jobstore : str
|
|
136
|
+
The alias of the job store from which jobs were removed.
|
|
137
|
+
"""
|
|
138
|
+
jobstore: str
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
# ==============================================================
|
|
142
|
+
# Job Management Events
|
|
143
|
+
# ==============================================================
|
|
144
|
+
|
|
145
|
+
@dataclass
|
|
146
|
+
class JobAdded(JobEventData):
|
|
147
|
+
"""
|
|
148
|
+
Event triggered when a job is added to a job store.
|
|
149
|
+
"""
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
@dataclass
|
|
153
|
+
class JobRemoved(JobEventData):
|
|
154
|
+
"""
|
|
155
|
+
Event triggered when a job is removed from a job store.
|
|
156
|
+
"""
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
@dataclass
|
|
160
|
+
class JobModified(JobEventData):
|
|
161
|
+
"""
|
|
162
|
+
Event triggered when a job is modified in a job store.
|
|
163
|
+
"""
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
@dataclass
|
|
167
|
+
class JobSubmitted(JobEventData):
|
|
168
|
+
"""
|
|
169
|
+
Event triggered when a job is submitted to an executor.
|
|
170
|
+
|
|
171
|
+
Attributes
|
|
172
|
+
----------
|
|
173
|
+
run_time : datetime
|
|
174
|
+
The datetime when the job was scheduled to run.
|
|
175
|
+
"""
|
|
176
|
+
run_time: datetime
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
@dataclass
|
|
180
|
+
class JobMaxInstances(JobEventData):
|
|
181
|
+
"""
|
|
182
|
+
Event triggered when a job exceeds its maximum allowed instances.
|
|
183
|
+
|
|
184
|
+
Attributes
|
|
185
|
+
----------
|
|
186
|
+
run_time : datetime
|
|
187
|
+
The datetime when the job was scheduled to run.
|
|
188
|
+
"""
|
|
189
|
+
run_time: datetime
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
# ==============================================================
|
|
193
|
+
# Job Execution Events
|
|
194
|
+
# ==============================================================
|
|
195
|
+
|
|
196
|
+
@dataclass
|
|
197
|
+
class JobExecuted(JobEventData):
|
|
198
|
+
"""
|
|
199
|
+
Event triggered when a job finishes successfully.
|
|
200
|
+
|
|
201
|
+
Attributes
|
|
202
|
+
----------
|
|
203
|
+
scheduled_run_time : datetime
|
|
204
|
+
The datetime when the job was scheduled to run.
|
|
205
|
+
retval : Any
|
|
206
|
+
The return value of the job function.
|
|
207
|
+
"""
|
|
208
|
+
scheduled_run_time: datetime
|
|
209
|
+
retval: Any
|
|
210
|
+
|
|
211
|
+
|
|
212
|
+
@dataclass
|
|
213
|
+
class JobError(JobEventData):
|
|
214
|
+
"""
|
|
215
|
+
Event triggered when a job raises an exception during execution.
|
|
216
|
+
|
|
217
|
+
Attributes
|
|
218
|
+
----------
|
|
219
|
+
scheduled_run_time : datetime
|
|
220
|
+
The datetime when the job was scheduled to run.
|
|
221
|
+
exception : Exception
|
|
222
|
+
The exception raised by the job.
|
|
223
|
+
traceback : str
|
|
224
|
+
The traceback of the exception.
|
|
225
|
+
"""
|
|
226
|
+
scheduled_run_time: datetime
|
|
227
|
+
exception: Exception
|
|
228
|
+
traceback: str
|
|
229
|
+
|
|
230
|
+
|
|
231
|
+
@dataclass
|
|
232
|
+
class JobMissed(JobEventData):
|
|
233
|
+
"""
|
|
234
|
+
Event triggered when a job run is missed due to scheduler constraints.
|
|
235
|
+
|
|
236
|
+
Attributes
|
|
237
|
+
----------
|
|
238
|
+
scheduled_run_time : datetime
|
|
239
|
+
The datetime when the job was originally scheduled to run.
|
|
240
|
+
"""
|
|
241
|
+
scheduled_run_time: datetime
|
|
@@ -2,7 +2,7 @@ import asyncio
|
|
|
2
2
|
import logging
|
|
3
3
|
from typing import Dict, List, Optional
|
|
4
4
|
import pytz
|
|
5
|
-
from apscheduler.events import EVENT_JOB_MISSED, EVENT_JOB_ERROR
|
|
5
|
+
from apscheduler.events import EVENT_JOB_MISSED, EVENT_JOB_ERROR, EVENT_ALL, EVENT_SCHEDULER_STARTED
|
|
6
6
|
from apscheduler.schedulers.asyncio import AsyncIOScheduler as APSAsyncIOScheduler
|
|
7
7
|
from orionis.console.contracts.reactor import IReactor
|
|
8
8
|
from orionis.console.contracts.schedule import ISchedule
|
|
@@ -80,7 +80,7 @@ class Scheduler(ISchedule):
|
|
|
80
80
|
self.__jobs: List[dict] = []
|
|
81
81
|
|
|
82
82
|
# Add a listener to the scheduler to capture job events such as missed jobs or errors.
|
|
83
|
-
self.__scheduler.add_listener(self.__listener,
|
|
83
|
+
self.__scheduler.add_listener(self.__listener, EVENT_ALL)
|
|
84
84
|
|
|
85
85
|
# Log the initialization of the Scheduler.
|
|
86
86
|
self.__logger.info("Orionis scheduler initialized.")
|
|
@@ -313,6 +313,26 @@ class Scheduler(ISchedule):
|
|
|
313
313
|
# Return the Event instance for further scheduling configuration
|
|
314
314
|
return self.__events[signature]
|
|
315
315
|
|
|
316
|
+
def addListenerOnSchedulerStarted(
|
|
317
|
+
self,
|
|
318
|
+
listener: callable
|
|
319
|
+
) -> None:
|
|
320
|
+
"""
|
|
321
|
+
Add a listener for the scheduler started event.
|
|
322
|
+
|
|
323
|
+
This method allows you to register a callback function that will be called
|
|
324
|
+
when the scheduler starts. The callback should accept a single argument, which
|
|
325
|
+
is the event object containing details about the scheduler start event.
|
|
326
|
+
|
|
327
|
+
Parameters
|
|
328
|
+
----------
|
|
329
|
+
listener : callable
|
|
330
|
+
A function that will be called when the scheduler starts.
|
|
331
|
+
It should accept one parameter, which is the event object.
|
|
332
|
+
"""
|
|
333
|
+
# Register the listener for the scheduler started event
|
|
334
|
+
self.__scheduler.add_listener(listener, EVENT_SCHEDULER_STARTED)
|
|
335
|
+
|
|
316
336
|
async def start(self) -> None:
|
|
317
337
|
"""
|
|
318
338
|
Start the AsyncIO scheduler instance and keep it running.
|
|
@@ -24,6 +24,7 @@ orionis/console/commands/__init__.py
|
|
|
24
24
|
orionis/console/commands/cache.py
|
|
25
25
|
orionis/console/commands/help.py
|
|
26
26
|
orionis/console/commands/publisher.py
|
|
27
|
+
orionis/console/commands/scheduler_list.py
|
|
27
28
|
orionis/console/commands/scheduler_work.py
|
|
28
29
|
orionis/console/commands/test.py
|
|
29
30
|
orionis/console/commands/version.py
|
|
@@ -43,6 +44,8 @@ orionis/console/dynamic/__init__.py
|
|
|
43
44
|
orionis/console/dynamic/progress_bar.py
|
|
44
45
|
orionis/console/dynamic/contracts/__init__.py
|
|
45
46
|
orionis/console/dynamic/contracts/progress_bar.py
|
|
47
|
+
orionis/console/entities/__init__.py
|
|
48
|
+
orionis/console/entities/listeners.py
|
|
46
49
|
orionis/console/enums/__init__.py
|
|
47
50
|
orionis/console/enums/command.py
|
|
48
51
|
orionis/console/enums/event.py
|
|
File without changes
|