orionis 0.732.0__tar.gz → 0.734.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.732.0/orionis.egg-info → orionis-0.734.0}/PKG-INFO +2 -1
- orionis-0.734.0/orionis/console/commands/server.py +140 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/core/reactor.py +3 -1
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/application.py +35 -1
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/app/entities/app.py +9 -9
- orionis-0.734.0/orionis/http/contracts/kernel.py +45 -0
- orionis-0.734.0/orionis/http/core/asgi.py +20 -0
- orionis-0.734.0/orionis/http/core/rsgi.py +17 -0
- orionis-0.734.0/orionis/http/kernel.py +53 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/metadata/framework.py +2 -1
- orionis-0.734.0/orionis/test/output/__init__.py +0 -0
- orionis-0.734.0/orionis/test/records/__init__.py +0 -0
- orionis-0.734.0/orionis/test/view/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0/orionis.egg-info}/PKG-INFO +2 -1
- {orionis-0.732.0 → orionis-0.734.0}/orionis.egg-info/SOURCES.txt +8 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis.egg-info/requires.txt +1 -0
- {orionis-0.732.0 → orionis-0.734.0}/LICENCE +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/MANIFEST.in +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/README.md +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/app.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/args/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/args/argument.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/base/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/base/command.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/base/scheduler.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/base/scheduler_event_listener.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/commands/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/commands/__publisher__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/commands/cache_clear.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/commands/help.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/commands/make_command.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/commands/make_scheduler_listener.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/commands/scheduler_list.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/commands/scheduler_work.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/commands/test.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/commands/version.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/contracts/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/contracts/base_command.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/contracts/base_scheduler.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/contracts/cli_request.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/contracts/command.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/contracts/console.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/contracts/dumper.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/contracts/event.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/contracts/executor.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/contracts/kernel.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/contracts/progress_bar.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/contracts/reactor.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/contracts/schedule.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/contracts/schedule_event_listener.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/core/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/debug/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/debug/dumper.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/dynamic/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/dynamic/progress_bar.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/entities/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/entities/command.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/entities/event.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/entities/event_job.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/entities/scheduler_error.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/entities/scheduler_event_data.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/entities/scheduler_paused.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/entities/scheduler_resumed.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/entities/scheduler_shutdown.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/entities/scheduler_started.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/enums/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/enums/actions.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/enums/listener.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/enums/styles.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/exceptions/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/exceptions/cli_exceptions.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/fluent/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/fluent/command.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/fluent/event.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/kernel.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/output/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/output/console.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/output/executor.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/request/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/request/cli_request.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/stubs/command.stub +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/stubs/listener.stub +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/tasks/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/console/tasks/schedule.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/container/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/container/container.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/container/context/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/container/context/manager.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/container/context/scope.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/container/contracts/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/container/contracts/container.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/container/contracts/service_provider.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/container/entities/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/container/entities/binding.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/container/enums/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/container/enums/lifetimes.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/container/exceptions/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/container/exceptions/container.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/container/facades/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/container/facades/facade.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/container/providers/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/container/providers/service_provider.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/failure/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/failure/base/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/failure/base/handler.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/failure/catch.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/failure/contracts/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/failure/contracts/catch.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/failure/contracts/handler.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/failure/entities/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/failure/entities/throwable.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/app/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/app/entities/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/app/enums/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/app/enums/ciphers.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/app/enums/environments.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/auth/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/auth/entities/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/auth/entities/auth.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/cache/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/cache/entities/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/cache/entities/cache.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/cache/entities/file.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/cache/entities/stores.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/cache/enums/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/cache/enums/drivers.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/cors/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/cors/entities/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/cors/entities/cors.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/database/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/database/entities/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/database/entities/connections.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/database/entities/database.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/database/entities/mysql.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/database/entities/oracle.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/database/entities/pgsql.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/database/entities/sqlite.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/database/enums/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/database/enums/mysql_charsets.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/database/enums/mysql_collations.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/database/enums/mysql_engine.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/database/enums/oracle_encoding.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/database/enums/oracle_nencoding.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/database/enums/pgsql_charsets.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/database/enums/pgsql_collations.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/database/enums/pgsql_mode.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/database/enums/sqlite_foreign_key.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/database/enums/sqlite_journal.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/database/enums/sqlite_synchronous.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/filesystems/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/filesystems/entitites/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/filesystems/entitites/aws.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/filesystems/entitites/disks.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/filesystems/entitites/filesystems.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/filesystems/entitites/local.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/filesystems/entitites/public.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/logging/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/logging/entities/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/logging/entities/channels.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/logging/entities/chunked.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/logging/entities/daily.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/logging/entities/hourly.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/logging/entities/logging.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/logging/entities/monthly.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/logging/entities/stack.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/logging/entities/weekly.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/logging/enums/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/logging/enums/levels.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/logging/validators/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/logging/validators/level.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/logging/validators/path.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/mail/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/mail/entities/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/mail/entities/file.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/mail/entities/mail.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/mail/entities/mailers.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/mail/entities/smtp.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/queue/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/queue/entities/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/queue/entities/brokers.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/queue/entities/database.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/queue/entities/queue.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/queue/enums/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/queue/enums/strategy.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/roots/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/roots/paths.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/session/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/session/entities/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/session/entities/session.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/session/enums/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/session/enums/same_site_policy.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/session/helpers/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/session/helpers/secret_key.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/startup.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/testing/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/testing/entities/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/testing/entities/testing.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/testing/enums/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/testing/enums/drivers.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/testing/enums/mode.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/config/testing/enums/verbosity.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/contracts/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/contracts/application.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/exceptions/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/exceptions/application.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/providers/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/providers/catch_provider.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/providers/cli_request_provider.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/providers/console_provider.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/providers/directory_provider.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/providers/dumper_provider.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/providers/executor_provider.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/providers/inspirational_provider.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/providers/logger_provider.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/providers/performance_counter_provider.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/providers/progress_bar_provider.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/providers/reactor_provider.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/providers/scheduler_provider.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/providers/testing_provider.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/foundation/providers/workers_provider.py +0 -0
- {orionis-0.732.0/orionis/metadata → orionis-0.734.0/orionis/http}/__init__.py +0 -0
- {orionis-0.732.0/orionis/services → orionis-0.734.0/orionis/http/contracts}/__init__.py +0 -0
- {orionis-0.732.0/orionis/services/asynchrony → orionis-0.734.0/orionis/http/core}/__init__.py +0 -0
- {orionis-0.732.0/orionis/services/asynchrony/contracts → orionis-0.734.0/orionis/metadata}/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/metadata/package.py +0 -0
- {orionis-0.732.0/orionis/services/environment → orionis-0.734.0/orionis/services}/__init__.py +0 -0
- {orionis-0.732.0/orionis/services/environment/contracts → orionis-0.734.0/orionis/services/asynchrony}/__init__.py +0 -0
- {orionis-0.732.0/orionis/services/environment/core → orionis-0.734.0/orionis/services/asynchrony/contracts}/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/services/asynchrony/contracts/coroutines.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/services/asynchrony/coroutines.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/services/asynchrony/exceptions/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/services/asynchrony/exceptions/asynchrony.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/services/encrypter/encrypter.py +0 -0
- {orionis-0.732.0/orionis/services/environment/dynamic → orionis-0.734.0/orionis/services/environment}/__init__.py +0 -0
- {orionis-0.732.0/orionis/services/environment/helpers → orionis-0.734.0/orionis/services/environment/contracts}/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/services/environment/contracts/caster.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/services/environment/contracts/env.py +0 -0
- {orionis-0.732.0/orionis/services/environment/key → orionis-0.734.0/orionis/services/environment/core}/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/services/environment/core/dot_env.py +0 -0
- {orionis-0.732.0/orionis/services/file → orionis-0.734.0/orionis/services/environment/dynamic}/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/services/environment/dynamic/caster.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/services/environment/enums/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/services/environment/enums/value_type.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/services/environment/env.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/services/environment/exceptions/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/services/environment/exceptions/environment.py +0 -0
- {orionis-0.732.0/orionis/services/file/contracts → orionis-0.734.0/orionis/services/environment/helpers}/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/services/environment/helpers/functions.py +0 -0
- {orionis-0.732.0/orionis/services/inspirational → orionis-0.734.0/orionis/services/environment/key}/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/services/environment/key/key_generator.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/services/environment/validators/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/services/environment/validators/key_name.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/services/environment/validators/types.py +0 -0
- {orionis-0.732.0/orionis/services/inspirational/contracts → orionis-0.734.0/orionis/services/file}/__init__.py +0 -0
- {orionis-0.732.0/orionis/services/introspection → orionis-0.734.0/orionis/services/file/contracts}/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/services/file/contracts/directory.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/services/file/directory.py +0 -0
- {orionis-0.732.0/orionis/services/introspection/abstract → orionis-0.734.0/orionis/services/inspirational}/__init__.py +0 -0
- {orionis-0.732.0/orionis/services/introspection/abstract → orionis-0.734.0/orionis/services/inspirational}/contracts/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/services/inspirational/contracts/inspire.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/services/inspirational/inspire.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/services/inspirational/quotes.py +0 -0
- {orionis-0.732.0/orionis/services/introspection/callables → orionis-0.734.0/orionis/services/introspection}/__init__.py +0 -0
- {orionis-0.732.0/orionis/services/introspection/callables/contracts → orionis-0.734.0/orionis/services/introspection/abstract}/__init__.py +0 -0
- {orionis-0.732.0/orionis/services/introspection/concretes → orionis-0.734.0/orionis/services/introspection/abstract/contracts}/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/services/introspection/abstract/contracts/reflection.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/services/introspection/abstract/reflection.py +0 -0
- {orionis-0.732.0/orionis/services/introspection/concretes/contracts → orionis-0.734.0/orionis/services/introspection/callables}/__init__.py +0 -0
- {orionis-0.732.0/orionis/services/introspection/dependencies → orionis-0.734.0/orionis/services/introspection/callables/contracts}/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/services/introspection/callables/contracts/reflection.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/services/introspection/callables/reflection.py +0 -0
- {orionis-0.732.0/orionis/services/introspection/dependencies/contracts → orionis-0.734.0/orionis/services/introspection/concretes}/__init__.py +0 -0
- {orionis-0.732.0/orionis/services/introspection/dependencies/entities → orionis-0.734.0/orionis/services/introspection/concretes/contracts}/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/services/introspection/concretes/contracts/reflection.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/services/introspection/concretes/reflection.py +0 -0
- {orionis-0.732.0/orionis/services/introspection/instances → orionis-0.734.0/orionis/services/introspection/dependencies}/__init__.py +0 -0
- {orionis-0.732.0/orionis/services/introspection/instances → orionis-0.734.0/orionis/services/introspection/dependencies}/contracts/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/services/introspection/dependencies/contracts/reflection.py +0 -0
- {orionis-0.732.0/orionis/services/introspection/modules → orionis-0.734.0/orionis/services/introspection/dependencies/entities}/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/services/introspection/dependencies/entities/argument.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/services/introspection/dependencies/entities/resolve_argument.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/services/introspection/dependencies/reflection.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/services/introspection/exceptions/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/services/introspection/exceptions/introspection.py +0 -0
- {orionis-0.732.0/orionis/services/introspection/modules/contracts → orionis-0.734.0/orionis/services/introspection/instances}/__init__.py +0 -0
- {orionis-0.732.0/orionis/services/introspection/objects → orionis-0.734.0/orionis/services/introspection/instances/contracts}/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/services/introspection/instances/contracts/reflection.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/services/introspection/instances/reflection.py +0 -0
- {orionis-0.732.0/orionis/services/log → orionis-0.734.0/orionis/services/introspection/modules}/__init__.py +0 -0
- {orionis-0.732.0/orionis/services/log → orionis-0.734.0/orionis/services/introspection/modules}/contracts/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/services/introspection/modules/contracts/reflection.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/services/introspection/modules/reflection.py +0 -0
- {orionis-0.732.0/orionis/services/log/handlers → orionis-0.734.0/orionis/services/introspection/objects}/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/services/introspection/objects/types.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/services/introspection/reflection.py +0 -0
- {orionis-0.732.0/orionis/services/system → orionis-0.734.0/orionis/services/log}/__init__.py +0 -0
- {orionis-0.732.0/orionis/services/system → orionis-0.734.0/orionis/services/log}/contracts/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/services/log/contracts/log_service.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/services/log/exceptions/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/services/log/exceptions/log.py +0 -0
- {orionis-0.732.0/orionis/services/system/runtime → orionis-0.734.0/orionis/services/log/handlers}/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/services/log/handlers/filename.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/services/log/handlers/size_rotating.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/services/log/handlers/timed_rotating.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/services/log/log_service.py +0 -0
- {orionis-0.732.0/orionis/support → orionis-0.734.0/orionis/services/system}/__init__.py +0 -0
- {orionis-0.732.0/orionis/support/entities → orionis-0.734.0/orionis/services/system/contracts}/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/services/system/contracts/imports.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/services/system/contracts/workers.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/services/system/imports.py +0 -0
- {orionis-0.732.0/orionis/support/facades → orionis-0.734.0/orionis/services/system/runtime}/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/services/system/runtime/imports.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/services/system/workers.py +0 -0
- {orionis-0.732.0/orionis/support/formatter → orionis-0.734.0/orionis/support}/__init__.py +0 -0
- {orionis-0.732.0/orionis/support/formatter/exceptions → orionis-0.734.0/orionis/support/entities}/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/support/entities/base.py +0 -0
- {orionis-0.732.0/orionis/support/formatter/exceptions/contracts → orionis-0.734.0/orionis/support/facades}/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/support/facades/application.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/support/facades/application.pyi +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/support/facades/console.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/support/facades/console.pyi +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/support/facades/directory.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/support/facades/directory.pyi +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/support/facades/dumper.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/support/facades/dumper.pyi +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/support/facades/executor.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/support/facades/executor.pyi +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/support/facades/inspire.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/support/facades/inspire.pyi +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/support/facades/logger.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/support/facades/logger.pyi +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/support/facades/performance_counter.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/support/facades/performance_counter.pyi +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/support/facades/progress_bar.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/support/facades/progress_bar.pyi +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/support/facades/reactor.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/support/facades/reactor.pyi +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/support/facades/testing.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/support/facades/testing.pyi +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/support/facades/workers.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/support/facades/workers.pyi +0 -0
- {orionis-0.732.0/orionis/support/patterns → orionis-0.734.0/orionis/support/formatter}/__init__.py +0 -0
- {orionis-0.732.0/orionis/support/performance → orionis-0.734.0/orionis/support/formatter/exceptions}/__init__.py +0 -0
- {orionis-0.732.0/orionis/support/performance → orionis-0.734.0/orionis/support/formatter/exceptions}/contracts/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/support/formatter/exceptions/contracts/parser.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/support/formatter/exceptions/parser.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/support/formatter/serializer.py +0 -0
- {orionis-0.732.0/orionis/support/standard → orionis-0.734.0/orionis/support/patterns}/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/support/patterns/singleton/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/support/patterns/singleton/meta.py +0 -0
- {orionis-0.732.0/orionis/support/standard/contracts → orionis-0.734.0/orionis/support/performance}/__init__.py +0 -0
- {orionis-0.732.0/orionis/support/strings → orionis-0.734.0/orionis/support/performance/contracts}/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/support/performance/contracts/counter.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/support/performance/counter.py +0 -0
- {orionis-0.732.0/orionis/support/structures → orionis-0.734.0/orionis/support/standard}/__init__.py +0 -0
- {orionis-0.732.0/orionis/support/structures → orionis-0.734.0/orionis/support/standard}/contracts/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/support/standard/contracts/std.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/support/standard/exceptions/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/support/standard/exceptions/standard.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/support/standard/std.py +0 -0
- {orionis-0.732.0/orionis/test → orionis-0.734.0/orionis/support/strings}/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/support/strings/stringable.py +0 -0
- {orionis-0.732.0/orionis/test/cases → orionis-0.734.0/orionis/support/structures}/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/support/structures/collection.py +0 -0
- {orionis-0.732.0/orionis/test → orionis-0.734.0/orionis/support/structures}/contracts/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/support/structures/contracts/collection.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/support/wrapper/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/support/wrapper/dataclass.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/support/wrapper/dot_dict.py +0 -0
- {orionis-0.732.0/orionis/test/core → orionis-0.734.0/orionis/test}/__init__.py +0 -0
- {orionis-0.732.0/orionis/test/entities → orionis-0.734.0/orionis/test/cases}/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/test/cases/asynchronous.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/test/cases/synchronous.py +0 -0
- {orionis-0.732.0/orionis/test/output → orionis-0.734.0/orionis/test/contracts}/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/test/contracts/dumper.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/test/contracts/kernel.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/test/contracts/logs.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/test/contracts/printer.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/test/contracts/render.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/test/contracts/test_result.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/test/contracts/unit_test.py +0 -0
- {orionis-0.732.0/orionis/test/records → orionis-0.734.0/orionis/test/core}/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/test/core/unit_test.py +0 -0
- {orionis-0.732.0/orionis/test/view → orionis-0.734.0/orionis/test/entities}/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/test/entities/result.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/test/enums/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/test/enums/status.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/test/exceptions/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/test/exceptions/config.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/test/exceptions/failure.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/test/exceptions/persistence.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/test/exceptions/runtime.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/test/exceptions/value.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/test/kernel.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/test/output/dumper.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/test/output/printer.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/test/records/logs.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/test/validators/__init__.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/test/validators/base_path.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/test/validators/execution_mode.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/test/validators/fail_fast.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/test/validators/folder_path.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/test/validators/module_name.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/test/validators/name_pattern.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/test/validators/pattern.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/test/validators/persistent.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/test/validators/persistent_driver.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/test/validators/print_result.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/test/validators/tags.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/test/validators/throw_exception.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/test/validators/verbosity.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/test/validators/web_report.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/test/validators/workers.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/test/view/render.py +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis/test/view/report.stub +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis.egg-info/dependency_links.txt +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis.egg-info/not-zip-safe +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/orionis.egg-info/top_level.txt +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/setup.cfg +0 -0
- {orionis-0.732.0 → orionis-0.734.0}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: orionis
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.734.0
|
|
4
4
|
Summary: Orionis Framework – Elegant, Fast, and Powerful.
|
|
5
5
|
Home-page: https://github.com/orionis-framework/framework
|
|
6
6
|
Author: Raul Mauricio Uñate Castro
|
|
@@ -38,6 +38,7 @@ Requires-Dist: twine>=5.0.0
|
|
|
38
38
|
Requires-Dist: pyclean>=3.1.0
|
|
39
39
|
Requires-Dist: dotty-dict>=1.3.1
|
|
40
40
|
Requires-Dist: granian>=2.5.5
|
|
41
|
+
Requires-Dist: granian[reload]>=2.5.5
|
|
41
42
|
Dynamic: author
|
|
42
43
|
Dynamic: author-email
|
|
43
44
|
Dynamic: classifier
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import os
|
|
2
|
+
import sys
|
|
3
|
+
import subprocess
|
|
4
|
+
import time
|
|
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.exceptions import CLIOrionisRuntimeError
|
|
10
|
+
from orionis.support.facades.application import Application
|
|
11
|
+
|
|
12
|
+
class ServerCommand(BaseCommand):
|
|
13
|
+
"""
|
|
14
|
+
Starts the Orionis HTTP server using Granian.
|
|
15
|
+
|
|
16
|
+
This command initializes the Orionis server with the configuration
|
|
17
|
+
specified in the application settings. It sets up the server interface,
|
|
18
|
+
host, port, worker count, and reload options, then launches the server
|
|
19
|
+
process. The command also displays a styled message in the console
|
|
20
|
+
indicating the server status and handles graceful shutdown on interruption.
|
|
21
|
+
|
|
22
|
+
Returns
|
|
23
|
+
-------
|
|
24
|
+
None
|
|
25
|
+
This method does not return any value.
|
|
26
|
+
"""
|
|
27
|
+
timestamps = False
|
|
28
|
+
signature = "serve"
|
|
29
|
+
description = "Initializes the Orionis server with Granian."
|
|
30
|
+
|
|
31
|
+
def handle(self):
|
|
32
|
+
"""
|
|
33
|
+
Handles the execution of the server command.
|
|
34
|
+
|
|
35
|
+
Reads configuration from the application, constructs the command to
|
|
36
|
+
start the Granian server, displays a status panel, and manages the
|
|
37
|
+
server process lifecycle including graceful shutdown on interruption.
|
|
38
|
+
|
|
39
|
+
Returns
|
|
40
|
+
-------
|
|
41
|
+
None
|
|
42
|
+
This method does not return any value.
|
|
43
|
+
"""
|
|
44
|
+
try:
|
|
45
|
+
|
|
46
|
+
# Retrieve application configuration for server settings
|
|
47
|
+
app_config: dict = Application.config("app")
|
|
48
|
+
host: str = app_config.get("host", "127.0.0.1")
|
|
49
|
+
port: int = app_config.get("port", 8000)
|
|
50
|
+
workers: int = app_config.get("workers", 1)
|
|
51
|
+
reload: bool = app_config.get("reload", False)
|
|
52
|
+
interface: str = app_config.get("interface", "asgi")
|
|
53
|
+
app_path: str = "bootstrap.app:app"
|
|
54
|
+
|
|
55
|
+
# Build the command to launch the Granian server
|
|
56
|
+
cmd = [
|
|
57
|
+
sys.executable, "-B", "-m", "granian",
|
|
58
|
+
"--interface", interface,
|
|
59
|
+
"--host", host,
|
|
60
|
+
"--port", str(port),
|
|
61
|
+
"--workers", "1" if os.name == "nt" else str(workers),
|
|
62
|
+
"--no-log",
|
|
63
|
+
app_path
|
|
64
|
+
]
|
|
65
|
+
if reload:
|
|
66
|
+
cmd.append("--reload")
|
|
67
|
+
|
|
68
|
+
# Initialize Rich console for styled output
|
|
69
|
+
rich_console = Console()
|
|
70
|
+
rich_console.clear()
|
|
71
|
+
rich_console.line()
|
|
72
|
+
now = time.strftime("%Y-%m-%d %H:%M:%S")
|
|
73
|
+
|
|
74
|
+
# Prepare the panel content with server status information
|
|
75
|
+
panel_content = Text.assemble(
|
|
76
|
+
("🚀 Orionis HTTP Server ", "bold white on green"),
|
|
77
|
+
("\n\n", ""),
|
|
78
|
+
("✅ The HTTP server has started successfully.\n", "white"),
|
|
79
|
+
(f"🔗 Service running at: http://{host}:{port}\n", "bold cyan"),
|
|
80
|
+
(f"🕒 Started at: {now} | 🆔 PID: {os.getpid()}\n", "dim"),
|
|
81
|
+
("🛑 To stop the server, press ", "white"),
|
|
82
|
+
("Ctrl+C", "bold yellow")
|
|
83
|
+
)
|
|
84
|
+
|
|
85
|
+
# Display the message in a styled panel
|
|
86
|
+
rich_console.print(
|
|
87
|
+
Panel(panel_content, border_style="green", padding=(1, 2))
|
|
88
|
+
)
|
|
89
|
+
|
|
90
|
+
# Add another blank line for better formatting
|
|
91
|
+
rich_console.line()
|
|
92
|
+
|
|
93
|
+
# Ensure the current working directory is in the import path
|
|
94
|
+
sys.path.insert(0, os.getcwd())
|
|
95
|
+
|
|
96
|
+
# Start the Granian server process
|
|
97
|
+
# IMPORTANT: Do not use creationflags on Windows to allow child to share the console.
|
|
98
|
+
process = subprocess.Popen(
|
|
99
|
+
cmd,
|
|
100
|
+
stdout=sys.stdout,
|
|
101
|
+
stderr=sys.stderr,
|
|
102
|
+
stdin=None,
|
|
103
|
+
shell=False,
|
|
104
|
+
)
|
|
105
|
+
|
|
106
|
+
def shutdown():
|
|
107
|
+
"""
|
|
108
|
+
Gracefully shuts down the server process.
|
|
109
|
+
|
|
110
|
+
Terminates the server process if it is still running and waits
|
|
111
|
+
for it to exit. If termination fails, forcibly kills the process.
|
|
112
|
+
|
|
113
|
+
Returns
|
|
114
|
+
-------
|
|
115
|
+
None
|
|
116
|
+
This method does not return any value.
|
|
117
|
+
"""
|
|
118
|
+
if process.poll() is None:
|
|
119
|
+
self.writeLine("Shutting down Orionis server...")
|
|
120
|
+
try:
|
|
121
|
+
process.terminate()
|
|
122
|
+
process.wait(timeout=5)
|
|
123
|
+
except Exception:
|
|
124
|
+
process.kill()
|
|
125
|
+
self.info("Orionis server stopped.")
|
|
126
|
+
|
|
127
|
+
# Wait for the server process to exit, handling Ctrl+C for graceful shutdown
|
|
128
|
+
try:
|
|
129
|
+
process.wait()
|
|
130
|
+
except KeyboardInterrupt:
|
|
131
|
+
shutdown()
|
|
132
|
+
|
|
133
|
+
# Report non-zero exit codes as errors
|
|
134
|
+
if process.returncode not in (0, None):
|
|
135
|
+
self.error(f"Orionis server exited with code {process.returncode}")
|
|
136
|
+
|
|
137
|
+
except Exception as e:
|
|
138
|
+
|
|
139
|
+
# Raise a CLI-specific runtime error if server startup fails
|
|
140
|
+
raise CLIOrionisRuntimeError(f"Failed to start Orionis server: {e}") from e
|
|
@@ -289,6 +289,7 @@ class Reactor(IReactor):
|
|
|
289
289
|
from orionis.console.commands.test import TestCommand
|
|
290
290
|
from orionis.console.commands.version import VersionCommand
|
|
291
291
|
from orionis.console.commands.make_scheduler_listener import MakeSchedulerListenerCommand
|
|
292
|
+
from orionis.console.commands.server import ServerCommand
|
|
292
293
|
|
|
293
294
|
# List of core command classes to load (extend this list as more core commands are added)
|
|
294
295
|
core_commands = [
|
|
@@ -300,7 +301,8 @@ class Reactor(IReactor):
|
|
|
300
301
|
ScheduleWorkCommand,
|
|
301
302
|
TestCommand,
|
|
302
303
|
VersionCommand,
|
|
303
|
-
MakeSchedulerListenerCommand
|
|
304
|
+
MakeSchedulerListenerCommand,
|
|
305
|
+
ServerCommand
|
|
304
306
|
]
|
|
305
307
|
|
|
306
308
|
# Iterate through the core command classes and register them
|
|
@@ -68,6 +68,38 @@ class Application(Container, IApplication):
|
|
|
68
68
|
|
|
69
69
|
CONFIGURATION_LOCKED_ERROR_MESSAGE = "Cannot modify configuration after application has been booted."
|
|
70
70
|
|
|
71
|
+
async def __call__(self, *args) -> None:
|
|
72
|
+
"""
|
|
73
|
+
Asynchronous entry point for handling ASGI/RSGI requests via the HTTP kernel.
|
|
74
|
+
|
|
75
|
+
This method is invoked by ASGI/RSGI-compatible servers to process incoming requests.
|
|
76
|
+
It retrieves the IKernelHTTP instance from the application's dependency injection container
|
|
77
|
+
and delegates the request handling to the kernel's `handle` method, passing all received arguments.
|
|
78
|
+
|
|
79
|
+
Parameters
|
|
80
|
+
----------
|
|
81
|
+
*args : tuple
|
|
82
|
+
Variable-length argument list to be forwarded to the kernel's handle method.
|
|
83
|
+
|
|
84
|
+
Returns
|
|
85
|
+
-------
|
|
86
|
+
None
|
|
87
|
+
This method does not return any value. It delegates request handling to the HTTP kernel.
|
|
88
|
+
|
|
89
|
+
Notes
|
|
90
|
+
-----
|
|
91
|
+
- Designed for use with ASGI/RSGI servers.
|
|
92
|
+
- The kernel instance is resolved from the application's dependency injection container.
|
|
93
|
+
- Ensures separation of concerns by delegating request processing to the kernel.
|
|
94
|
+
"""
|
|
95
|
+
|
|
96
|
+
# Retrieve the HTTP kernel instance from the container
|
|
97
|
+
from orionis.http.contracts.kernel import IKernelHTTP
|
|
98
|
+
kernel: IKernelHTTP = self.make(IKernelHTTP)
|
|
99
|
+
|
|
100
|
+
# Delegate request handling to the kernel's handle method
|
|
101
|
+
await kernel.handle(*args)
|
|
102
|
+
|
|
71
103
|
@property
|
|
72
104
|
def isBooted(
|
|
73
105
|
self
|
|
@@ -177,11 +209,13 @@ class Application(Container, IApplication):
|
|
|
177
209
|
# Import core framework kernels
|
|
178
210
|
from orionis.test.kernel import TestKernel, ITestKernel
|
|
179
211
|
from orionis.console.kernel import KernelCLI, IKernelCLI
|
|
212
|
+
from orionis.http.kernel import KernelHTTP, IKernelHTTP
|
|
180
213
|
|
|
181
214
|
# Core framework kernels
|
|
182
215
|
core_kernels = {
|
|
183
216
|
ITestKernel: TestKernel,
|
|
184
|
-
IKernelCLI: KernelCLI
|
|
217
|
+
IKernelCLI: KernelCLI,
|
|
218
|
+
IKernelHTTP: KernelHTTP
|
|
185
219
|
}
|
|
186
220
|
|
|
187
221
|
# Register each kernel instance
|
|
@@ -19,8 +19,8 @@ class App(BaseEntity):
|
|
|
19
19
|
The environment in which the application is running. Default is 'DEVELOPMENT'.
|
|
20
20
|
debug : bool, optional
|
|
21
21
|
Whether debug mode is enabled. Default is True.
|
|
22
|
-
|
|
23
|
-
The
|
|
22
|
+
host : str, optional
|
|
23
|
+
The host address of the application.
|
|
24
24
|
port : int, optional
|
|
25
25
|
The port on which the application will run. Default is 8000.
|
|
26
26
|
workers : int, optional
|
|
@@ -70,11 +70,11 @@ class App(BaseEntity):
|
|
|
70
70
|
}
|
|
71
71
|
)
|
|
72
72
|
|
|
73
|
-
|
|
74
|
-
default_factory = lambda: Env.get('
|
|
73
|
+
host: str = field(
|
|
74
|
+
default_factory = lambda: Env.get('APP_HOST', '127.0.0.1'),
|
|
75
75
|
metadata = {
|
|
76
|
-
"description": "
|
|
77
|
-
"default": '
|
|
76
|
+
"description": "Host address of the application. Loaded from 'APP_HOST' or defaults to '127.0.0.1'. For production or to listen on all interfaces, use '0.0.0.0'.",
|
|
77
|
+
"default": '127.0.0.1'
|
|
78
78
|
}
|
|
79
79
|
)
|
|
80
80
|
|
|
@@ -188,9 +188,9 @@ class App(BaseEntity):
|
|
|
188
188
|
if not isinstance(self.debug, bool):
|
|
189
189
|
raise OrionisIntegrityException("The 'debug' attribute must be a boolean.")
|
|
190
190
|
|
|
191
|
-
# Validate `
|
|
192
|
-
if not isinstance(self.
|
|
193
|
-
raise OrionisIntegrityException("The '
|
|
191
|
+
# Validate `host` attribute
|
|
192
|
+
if not isinstance(self.host, str) or not self.host.strip():
|
|
193
|
+
raise OrionisIntegrityException("The 'host' attribute must be a non-empty string.")
|
|
194
194
|
|
|
195
195
|
# Validate `port` attribute
|
|
196
196
|
if not isinstance(self.port, int):
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
from abc import ABC, abstractmethod
|
|
2
|
+
|
|
3
|
+
class IKernelHTTP(ABC):
|
|
4
|
+
"""
|
|
5
|
+
Interface for implementing the HTTP kernel.
|
|
6
|
+
|
|
7
|
+
The HTTP kernel is responsible for handling incoming HTTP requests,
|
|
8
|
+
as well as WebSocket requests. It also determines whether to start
|
|
9
|
+
an ASGI or RSGI server and manages the pipelines and middlewares
|
|
10
|
+
required to process HTTP requests.
|
|
11
|
+
|
|
12
|
+
Methods
|
|
13
|
+
-------
|
|
14
|
+
handle(*args)
|
|
15
|
+
Handles incoming requests for ASGI or RSGI servers.
|
|
16
|
+
|
|
17
|
+
Returns
|
|
18
|
+
-------
|
|
19
|
+
None
|
|
20
|
+
This method does not return any value.
|
|
21
|
+
"""
|
|
22
|
+
|
|
23
|
+
@abstractmethod
|
|
24
|
+
async def handle(self, *args) -> None:
|
|
25
|
+
"""
|
|
26
|
+
Handles incoming requests for ASGI or RSGI servers.
|
|
27
|
+
|
|
28
|
+
The *args parameter is used to accommodate the different signatures
|
|
29
|
+
required by ASGI and RSGI server handlers. For example, ASGI uses
|
|
30
|
+
(async def app(scope, receive, send):) while RSGI uses
|
|
31
|
+
(async def app(scope, proto):).
|
|
32
|
+
|
|
33
|
+
Returns
|
|
34
|
+
-------
|
|
35
|
+
None
|
|
36
|
+
This method does not return any value.
|
|
37
|
+
|
|
38
|
+
Raises
|
|
39
|
+
------
|
|
40
|
+
NotImplementedError
|
|
41
|
+
If the method is not overridden by a subclass.
|
|
42
|
+
"""
|
|
43
|
+
|
|
44
|
+
# This method must be implemented by subclasses.
|
|
45
|
+
raise NotImplementedError("This method should be overridden by subclasses.")
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
class ASGIHandler:
|
|
2
|
+
|
|
3
|
+
async def __call__(self, scope, receive, send):
|
|
4
|
+
|
|
5
|
+
assert scope['type'] == 'http'
|
|
6
|
+
|
|
7
|
+
await send({
|
|
8
|
+
'type': 'http.response.start',
|
|
9
|
+
'status': 200,
|
|
10
|
+
'headers': [
|
|
11
|
+
[b'content-type', b'text/plain'],
|
|
12
|
+
],
|
|
13
|
+
})
|
|
14
|
+
|
|
15
|
+
await send({
|
|
16
|
+
'type': 'http.response.body',
|
|
17
|
+
'body': b'Hello, world!',
|
|
18
|
+
})
|
|
19
|
+
|
|
20
|
+
ASGIGateway = ASGIHandler()
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
from granian.rsgi import Scope
|
|
2
|
+
|
|
3
|
+
class RSGIHandler:
|
|
4
|
+
|
|
5
|
+
async def __call__(self, scope: Scope, proto):
|
|
6
|
+
|
|
7
|
+
assert scope.proto == 'http'
|
|
8
|
+
|
|
9
|
+
proto.response_str(
|
|
10
|
+
status=200,
|
|
11
|
+
headers=[
|
|
12
|
+
('content-type', 'text/plain')
|
|
13
|
+
],
|
|
14
|
+
body="Hello, world!"
|
|
15
|
+
)
|
|
16
|
+
|
|
17
|
+
RSGIGateway = RSGIHandler()
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
from orionis.console.exceptions import CLIOrionisValueError
|
|
2
|
+
from orionis.failure.contracts.catch import ICatch
|
|
3
|
+
from orionis.foundation.contracts.application import IApplication
|
|
4
|
+
from orionis.http.contracts.kernel import IKernelHTTP
|
|
5
|
+
from orionis.http.core.asgi import ASGIGateway
|
|
6
|
+
from orionis.http.core.rsgi import RSGIGateway
|
|
7
|
+
|
|
8
|
+
class KernelHTTP(IKernelHTTP):
|
|
9
|
+
|
|
10
|
+
def __init__(
|
|
11
|
+
self,
|
|
12
|
+
app: IApplication
|
|
13
|
+
) -> None:
|
|
14
|
+
"""
|
|
15
|
+
Initializes the KernelCLI instance with the provided application container.
|
|
16
|
+
|
|
17
|
+
Parameters
|
|
18
|
+
----------
|
|
19
|
+
app : IApplication
|
|
20
|
+
The application container instance that provides access to services and dependencies.
|
|
21
|
+
|
|
22
|
+
Returns
|
|
23
|
+
-------
|
|
24
|
+
None
|
|
25
|
+
This constructor does not return a value. It initializes internal dependencies required for CLI operations.
|
|
26
|
+
|
|
27
|
+
Raises
|
|
28
|
+
------
|
|
29
|
+
CLIOrionisValueError
|
|
30
|
+
If the provided `app` argument is not an instance of `IApplication`.
|
|
31
|
+
"""
|
|
32
|
+
|
|
33
|
+
# Validate that the app is an instance of IApplication
|
|
34
|
+
if not isinstance(app, IApplication):
|
|
35
|
+
raise CLIOrionisValueError(
|
|
36
|
+
f"Failed to initialize TestKernel: expected IApplication, got {type(app).__module__}.{type(app).__name__}."
|
|
37
|
+
)
|
|
38
|
+
|
|
39
|
+
# Retrieve and initialize the catch instance from the application container.
|
|
40
|
+
self.__catch: ICatch = app.make(ICatch)
|
|
41
|
+
|
|
42
|
+
async def handle(self, *args) -> None:
|
|
43
|
+
if args and isinstance(args[0], dict):
|
|
44
|
+
scope = args[0]
|
|
45
|
+
method = scope.get("method")
|
|
46
|
+
path = scope.get("path")
|
|
47
|
+
print(f"[{method}] - {path}")
|
|
48
|
+
await ASGIGateway(*args)
|
|
49
|
+
else:
|
|
50
|
+
method = args[0].method
|
|
51
|
+
path = args[0].path
|
|
52
|
+
print(f"[{method}] - {path}")
|
|
53
|
+
await RSGIGateway(*args)
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
NAME = "orionis"
|
|
7
7
|
|
|
8
8
|
# Current version of the framework
|
|
9
|
-
VERSION = "0.
|
|
9
|
+
VERSION = "0.734.0"
|
|
10
10
|
|
|
11
11
|
# Full name of the author or maintainer of the project
|
|
12
12
|
AUTHOR = "Raul Mauricio Uñate Castro"
|
|
@@ -97,6 +97,7 @@ REQUIRES = [
|
|
|
97
97
|
'pyclean>=3.1.0',
|
|
98
98
|
'dotty-dict>=1.3.1',
|
|
99
99
|
'granian>=2.5.5',
|
|
100
|
+
'granian[reload]>=2.5.5',
|
|
100
101
|
]
|
|
101
102
|
|
|
102
103
|
#---------------------------------------------------------------------------
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: orionis
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.734.0
|
|
4
4
|
Summary: Orionis Framework – Elegant, Fast, and Powerful.
|
|
5
5
|
Home-page: https://github.com/orionis-framework/framework
|
|
6
6
|
Author: Raul Mauricio Uñate Castro
|
|
@@ -38,6 +38,7 @@ Requires-Dist: twine>=5.0.0
|
|
|
38
38
|
Requires-Dist: pyclean>=3.1.0
|
|
39
39
|
Requires-Dist: dotty-dict>=1.3.1
|
|
40
40
|
Requires-Dist: granian>=2.5.5
|
|
41
|
+
Requires-Dist: granian[reload]>=2.5.5
|
|
41
42
|
Dynamic: author
|
|
42
43
|
Dynamic: author-email
|
|
43
44
|
Dynamic: classifier
|
|
@@ -26,6 +26,7 @@ orionis/console/commands/make_command.py
|
|
|
26
26
|
orionis/console/commands/make_scheduler_listener.py
|
|
27
27
|
orionis/console/commands/scheduler_list.py
|
|
28
28
|
orionis/console/commands/scheduler_work.py
|
|
29
|
+
orionis/console/commands/server.py
|
|
29
30
|
orionis/console/commands/test.py
|
|
30
31
|
orionis/console/commands/version.py
|
|
31
32
|
orionis/console/contracts/__init__.py
|
|
@@ -216,6 +217,13 @@ orionis/foundation/providers/reactor_provider.py
|
|
|
216
217
|
orionis/foundation/providers/scheduler_provider.py
|
|
217
218
|
orionis/foundation/providers/testing_provider.py
|
|
218
219
|
orionis/foundation/providers/workers_provider.py
|
|
220
|
+
orionis/http/__init__.py
|
|
221
|
+
orionis/http/kernel.py
|
|
222
|
+
orionis/http/contracts/__init__.py
|
|
223
|
+
orionis/http/contracts/kernel.py
|
|
224
|
+
orionis/http/core/__init__.py
|
|
225
|
+
orionis/http/core/asgi.py
|
|
226
|
+
orionis/http/core/rsgi.py
|
|
219
227
|
orionis/metadata/__init__.py
|
|
220
228
|
orionis/metadata/framework.py
|
|
221
229
|
orionis/metadata/package.py
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|