orionis 0.644.0__tar.gz → 0.645.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.644.0/orionis.egg-info → orionis-0.645.0}/PKG-INFO +1 -1
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/contracts/console.py +51 -0
- orionis-0.645.0/orionis/console/contracts/dumper.py +92 -0
- orionis-0.645.0/orionis/console/debug/dumper.py +149 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/output/console.py +136 -4
- orionis-0.645.0/orionis/foundation/providers/dumper_provider.py +29 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/metadata/framework.py +1 -1
- {orionis-0.644.0 → orionis-0.645.0}/orionis/support/facades/dumper.pyi +1 -1
- orionis-0.645.0/orionis/test/output/dumper.py +171 -0
- {orionis-0.644.0 → orionis-0.645.0/orionis.egg-info}/PKG-INFO +1 -1
- {orionis-0.644.0 → orionis-0.645.0}/orionis.egg-info/SOURCES.txt +3 -3
- orionis-0.644.0/orionis/console/contracts/debug.py +0 -34
- orionis-0.644.0/orionis/console/dumper/debug.py +0 -627
- orionis-0.644.0/orionis/foundation/providers/dumper_provider.py +0 -29
- orionis-0.644.0/orionis/test/output/dumper.py +0 -173
- {orionis-0.644.0 → orionis-0.645.0}/LICENCE +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/MANIFEST.in +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/README.md +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/args/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/args/argument.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/base/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/base/command.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/base/scheduler.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/base/scheduler_event_listener.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/commands/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/commands/__publisher__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/commands/__workflow__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/commands/cache_clear.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/commands/help.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/commands/log_clear.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/commands/make_command.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/commands/scheduler_list.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/commands/scheduler_work.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/commands/test.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/commands/version.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/contracts/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/contracts/base_command.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/contracts/base_scheduler.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/contracts/cli_request.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/contracts/command.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/contracts/event.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/contracts/executor.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/contracts/kernel.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/contracts/progress_bar.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/contracts/reactor.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/contracts/schedule.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/contracts/schedule_event_listener.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/core/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/core/reactor.py +0 -0
- {orionis-0.644.0/orionis/console/dumper → orionis-0.645.0/orionis/console/debug}/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/dynamic/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/dynamic/progress_bar.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/entities/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/entities/command.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/entities/event.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/entities/event_job.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/entities/scheduler_error.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/entities/scheduler_event_data.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/entities/scheduler_paused.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/entities/scheduler_resumed.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/entities/scheduler_shutdown.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/entities/scheduler_started.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/enums/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/enums/actions.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/enums/listener.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/enums/styles.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/exceptions/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/exceptions/cli_exceptions.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/fluent/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/fluent/command.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/fluent/event.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/kernel.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/output/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/output/executor.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/request/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/request/cli_request.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/stubs/command.stub +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/stubs/listener.stub +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/tasks/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/console/tasks/schedule.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/container/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/container/container.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/container/context/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/container/context/manager.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/container/context/scope.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/container/contracts/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/container/contracts/container.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/container/contracts/service_provider.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/container/entities/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/container/entities/binding.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/container/enums/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/container/enums/lifetimes.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/container/exceptions/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/container/exceptions/container.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/container/facades/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/container/facades/facade.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/container/providers/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/container/providers/service_provider.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/container/validators/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/container/validators/implements.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/container/validators/is_abstract_class.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/container/validators/is_callable.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/container/validators/is_concrete_class.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/container/validators/is_instance.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/container/validators/is_not_subclass.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/container/validators/is_subclass.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/container/validators/is_valid_alias.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/container/validators/lifetime.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/failure/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/failure/base/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/failure/base/handler.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/failure/catch.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/failure/contracts/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/failure/contracts/catch.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/failure/contracts/handler.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/failure/entities/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/failure/entities/throwable.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/application.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/app/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/app/entities/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/app/entities/app.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/app/enums/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/app/enums/ciphers.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/app/enums/environments.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/auth/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/auth/entities/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/auth/entities/auth.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/cache/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/cache/entities/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/cache/entities/cache.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/cache/entities/file.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/cache/entities/stores.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/cache/enums/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/cache/enums/drivers.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/cors/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/cors/entities/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/cors/entities/cors.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/database/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/database/entities/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/database/entities/connections.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/database/entities/database.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/database/entities/mysql.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/database/entities/oracle.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/database/entities/pgsql.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/database/entities/sqlite.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/database/enums/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/database/enums/mysql_charsets.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/database/enums/mysql_collations.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/database/enums/mysql_engine.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/database/enums/oracle_encoding.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/database/enums/oracle_nencoding.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/database/enums/pgsql_charsets.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/database/enums/pgsql_collations.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/database/enums/pgsql_mode.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/database/enums/sqlite_foreign_key.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/database/enums/sqlite_journal.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/database/enums/sqlite_synchronous.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/filesystems/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/filesystems/entitites/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/filesystems/entitites/aws.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/filesystems/entitites/disks.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/filesystems/entitites/filesystems.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/filesystems/entitites/local.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/filesystems/entitites/public.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/logging/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/logging/entities/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/logging/entities/channels.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/logging/entities/chunked.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/logging/entities/daily.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/logging/entities/hourly.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/logging/entities/logging.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/logging/entities/monthly.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/logging/entities/stack.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/logging/entities/weekly.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/logging/enums/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/logging/enums/levels.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/logging/validators/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/logging/validators/level.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/logging/validators/path.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/mail/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/mail/entities/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/mail/entities/file.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/mail/entities/mail.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/mail/entities/mailers.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/mail/entities/smtp.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/queue/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/queue/entities/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/queue/entities/brokers.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/queue/entities/database.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/queue/entities/queue.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/queue/enums/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/queue/enums/strategy.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/roots/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/roots/paths.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/session/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/session/entities/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/session/entities/session.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/session/enums/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/session/enums/same_site_policy.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/session/helpers/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/session/helpers/secret_key.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/startup.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/testing/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/testing/entities/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/testing/entities/testing.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/testing/enums/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/testing/enums/drivers.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/testing/enums/mode.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/config/testing/enums/verbosity.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/contracts/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/contracts/application.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/exceptions/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/exceptions/application.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/providers/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/providers/catch_provider.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/providers/cli_request_provider.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/providers/console_provider.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/providers/directory_provider.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/providers/executor_provider.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/providers/inspirational_provider.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/providers/logger_provider.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/providers/performance_counter_provider.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/providers/progress_bar_provider.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/providers/reactor_provider.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/providers/scheduler_provider.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/providers/testing_provider.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/foundation/providers/workers_provider.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/metadata/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/metadata/package.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/asynchrony/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/asynchrony/contracts/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/asynchrony/contracts/coroutines.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/asynchrony/coroutines.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/asynchrony/exceptions/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/asynchrony/exceptions/asynchrony.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/encrypter/encrypter.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/environment/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/environment/contracts/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/environment/contracts/caster.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/environment/contracts/env.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/environment/core/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/environment/core/dot_env.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/environment/dynamic/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/environment/dynamic/caster.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/environment/enums/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/environment/enums/value_type.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/environment/env.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/environment/exceptions/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/environment/exceptions/environment.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/environment/helpers/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/environment/helpers/functions.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/environment/key/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/environment/key/key_generator.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/environment/validators/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/environment/validators/key_name.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/environment/validators/types.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/file/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/file/contracts/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/file/contracts/directory.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/file/directory.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/inspirational/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/inspirational/contracts/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/inspirational/contracts/inspire.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/inspirational/inspire.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/inspirational/quotes.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/introspection/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/introspection/abstract/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/introspection/abstract/contracts/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/introspection/abstract/contracts/reflection.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/introspection/abstract/reflection.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/introspection/callables/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/introspection/callables/contracts/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/introspection/callables/contracts/reflection.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/introspection/callables/reflection.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/introspection/concretes/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/introspection/concretes/contracts/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/introspection/concretes/contracts/reflection.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/introspection/concretes/reflection.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/introspection/dependencies/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/introspection/dependencies/contracts/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/introspection/dependencies/contracts/reflection.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/introspection/dependencies/entities/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/introspection/dependencies/entities/argument.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/introspection/dependencies/entities/resolve_argument.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/introspection/dependencies/reflection.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/introspection/exceptions/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/introspection/exceptions/introspection.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/introspection/instances/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/introspection/instances/contracts/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/introspection/instances/contracts/reflection.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/introspection/instances/reflection.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/introspection/modules/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/introspection/modules/contracts/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/introspection/modules/contracts/reflection.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/introspection/modules/reflection.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/introspection/objects/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/introspection/objects/types.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/introspection/reflection.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/log/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/log/contracts/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/log/contracts/log_service.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/log/exceptions/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/log/exceptions/log.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/log/handlers/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/log/handlers/filename.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/log/handlers/size_rotating.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/log/handlers/timed_rotating.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/log/log_service.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/system/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/system/contracts/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/system/contracts/imports.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/system/contracts/workers.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/system/imports.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/system/runtime/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/system/runtime/imports.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/services/system/workers.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/support/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/support/entities/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/support/entities/base.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/support/facades/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/support/facades/application.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/support/facades/application.pyi +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/support/facades/console.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/support/facades/console.pyi +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/support/facades/directory.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/support/facades/directory.pyi +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/support/facades/dumper.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/support/facades/executor.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/support/facades/executor.pyi +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/support/facades/inspire.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/support/facades/inspire.pyi +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/support/facades/logger.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/support/facades/logger.pyi +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/support/facades/performance_counter.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/support/facades/performance_counter.pyi +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/support/facades/progress_bar.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/support/facades/progress_bar.pyi +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/support/facades/reactor.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/support/facades/reactor.pyi +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/support/facades/testing.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/support/facades/testing.pyi +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/support/facades/workers.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/support/facades/workers.pyi +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/support/formatter/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/support/formatter/exceptions/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/support/formatter/exceptions/contracts/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/support/formatter/exceptions/contracts/parser.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/support/formatter/exceptions/parser.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/support/formatter/serializer.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/support/patterns/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/support/patterns/singleton/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/support/patterns/singleton/meta.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/support/performance/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/support/performance/contracts/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/support/performance/contracts/counter.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/support/performance/counter.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/support/standard/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/support/standard/contracts/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/support/standard/contracts/std.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/support/standard/exceptions/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/support/standard/exceptions/standard.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/support/standard/std.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/support/wrapper/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/support/wrapper/dataclass.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/support/wrapper/dot_dict.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/test/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/test/cases/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/test/cases/asynchronous.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/test/cases/synchronous.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/test/contracts/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/test/contracts/dumper.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/test/contracts/kernel.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/test/contracts/logs.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/test/contracts/printer.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/test/contracts/render.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/test/contracts/test_result.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/test/contracts/unit_test.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/test/core/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/test/core/unit_test.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/test/entities/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/test/entities/result.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/test/enums/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/test/enums/status.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/test/exceptions/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/test/exceptions/config.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/test/exceptions/failure.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/test/exceptions/persistence.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/test/exceptions/runtime.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/test/exceptions/value.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/test/kernel.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/test/output/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/test/output/printer.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/test/records/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/test/records/logs.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/test/validators/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/test/validators/base_path.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/test/validators/execution_mode.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/test/validators/fail_fast.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/test/validators/folder_path.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/test/validators/module_name.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/test/validators/name_pattern.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/test/validators/pattern.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/test/validators/persistent.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/test/validators/persistent_driver.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/test/validators/throw_exception.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/test/validators/verbosity.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/test/validators/web_report.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/test/validators/workers.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/test/view/__init__.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/test/view/render.py +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis/test/view/report.stub +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis.egg-info/dependency_links.txt +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis.egg-info/not-zip-safe +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis.egg-info/requires.txt +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/orionis.egg-info/top_level.txt +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/setup.cfg +0 -0
- {orionis-0.644.0 → orionis-0.645.0}/setup.py +0 -0
|
@@ -450,4 +450,55 @@ class IConsole(ABC):
|
|
|
450
450
|
message : Optional[str], optional
|
|
451
451
|
The error message to print before exiting.
|
|
452
452
|
"""
|
|
453
|
+
pass
|
|
454
|
+
|
|
455
|
+
@abstractmethod
|
|
456
|
+
def dump(
|
|
457
|
+
self,
|
|
458
|
+
*args,
|
|
459
|
+
show_types: bool = True,
|
|
460
|
+
show_index: bool = False,
|
|
461
|
+
expand_all: bool = True,
|
|
462
|
+
max_depth: int | None = None,
|
|
463
|
+
module_path: str | None = None,
|
|
464
|
+
line_number: int | None = None,
|
|
465
|
+
force_exit: bool = False,
|
|
466
|
+
redirect_output: bool = False,
|
|
467
|
+
insert_line: bool = False
|
|
468
|
+
) -> Optional[str]:
|
|
469
|
+
"""
|
|
470
|
+
Displays formatted debug information for one or more variables using Rich, and optionally exports the output as HTML.
|
|
471
|
+
|
|
472
|
+
Parameters
|
|
473
|
+
----------
|
|
474
|
+
*args : Any
|
|
475
|
+
One or more objects to be displayed for debugging.
|
|
476
|
+
show_types : bool, optional
|
|
477
|
+
If True, displays the type of each argument in the panel title. Default is True.
|
|
478
|
+
show_index : bool, optional
|
|
479
|
+
If True, shows an index number for each argument. Default is False.
|
|
480
|
+
expand_all : bool, optional
|
|
481
|
+
If True, expands all nested data structures. Default is True.
|
|
482
|
+
max_depth : int or None, optional
|
|
483
|
+
Maximum depth for nested structures. If None, no limit is applied. Default is None.
|
|
484
|
+
module_path : str or None, optional
|
|
485
|
+
Overrides the module path shown in the header. If None, uses the caller's module path.
|
|
486
|
+
line_number : int or None, optional
|
|
487
|
+
Overrides the line number shown in the header. If None, uses the caller's line number.
|
|
488
|
+
force_exit : bool, optional
|
|
489
|
+
If True, terminates the program after dumping. Default is False.
|
|
490
|
+
redirect_output : bool, optional
|
|
491
|
+
If True, temporarily restores stdout/stderr to their original streams during output. Default is False.
|
|
492
|
+
insert_line : bool, optional
|
|
493
|
+
If True, inserts a blank line before and after the dump output for better readability. Default
|
|
494
|
+
|
|
495
|
+
Returns
|
|
496
|
+
-------
|
|
497
|
+
Optional[str]
|
|
498
|
+
An HTML string containing the formatted output if successful, or None if caller information is unavailable.
|
|
499
|
+
|
|
500
|
+
Notes
|
|
501
|
+
-----
|
|
502
|
+
This method uses the Rich library to display variables in a visually enhanced format, including type and index information if specified. It can also export the output as HTML for further use.
|
|
503
|
+
"""
|
|
453
504
|
pass
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
from abc import ABC, abstractmethod
|
|
2
|
+
from typing import Any
|
|
3
|
+
|
|
4
|
+
class IDumper(ABC):
|
|
5
|
+
|
|
6
|
+
@abstractmethod
|
|
7
|
+
def dd(
|
|
8
|
+
self,
|
|
9
|
+
*args: Any,
|
|
10
|
+
show_types: bool = False,
|
|
11
|
+
show_index: bool = False,
|
|
12
|
+
expand_all: bool = True,
|
|
13
|
+
max_depth: int | None = None,
|
|
14
|
+
module_path: str = None,
|
|
15
|
+
line_number: int = None
|
|
16
|
+
) -> None:
|
|
17
|
+
"""
|
|
18
|
+
Dump the provided variables to the console and terminate execution.
|
|
19
|
+
|
|
20
|
+
This method outputs the given variables to the console using the configured
|
|
21
|
+
console instance, then immediately stops program execution. It provides several
|
|
22
|
+
options to customize the output, such as displaying types, indices, expanding
|
|
23
|
+
all nested structures, and limiting the depth of expansion. The output can also
|
|
24
|
+
include information about the module path and line number where the method was called.
|
|
25
|
+
|
|
26
|
+
Parameters
|
|
27
|
+
----------
|
|
28
|
+
*args : Any
|
|
29
|
+
The variables to be dumped to the console.
|
|
30
|
+
show_types : bool, optional
|
|
31
|
+
Whether to display the type of each variable (default is False).
|
|
32
|
+
show_index : bool, optional
|
|
33
|
+
Whether to display the index for each variable in the output (default is False).
|
|
34
|
+
expand_all : bool, optional
|
|
35
|
+
Whether to expand all nested structures in the output (default is True).
|
|
36
|
+
max_depth : int or None, optional
|
|
37
|
+
The maximum depth to which nested structures should be expanded (default is None, meaning no limit).
|
|
38
|
+
module_path : str or None, optional
|
|
39
|
+
The path of the module from which the method is called (default is None).
|
|
40
|
+
line_number : int or None, optional
|
|
41
|
+
The line number in the source code where the method is called (default is None).
|
|
42
|
+
|
|
43
|
+
Returns
|
|
44
|
+
-------
|
|
45
|
+
None
|
|
46
|
+
This method does not return any value. It outputs the dump information to the console and terminates execution.
|
|
47
|
+
"""
|
|
48
|
+
pass
|
|
49
|
+
|
|
50
|
+
@abstractmethod
|
|
51
|
+
def dump(
|
|
52
|
+
self,
|
|
53
|
+
*args: Any,
|
|
54
|
+
show_types: bool = False,
|
|
55
|
+
show_index: bool = False,
|
|
56
|
+
expand_all: bool = True,
|
|
57
|
+
max_depth: int | None = None,
|
|
58
|
+
module_path: str = None,
|
|
59
|
+
line_number: int = None
|
|
60
|
+
) -> None:
|
|
61
|
+
"""
|
|
62
|
+
Dump the provided variables to the console for debugging purposes.
|
|
63
|
+
|
|
64
|
+
This method outputs the given variables to the console using the configured
|
|
65
|
+
console instance. It provides several options to customize the output, such as
|
|
66
|
+
displaying types, indices, expanding all nested structures, and limiting the
|
|
67
|
+
depth of expansion. The output can also include information about the module
|
|
68
|
+
path and line number where the dump was called.
|
|
69
|
+
|
|
70
|
+
Parameters
|
|
71
|
+
----------
|
|
72
|
+
*args : Any
|
|
73
|
+
The variables to be dumped to the console.
|
|
74
|
+
show_types : bool, optional
|
|
75
|
+
Whether to display the type of each variable (default is False).
|
|
76
|
+
show_index : bool, optional
|
|
77
|
+
Whether to display the index for each variable in the output (default is False).
|
|
78
|
+
expand_all : bool, optional
|
|
79
|
+
Whether to expand all nested structures in the output (default is True).
|
|
80
|
+
max_depth : int or None, optional
|
|
81
|
+
The maximum depth to which nested structures should be expanded (default is None, meaning no limit).
|
|
82
|
+
module_path : str or None, optional
|
|
83
|
+
The path of the module from which the dump is called (default is None).
|
|
84
|
+
line_number : int or None, optional
|
|
85
|
+
The line number in the source code where the dump is called (default is None).
|
|
86
|
+
|
|
87
|
+
Returns
|
|
88
|
+
-------
|
|
89
|
+
None
|
|
90
|
+
This method does not return any value. It outputs the dump information to the console.
|
|
91
|
+
"""
|
|
92
|
+
pass
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
from typing import Any
|
|
2
|
+
from orionis.console.contracts.console import IConsole
|
|
3
|
+
from orionis.console.contracts.dumper import IDumper
|
|
4
|
+
|
|
5
|
+
class Dumper(IDumper):
|
|
6
|
+
|
|
7
|
+
def __init__(self, console: IConsole) -> None:
|
|
8
|
+
"""
|
|
9
|
+
Initialize the Debug class with a console instance.
|
|
10
|
+
|
|
11
|
+
This constructor sets up the Debug utility by assigning the provided
|
|
12
|
+
console instance, which will be used for dumping variable output to
|
|
13
|
+
the console. The console must implement the IConsole interface.
|
|
14
|
+
|
|
15
|
+
Parameters
|
|
16
|
+
----------
|
|
17
|
+
console : IConsole
|
|
18
|
+
An instance of a console that implements the IConsole interface.
|
|
19
|
+
This console will be used for outputting debug information.
|
|
20
|
+
|
|
21
|
+
Returns
|
|
22
|
+
-------
|
|
23
|
+
None
|
|
24
|
+
This method does not return any value.
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
self.__console = console
|
|
28
|
+
|
|
29
|
+
def dd(
|
|
30
|
+
self,
|
|
31
|
+
*args: Any,
|
|
32
|
+
show_types: bool = False,
|
|
33
|
+
show_index: bool = False,
|
|
34
|
+
expand_all: bool = True,
|
|
35
|
+
max_depth: int | None = None,
|
|
36
|
+
module_path: str = None,
|
|
37
|
+
line_number: int = None,
|
|
38
|
+
insert_line: bool = False
|
|
39
|
+
) -> None:
|
|
40
|
+
"""
|
|
41
|
+
Dump the provided variables to the console and terminate execution.
|
|
42
|
+
|
|
43
|
+
This method outputs the given variables to the console using the configured
|
|
44
|
+
console instance, then immediately stops program execution. It provides several
|
|
45
|
+
options to customize the output, such as displaying types, indices, expanding
|
|
46
|
+
all nested structures, and limiting the depth of expansion. The output can also
|
|
47
|
+
include information about the module path and line number where the method was called.
|
|
48
|
+
|
|
49
|
+
Parameters
|
|
50
|
+
----------
|
|
51
|
+
*args : Any
|
|
52
|
+
The variables to be dumped to the console.
|
|
53
|
+
show_types : bool, optional
|
|
54
|
+
Whether to display the type of each variable (default is False).
|
|
55
|
+
show_index : bool, optional
|
|
56
|
+
Whether to display the index for each variable in the output (default is False).
|
|
57
|
+
expand_all : bool, optional
|
|
58
|
+
Whether to expand all nested structures in the output (default is True).
|
|
59
|
+
max_depth : int or None, optional
|
|
60
|
+
The maximum depth to which nested structures should be expanded (default is None, meaning no limit).
|
|
61
|
+
module_path : str or None, optional
|
|
62
|
+
The path of the module from which the method is called (default is None).
|
|
63
|
+
line_number : int or None, optional
|
|
64
|
+
The line number in the source code where the method is called (default is None).
|
|
65
|
+
insert_line : bool, optional
|
|
66
|
+
Whether to insert a separating line before the dump output (default is False).
|
|
67
|
+
|
|
68
|
+
Returns
|
|
69
|
+
-------
|
|
70
|
+
None
|
|
71
|
+
This method does not return any value. It outputs the dump information to the console and terminates execution.
|
|
72
|
+
"""
|
|
73
|
+
|
|
74
|
+
# Call the console's dump method with the provided arguments and options.
|
|
75
|
+
# force_exit is set to True to terminate execution after dumping.
|
|
76
|
+
# redirect_output is set to True to ensure output is redirected appropriately.
|
|
77
|
+
self.__console.dump(
|
|
78
|
+
*args,
|
|
79
|
+
show_types=show_types,
|
|
80
|
+
show_index=show_index,
|
|
81
|
+
expand_all=expand_all,
|
|
82
|
+
max_depth=max_depth,
|
|
83
|
+
module_path=module_path,
|
|
84
|
+
line_number=line_number,
|
|
85
|
+
force_exit=True,
|
|
86
|
+
redirect_output=True,
|
|
87
|
+
insert_line=insert_line
|
|
88
|
+
)
|
|
89
|
+
|
|
90
|
+
def dump(
|
|
91
|
+
self,
|
|
92
|
+
*args: Any,
|
|
93
|
+
show_types: bool = False,
|
|
94
|
+
show_index: bool = False,
|
|
95
|
+
expand_all: bool = True,
|
|
96
|
+
max_depth: int | None = None,
|
|
97
|
+
module_path: str = None,
|
|
98
|
+
line_number: int = None,
|
|
99
|
+
insert_line: bool = False
|
|
100
|
+
) -> None:
|
|
101
|
+
"""
|
|
102
|
+
Dump the provided variables to the console for debugging purposes.
|
|
103
|
+
|
|
104
|
+
This method outputs the given variables to the console using the configured
|
|
105
|
+
console instance. It provides several options to customize the output, such as
|
|
106
|
+
displaying types, indices, expanding all nested structures, and limiting the
|
|
107
|
+
depth of expansion. The output can also include information about the module
|
|
108
|
+
path and line number where the dump was called.
|
|
109
|
+
|
|
110
|
+
Parameters
|
|
111
|
+
----------
|
|
112
|
+
*args : Any
|
|
113
|
+
The variables to be dumped to the console.
|
|
114
|
+
show_types : bool, optional
|
|
115
|
+
Whether to display the type of each variable (default is False).
|
|
116
|
+
show_index : bool, optional
|
|
117
|
+
Whether to display the index for each variable in the output (default is False).
|
|
118
|
+
expand_all : bool, optional
|
|
119
|
+
Whether to expand all nested structures in the output (default is True).
|
|
120
|
+
max_depth : int or None, optional
|
|
121
|
+
The maximum depth to which nested structures should be expanded (default is None, meaning no limit).
|
|
122
|
+
module_path : str or None, optional
|
|
123
|
+
The path of the module from which the dump is called (default is None).
|
|
124
|
+
line_number : int or None, optional
|
|
125
|
+
The line number in the source code where the dump is called (default is None).
|
|
126
|
+
insert_line : bool, optional
|
|
127
|
+
Whether to insert a separating line before the dump output (default is False).
|
|
128
|
+
|
|
129
|
+
Returns
|
|
130
|
+
-------
|
|
131
|
+
None
|
|
132
|
+
This method does not return any value. It outputs the dump information to the console.
|
|
133
|
+
"""
|
|
134
|
+
|
|
135
|
+
# Call the console's dump method with the provided arguments and options.
|
|
136
|
+
# force_exit is set to False to continue execution after dumping.
|
|
137
|
+
# redirect_output is set to True to ensure output is redirected appropriately.
|
|
138
|
+
self.__console.dump(
|
|
139
|
+
*args,
|
|
140
|
+
show_types=show_types,
|
|
141
|
+
show_index=show_index,
|
|
142
|
+
expand_all=expand_all,
|
|
143
|
+
max_depth=max_depth,
|
|
144
|
+
module_path=module_path,
|
|
145
|
+
line_number=line_number,
|
|
146
|
+
force_exit=False,
|
|
147
|
+
redirect_output=True,
|
|
148
|
+
insert_line=insert_line
|
|
149
|
+
)
|
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
import datetime
|
|
2
2
|
import getpass
|
|
3
|
+
import inspect
|
|
3
4
|
import os
|
|
4
5
|
import sys
|
|
6
|
+
from typing import Optional
|
|
7
|
+
from rich.console import Console as RichConsole
|
|
8
|
+
from rich.panel import Panel
|
|
9
|
+
from rich.pretty import Pretty
|
|
10
|
+
from rich.theme import Theme
|
|
11
|
+
from rich.traceback import Traceback
|
|
5
12
|
from orionis.console.contracts.console import IConsole
|
|
6
13
|
from orionis.console.enums.styles import ANSIColors
|
|
7
14
|
|
|
@@ -511,9 +518,6 @@ class Console(IConsole):
|
|
|
511
518
|
-----
|
|
512
519
|
This method prints the exception type, message, and a detailed stack trace.
|
|
513
520
|
"""
|
|
514
|
-
from rich.console import Console as RichConsole
|
|
515
|
-
from rich.traceback import Traceback
|
|
516
|
-
|
|
517
521
|
rc = RichConsole()
|
|
518
522
|
tb = Traceback.from_exception(type(e), e, e.__traceback__, max_frames=1)
|
|
519
523
|
rc.print(tb)
|
|
@@ -548,4 +552,132 @@ class Console(IConsole):
|
|
|
548
552
|
try:
|
|
549
553
|
sys.exit(0)
|
|
550
554
|
except SystemExit:
|
|
551
|
-
os._exit(0)
|
|
555
|
+
os._exit(0)
|
|
556
|
+
|
|
557
|
+
def dump(
|
|
558
|
+
self,
|
|
559
|
+
*args,
|
|
560
|
+
show_types: bool = True,
|
|
561
|
+
show_index: bool = False,
|
|
562
|
+
expand_all: bool = True,
|
|
563
|
+
max_depth: int | None = None,
|
|
564
|
+
module_path: str | None = None,
|
|
565
|
+
line_number: int | None = None,
|
|
566
|
+
force_exit: bool = False,
|
|
567
|
+
redirect_output: bool = False,
|
|
568
|
+
insert_line: bool = False
|
|
569
|
+
) -> Optional[str]:
|
|
570
|
+
"""
|
|
571
|
+
Displays formatted debug information for one or more variables using Rich, and optionally exports the output as HTML.
|
|
572
|
+
|
|
573
|
+
Parameters
|
|
574
|
+
----------
|
|
575
|
+
*args : Any
|
|
576
|
+
One or more objects to be displayed for debugging.
|
|
577
|
+
show_types : bool, optional
|
|
578
|
+
If True, displays the type of each argument in the panel title. Default is True.
|
|
579
|
+
show_index : bool, optional
|
|
580
|
+
If True, shows an index number for each argument. Default is False.
|
|
581
|
+
expand_all : bool, optional
|
|
582
|
+
If True, expands all nested data structures. Default is True.
|
|
583
|
+
max_depth : int or None, optional
|
|
584
|
+
Maximum depth for nested structures. If None, no limit is applied. Default is None.
|
|
585
|
+
module_path : str or None, optional
|
|
586
|
+
Overrides the module path shown in the header. If None, uses the caller's module path.
|
|
587
|
+
line_number : int or None, optional
|
|
588
|
+
Overrides the line number shown in the header. If None, uses the caller's line number.
|
|
589
|
+
force_exit : bool, optional
|
|
590
|
+
If True, terminates the program after dumping. Default is False.
|
|
591
|
+
redirect_output : bool, optional
|
|
592
|
+
If True, temporarily restores stdout/stderr to their original streams during output. Default is False.
|
|
593
|
+
insert_line : bool, optional
|
|
594
|
+
If True, inserts a blank line before and after the dump output for better readability. Default
|
|
595
|
+
|
|
596
|
+
Returns
|
|
597
|
+
-------
|
|
598
|
+
Optional[str]
|
|
599
|
+
An HTML string containing the formatted output if successful, or None if caller information is unavailable.
|
|
600
|
+
|
|
601
|
+
Notes
|
|
602
|
+
-----
|
|
603
|
+
This method uses the Rich library to display variables in a visually enhanced format, including type and index information if specified. It can also export the output as HTML for further use.
|
|
604
|
+
"""
|
|
605
|
+
|
|
606
|
+
# Optionally redirect output to original stdout/stderr
|
|
607
|
+
if redirect_output:
|
|
608
|
+
original_stdout, original_stderr = sys.stdout, sys.stderr
|
|
609
|
+
sys.stdout, sys.stderr = sys.__stdout__, sys.__stderr__
|
|
610
|
+
|
|
611
|
+
try:
|
|
612
|
+
|
|
613
|
+
# Optionally insert a blank line before the dump output
|
|
614
|
+
if insert_line:
|
|
615
|
+
print()
|
|
616
|
+
|
|
617
|
+
# Create a custom Rich theme for styling the dump output
|
|
618
|
+
custom_theme = Theme({
|
|
619
|
+
"dump.index": "bold bright_blue",
|
|
620
|
+
"dump.type": "bold green",
|
|
621
|
+
"dump.rule": "bright_black",
|
|
622
|
+
})
|
|
623
|
+
console = RichConsole(theme=custom_theme, record=True)
|
|
624
|
+
width = console.size.width
|
|
625
|
+
|
|
626
|
+
# Retrieve caller frame information for header display
|
|
627
|
+
frame = inspect.currentframe()
|
|
628
|
+
if not frame or not frame.f_back:
|
|
629
|
+
return None
|
|
630
|
+
caller = inspect.getframeinfo(frame.f_back)
|
|
631
|
+
file_name = os.path.relpath(caller.filename, os.getcwd())
|
|
632
|
+
line = line_number or caller.lineno
|
|
633
|
+
module = module_path or os.path.splitext(file_name)[0].replace(os.sep, ".")
|
|
634
|
+
|
|
635
|
+
# Print header with module and line information
|
|
636
|
+
header = f"🐞 [white]Module([/white][bold blue]{module}[/bold blue][white]) [/white][grey70]#{line}[/grey70]"
|
|
637
|
+
console.print(header)
|
|
638
|
+
|
|
639
|
+
# Iterate over each argument and display it in a styled panel
|
|
640
|
+
for i, arg in enumerate(args):
|
|
641
|
+
var_title = ""
|
|
642
|
+
if show_index:
|
|
643
|
+
var_title += f"[dump.index]#{i+1}[/dump.index] "
|
|
644
|
+
if show_types:
|
|
645
|
+
var_title += f"[dump.type]{type(arg).__name__}[/dump.type]"
|
|
646
|
+
|
|
647
|
+
panel = Panel(
|
|
648
|
+
Pretty(
|
|
649
|
+
arg,
|
|
650
|
+
indent_size=2,
|
|
651
|
+
indent_guides=True,
|
|
652
|
+
expand_all=expand_all,
|
|
653
|
+
max_depth=max_depth,
|
|
654
|
+
margin=1,
|
|
655
|
+
insert_line=False,
|
|
656
|
+
),
|
|
657
|
+
title=var_title if var_title else None,
|
|
658
|
+
title_align="left" if var_title else None,
|
|
659
|
+
border_style="dump.rule",
|
|
660
|
+
width=min(int(width * 0.85), 120),
|
|
661
|
+
padding=(0, 1),
|
|
662
|
+
)
|
|
663
|
+
console.print(panel)
|
|
664
|
+
|
|
665
|
+
# Optionally insert a blank line before the dump output
|
|
666
|
+
if insert_line:
|
|
667
|
+
print()
|
|
668
|
+
|
|
669
|
+
# Optionally terminate the program after dumping
|
|
670
|
+
if force_exit:
|
|
671
|
+
if redirect_output:
|
|
672
|
+
os._exit(1)
|
|
673
|
+
else:
|
|
674
|
+
sys.exit(1)
|
|
675
|
+
|
|
676
|
+
# Export the output as HTML and return it
|
|
677
|
+
return console.export_html(inline_styles=True)
|
|
678
|
+
|
|
679
|
+
finally:
|
|
680
|
+
|
|
681
|
+
# Restore stdout/stderr if they were redirected
|
|
682
|
+
if redirect_output:
|
|
683
|
+
sys.stdout, sys.stderr = original_stdout, original_stderr
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
from orionis.console.debug.dumper import Dumper
|
|
2
|
+
from orionis.console.contracts.dumper import IDumper
|
|
3
|
+
from orionis.container.providers.service_provider import ServiceProvider
|
|
4
|
+
|
|
5
|
+
class DumperProvider(ServiceProvider):
|
|
6
|
+
|
|
7
|
+
def register(self) -> None:
|
|
8
|
+
"""
|
|
9
|
+
Registers the Dumper service in the application container.
|
|
10
|
+
|
|
11
|
+
This method binds the `IDumper` interface to its concrete implementation, the `Dumper` class,
|
|
12
|
+
within the application's dependency injection container. The service is registered as
|
|
13
|
+
transient, ensuring that a new instance is created each time it is requested. An alias is
|
|
14
|
+
also assigned to the service for convenient retrieval throughout the application.
|
|
15
|
+
|
|
16
|
+
This registration allows the application to resolve dependencies related to dumping,
|
|
17
|
+
debugging, and console diagnostics by referencing the interface or its alias.
|
|
18
|
+
|
|
19
|
+
Returns
|
|
20
|
+
-------
|
|
21
|
+
None
|
|
22
|
+
This method does not return any value. It modifies the application's service registry
|
|
23
|
+
by registering the Dumper service.
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
# Register the Dumper service as a transient binding for the IDumper interface.
|
|
27
|
+
# Each request for IDumper will result in a new Dumper instance.
|
|
28
|
+
# The alias allows for easy retrieval of the service elsewhere in the application.
|
|
29
|
+
self.app.transient(IDumper, Dumper, alias="x-orionis.console.contracts.dumper.IDumper")
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import sys
|
|
2
|
+
from orionis.console.output.console import Console
|
|
3
|
+
from orionis.test.contracts.dumper import ITestDumper
|
|
4
|
+
|
|
5
|
+
class TestDumper(ITestDumper):
|
|
6
|
+
|
|
7
|
+
def __isTestCaseClass(self, value) -> bool:
|
|
8
|
+
"""
|
|
9
|
+
Check if the provided value is an instance of a recognized test case class.
|
|
10
|
+
|
|
11
|
+
Parameters
|
|
12
|
+
----------
|
|
13
|
+
value : object
|
|
14
|
+
The object to check for test case class membership.
|
|
15
|
+
|
|
16
|
+
Returns
|
|
17
|
+
-------
|
|
18
|
+
bool
|
|
19
|
+
True if `value` is an instance of AsyncTestCase, SyncTestCase, unittest.TestCase,
|
|
20
|
+
or unittest.IsolatedAsyncioTestCase. False otherwise or if an import error occurs.
|
|
21
|
+
"""
|
|
22
|
+
|
|
23
|
+
# If the value is None, it cannot be a test case instance.
|
|
24
|
+
if value is None:
|
|
25
|
+
return False
|
|
26
|
+
|
|
27
|
+
try:
|
|
28
|
+
|
|
29
|
+
# Attempt to import the test case base classes.
|
|
30
|
+
from orionis.test.cases.asynchronous import AsyncTestCase
|
|
31
|
+
from orionis.test.cases.synchronous import SyncTestCase
|
|
32
|
+
import unittest
|
|
33
|
+
|
|
34
|
+
# Check if the value is an instance of either Orionis or native unittest test case class.
|
|
35
|
+
return isinstance(
|
|
36
|
+
value,
|
|
37
|
+
(
|
|
38
|
+
AsyncTestCase,
|
|
39
|
+
SyncTestCase,
|
|
40
|
+
unittest.TestCase,
|
|
41
|
+
unittest.IsolatedAsyncioTestCase
|
|
42
|
+
)
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
except Exception:
|
|
46
|
+
|
|
47
|
+
# If imports fail or any other exception occurs, return False.
|
|
48
|
+
return False
|
|
49
|
+
|
|
50
|
+
def __valuesToDump(self, args: tuple) -> tuple:
|
|
51
|
+
"""
|
|
52
|
+
Filter out test case instances from the provided arguments.
|
|
53
|
+
|
|
54
|
+
Parameters
|
|
55
|
+
----------
|
|
56
|
+
args : tuple
|
|
57
|
+
A tuple of objects to be filtered.
|
|
58
|
+
|
|
59
|
+
Returns
|
|
60
|
+
-------
|
|
61
|
+
tuple
|
|
62
|
+
A new tuple containing only the objects that are not instances of recognized
|
|
63
|
+
test case classes.
|
|
64
|
+
"""
|
|
65
|
+
|
|
66
|
+
values: tuple = tuple()
|
|
67
|
+
for arg in args:
|
|
68
|
+
if not self.__isTestCaseClass(arg):
|
|
69
|
+
values += (arg,)
|
|
70
|
+
|
|
71
|
+
return values
|
|
72
|
+
|
|
73
|
+
def __tracebackInfo(self) -> tuple[str | None, int | None]:
|
|
74
|
+
"""
|
|
75
|
+
Retrieve the module name and line number of the caller.
|
|
76
|
+
|
|
77
|
+
This method inspects the call stack to obtain the module name and line number
|
|
78
|
+
from which it was called. This information is useful for debugging and logging
|
|
79
|
+
purposes, as it provides context about where a function was invoked.
|
|
80
|
+
|
|
81
|
+
Returns
|
|
82
|
+
-------
|
|
83
|
+
tuple of (str or None, int or None)
|
|
84
|
+
A tuple containing the module name as a string and the line number as an integer.
|
|
85
|
+
If the information cannot be determined due to an error, returns (None, None).
|
|
86
|
+
"""
|
|
87
|
+
|
|
88
|
+
try:
|
|
89
|
+
|
|
90
|
+
# Get the caller's frame from the call stack (1 level up)
|
|
91
|
+
caller_frame = sys._getframe(2)
|
|
92
|
+
|
|
93
|
+
# Retrieve the module name from the caller's global variables
|
|
94
|
+
module = caller_frame.f_globals.get("__name__", None)
|
|
95
|
+
|
|
96
|
+
# Retrieve the line number from the caller's frame
|
|
97
|
+
line_number = caller_frame.f_lineno
|
|
98
|
+
|
|
99
|
+
# Return the module name and line number
|
|
100
|
+
return (module, line_number)
|
|
101
|
+
|
|
102
|
+
except Exception:
|
|
103
|
+
|
|
104
|
+
# If any error occurs while retrieving the frame, return (None, None)
|
|
105
|
+
return (None, None)
|
|
106
|
+
|
|
107
|
+
def dd(self, *args) -> None:
|
|
108
|
+
"""
|
|
109
|
+
Output debugging information and halt further execution.
|
|
110
|
+
|
|
111
|
+
Captures the caller's file and line number for context. Temporarily redirects
|
|
112
|
+
standard output and error streams to ensure correct display. If the first argument
|
|
113
|
+
is a recognized test case instance, it is skipped in the output. Raises a custom
|
|
114
|
+
runtime error if dumping fails.
|
|
115
|
+
|
|
116
|
+
Parameters
|
|
117
|
+
----------
|
|
118
|
+
*args : tuple
|
|
119
|
+
Objects to be dumped.
|
|
120
|
+
|
|
121
|
+
Returns
|
|
122
|
+
-------
|
|
123
|
+
None
|
|
124
|
+
"""
|
|
125
|
+
|
|
126
|
+
# Retrieve the caller's module and line number for context
|
|
127
|
+
module, line = self.__tracebackInfo()
|
|
128
|
+
|
|
129
|
+
# Filter out test case instances from the arguments
|
|
130
|
+
Console().dump(
|
|
131
|
+
*self.__valuesToDump(args),
|
|
132
|
+
module_path=module,
|
|
133
|
+
line_number=line,
|
|
134
|
+
force_exit=True, # Halt execution after dumping
|
|
135
|
+
redirect_output=True, # Redirect stdout/stderr for proper display
|
|
136
|
+
insert_line=True
|
|
137
|
+
)
|
|
138
|
+
|
|
139
|
+
def dump(self, *args) -> None:
|
|
140
|
+
"""
|
|
141
|
+
Output debugging information without halting execution.
|
|
142
|
+
|
|
143
|
+
This method captures the caller's module and line number to provide context for the output.
|
|
144
|
+
It filters out any recognized test case instances from the provided arguments to avoid dumping
|
|
145
|
+
unnecessary or sensitive test case objects. The method then delegates the actual output operation
|
|
146
|
+
to the internal console, ensuring that standard output and error streams are redirected for
|
|
147
|
+
correct display. Unlike `dd`, this method does not terminate the program after dumping.
|
|
148
|
+
|
|
149
|
+
Parameters
|
|
150
|
+
----------
|
|
151
|
+
*args : tuple
|
|
152
|
+
Objects to be dumped. Test case instances are automatically filtered out.
|
|
153
|
+
|
|
154
|
+
Returns
|
|
155
|
+
-------
|
|
156
|
+
None
|
|
157
|
+
This method does not return any value. It performs output as a side effect.
|
|
158
|
+
"""
|
|
159
|
+
|
|
160
|
+
# Retrieve the caller's module and line number for context
|
|
161
|
+
module, line = self.__tracebackInfo()
|
|
162
|
+
|
|
163
|
+
# Filter out test case instances from the arguments and output the rest
|
|
164
|
+
Console().dump(
|
|
165
|
+
*self.__valuesToDump(args),
|
|
166
|
+
module_path=module,
|
|
167
|
+
line_number=line,
|
|
168
|
+
force_exit=False, # Do not halt execution after dumping
|
|
169
|
+
redirect_output=True, # Redirect stdout/stderr for proper display
|
|
170
|
+
insert_line=True
|
|
171
|
+
)
|