orionis 0.460.0__tar.gz → 0.463.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.460.0/orionis.egg-info → orionis-0.463.0}/PKG-INFO +1 -1
- {orionis-0.460.0 → orionis-0.463.0}/orionis/console/commands/help.py +6 -3
- orionis-0.463.0/orionis/console/commands/publisher.py +577 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/console/commands/test.py +4 -5
- {orionis-0.460.0 → orionis-0.463.0}/orionis/console/commands/version.py +7 -4
- orionis-0.463.0/orionis/console/contracts/schedule.py +4 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/console/core/reactor.py +19 -5
- orionis-0.463.0/orionis/console/tasks/schedule.py +4 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/metadata/framework.py +1 -1
- orionis-0.463.0/orionis/support/facades/reactor.py +22 -0
- {orionis-0.460.0 → orionis-0.463.0/orionis.egg-info}/PKG-INFO +1 -1
- {orionis-0.460.0 → orionis-0.463.0}/orionis.egg-info/SOURCES.txt +5 -0
- orionis-0.463.0/tests/testing/view/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/LICENCE +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/MANIFEST.in +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/README.md +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/app.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/console/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/console/args/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/console/args/argument.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/console/args/enums/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/console/args/enums/actions.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/console/base/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/console/base/command.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/console/base/contracts/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/console/base/contracts/command.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/console/commands/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/console/contracts/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/console/contracts/kernel.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/console/contracts/reactor.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/console/core/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/console/dumper/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/console/dumper/contracts/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/console/dumper/contracts/dump.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/console/dumper/dump.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/console/dynamic/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/console/dynamic/contracts/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/console/dynamic/contracts/progress_bar.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/console/dynamic/progress_bar.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/console/exceptions/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/console/exceptions/cli_exception.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/console/exceptions/cli_orionis_value_error.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/console/exceptions/cli_runtime_error.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/console/exceptions/cli_schedule_exception.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/console/kernel.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/console/output/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/console/output/console.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/console/output/contracts/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/console/output/contracts/console.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/console/output/contracts/executor.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/console/output/enums/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/console/output/enums/styles.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/console/output/executor.py +0 -0
- {orionis-0.460.0/orionis/container → orionis-0.463.0/orionis/console/tasks}/__init__.py +0 -0
- {orionis-0.460.0/orionis/container/context → orionis-0.463.0/orionis/container}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/container/container.py +0 -0
- {orionis-0.460.0/orionis/container/contracts → orionis-0.463.0/orionis/container/context}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/container/context/manager.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/container/context/scope.py +0 -0
- {orionis-0.460.0/orionis/container/entities → orionis-0.463.0/orionis/container/contracts}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/container/contracts/container.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/container/contracts/service_provider.py +0 -0
- {orionis-0.460.0/orionis/container/facades → orionis-0.463.0/orionis/container/entities}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/container/entities/binding.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/container/enums/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/container/enums/lifetimes.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/container/exceptions/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/container/exceptions/attribute.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/container/exceptions/exception.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/container/exceptions/type.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/container/exceptions/value.py +0 -0
- {orionis-0.460.0/orionis/container/providers → orionis-0.463.0/orionis/container/facades}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/container/facades/facade.py +0 -0
- {orionis-0.460.0/orionis/foundation → orionis-0.463.0/orionis/container/providers}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/container/providers/service_provider.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/container/validators/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/container/validators/implements.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/container/validators/is_abstract_class.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/container/validators/is_callable.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/container/validators/is_concrete_class.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/container/validators/is_instance.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/container/validators/is_not_subclass.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/container/validators/is_subclass.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/container/validators/is_valid_alias.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/container/validators/lifetime.py +0 -0
- {orionis-0.460.0/orionis/foundation/config → orionis-0.463.0/orionis/foundation}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/application.py +0 -0
- {orionis-0.460.0/orionis/foundation/config/app → orionis-0.463.0/orionis/foundation/config}/__init__.py +0 -0
- {orionis-0.460.0/orionis/foundation/config/app/entities → orionis-0.463.0/orionis/foundation/config/app}/__init__.py +0 -0
- {orionis-0.460.0/orionis/foundation/config/auth → orionis-0.463.0/orionis/foundation/config/app/entities}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/app/entities/app.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/app/enums/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/app/enums/ciphers.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/app/enums/environments.py +0 -0
- {orionis-0.460.0/orionis/foundation/config/auth/entities → orionis-0.463.0/orionis/foundation/config/auth}/__init__.py +0 -0
- {orionis-0.460.0/orionis/foundation/config/cache → orionis-0.463.0/orionis/foundation/config/auth/entities}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/auth/entities/auth.py +0 -0
- {orionis-0.460.0/orionis/foundation/config/cache/entities → orionis-0.463.0/orionis/foundation/config/cache}/__init__.py +0 -0
- {orionis-0.460.0/orionis/foundation/config/cors → orionis-0.463.0/orionis/foundation/config/cache/entities}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/cache/entities/cache.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/cache/entities/file.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/cache/entities/stores.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/cache/enums/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/cache/enums/drivers.py +0 -0
- {orionis-0.460.0/orionis/foundation/config/cors/entities → orionis-0.463.0/orionis/foundation/config/cors}/__init__.py +0 -0
- {orionis-0.460.0/orionis/foundation/config/database → orionis-0.463.0/orionis/foundation/config/cors/entities}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/cors/entities/cors.py +0 -0
- {orionis-0.460.0/orionis/foundation/config/database/entities → orionis-0.463.0/orionis/foundation/config/database}/__init__.py +0 -0
- {orionis-0.460.0/orionis/foundation/config/filesystems → orionis-0.463.0/orionis/foundation/config/database/entities}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/database/entities/connections.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/database/entities/database.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/database/entities/mysql.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/database/entities/oracle.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/database/entities/pgsql.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/database/entities/sqlite.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/database/enums/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/database/enums/mysql_charsets.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/database/enums/mysql_collations.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/database/enums/mysql_engine.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/database/enums/oracle_encoding.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/database/enums/oracle_nencoding.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/database/enums/pgsql_charsets.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/database/enums/pgsql_collations.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/database/enums/pgsql_mode.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/database/enums/sqlite_foreign_key.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/database/enums/sqlite_journal.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/database/enums/sqlite_synchronous.py +0 -0
- {orionis-0.460.0/orionis/foundation/config/filesystems/entitites → orionis-0.463.0/orionis/foundation/config/filesystems}/__init__.py +0 -0
- {orionis-0.460.0/orionis/foundation/config/logging → orionis-0.463.0/orionis/foundation/config/filesystems/entitites}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/filesystems/entitites/aws.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/filesystems/entitites/disks.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/filesystems/entitites/filesystems.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/filesystems/entitites/local.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/filesystems/entitites/public.py +0 -0
- {orionis-0.460.0/orionis/foundation/config/logging/entities → orionis-0.463.0/orionis/foundation/config/logging}/__init__.py +0 -0
- {orionis-0.460.0/orionis/foundation/config/mail → orionis-0.463.0/orionis/foundation/config/logging/entities}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/logging/entities/channels.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/logging/entities/chunked.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/logging/entities/daily.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/logging/entities/hourly.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/logging/entities/logging.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/logging/entities/monthly.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/logging/entities/stack.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/logging/entities/weekly.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/logging/enums/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/logging/enums/levels.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/logging/validators/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/logging/validators/level.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/logging/validators/path.py +0 -0
- {orionis-0.460.0/orionis/foundation/config/mail/entities → orionis-0.463.0/orionis/foundation/config/mail}/__init__.py +0 -0
- {orionis-0.460.0/orionis/foundation/config/queue → orionis-0.463.0/orionis/foundation/config/mail/entities}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/mail/entities/file.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/mail/entities/mail.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/mail/entities/mailers.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/mail/entities/smtp.py +0 -0
- {orionis-0.460.0/orionis/foundation/config/queue/entities → orionis-0.463.0/orionis/foundation/config/queue}/__init__.py +0 -0
- {orionis-0.460.0/orionis/foundation/config/roots → orionis-0.463.0/orionis/foundation/config/queue/entities}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/queue/entities/brokers.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/queue/entities/database.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/queue/entities/queue.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/queue/enums/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/queue/enums/strategy.py +0 -0
- {orionis-0.460.0/orionis/foundation/config/session → orionis-0.463.0/orionis/foundation/config/roots}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/roots/paths.py +0 -0
- {orionis-0.460.0/orionis/foundation/config/session/entities → orionis-0.463.0/orionis/foundation/config/session}/__init__.py +0 -0
- {orionis-0.460.0/orionis/foundation/config/session/helpers → orionis-0.463.0/orionis/foundation/config/session/entities}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/session/entities/session.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/session/enums/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/session/enums/same_site_policy.py +0 -0
- {orionis-0.460.0/orionis/foundation/config/testing → orionis-0.463.0/orionis/foundation/config/session/helpers}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/session/helpers/secret_key.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/startup.py +0 -0
- {orionis-0.460.0/orionis/foundation/config/testing/entities → orionis-0.463.0/orionis/foundation/config/testing}/__init__.py +0 -0
- {orionis-0.460.0/orionis/foundation/contracts → orionis-0.463.0/orionis/foundation/config/testing/entities}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/testing/entities/testing.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/testing/enums/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/testing/enums/drivers.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/testing/enums/mode.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/config/testing/enums/verbosity.py +0 -0
- {orionis-0.460.0/orionis/foundation/providers → orionis-0.463.0/orionis/foundation/contracts}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/contracts/application.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/contracts/config.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/exceptions/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/exceptions/integrity.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/exceptions/runtime.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/exceptions/type.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/exceptions/value.py +0 -0
- {orionis-0.460.0/orionis/metadata → orionis-0.463.0/orionis/foundation/providers}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/providers/console_provider.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/providers/dumper_provider.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/providers/executor_provider.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/providers/inspirational_provider.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/providers/logger_provider.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/providers/progress_bar_provider.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/providers/reactor_provider.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/providers/testing_provider.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/foundation/providers/workers_provider.py +0 -0
- {orionis-0.460.0/orionis/services → orionis-0.463.0/orionis/metadata}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/metadata/package.py +0 -0
- {orionis-0.460.0/orionis/services/asynchrony → orionis-0.463.0/orionis/services}/__init__.py +0 -0
- {orionis-0.460.0/orionis/services/asynchrony/contracts → orionis-0.463.0/orionis/services/asynchrony}/__init__.py +0 -0
- {orionis-0.460.0/orionis/services/environment → orionis-0.463.0/orionis/services/asynchrony/contracts}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/services/asynchrony/contracts/coroutines.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/services/asynchrony/coroutines.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/services/asynchrony/exceptions/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/services/asynchrony/exceptions/exception.py +0 -0
- {orionis-0.460.0/orionis/services/environment/contracts → orionis-0.463.0/orionis/services/environment}/__init__.py +0 -0
- {orionis-0.460.0/orionis/services/environment/core → orionis-0.463.0/orionis/services/environment/contracts}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/services/environment/contracts/caster.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/services/environment/contracts/env.py +0 -0
- {orionis-0.460.0/orionis/services/environment/dynamic → orionis-0.463.0/orionis/services/environment/core}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/services/environment/core/dot_env.py +0 -0
- {orionis-0.460.0/orionis/services/environment/helpers → orionis-0.463.0/orionis/services/environment/dynamic}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/services/environment/dynamic/caster.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/services/environment/enums/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/services/environment/enums/value_type.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/services/environment/env.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/services/environment/exceptions/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/services/environment/exceptions/exception.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/services/environment/exceptions/value.py +0 -0
- {orionis-0.460.0/orionis/services/environment/key → orionis-0.463.0/orionis/services/environment/helpers}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/services/environment/helpers/functions.py +0 -0
- {orionis-0.460.0/orionis/services/inspirational → orionis-0.463.0/orionis/services/environment/key}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/services/environment/key/key_generator.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/services/environment/validators/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/services/environment/validators/key_name.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/services/environment/validators/types.py +0 -0
- {orionis-0.460.0/orionis/services/inspirational/contracts → orionis-0.463.0/orionis/services/inspirational}/__init__.py +0 -0
- {orionis-0.460.0/orionis/services/introspection → orionis-0.463.0/orionis/services/inspirational/contracts}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/services/inspirational/contracts/inspire.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/services/inspirational/inspire.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/services/inspirational/quotes.py +0 -0
- {orionis-0.460.0/orionis/services/introspection/abstract → orionis-0.463.0/orionis/services/introspection}/__init__.py +0 -0
- {orionis-0.460.0/orionis/services/introspection/abstract/contracts → orionis-0.463.0/orionis/services/introspection/abstract}/__init__.py +0 -0
- {orionis-0.460.0/orionis/services/introspection/callables → orionis-0.463.0/orionis/services/introspection/abstract/contracts}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/services/introspection/abstract/contracts/reflection.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/services/introspection/abstract/reflection.py +0 -0
- {orionis-0.460.0/orionis/services/introspection/callables/contracts → orionis-0.463.0/orionis/services/introspection/callables}/__init__.py +0 -0
- {orionis-0.460.0/orionis/services/introspection/concretes → orionis-0.463.0/orionis/services/introspection/callables/contracts}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/services/introspection/callables/contracts/reflection.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/services/introspection/callables/reflection.py +0 -0
- {orionis-0.460.0/orionis/services/introspection/concretes/contracts → orionis-0.463.0/orionis/services/introspection/concretes}/__init__.py +0 -0
- {orionis-0.460.0/orionis/services/introspection/dependencies → orionis-0.463.0/orionis/services/introspection/concretes/contracts}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/services/introspection/concretes/contracts/reflection.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/services/introspection/concretes/reflection.py +0 -0
- {orionis-0.460.0/orionis/services/introspection/dependencies/contracts → orionis-0.463.0/orionis/services/introspection/dependencies}/__init__.py +0 -0
- {orionis-0.460.0/orionis/services/introspection/dependencies/entities → orionis-0.463.0/orionis/services/introspection/dependencies/contracts}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/services/introspection/dependencies/contracts/reflection.py +0 -0
- {orionis-0.460.0/orionis/services/introspection/instances → orionis-0.463.0/orionis/services/introspection/dependencies/entities}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/services/introspection/dependencies/entities/argument.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/services/introspection/dependencies/entities/resolve_argument.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/services/introspection/dependencies/reflection.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/services/introspection/exceptions/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/services/introspection/exceptions/attribute.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/services/introspection/exceptions/type.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/services/introspection/exceptions/value.py +0 -0
- {orionis-0.460.0/orionis/services/introspection/instances/contracts → orionis-0.463.0/orionis/services/introspection/instances}/__init__.py +0 -0
- {orionis-0.460.0/orionis/services/introspection/modules → orionis-0.463.0/orionis/services/introspection/instances/contracts}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/services/introspection/instances/contracts/reflection.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/services/introspection/instances/reflection.py +0 -0
- {orionis-0.460.0/orionis/services/introspection/modules/contracts → orionis-0.463.0/orionis/services/introspection/modules}/__init__.py +0 -0
- {orionis-0.460.0/orionis/services/introspection/objects → orionis-0.463.0/orionis/services/introspection/modules/contracts}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/services/introspection/modules/contracts/reflection.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/services/introspection/modules/reflection.py +0 -0
- {orionis-0.460.0/orionis/services/log → orionis-0.463.0/orionis/services/introspection/objects}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/services/introspection/objects/types.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/services/introspection/reflection.py +0 -0
- {orionis-0.460.0/orionis/services/log/contracts → orionis-0.463.0/orionis/services/log}/__init__.py +0 -0
- {orionis-0.460.0/orionis/services/log/handlers → orionis-0.463.0/orionis/services/log/contracts}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/services/log/contracts/log_service.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/services/log/exceptions/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/services/log/exceptions/runtime.py +0 -0
- {orionis-0.460.0/orionis/services/system → orionis-0.463.0/orionis/services/log/handlers}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/services/log/handlers/filename.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/services/log/handlers/size_rotating.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/services/log/handlers/timed_rotating.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/services/log/log_service.py +0 -0
- {orionis-0.460.0/orionis/services/system/contracts → orionis-0.463.0/orionis/services/system}/__init__.py +0 -0
- {orionis-0.460.0/orionis/services/system/runtime → orionis-0.463.0/orionis/services/system/contracts}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/services/system/contracts/imports.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/services/system/contracts/workers.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/services/system/imports.py +0 -0
- {orionis-0.460.0/orionis/support → orionis-0.463.0/orionis/services/system/runtime}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/services/system/runtime/imports.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/services/system/workers.py +0 -0
- {orionis-0.460.0/orionis/support/entities → orionis-0.463.0/orionis/support}/__init__.py +0 -0
- {orionis-0.460.0/orionis/support/facades → orionis-0.463.0/orionis/support/entities}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/support/entities/base.py +0 -0
- {orionis-0.460.0/orionis/support/formatter → orionis-0.463.0/orionis/support/facades}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/support/facades/console.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/support/facades/dumper.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/support/facades/executor.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/support/facades/inspire.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/support/facades/logger.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/support/facades/progress_bar.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/support/facades/testing.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/support/facades/workers.py +0 -0
- {orionis-0.460.0/orionis/support/formatter/exceptions → orionis-0.463.0/orionis/support/formatter}/__init__.py +0 -0
- {orionis-0.460.0/orionis/support/formatter/exceptions/contracts → orionis-0.463.0/orionis/support/formatter/exceptions}/__init__.py +0 -0
- {orionis-0.460.0/orionis/support/patterns → orionis-0.463.0/orionis/support/formatter/exceptions/contracts}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/support/formatter/exceptions/contracts/parser.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/support/formatter/exceptions/parser.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/support/formatter/serializer.py +0 -0
- {orionis-0.460.0/orionis/support/standard → orionis-0.463.0/orionis/support/patterns}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/support/patterns/singleton/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/support/patterns/singleton/meta.py +0 -0
- {orionis-0.460.0/orionis/support/standard/contracts → orionis-0.463.0/orionis/support/standard}/__init__.py +0 -0
- {orionis-0.460.0/orionis/test → orionis-0.463.0/orionis/support/standard/contracts}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/support/standard/contracts/std.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/support/standard/exceptions/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/support/standard/exceptions/value.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/support/standard/std.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/support/wrapper/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/support/wrapper/dot_dict.py +0 -0
- {orionis-0.460.0/orionis/test/cases → orionis-0.463.0/orionis/test}/__init__.py +0 -0
- {orionis-0.460.0/orionis/test/contracts → orionis-0.463.0/orionis/test/cases}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/test/cases/asynchronous.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/test/cases/synchronous.py +0 -0
- {orionis-0.460.0/orionis/test/core → orionis-0.463.0/orionis/test/contracts}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/test/contracts/dumper.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/test/contracts/kernel.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/test/contracts/logs.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/test/contracts/printer.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/test/contracts/render.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/test/contracts/test_result.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/test/contracts/unit_test.py +0 -0
- {orionis-0.460.0/orionis/test/entities → orionis-0.463.0/orionis/test/core}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/test/core/unit_test.py +0 -0
- {orionis-0.460.0/orionis/test/output → orionis-0.463.0/orionis/test/entities}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/test/entities/result.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/test/enums/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/test/enums/status.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/test/exceptions/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/test/exceptions/config.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/test/exceptions/failure.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/test/exceptions/persistence.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/test/exceptions/runtime.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/test/exceptions/value.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/test/kernel.py +0 -0
- {orionis-0.460.0/orionis/test/records → orionis-0.463.0/orionis/test/output}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/test/output/dumper.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/test/output/printer.py +0 -0
- {orionis-0.460.0/orionis/test/view → orionis-0.463.0/orionis/test/records}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/test/records/logs.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/test/validators/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/test/validators/base_path.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/test/validators/execution_mode.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/test/validators/fail_fast.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/test/validators/folder_path.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/test/validators/module_name.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/test/validators/name_pattern.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/test/validators/pattern.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/test/validators/persistent.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/test/validators/persistent_driver.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/test/validators/print_result.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/test/validators/tags.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/test/validators/throw_exception.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/test/validators/verbosity.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/test/validators/web_report.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/test/validators/workers.py +0 -0
- {orionis-0.460.0/tests → orionis-0.463.0/orionis/test/view}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis/test/view/render.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis.egg-info/dependency_links.txt +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis.egg-info/requires.txt +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis.egg-info/top_level.txt +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/orionis.egg-info/zip-safe +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/setup.cfg +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/setup.py +0 -0
- {orionis-0.460.0/tests/container → orionis-0.463.0/tests}/__init__.py +0 -0
- {orionis-0.460.0/tests/container/context → orionis-0.463.0/tests/container}/__init__.py +0 -0
- {orionis-0.460.0/tests/container/core → orionis-0.463.0/tests/container/context}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/container/context/test_manager.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/container/context/test_scope.py +0 -0
- {orionis-0.460.0/tests/container/entities → orionis-0.463.0/tests/container/core}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/container/core/test_container.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/container/core/test_singleton.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/container/core/test_thread_safety.py +0 -0
- {orionis-0.460.0/tests/container/enums → orionis-0.463.0/tests/container/entities}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/container/entities/test_binding.py +0 -0
- {orionis-0.460.0/tests/container/facades → orionis-0.463.0/tests/container/enums}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/container/enums/test_lifetimes.py +0 -0
- {orionis-0.460.0/tests/container/mocks → orionis-0.463.0/tests/container/facades}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/container/facades/test_facade.py +0 -0
- {orionis-0.460.0/tests/container/providers → orionis-0.463.0/tests/container/mocks}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/container/mocks/mock_auto_resolution.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/container/mocks/mock_complex_classes.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/container/mocks/mock_simple_classes.py +0 -0
- {orionis-0.460.0/tests/container/validators → orionis-0.463.0/tests/container/providers}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/container/providers/test_providers.py +0 -0
- {orionis-0.460.0/tests/example → orionis-0.463.0/tests/container/validators}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/container/validators/test_implements.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/container/validators/test_is_abstract_class.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/container/validators/test_is_callable.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/container/validators/test_is_concrete_class.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/container/validators/test_is_instance.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/container/validators/test_is_not_subclass.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/container/validators/test_is_subclass.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/container/validators/test_is_valid_alias.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/container/validators/test_lifetime.py +0 -0
- {orionis-0.460.0/tests/foundation → orionis-0.463.0/tests/example}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/example/test_example.py +0 -0
- {orionis-0.460.0/tests/foundation/config → orionis-0.463.0/tests/foundation}/__init__.py +0 -0
- {orionis-0.460.0/tests/foundation/config/app → orionis-0.463.0/tests/foundation/config}/__init__.py +0 -0
- {orionis-0.460.0/tests/foundation/config/auth → orionis-0.463.0/tests/foundation/config/app}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/foundation/config/app/test_foundation_config_app.py +0 -0
- {orionis-0.460.0/tests/foundation/config/cache → orionis-0.463.0/tests/foundation/config/auth}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/foundation/config/auth/test_foundation_config_auth.py +0 -0
- {orionis-0.460.0/tests/foundation/config/cors → orionis-0.463.0/tests/foundation/config/cache}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/foundation/config/cache/test_foundation_config_cache.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/foundation/config/cache/test_foundation_config_cache_file.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/foundation/config/cache/test_foundation_config_cache_stores.py +0 -0
- {orionis-0.460.0/tests/foundation/config/database → orionis-0.463.0/tests/foundation/config/cors}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/foundation/config/cors/test_foundation_config_cors.py +0 -0
- {orionis-0.460.0/tests/foundation/config/filesystems → orionis-0.463.0/tests/foundation/config/database}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/foundation/config/database/test_foundation_config_database.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/foundation/config/database/test_foundation_config_database_connections.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/foundation/config/database/test_foundation_config_database_mysql.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/foundation/config/database/test_foundation_config_database_oracle.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/foundation/config/database/test_foundation_config_database_pgsql.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/foundation/config/database/test_foundation_config_database_sqlite.py +0 -0
- {orionis-0.460.0/tests/foundation/config/logging → orionis-0.463.0/tests/foundation/config/filesystems}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems_aws.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems_disks.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems_local.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/foundation/config/filesystems/test_foundation_config_filesystems_public.py +0 -0
- {orionis-0.460.0/tests/foundation/config/mail → orionis-0.463.0/tests/foundation/config/logging}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/foundation/config/logging/test_foundation_config_logging.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/foundation/config/logging/test_foundation_config_logging_channels.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/foundation/config/logging/test_foundation_config_logging_chunked.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/foundation/config/logging/test_foundation_config_logging_daily.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/foundation/config/logging/test_foundation_config_logging_hourly.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/foundation/config/logging/test_foundation_config_logging_monthly.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/foundation/config/logging/test_foundation_config_logging_stack.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/foundation/config/logging/test_foundation_config_logging_weekly.py +0 -0
- {orionis-0.460.0/tests/foundation/config/queue → orionis-0.463.0/tests/foundation/config/mail}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/foundation/config/mail/test_foundation_config_mail.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/foundation/config/mail/test_foundation_config_mail_file.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/foundation/config/mail/test_foundation_config_mail_mailers.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/foundation/config/mail/test_foundation_config_mail_smtp.py +0 -0
- {orionis-0.460.0/tests/foundation/config/root → orionis-0.463.0/tests/foundation/config/queue}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/foundation/config/queue/test_foundation_config_queue.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/foundation/config/queue/test_foundation_config_queue_brokers.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/foundation/config/queue/test_foundation_config_queue_database.py +0 -0
- {orionis-0.460.0/tests/foundation/config/session → orionis-0.463.0/tests/foundation/config/root}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/foundation/config/root/test_foundation_config_root_paths.py +0 -0
- {orionis-0.460.0/tests/foundation/config/startup → orionis-0.463.0/tests/foundation/config/session}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/foundation/config/session/test_foundation_config_session.py +0 -0
- {orionis-0.460.0/tests/foundation/config/testing → orionis-0.463.0/tests/foundation/config/startup}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/foundation/config/startup/test_foundation_config_startup.py +0 -0
- {orionis-0.460.0/tests/metadata → orionis-0.463.0/tests/foundation/config/testing}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/foundation/config/testing/test_foundation_config_testing.py +0 -0
- {orionis-0.460.0/tests/services → orionis-0.463.0/tests/metadata}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/metadata/test_metadata_framework.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/metadata/test_metadata_package.py +0 -0
- {orionis-0.460.0/tests/services/asynchrony → orionis-0.463.0/tests/services}/__init__.py +0 -0
- {orionis-0.460.0/tests/services/environment → orionis-0.463.0/tests/services/asynchrony}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/services/asynchrony/test_services_asynchrony_coroutine.py +0 -0
- {orionis-0.460.0/tests/services/introspection → orionis-0.463.0/tests/services/environment}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/services/environment/test_services_environment.py +0 -0
- {orionis-0.460.0/tests/services/introspection/dependencies → orionis-0.463.0/tests/services/introspection}/__init__.py +0 -0
- {orionis-0.460.0/tests/services/introspection/dependencies/mocks → orionis-0.463.0/tests/services/introspection/dependencies}/__init__.py +0 -0
- {orionis-0.460.0/tests/services/introspection/reflection → orionis-0.463.0/tests/services/introspection/dependencies/mocks}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/services/introspection/dependencies/mocks/mock_user.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/services/introspection/dependencies/mocks/mock_user_controller.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/services/introspection/dependencies/mocks/mock_users_permissions.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/services/introspection/dependencies/test_reflect_dependencies.py +0 -0
- {orionis-0.460.0/tests/services/introspection/reflection/mock → orionis-0.463.0/tests/services/introspection/reflection}/__init__.py +0 -0
- {orionis-0.460.0/tests/services/log → orionis-0.463.0/tests/services/introspection/reflection/mock}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/services/introspection/reflection/mock/fake_reflect_instance.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/services/introspection/reflection/test_reflection_abstract.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/services/introspection/reflection/test_reflection_callable.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/services/introspection/reflection/test_reflection_concrete.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/services/introspection/reflection/test_reflection_instance.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/services/introspection/reflection/test_reflection_module.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/services/introspection/test_reflection.py +0 -0
- {orionis-0.460.0/tests/services/system → orionis-0.463.0/tests/services/log}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/services/log/test_log.py +0 -0
- {orionis-0.460.0/tests/support → orionis-0.463.0/tests/services/system}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/services/system/test_services_system_imports.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/services/system/test_services_system_workers.py +0 -0
- {orionis-0.460.0/tests/support/entities → orionis-0.463.0/tests/support}/__init__.py +0 -0
- {orionis-0.460.0/tests/support/patterns → orionis-0.463.0/tests/support/entities}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/support/entities/mock_dataclass.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/support/entities/test_base.py +0 -0
- {orionis-0.460.0/tests/support/patterns/singleton → orionis-0.463.0/tests/support/patterns}/__init__.py +0 -0
- {orionis-0.460.0/tests/support/standard → orionis-0.463.0/tests/support/patterns/singleton}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/support/patterns/singleton/test_patterns_singleton.py +0 -0
- {orionis-0.460.0/tests/support/wrapper → orionis-0.463.0/tests/support/standard}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/support/standard/test_services_std.py +0 -0
- {orionis-0.460.0/tests/testing → orionis-0.463.0/tests/support/wrapper}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/support/wrapper/test_services_wrapper_docdict.py +0 -0
- {orionis-0.460.0/tests/testing/cases → orionis-0.463.0/tests/testing}/__init__.py +0 -0
- {orionis-0.460.0/tests/testing/entities → orionis-0.463.0/tests/testing/cases}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/testing/cases/test_testing_asynchronous.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/testing/cases/test_testing_synchronous.py +0 -0
- {orionis-0.460.0/tests/testing/enums → orionis-0.463.0/tests/testing/entities}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/testing/entities/test_testing_result.py +0 -0
- {orionis-0.460.0/tests/testing/output → orionis-0.463.0/tests/testing/enums}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/testing/enums/test_testing_status.py +0 -0
- {orionis-0.460.0/tests/testing/records → orionis-0.463.0/tests/testing/output}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/testing/output/test_testing_dumper.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/testing/output/test_testing_printer.py +0 -0
- {orionis-0.460.0/tests/testing/validators → orionis-0.463.0/tests/testing/records}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/testing/records/test_testing_records.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/testing/test_testing_unit.py +0 -0
- {orionis-0.460.0/tests/testing/view → orionis-0.463.0/tests/testing/validators}/__init__.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/testing/validators/test_testing_validators.py +0 -0
- {orionis-0.460.0 → orionis-0.463.0}/tests/testing/view/test_render.py +0 -0
|
@@ -18,7 +18,7 @@ class HelpCommand(BaseCommand):
|
|
|
18
18
|
# Command description
|
|
19
19
|
description: str = "Displays usage information, examples, and a list of available commands in the Orionis CLI."
|
|
20
20
|
|
|
21
|
-
def handle(self, reactor: IReactor) ->
|
|
21
|
+
def handle(self, reactor: IReactor) -> dict:
|
|
22
22
|
"""
|
|
23
23
|
Displays usage information and a list of available commands for the Orionis CLI.
|
|
24
24
|
|
|
@@ -29,8 +29,8 @@ class HelpCommand(BaseCommand):
|
|
|
29
29
|
|
|
30
30
|
Returns
|
|
31
31
|
-------
|
|
32
|
-
|
|
33
|
-
|
|
32
|
+
dict
|
|
33
|
+
A dictionary containing the list of available commands, each with its signature and description.
|
|
34
34
|
|
|
35
35
|
Raises
|
|
36
36
|
------
|
|
@@ -77,6 +77,9 @@ class HelpCommand(BaseCommand):
|
|
|
77
77
|
console.print(panel)
|
|
78
78
|
console.print()
|
|
79
79
|
|
|
80
|
+
# Return the list of commands for potential further use
|
|
81
|
+
return commands
|
|
82
|
+
|
|
80
83
|
except Exception as e:
|
|
81
84
|
|
|
82
85
|
# Raise a custom runtime error if any exception occurs
|
|
@@ -0,0 +1,577 @@
|
|
|
1
|
+
import inspect
|
|
2
|
+
import os
|
|
3
|
+
import re
|
|
4
|
+
import shutil
|
|
5
|
+
import subprocess
|
|
6
|
+
import sys
|
|
7
|
+
import time
|
|
8
|
+
from pathlib import Path
|
|
9
|
+
from rich.console import Console
|
|
10
|
+
from rich.panel import Panel
|
|
11
|
+
from orionis.console.base.command import BaseCommand
|
|
12
|
+
from orionis.console.contracts.reactor import IReactor
|
|
13
|
+
from orionis.console.exceptions import CLIOrionisRuntimeError
|
|
14
|
+
from orionis.metadata.framework import VERSION
|
|
15
|
+
|
|
16
|
+
class PublisherCommand(BaseCommand):
|
|
17
|
+
"""
|
|
18
|
+
PublisherCommand is a console command for automating the process of publishing a Python package to the Orionis repository (PyPI).
|
|
19
|
+
|
|
20
|
+
This command performs the following steps:
|
|
21
|
+
1. Runs the project's test suite and aborts if there are any test failures or errors.
|
|
22
|
+
2. Bumps the minor version number in the file where the VERSION constant is defined.
|
|
23
|
+
3. Commits and pushes changes to the Git repository if there are modifications.
|
|
24
|
+
4. Builds the package distributions (source and wheel) using `setup.py`.
|
|
25
|
+
5. Publishes the built distributions to PyPI using Twine and a token from environment variables.
|
|
26
|
+
6. Cleans up temporary build artifacts and metadata directories after publishing.
|
|
27
|
+
|
|
28
|
+
Attributes
|
|
29
|
+
----------
|
|
30
|
+
timestamps : bool
|
|
31
|
+
Indicates whether timestamps will be shown in the command output.
|
|
32
|
+
signature : str
|
|
33
|
+
Command signature ("publisher").
|
|
34
|
+
description : str
|
|
35
|
+
Command description.
|
|
36
|
+
|
|
37
|
+
Methods
|
|
38
|
+
-------
|
|
39
|
+
__init__(console: Console)
|
|
40
|
+
Initializes the PublisherCommand instance, setting up the console, project root, console width, and PyPI token.
|
|
41
|
+
__bumpMinorVersion()
|
|
42
|
+
Increments the minor version number in the file where the VERSION constant is defined.
|
|
43
|
+
__gitPush()
|
|
44
|
+
Commits and pushes changes to the Git repository if there are modifications.
|
|
45
|
+
__build()
|
|
46
|
+
Builds the package distributions using `setup.py`.
|
|
47
|
+
__publish()
|
|
48
|
+
Publishes the built distributions to PyPI using Twine and a token from environment variables.
|
|
49
|
+
__clearRepository()
|
|
50
|
+
Cleans up temporary build artifacts and metadata directories after publishing.
|
|
51
|
+
handle(reactor: IReactor) -> None
|
|
52
|
+
Orchestrates the publishing process, running tests, bumping version, pushing to Git, building, and publishing the package.
|
|
53
|
+
|
|
54
|
+
Returns
|
|
55
|
+
-------
|
|
56
|
+
None
|
|
57
|
+
This class does not return a value directly. The main workflow is executed via the `handle` method, which returns None.
|
|
58
|
+
"""
|
|
59
|
+
|
|
60
|
+
# Indicates whether timestamps will be shown in the command output
|
|
61
|
+
timestamps: bool = False
|
|
62
|
+
|
|
63
|
+
# Command signature and description
|
|
64
|
+
signature: str = "__publisher__"
|
|
65
|
+
|
|
66
|
+
# Command description
|
|
67
|
+
description: str = "Publishes Package to the Orionis repository."
|
|
68
|
+
|
|
69
|
+
def __init__(self, console: Console):
|
|
70
|
+
"""
|
|
71
|
+
Initializes the PublisherCommand instance with the provided console and sets up
|
|
72
|
+
essential attributes for publishing operations.
|
|
73
|
+
|
|
74
|
+
This constructor sets up the console for output, determines the project root
|
|
75
|
+
directory, calculates the console width for display panels, and retrieves the
|
|
76
|
+
PyPI authentication token from environment variables.
|
|
77
|
+
|
|
78
|
+
Parameters
|
|
79
|
+
----------
|
|
80
|
+
console : Console
|
|
81
|
+
The Rich Console instance used for formatted output throughout the command execution.
|
|
82
|
+
|
|
83
|
+
Returns
|
|
84
|
+
-------
|
|
85
|
+
None
|
|
86
|
+
This method does not return any value. It initializes instance attributes for use in other methods.
|
|
87
|
+
"""
|
|
88
|
+
|
|
89
|
+
# Store the console instance for output
|
|
90
|
+
self.__console = console
|
|
91
|
+
|
|
92
|
+
# Set the project root to the current working directory
|
|
93
|
+
self.__project_root = Path.cwd()
|
|
94
|
+
|
|
95
|
+
# Calculate the width for console panels (3/4 of the console width)
|
|
96
|
+
self.__with_console = (self.__console.width // 4) * 3
|
|
97
|
+
|
|
98
|
+
# Retrieve the PyPI token from environment variables and remove leading/trailing whitespace
|
|
99
|
+
self.__token = os.getenv("PYPI_TOKEN").strip()
|
|
100
|
+
|
|
101
|
+
def __bumpMinorVersion(self):
|
|
102
|
+
"""
|
|
103
|
+
Increment the minor version number in the file where the VERSION constant is defined.
|
|
104
|
+
|
|
105
|
+
This method locates the file containing the VERSION constant, reads its contents,
|
|
106
|
+
searches for the version assignment line, increments the minor version component,
|
|
107
|
+
and writes the updated version string back to the file. The patch and major
|
|
108
|
+
components remain unchanged.
|
|
109
|
+
|
|
110
|
+
Parameters
|
|
111
|
+
----------
|
|
112
|
+
None
|
|
113
|
+
|
|
114
|
+
Returns
|
|
115
|
+
-------
|
|
116
|
+
None
|
|
117
|
+
This method does not return any value. The version is updated in-place in the file.
|
|
118
|
+
|
|
119
|
+
Raises
|
|
120
|
+
------
|
|
121
|
+
FileNotFoundError
|
|
122
|
+
If the file containing the VERSION constant cannot be found.
|
|
123
|
+
IOError
|
|
124
|
+
If there is an error reading from or writing to the file.
|
|
125
|
+
"""
|
|
126
|
+
|
|
127
|
+
# Get the file path where the VERSION constant is defined
|
|
128
|
+
# VERSION is imported from orionis.metadata.framework
|
|
129
|
+
import orionis.metadata.framework
|
|
130
|
+
filepath = Path(inspect.getfile(orionis.metadata.framework))
|
|
131
|
+
if not filepath.exists():
|
|
132
|
+
raise FileNotFoundError(f"VERSION file not found at {filepath}")
|
|
133
|
+
|
|
134
|
+
# Read all lines from the file
|
|
135
|
+
with open(filepath, 'r') as f:
|
|
136
|
+
lines = f.readlines()
|
|
137
|
+
|
|
138
|
+
# Prepare a list to hold the new lines
|
|
139
|
+
new_lines = []
|
|
140
|
+
|
|
141
|
+
# Regular expression to match the VERSION assignment line
|
|
142
|
+
pattern = re.compile(r'^(VERSION\s*=\s*["\'])(\d+)\.(\d+)\.(\d+)(["\'])')
|
|
143
|
+
|
|
144
|
+
# Iterate through each line in the file
|
|
145
|
+
for line in lines:
|
|
146
|
+
match = pattern.match(line)
|
|
147
|
+
if match:
|
|
148
|
+
|
|
149
|
+
# Extract major, minor, and patch numbers
|
|
150
|
+
major, minor, patch = int(match.group(2)), int(match.group(3)), int(match.group(4))
|
|
151
|
+
|
|
152
|
+
# Increment the minor version
|
|
153
|
+
minor += 1
|
|
154
|
+
|
|
155
|
+
# Construct the new version string
|
|
156
|
+
new_version = f'{match.group(1)}{major}.{minor}.{patch}{match.group(5)}'
|
|
157
|
+
new_lines.append(new_version + '\n')
|
|
158
|
+
|
|
159
|
+
else:
|
|
160
|
+
|
|
161
|
+
# Keep all other lines unchanged
|
|
162
|
+
new_lines.append(line)
|
|
163
|
+
|
|
164
|
+
# Write the updated lines back to the file
|
|
165
|
+
with open(filepath, 'w') as f:
|
|
166
|
+
f.writelines(new_lines)
|
|
167
|
+
|
|
168
|
+
# Print a message indicating the version has been bumped
|
|
169
|
+
self.__console.print(
|
|
170
|
+
Panel(
|
|
171
|
+
f"[green]📦 Bumped minor version to {VERSION}[/]",
|
|
172
|
+
border_style="green",
|
|
173
|
+
width=self.__with_console
|
|
174
|
+
)
|
|
175
|
+
)
|
|
176
|
+
|
|
177
|
+
def __gitPush(self):
|
|
178
|
+
"""
|
|
179
|
+
Commits and pushes changes to the Git repository if there are modifications.
|
|
180
|
+
|
|
181
|
+
This method checks for uncommitted changes in the current project directory.
|
|
182
|
+
If changes are detected, it stages all modifications, commits them with a
|
|
183
|
+
message containing the current version, and pushes the commit to the remote
|
|
184
|
+
repository. If there are no changes, it logs a message indicating that no
|
|
185
|
+
commit or push is necessary.
|
|
186
|
+
|
|
187
|
+
Parameters
|
|
188
|
+
----------
|
|
189
|
+
None
|
|
190
|
+
|
|
191
|
+
Returns
|
|
192
|
+
-------
|
|
193
|
+
None
|
|
194
|
+
This method does not return any value. All output is printed to the console.
|
|
195
|
+
|
|
196
|
+
Raises
|
|
197
|
+
------
|
|
198
|
+
subprocess.CalledProcessError
|
|
199
|
+
If any of the subprocess calls to Git fail.
|
|
200
|
+
"""
|
|
201
|
+
|
|
202
|
+
# Check the current Git status to see if there are modified files
|
|
203
|
+
git_status = subprocess.run(
|
|
204
|
+
["git", "status", "--short"], capture_output=True, text=True, cwd=self.__project_root
|
|
205
|
+
)
|
|
206
|
+
|
|
207
|
+
# Check if the command was successful and if there are modified files
|
|
208
|
+
modified_files = git_status.stdout.strip()
|
|
209
|
+
|
|
210
|
+
# If there are modified files, proceed with staging and committing
|
|
211
|
+
if modified_files:
|
|
212
|
+
|
|
213
|
+
# Print the status of modified files
|
|
214
|
+
self.__console.print(
|
|
215
|
+
Panel(
|
|
216
|
+
"[cyan]📌 Staging files for commit...[/]",
|
|
217
|
+
border_style="cyan",
|
|
218
|
+
width=self.__with_console
|
|
219
|
+
)
|
|
220
|
+
)
|
|
221
|
+
|
|
222
|
+
# Stage all modified files
|
|
223
|
+
subprocess.run(
|
|
224
|
+
["git", "add", "."], check=True, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, cwd=self.__project_root
|
|
225
|
+
)
|
|
226
|
+
|
|
227
|
+
# Commit the changes with a message
|
|
228
|
+
self.__console.print(
|
|
229
|
+
Panel(
|
|
230
|
+
f"[cyan]✅ Committing changes: [📦 Release version {VERSION}][/]",
|
|
231
|
+
border_style="cyan",
|
|
232
|
+
width=self.__with_console
|
|
233
|
+
)
|
|
234
|
+
)
|
|
235
|
+
|
|
236
|
+
# Wait for a short period to ensure the commit is registered
|
|
237
|
+
time.sleep(5)
|
|
238
|
+
|
|
239
|
+
subprocess.run(
|
|
240
|
+
["git", "commit", "-m", f"📦 Release version {VERSION}"], check=True, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, cwd=self.__project_root
|
|
241
|
+
)
|
|
242
|
+
self.__console.print(
|
|
243
|
+
Panel(
|
|
244
|
+
"[cyan]🚀 Pushing changes to the remote repository...[/]",
|
|
245
|
+
border_style="cyan",
|
|
246
|
+
width=self.__with_console
|
|
247
|
+
)
|
|
248
|
+
)
|
|
249
|
+
|
|
250
|
+
# Push the changes to the remote repository
|
|
251
|
+
subprocess.run(
|
|
252
|
+
["git", "push", "-f"], check=True, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, cwd=self.__project_root
|
|
253
|
+
)
|
|
254
|
+
self.__console.print(
|
|
255
|
+
Panel(
|
|
256
|
+
"[green]🌟 Git push completed![/]",
|
|
257
|
+
border_style="green",
|
|
258
|
+
width=self.__with_console
|
|
259
|
+
)
|
|
260
|
+
)
|
|
261
|
+
|
|
262
|
+
else:
|
|
263
|
+
|
|
264
|
+
self.__console.print(
|
|
265
|
+
Panel(
|
|
266
|
+
"[green]✅ No changes to commit.[/]",
|
|
267
|
+
border_style="green",
|
|
268
|
+
width=self.__with_console
|
|
269
|
+
)
|
|
270
|
+
)
|
|
271
|
+
|
|
272
|
+
def __build(self):
|
|
273
|
+
"""
|
|
274
|
+
Builds the package distributions using `setup.py`.
|
|
275
|
+
|
|
276
|
+
This method compiles the package by invoking the `setup.py` script located
|
|
277
|
+
at the project root. It generates both source (`sdist`) and wheel (`bdist_wheel`)
|
|
278
|
+
distribution files, which are required for publishing the package to a repository.
|
|
279
|
+
If the `setup.py` file is not found, an error message is displayed and the build
|
|
280
|
+
process is aborted.
|
|
281
|
+
|
|
282
|
+
Parameters
|
|
283
|
+
----------
|
|
284
|
+
None
|
|
285
|
+
|
|
286
|
+
Returns
|
|
287
|
+
-------
|
|
288
|
+
None
|
|
289
|
+
This method does not return any value. All output is printed to the console.
|
|
290
|
+
|
|
291
|
+
Raises
|
|
292
|
+
------
|
|
293
|
+
subprocess.CalledProcessError
|
|
294
|
+
If the `setup.py` build command fails.
|
|
295
|
+
"""
|
|
296
|
+
|
|
297
|
+
try:
|
|
298
|
+
|
|
299
|
+
# Notify the user that the build process is starting
|
|
300
|
+
self.__console.print(
|
|
301
|
+
Panel(
|
|
302
|
+
"[cyan]🛠️ Building the package...[/]",
|
|
303
|
+
border_style="cyan",
|
|
304
|
+
width=self.__with_console
|
|
305
|
+
)
|
|
306
|
+
)
|
|
307
|
+
|
|
308
|
+
# Define the path to the setup.py file in the project root
|
|
309
|
+
setup_path = self.__project_root / "setup.py"
|
|
310
|
+
|
|
311
|
+
# Check if setup.py exists in the project root
|
|
312
|
+
if not os.path.exists(setup_path):
|
|
313
|
+
self.__console.print(
|
|
314
|
+
Panel(
|
|
315
|
+
"[bold red]❌ Error: setup.py not found in the current execution directory.[/]",
|
|
316
|
+
border_style="red",
|
|
317
|
+
width=self.__with_console
|
|
318
|
+
)
|
|
319
|
+
)
|
|
320
|
+
return
|
|
321
|
+
|
|
322
|
+
# Run the setup.py script to build both sdist and wheel distributions
|
|
323
|
+
subprocess.run(
|
|
324
|
+
[sys.executable, "setup.py", "sdist", "bdist_wheel"],
|
|
325
|
+
check=True,
|
|
326
|
+
stdout=subprocess.DEVNULL,
|
|
327
|
+
stderr=subprocess.DEVNULL,
|
|
328
|
+
cwd=self.__project_root
|
|
329
|
+
)
|
|
330
|
+
|
|
331
|
+
# Notify the user that the build was successful
|
|
332
|
+
self.__console.print(
|
|
333
|
+
Panel(
|
|
334
|
+
"[green]✅ Build process completed successfully![/]",
|
|
335
|
+
border_style="green",
|
|
336
|
+
width=self.__with_console
|
|
337
|
+
)
|
|
338
|
+
)
|
|
339
|
+
|
|
340
|
+
except subprocess.CalledProcessError as e:
|
|
341
|
+
|
|
342
|
+
# Notify the user if the build process fails
|
|
343
|
+
self.__console.print(
|
|
344
|
+
Panel(
|
|
345
|
+
f"[bold red]❌ Build failed: {e}[/]",
|
|
346
|
+
border_style="red",
|
|
347
|
+
width=self.__with_console
|
|
348
|
+
)
|
|
349
|
+
)
|
|
350
|
+
|
|
351
|
+
def __publish(self):
|
|
352
|
+
"""
|
|
353
|
+
Uploads the built package distributions to the PyPI repository using Twine.
|
|
354
|
+
|
|
355
|
+
This method locates the Twine executable (preferring the local virtual environment if available),
|
|
356
|
+
and uploads all distribution files from the `dist/` directory to PyPI using the authentication
|
|
357
|
+
token provided via the `PYPI_TOKEN` environment variable. If the token is missing, the process
|
|
358
|
+
is aborted and an error message is displayed. After a successful upload, the method cleans up
|
|
359
|
+
temporary Python bytecode files and `__pycache__` directories.
|
|
360
|
+
|
|
361
|
+
Parameters
|
|
362
|
+
----------
|
|
363
|
+
None
|
|
364
|
+
|
|
365
|
+
Returns
|
|
366
|
+
-------
|
|
367
|
+
None
|
|
368
|
+
This method does not return any value. All output is printed to the console.
|
|
369
|
+
|
|
370
|
+
Raises
|
|
371
|
+
------
|
|
372
|
+
subprocess.CalledProcessError
|
|
373
|
+
If the Twine upload or cleanup commands fail.
|
|
374
|
+
ValueError
|
|
375
|
+
If the PyPI token is not found in the environment variables.
|
|
376
|
+
"""
|
|
377
|
+
|
|
378
|
+
# Get the PyPI token from environment variables
|
|
379
|
+
token = self.__token
|
|
380
|
+
|
|
381
|
+
# Check if the PyPI token is available
|
|
382
|
+
if not token:
|
|
383
|
+
self.__console.print(
|
|
384
|
+
Panel(
|
|
385
|
+
"[bold red]❌ Error: PyPI token not found in environment variables.[/]",
|
|
386
|
+
border_style="red",
|
|
387
|
+
width=self.__with_console
|
|
388
|
+
)
|
|
389
|
+
)
|
|
390
|
+
return
|
|
391
|
+
|
|
392
|
+
# Try to find 'twine' in the local virtual environment, otherwise use system PATH
|
|
393
|
+
venv_twine = self.__project_root / 'venv' / 'Scripts' / 'twine'
|
|
394
|
+
if venv_twine.exists():
|
|
395
|
+
twine_path = str(venv_twine.resolve())
|
|
396
|
+
else:
|
|
397
|
+
twine_path = 'twine'
|
|
398
|
+
|
|
399
|
+
# Notify user that the upload process is starting
|
|
400
|
+
self.__console.print(
|
|
401
|
+
Panel(
|
|
402
|
+
"[cyan]📤 Uploading package to PyPI...[/]",
|
|
403
|
+
border_style="cyan",
|
|
404
|
+
width=self.__with_console
|
|
405
|
+
)
|
|
406
|
+
)
|
|
407
|
+
|
|
408
|
+
# Upload the package distributions to PyPI using Twine
|
|
409
|
+
try:
|
|
410
|
+
subprocess.run(
|
|
411
|
+
[twine_path, "upload", "dist/*", "-u", "__token__", "-p", token],
|
|
412
|
+
check=True, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, cwd=self.__project_root
|
|
413
|
+
)
|
|
414
|
+
self.__console.print(
|
|
415
|
+
Panel(
|
|
416
|
+
"[green]✅ Package published successfully![/]",
|
|
417
|
+
border_style="green",
|
|
418
|
+
width=self.__with_console
|
|
419
|
+
)
|
|
420
|
+
)
|
|
421
|
+
|
|
422
|
+
# Print error message and exit if upload fails
|
|
423
|
+
except Exception as e:
|
|
424
|
+
self.__console.print(
|
|
425
|
+
Panel(
|
|
426
|
+
f"[bold red]🔴 Error uploading the package. Try changing the version and retry. Error: {e}[/]",
|
|
427
|
+
border_style="red",
|
|
428
|
+
width=self.__with_console
|
|
429
|
+
)
|
|
430
|
+
)
|
|
431
|
+
exit(1)
|
|
432
|
+
|
|
433
|
+
# Notify user that cleanup is starting
|
|
434
|
+
self.__console.print(
|
|
435
|
+
Panel(
|
|
436
|
+
"[cyan]🧹 Cleaning up temporary files...[/]",
|
|
437
|
+
border_style="cyan",
|
|
438
|
+
width=self.__with_console
|
|
439
|
+
)
|
|
440
|
+
)
|
|
441
|
+
|
|
442
|
+
# Remove all .pyc files and __pycache__ directories recursively
|
|
443
|
+
subprocess.run(
|
|
444
|
+
["powershell", "-Command", "Get-ChildItem -Recurse -Filter *.pyc | Remove-Item; Get-ChildItem -Recurse -Filter __pycache__ | Remove-Item -Recurse"],
|
|
445
|
+
check=True, shell=True, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, cwd=self.__project_root
|
|
446
|
+
)
|
|
447
|
+
|
|
448
|
+
# Optionally, clear build artifacts (currently commented out)
|
|
449
|
+
self.__clearRepository()
|
|
450
|
+
|
|
451
|
+
# Notify user that the publishing process is complete
|
|
452
|
+
self.__console.print(
|
|
453
|
+
Panel(
|
|
454
|
+
f"[bold green]✅ Publishing process completed successfully![/]",
|
|
455
|
+
border_style="green",
|
|
456
|
+
width=self.__with_console
|
|
457
|
+
)
|
|
458
|
+
)
|
|
459
|
+
self.__console.print()
|
|
460
|
+
|
|
461
|
+
def __clearRepository(self):
|
|
462
|
+
"""
|
|
463
|
+
Removes temporary build artifacts and metadata directories from the project root.
|
|
464
|
+
|
|
465
|
+
This method deletes the following directories if they exist:
|
|
466
|
+
- `build/`: Contains temporary build files generated during packaging.
|
|
467
|
+
- `dist/`: Contains distribution archives (e.g., .tar.gz, .whl) created by the build process.
|
|
468
|
+
- `orionis.egg-info/`: Contains package metadata generated by setuptools.
|
|
469
|
+
|
|
470
|
+
Parameters
|
|
471
|
+
----------
|
|
472
|
+
None
|
|
473
|
+
|
|
474
|
+
Returns
|
|
475
|
+
-------
|
|
476
|
+
None
|
|
477
|
+
This method does not return any value. All output is printed to the console.
|
|
478
|
+
|
|
479
|
+
Raises
|
|
480
|
+
------
|
|
481
|
+
PermissionError
|
|
482
|
+
If the method fails to delete any of the directories due to insufficient permissions.
|
|
483
|
+
Exception
|
|
484
|
+
If any other error occurs during the deletion process.
|
|
485
|
+
"""
|
|
486
|
+
|
|
487
|
+
# List of directories to remove after publishing
|
|
488
|
+
folders = ["build", "dist", "orionis.egg-info"]
|
|
489
|
+
|
|
490
|
+
for folder in folders:
|
|
491
|
+
folder_path = self.__project_root / folder
|
|
492
|
+
|
|
493
|
+
# Check if the directory exists before attempting to remove it
|
|
494
|
+
if os.path.exists(folder_path):
|
|
495
|
+
|
|
496
|
+
# Recursively remove the directory and its contents
|
|
497
|
+
try:
|
|
498
|
+
shutil.rmtree(folder_path)
|
|
499
|
+
|
|
500
|
+
# Handle insufficient permissions error
|
|
501
|
+
except PermissionError:
|
|
502
|
+
self.__console.print(
|
|
503
|
+
Panel(
|
|
504
|
+
f"[bold red]❌ Error: Could not remove {folder_path} due to insufficient permissions.[/]",
|
|
505
|
+
border_style="red",
|
|
506
|
+
width=self.__with_console
|
|
507
|
+
)
|
|
508
|
+
)
|
|
509
|
+
|
|
510
|
+
# Handle any other exceptions that may occur
|
|
511
|
+
except Exception as e:
|
|
512
|
+
self.__console.print(
|
|
513
|
+
Panel(
|
|
514
|
+
f"[bold red]❌ Error removing {folder_path}: {str(e)}[/]",
|
|
515
|
+
border_style="red",
|
|
516
|
+
width=self.__with_console
|
|
517
|
+
)
|
|
518
|
+
)
|
|
519
|
+
|
|
520
|
+
def handle(self, reactor: IReactor) -> None:
|
|
521
|
+
"""
|
|
522
|
+
Displays usage information and a list of available commands for the Orionis CLI.
|
|
523
|
+
|
|
524
|
+
Parameters
|
|
525
|
+
----------
|
|
526
|
+
reactor : IReactor
|
|
527
|
+
The reactor instance providing command metadata via the `info()` method.
|
|
528
|
+
|
|
529
|
+
Returns
|
|
530
|
+
-------
|
|
531
|
+
None
|
|
532
|
+
This method does not return any value. It prints help information to the console.
|
|
533
|
+
|
|
534
|
+
Raises
|
|
535
|
+
------
|
|
536
|
+
CLIOrionisRuntimeError
|
|
537
|
+
If an unexpected error occurs during help information generation or display.
|
|
538
|
+
"""
|
|
539
|
+
try:
|
|
540
|
+
|
|
541
|
+
# Execute test suite
|
|
542
|
+
response: dict = reactor.call("test")
|
|
543
|
+
|
|
544
|
+
# Determinar si existieron errores en el test suite
|
|
545
|
+
failed = response.get("failed", 0)
|
|
546
|
+
errors = response.get("errors", 0)
|
|
547
|
+
|
|
548
|
+
# If there are any failed tests, print a warning message
|
|
549
|
+
if failed > 0 or errors > 0:
|
|
550
|
+
console = Console()
|
|
551
|
+
console.print(
|
|
552
|
+
Panel(
|
|
553
|
+
f"Tests failed: {failed}, Errors: {errors}",
|
|
554
|
+
title="Test Suite Results",
|
|
555
|
+
style="bold red"
|
|
556
|
+
)
|
|
557
|
+
)
|
|
558
|
+
|
|
559
|
+
# If there are failed tests, we do not proceed with the publishing
|
|
560
|
+
return
|
|
561
|
+
|
|
562
|
+
# Bump the minor version number
|
|
563
|
+
self.__bumpMinorVersion()
|
|
564
|
+
|
|
565
|
+
# Push changes to Git
|
|
566
|
+
self.__gitPush()
|
|
567
|
+
|
|
568
|
+
# Build the package
|
|
569
|
+
self.__build()
|
|
570
|
+
|
|
571
|
+
# Publish the package to PyPI
|
|
572
|
+
self.__publish()
|
|
573
|
+
|
|
574
|
+
except Exception as e:
|
|
575
|
+
|
|
576
|
+
# Raise a custom runtime error if any exception occurs
|
|
577
|
+
raise CLIOrionisRuntimeError(f"An unexpected error occurred: {e}") from e
|
|
@@ -26,7 +26,7 @@ class TestCommand(BaseCommand):
|
|
|
26
26
|
# Command description
|
|
27
27
|
description: str = "Executes all automated tests using the configured test kernel for the Orionis application."
|
|
28
28
|
|
|
29
|
-
def handle(self) ->
|
|
29
|
+
def handle(self) -> dict:
|
|
30
30
|
"""
|
|
31
31
|
Executes the test command for the Orionis CLI.
|
|
32
32
|
|
|
@@ -36,9 +36,8 @@ class TestCommand(BaseCommand):
|
|
|
36
36
|
|
|
37
37
|
Returns
|
|
38
38
|
-------
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
such as running the test suite and handling exceptions.
|
|
39
|
+
dict
|
|
40
|
+
The result of the test execution, typically containing test results or status.
|
|
42
41
|
|
|
43
42
|
Raises
|
|
44
43
|
------
|
|
@@ -54,7 +53,7 @@ class TestCommand(BaseCommand):
|
|
|
54
53
|
kernel: ITestKernel = app.make(ITestKernel)
|
|
55
54
|
|
|
56
55
|
# Run the test suite using the kernel's handle method
|
|
57
|
-
kernel.handle()
|
|
56
|
+
return kernel.handle()
|
|
58
57
|
|
|
59
58
|
except Exception as e:
|
|
60
59
|
|
|
@@ -27,7 +27,7 @@ class VersionCommand(BaseCommand):
|
|
|
27
27
|
# Command description
|
|
28
28
|
description: str = "Displays the current Orionis framework version and metadata, including author, Python requirements, documentation, and repository links."
|
|
29
29
|
|
|
30
|
-
def handle(self) ->
|
|
30
|
+
def handle(self) -> str:
|
|
31
31
|
"""
|
|
32
32
|
Executes the version command to display the current Orionis framework version and metadata.
|
|
33
33
|
|
|
@@ -41,9 +41,8 @@ class VersionCommand(BaseCommand):
|
|
|
41
41
|
|
|
42
42
|
Returns
|
|
43
43
|
-------
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
to the console using rich formatting.
|
|
44
|
+
str
|
|
45
|
+
The current version of the Orionis framework.
|
|
47
46
|
|
|
48
47
|
Raises
|
|
49
48
|
------
|
|
@@ -82,6 +81,10 @@ class VersionCommand(BaseCommand):
|
|
|
82
81
|
console.print(panel)
|
|
83
82
|
console.line()
|
|
84
83
|
|
|
84
|
+
# Return the framework version for potential further use
|
|
85
|
+
return framework.VERSION
|
|
86
|
+
|
|
85
87
|
except Exception as e:
|
|
88
|
+
|
|
86
89
|
# Raise a custom runtime error if any exception occurs
|
|
87
90
|
raise CLIOrionisRuntimeError(f"An unexpected error occurred: {e}") from e
|