orionis 0.253.0__py3-none-any.whl → 0.266.0__py3-none-any.whl
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/application.py +6 -0
- orionis/framework.py +1 -1
- orionis/luminate/{application.py → _application.py} +21 -19
- orionis/luminate/{container → _container}/container.py +4 -4
- orionis/luminate/{container → _container}/container_integrity.py +2 -2
- orionis/luminate/{container → _container}/resolve.py +2 -2
- orionis/luminate/{contracts → _contracts}/application.py +2 -2
- orionis/luminate/{contracts → _contracts}/console/task_manager.py +1 -1
- orionis/luminate/{contracts → _contracts}/facades/commands/scheduler_facade.py +1 -1
- orionis/luminate/{contracts → _contracts}/facades/facade.py +4 -3
- orionis/luminate/{contracts → _contracts}/foundation/providers/service_providers_bootstrapper.py +2 -2
- orionis/luminate/{contracts → _contracts}/providers/service_provider.py +1 -1
- orionis/luminate/{facades → _facades}/app_facade.py +2 -2
- orionis/luminate/{facades → _facades}/commands/commands_facade.py +3 -3
- orionis/luminate/{facades → _facades}/commands/scheduler_facade.py +3 -3
- orionis/luminate/{facades → _facades}/config/config_facade.py +3 -3
- orionis/luminate/{facades → _facades}/environment/environment_facade.py +3 -3
- orionis/luminate/{facades → _facades}/files/path_facade.py +4 -4
- orionis/luminate/{facades → _facades}/log/log_facade.py +2 -2
- orionis/luminate/{foundation → _foundation}/console/command_bootstrapper.py +2 -2
- orionis/luminate/{foundation → _foundation}/environment/environment_bootstrapper.py +3 -3
- orionis/luminate/{foundation → _foundation/foundation}/config/config_bootstrapper.py +3 -3
- orionis/luminate/{foundation → _foundation}/providers/service_providers_bootstrapper.py +4 -4
- orionis/luminate/{providers → _providers}/commands/reactor_commands_service_provider.py +7 -7
- orionis/luminate/{providers → _providers}/commands/scheduler_provider.py +3 -3
- orionis/luminate/{providers → _providers}/config/config_service_provider.py +3 -3
- orionis/luminate/{providers → _providers}/environment/environment__service_provider.py +4 -4
- orionis/luminate/_providers/files/paths_provider.py +21 -0
- orionis/luminate/{providers → _providers}/log/log_service_provider.py +5 -5
- orionis/luminate/{providers → _providers}/service_provider.py +2 -2
- orionis/luminate/{services_ → _services}/commands/reactor_commands_service.py +3 -3
- orionis/luminate/{services_ → _services}/commands/scheduler_service.py +1 -1
- orionis/luminate/{services_ → _services}/config/config_service.py +1 -1
- orionis/luminate/{services_ → _services}/log/log_service.py +1 -1
- orionis/luminate/app.py +19 -0
- orionis/luminate/console/base/command.py +1 -1
- orionis/luminate/console/command_filter.py +1 -1
- orionis/luminate/console/commands/help.py +1 -1
- orionis/luminate/console/commands/schedule_work.py +2 -2
- orionis/luminate/console/dumper/dump_die.py +1 -1
- orionis/luminate/console/kernel.py +1 -1
- orionis/luminate/console/output/console.py +3 -3
- orionis/luminate/console/output/executor.py +1 -1
- orionis/luminate/console/output/progress_bar.py +1 -1
- orionis/luminate/console/parser.py +1 -1
- orionis/luminate/{config → foundation/config}/app/entities/app.py +44 -43
- orionis/luminate/{config → foundation/config}/auth/entities/auth.py +9 -1
- orionis/luminate/foundation/config/cache/entities/cache.py +74 -0
- orionis/luminate/foundation/config/cache/entities/file.py +46 -0
- orionis/luminate/foundation/config/cache/entities/stores.py +46 -0
- orionis/luminate/{contracts/config → foundation/config/contracts}/config.py +8 -12
- orionis/luminate/foundation/config/cors/entities/cors.py +129 -0
- orionis/luminate/foundation/config/database/entities/connections.py +89 -0
- orionis/luminate/foundation/config/database/entities/database.py +62 -0
- orionis/luminate/foundation/config/database/entities/mysql.py +270 -0
- orionis/luminate/foundation/config/database/entities/oracle.py +227 -0
- orionis/luminate/foundation/config/database/entities/pgsql.py +189 -0
- orionis/luminate/foundation/config/database/entities/sqlite.py +178 -0
- orionis/luminate/foundation/config/database/enums/mysql_charsets.py +92 -0
- orionis/luminate/foundation/config/database/enums/mysql_collations.py +53 -0
- orionis/luminate/foundation/config/database/enums/mysql_engine.py +18 -0
- orionis/luminate/foundation/config/database/enums/oracle_encoding.py +44 -0
- orionis/luminate/foundation/config/database/enums/oracle_nencoding.py +31 -0
- orionis/luminate/foundation/config/database/enums/pgsql_charsets.py +90 -0
- orionis/luminate/foundation/config/database/enums/pgsql_collations.py +26 -0
- orionis/luminate/foundation/config/database/enums/pgsql_mode.py +24 -0
- orionis/luminate/foundation/config/database/enums/sqlite_foreign_key.py +12 -0
- orionis/luminate/foundation/config/database/enums/sqlite_journal.py +22 -0
- orionis/luminate/foundation/config/database/enums/sqlite_synchronous.py +16 -0
- orionis/luminate/foundation/config/filesystems/entitites/aws.py +134 -0
- orionis/luminate/foundation/config/filesystems/entitites/disks.py +68 -0
- orionis/luminate/foundation/config/filesystems/entitites/filesystems.py +53 -0
- orionis/luminate/foundation/config/filesystems/entitites/local.py +39 -0
- orionis/luminate/foundation/config/filesystems/entitites/public.py +52 -0
- orionis/luminate/foundation/config/logging/entities/channels.py +115 -0
- orionis/luminate/foundation/config/logging/entities/chunked.py +128 -0
- orionis/luminate/foundation/config/logging/entities/daily.py +113 -0
- orionis/luminate/foundation/config/logging/entities/hourly.py +100 -0
- orionis/luminate/foundation/config/logging/entities/logging.py +51 -0
- orionis/luminate/foundation/config/logging/entities/monthly.py +100 -0
- orionis/luminate/foundation/config/logging/entities/stack.py +74 -0
- orionis/luminate/foundation/config/logging/entities/weekly.py +102 -0
- orionis/luminate/foundation/config/logging/enums/levels.py +21 -0
- orionis/luminate/foundation/config/mail/entities/file.py +41 -0
- orionis/luminate/foundation/config/mail/entities/mail.py +56 -0
- orionis/luminate/foundation/config/mail/entities/mailers.py +54 -0
- orionis/luminate/foundation/config/mail/entities/smtp.py +104 -0
- orionis/luminate/foundation/config/queue/entities/brokers.py +55 -0
- orionis/luminate/foundation/config/queue/entities/database.py +107 -0
- orionis/luminate/foundation/config/queue/entities/queue.py +47 -0
- orionis/luminate/foundation/config/queue/enums/strategy.py +15 -0
- orionis/luminate/foundation/config/roots/paths.py +446 -0
- orionis/luminate/foundation/config/session/entities/session.py +147 -0
- orionis/luminate/foundation/config/session/enums/same_site_policy.py +14 -0
- orionis/luminate/foundation/config/session/helpers/secret_key.py +16 -0
- orionis/luminate/foundation/config/startup.py +203 -0
- orionis/luminate/foundation/config/testing/entities/__init__.py +0 -0
- orionis/luminate/{config → foundation/config/testing}/entities/testing.py +36 -20
- orionis/luminate/foundation/config/testing/enums/__init__.py +0 -0
- orionis/luminate/foundation/config/testing/enums/test_mode.py +12 -0
- orionis/luminate/patterns/__init__.py +0 -4
- orionis/luminate/patterns/singleton/__init__.py +0 -10
- orionis/luminate/services/asynchrony/__init__.py +0 -0
- orionis/luminate/services/asynchrony/async_io.py +31 -0
- orionis/luminate/services/environment/__init__.py +0 -10
- orionis/luminate/services/environment/contracts/__init__.py +0 -5
- orionis/luminate/services/environment/contracts/env.py +0 -11
- orionis/luminate/services/environment/dot_env.py +87 -163
- orionis/luminate/services/environment/env.py +0 -11
- orionis/luminate/services/introspection/__init__.py +0 -0
- orionis/luminate/services/introspection/abstracts/__init__.py +0 -0
- orionis/luminate/services/introspection/abstracts/entities/__init__.py +0 -0
- orionis/luminate/services/introspection/abstracts/entities/abstract_class_attributes.py +37 -0
- orionis/luminate/{support → services}/introspection/abstracts/reflect_abstract.py +1 -1
- orionis/luminate/services/introspection/dependencies/__init__.py +0 -0
- orionis/luminate/services/introspection/dependencies/contracts/__init__.py +0 -0
- orionis/luminate/{support → services}/introspection/dependencies/contracts/reflect_dependencies.py +2 -2
- orionis/luminate/services/introspection/dependencies/entities/__init__.py +0 -0
- orionis/luminate/services/introspection/dependencies/entities/class_dependencies.py +41 -0
- orionis/luminate/services/introspection/dependencies/entities/method_dependencies.py +42 -0
- orionis/luminate/services/introspection/dependencies/entities/resolved_dependencies.py +49 -0
- orionis/luminate/{support → services}/introspection/dependencies/reflect_dependencies.py +4 -4
- orionis/luminate/services/parsers/__init__.py +0 -0
- orionis/luminate/services/parsers/contracts/__init__.py +0 -0
- orionis/luminate/{support/parsers/exception_parser.py → services/parsers/exception.py} +1 -1
- orionis/luminate/services/parsers/serializer.py +15 -0
- orionis/luminate/services/paths/__init__.py +0 -9
- orionis/luminate/services/paths/resolver.py +1 -1
- orionis/luminate/services/standard/__init__.py +0 -0
- orionis/luminate/services/standard/contracts/__init__.py +0 -0
- orionis/luminate/{support → services}/standard/std.py +1 -1
- orionis/luminate/services/system/__init__.py +0 -0
- orionis/luminate/services/system/contracts/__init__.py +0 -0
- orionis/luminate/services/system/contracts/imports.py +31 -0
- orionis/luminate/services/system/contracts/workers.py +18 -0
- orionis/luminate/services/system/imports.py +124 -0
- orionis/luminate/services/system/runtime_imports.py +70 -0
- orionis/luminate/services/{workers/maximum_workers.py → system/workers.py} +2 -1
- orionis/luminate/services/wrapper/__init__.py +0 -0
- orionis/luminate/services/wrapper/dicts/__init__.py +0 -0
- orionis/luminate/services/wrapper/dicts/dot_dict.py +115 -0
- orionis/luminate/support/introspection/__init__.py +0 -5
- orionis/luminate/support/introspection/container_integrity.py +2 -2
- orionis/luminate/support/introspection/instances/__init__.py +0 -5
- orionis/luminate/support/introspection/reflection.py +1 -1
- orionis/luminate/test/__init__.py +0 -23
- orionis/luminate/test/cases/test_async.py +41 -9
- orionis/luminate/test/cases/test_case.py +27 -13
- orionis/luminate/test/cases/test_sync.py +28 -6
- orionis/luminate/test/output/contracts/{test_std_out.py → dumper.py} +2 -1
- orionis/luminate/test/output/{test_std_out.py → dumper.py} +7 -4
- orionis/luminate/test/suites/__init__.py +0 -0
- orionis/luminate/test/suites/contracts/__init__.py +0 -0
- orionis/luminate/test/suites/contracts/test_suite.py +23 -0
- orionis/luminate/test/suites/test_suite.py +101 -0
- orionis/luminate/test/{core → suites}/test_unit.py +16 -8
- orionis/unittesting.py +43 -0
- {orionis-0.253.0.dist-info → orionis-0.266.0.dist-info}/METADATA +19 -3
- orionis-0.266.0.dist-info/RECORD +440 -0
- {orionis-0.253.0.dist-info → orionis-0.266.0.dist-info}/WHEEL +1 -1
- orionis-0.266.0.dist-info/entry_points.txt +2 -0
- orionis-0.266.0.dist-info/zip-safe +1 -0
- tests/example/test_example.py +1 -1
- tests/foundation/__init__.py +0 -0
- tests/foundation/config/__init__.py +0 -0
- tests/foundation/config/app/__init__.py +0 -0
- tests/foundation/config/app/test_app.py +140 -0
- tests/foundation/config/auth/__init__.py +0 -0
- tests/{config → foundation/config/auth}/test_auth.py +6 -3
- tests/foundation/config/cache/__init__.py +0 -0
- tests/foundation/config/cache/test_cache.py +98 -0
- tests/foundation/config/cache/test_cache_file.py +78 -0
- tests/foundation/config/cache/test_cache_stores.py +88 -0
- tests/foundation/config/cors/__init__.py +0 -0
- tests/foundation/config/cors/test_cors.py +121 -0
- tests/foundation/config/database/__init__.py +0 -0
- tests/foundation/config/database/test_database.py +108 -0
- tests/foundation/config/database/test_database_connections.py +129 -0
- tests/foundation/config/database/test_database_mysql.py +231 -0
- tests/foundation/config/database/test_database_oracle.py +204 -0
- tests/foundation/config/database/test_database_pgsql.py +187 -0
- tests/foundation/config/database/test_database_sqlite.py +153 -0
- tests/foundation/config/exceptions/__init__.py +0 -0
- tests/foundation/config/exceptions/test_exceptions_integrity.py +83 -0
- tests/foundation/config/filesystems/__init__.py +0 -0
- tests/foundation/config/filesystems/test_filesystems.py +110 -0
- tests/foundation/config/filesystems/test_filesystems_aws.py +133 -0
- tests/foundation/config/filesystems/test_filesystems_disks.py +114 -0
- tests/foundation/config/filesystems/test_filesystems_local.py +95 -0
- tests/foundation/config/filesystems/test_filesystems_public.py +120 -0
- tests/foundation/config/logging/__init__.py +0 -0
- tests/foundation/config/logging/test_logging.py +48 -0
- tests/foundation/config/logging/test_logging_channels.py +157 -0
- tests/foundation/config/logging/test_logging_chunked.py +166 -0
- tests/foundation/config/logging/test_logging_daily.py +153 -0
- tests/foundation/config/logging/test_logging_hourly.py +131 -0
- tests/foundation/config/logging/test_logging_monthly.py +133 -0
- tests/foundation/config/logging/test_logging_stack.py +124 -0
- tests/foundation/config/logging/test_logging_weekly.py +133 -0
- tests/foundation/config/mail/__init__.py +0 -0
- tests/foundation/config/mail/test_mail.py +73 -0
- tests/foundation/config/mail/test_mail_file.py +61 -0
- tests/foundation/config/mail/test_mail_mailers.py +58 -0
- tests/foundation/config/mail/test_mail_smtp.py +102 -0
- tests/foundation/config/queue/__init__.py +0 -0
- tests/foundation/config/queue/test_queue.py +58 -0
- tests/foundation/config/queue/test_queue_brokers.py +67 -0
- tests/foundation/config/queue/test_queue_database.py +95 -0
- tests/foundation/config/root/__init__.py +0 -0
- tests/foundation/config/root/test_root_paths.py +134 -0
- tests/foundation/config/session/__init__.py +0 -0
- tests/foundation/config/session/test_session.py +138 -0
- tests/foundation/config/startup/__init__.py +0 -0
- tests/foundation/config/startup/test_config_startup.py +134 -0
- tests/foundation/config/testing/__init__.py +0 -0
- tests/foundation/config/testing/test_testing.py +167 -0
- tests/patterns/singleton/test_singleton.py +2 -2
- tests/services/asynchrony/__init__.py +0 -0
- tests/{support/async_io/test_async_coroutine.py → services/asynchrony/test_async_io.py} +6 -5
- tests/services/environment/test_env.py +155 -33
- tests/services/inspection/__init__.py +0 -0
- tests/services/inspection/dependencies/__init__.py +0 -0
- tests/services/inspection/dependencies/mocks/__init__.py +0 -0
- tests/services/inspection/dependencies/mocks/mock_user.py +30 -0
- tests/services/inspection/dependencies/mocks/mock_user_controller.py +27 -0
- tests/services/inspection/dependencies/mocks/mock_users_permissions.py +41 -0
- tests/services/inspection/dependencies/test_reflect_dependencies.py +94 -0
- tests/services/parsers/__init__.py +0 -0
- tests/services/parsers/mocks/__init__.py +0 -0
- tests/services/parsers/mocks/mock_custom_error.py +15 -0
- tests/{support → services}/parsers/test_exception_parser.py +8 -8
- tests/services/path/__init__.py +0 -0
- tests/services/path/test_resolver.py +73 -0
- tests/services/standard/__init__.py +0 -0
- tests/services/standard/test_std.py +127 -0
- tests/services/wrapper/__init__.py +0 -0
- tests/services/wrapper/test_wrapper_doc_dict.py +129 -0
- tests/testing/__init__.py +0 -0
- tests/testing/test_testing_result.py +92 -0
- tests/testing/test_testing_unit.py +138 -0
- orionis/luminate/config/app/__init__.py +0 -10
- orionis/luminate/config/auth/__init__.py +0 -7
- orionis/luminate/config/cache/__init__.py +0 -9
- orionis/luminate/config/cache/entities/cache.py +0 -58
- orionis/luminate/config/cache/entities/file.py +0 -29
- orionis/luminate/config/cache/entities/stores.py +0 -35
- orionis/luminate/config/entities/cors.py +0 -58
- orionis/luminate/config/entities/database.py +0 -204
- orionis/luminate/config/entities/filesystems.py +0 -98
- orionis/luminate/config/entities/logging.py +0 -157
- orionis/luminate/config/entities/mail.py +0 -76
- orionis/luminate/config/entities/queue.py +0 -62
- orionis/luminate/config/entities/session.py +0 -58
- orionis/luminate/providers/files/paths_provider.py +0 -20
- orionis/luminate/services/workers/__init__.py +0 -10
- orionis/luminate/support/adapters/dot_dict.py +0 -29
- orionis/luminate/support/asynchrony/async_io.py +0 -40
- orionis/luminate/support/asynchrony/contracts/async_coroutine.py +0 -26
- orionis/luminate/support/introspection/abstracts/entities/abstract_class_attributes.py +0 -11
- orionis/luminate/support/introspection/dependencies/__init__.py +0 -5
- orionis/luminate/support/introspection/dependencies/entities/class_dependencies.py +0 -11
- orionis/luminate/support/introspection/dependencies/entities/method_dependencies.py +0 -11
- orionis/luminate/support/introspection/dependencies/entities/resolved_dependencies.py +0 -12
- orionis/luminate/support/paths/contracts/resolver.py +0 -67
- orionis/luminate/support/paths/resolver.py +0 -83
- orionis/luminate/test/core/contracts/test_suite.py +0 -30
- orionis/luminate/test/core/test_suite.py +0 -93
- orionis-0.253.0.dist-info/RECORD +0 -318
- orionis-0.253.0.dist-info/entry_points.txt +0 -2
- tests/config/test_app.py +0 -122
- tests/config/test_cache.py +0 -20
- tests/support/adapters/fakes/fake_dict.py +0 -15
- tests/support/adapters/test_doct_dict.py +0 -21
- tests/support/inspection/fakes/fake_reflect_dependencies.py +0 -25
- tests/support/inspection/test_reflect_dependencies.py +0 -67
- tests/support/parsers/fakes/fake_custom_error.py +0 -27
- tests/support/path/test_resolver.py +0 -33
- tests/support/standard/test_std.py +0 -62
- /orionis/{console.py → clinstall.py} +0 -0
- /orionis/luminate/{config → _container}/__init__.py +0 -0
- /orionis/luminate/{container → _container}/exception.py +0 -0
- /orionis/luminate/{container → _container}/lifetimes.py +0 -0
- /orionis/luminate/{config/app/entities → _contracts}/__init__.py +0 -0
- /orionis/luminate/{config/app/enums → _contracts/config}/__init__.py +0 -0
- /orionis/luminate/{config/contracts → _contracts/config}/config.py +0 -0
- /orionis/luminate/{config/auth/entities → _contracts/console}/__init__.py +0 -0
- /orionis/luminate/{config/cache/entities → _contracts/console/base}/__init__.py +0 -0
- /orionis/luminate/{contracts → _contracts}/console/base/command.py +0 -0
- /orionis/luminate/{contracts → _contracts}/console/command_filter.py +0 -0
- /orionis/luminate/{contracts → _contracts}/console/kernel.py +0 -0
- /orionis/luminate/{config/cache/enums → _contracts/console/output}/__init__.py +0 -0
- /orionis/luminate/{contracts → _contracts}/console/output/console.py +0 -0
- /orionis/luminate/{contracts → _contracts}/console/output/executor.py +0 -0
- /orionis/luminate/{contracts → _contracts}/console/output/progress_bar.py +0 -0
- /orionis/luminate/{contracts → _contracts}/console/parser.py +0 -0
- /orionis/luminate/{contracts → _contracts}/container/container.py +0 -0
- /orionis/luminate/{contracts → _contracts}/container/container_integrity.py +0 -0
- /orionis/luminate/{config/contracts → _contracts/facades}/__init__.py +0 -0
- /orionis/luminate/{config/exceptions → _contracts/facades/commands}/__init__.py +0 -0
- /orionis/luminate/{contracts → _contracts}/facades/commands/commands_facade.py +0 -0
- /orionis/luminate/{container → _contracts/facades/config}/__init__.py +0 -0
- /orionis/luminate/{contracts → _contracts}/facades/config/config_facade.py +0 -0
- /orionis/luminate/{contracts → _contracts/facades/environment}/__init__.py +0 -0
- /orionis/luminate/{contracts → _contracts}/facades/environment/environment_facade.py +0 -0
- /orionis/luminate/{contracts/config → _contracts/facades/files}/__init__.py +0 -0
- /orionis/luminate/{contracts → _contracts}/facades/files/path_facade.py +0 -0
- /orionis/luminate/{contracts/console → _contracts/facades/log}/__init__.py +0 -0
- /orionis/luminate/{contracts → _contracts}/facades/log/log_facade.py +0 -0
- /orionis/luminate/{contracts/console/base → _contracts/facades/tests}/__init__.py +0 -0
- /orionis/luminate/{contracts → _contracts}/facades/tests/tests_facade.py +0 -0
- /orionis/luminate/{contracts/console/output → _contracts/foundation}/__init__.py +0 -0
- /orionis/luminate/{contracts → _contracts}/foundation/bootstraper.py +0 -0
- /orionis/luminate/{contracts/facades → _contracts/foundation/config}/__init__.py +0 -0
- /orionis/luminate/{contracts → _contracts}/foundation/config/config_bootstrapper.py +0 -0
- /orionis/luminate/{contracts/facades/commands → _contracts/foundation/console}/__init__.py +0 -0
- /orionis/luminate/{contracts → _contracts}/foundation/console/command_bootstrapper.py +0 -0
- /orionis/luminate/{contracts/facades/config → _contracts/foundation/environment}/__init__.py +0 -0
- /orionis/luminate/{contracts → _contracts}/foundation/environment/environment_bootstrapper.py +0 -0
- /orionis/luminate/{contracts/facades/environment → _contracts/foundation/providers}/__init__.py +0 -0
- /orionis/luminate/{contracts/facades/files → _contracts/providers}/__init__.py +0 -0
- /orionis/luminate/{contracts/facades/log → _contracts/services}/__init__.py +0 -0
- /orionis/luminate/{contracts/facades/tests → _contracts/services/commands}/__init__.py +0 -0
- /orionis/luminate/{contracts → _contracts}/services/commands/reactor_commands_service.py +0 -0
- /orionis/luminate/{contracts → _contracts}/services/commands/schedule_service.py +0 -0
- /orionis/luminate/{contracts/foundation → _contracts/services/config}/__init__.py +0 -0
- /orionis/luminate/{contracts → _contracts}/services/config/config_service.py +0 -0
- /orionis/luminate/{contracts/foundation/config → _contracts/services/environment}/__init__.py +0 -0
- /orionis/luminate/{contracts → _contracts}/services/environment/environment_service.py +0 -0
- /orionis/luminate/{contracts/foundation/console → _contracts/services/files}/__init__.py +0 -0
- /orionis/luminate/{contracts → _contracts}/services/files/path_resolver_service.py +0 -0
- /orionis/luminate/{contracts/foundation/environment → _contracts/services/log}/__init__.py +0 -0
- /orionis/luminate/{contracts → _contracts}/services/log/log_service.py +0 -0
- /orionis/luminate/{contracts → _contracts}/support/exception_parse.py +0 -0
- /orionis/luminate/{contracts → _contracts}/support/reflection.py +0 -0
- /orionis/luminate/{contracts/foundation/providers → _facades}/__init__.py +0 -0
- /orionis/luminate/{contracts/providers → _facades/commands}/__init__.py +0 -0
- /orionis/luminate/{contracts/services → _facades/config}/__init__.py +0 -0
- /orionis/luminate/{contracts/services/commands → _facades/environment}/__init__.py +0 -0
- /orionis/luminate/{contracts/services/config → _facades/files}/__init__.py +0 -0
- /orionis/luminate/{contracts/services/environment → _facades/log}/__init__.py +0 -0
- /orionis/luminate/{contracts/services/files → _foundation}/__init__.py +0 -0
- /orionis/luminate/{contracts/services/log → _foundation/console}/__init__.py +0 -0
- /orionis/luminate/{facades → _foundation/environment}/__init__.py +0 -0
- /orionis/luminate/{facades/commands → _foundation/exceptions}/__init__.py +0 -0
- /orionis/luminate/{foundation → _foundation}/exceptions/exception_bootstrapper.py +0 -0
- /orionis/luminate/{foundation → _foundation}/exceptions/exception_providers.py +0 -0
- /orionis/luminate/{facades → _foundation/foundation}/config/__init__.py +0 -0
- /orionis/luminate/{facades/environment → _foundation/providers}/__init__.py +0 -0
- /orionis/luminate/{facades/files → _providers}/__init__.py +0 -0
- /orionis/luminate/{facades/log → _providers/commands}/__init__.py +0 -0
- /orionis/luminate/{foundation/console → _providers/config}/__init__.py +0 -0
- /orionis/luminate/{foundation → _providers}/environment/__init__.py +0 -0
- /orionis/luminate/{foundation/exceptions → _providers/files}/__init__.py +0 -0
- /orionis/luminate/{foundation/providers → _providers/log}/__init__.py +0 -0
- /orionis/luminate/{providers → _services}/__init__.py +0 -0
- /orionis/luminate/{providers → _services}/commands/__init__.py +0 -0
- /orionis/luminate/{providers → _services}/config/__init__.py +0 -0
- /orionis/luminate/{providers/environment → _services/log}/__init__.py +0 -0
- /orionis/luminate/{providers/files → foundation/config/app}/__init__.py +0 -0
- /orionis/luminate/{providers/log → foundation/config/app/entities}/__init__.py +0 -0
- /orionis/luminate/{services_ → foundation/config/app/enums}/__init__.py +0 -0
- /orionis/luminate/{config → foundation/config}/app/enums/ciphers.py +0 -0
- /orionis/luminate/{config → foundation/config}/app/enums/environments.py +0 -0
- /orionis/luminate/{services_/commands → foundation/config/auth}/__init__.py +0 -0
- /orionis/luminate/{services_/config → foundation/config/auth/entities}/__init__.py +0 -0
- /orionis/luminate/{services_/log → foundation/config/cache}/__init__.py +0 -0
- /orionis/luminate/{support/adapters → foundation/config/cache/entities}/__init__.py +0 -0
- /orionis/luminate/{support/asynchrony → foundation/config/cache/enums}/__init__.py +0 -0
- /orionis/luminate/{config → foundation/config}/cache/enums/drivers.py +0 -0
- /orionis/luminate/{support/asynchrony → foundation/config}/contracts/__init__.py +0 -0
- /orionis/luminate/{support/introspection/abstracts → foundation/config/cors}/__init__.py +0 -0
- /orionis/luminate/{support/introspection/abstracts → foundation/config/cors}/entities/__init__.py +0 -0
- /orionis/luminate/{support/introspection/dependencies/contracts → foundation/config/database}/__init__.py +0 -0
- /orionis/luminate/{support/introspection/dependencies → foundation/config/database}/entities/__init__.py +0 -0
- /orionis/luminate/{support/parsers → foundation/config/database/enums}/__init__.py +0 -0
- /orionis/luminate/{support/parsers/contracts → foundation/config/exceptions}/__init__.py +0 -0
- /orionis/luminate/{config/exceptions/integrity_exception.py → foundation/config/exceptions/integrity.py} +0 -0
- /orionis/luminate/{support/paths → foundation/config/filesystems}/__init__.py +0 -0
- /orionis/luminate/{support/paths/contracts → foundation/config/filesystems/entitites}/__init__.py +0 -0
- /orionis/luminate/{support/standard → foundation/config/logging}/__init__.py +0 -0
- /orionis/luminate/{support/standard/contracts → foundation/config/logging/entities}/__init__.py +0 -0
- /orionis/luminate/{test/core → foundation/config/logging/enums}/__init__.py +0 -0
- /orionis/luminate/{test/core/contracts → foundation/config/mail}/__init__.py +0 -0
- {tests/config → orionis/luminate/foundation/config/mail/entities}/__init__.py +0 -0
- {tests/support/adapters → orionis/luminate/foundation/config/queue}/__init__.py +0 -0
- {tests/support/adapters/fakes → orionis/luminate/foundation/config/queue/entities}/__init__.py +0 -0
- {tests/support/async_io → orionis/luminate/foundation/config/roots}/__init__.py +0 -0
- {tests/support/parsers → orionis/luminate/foundation/config/session}/__init__.py +0 -0
- {tests/support/parsers/fakes → orionis/luminate/foundation/config/session/entities}/__init__.py +0 -0
- {tests/support/path → orionis/luminate/foundation/config/session/enums}/__init__.py +0 -0
- {tests/support/standard → orionis/luminate/foundation/config/testing}/__init__.py +0 -0
- /orionis/luminate/{support → services}/parsers/contracts/exception_parser.py +0 -0
- /orionis/luminate/{support → services}/standard/contracts/std.py +0 -0
- /orionis/luminate/test/exceptions/{test_exception.py → test_failure_exception.py} +0 -0
- /orionis/luminate/test/{core → suites}/contracts/test_unit.py +0 -0
- {orionis-0.253.0.dist-info → orionis-0.266.0.dist-info/licenses}/LICENCE +0 -0
- {orionis-0.253.0.dist-info → orionis-0.266.0.dist-info}/top_level.txt +0 -0
@@ -1,20 +0,0 @@
|
|
1
|
-
from orionis.luminate.contracts.services.files.path_resolver_service import IPathResolverService
|
2
|
-
from orionis.luminate.providers.service_provider import ServiceProvider
|
3
|
-
from orionis.luminate.services_.files.path_resolver_service import PathResolverService
|
4
|
-
|
5
|
-
class PathResolverProvider(ServiceProvider):
|
6
|
-
|
7
|
-
def register(self) -> None:
|
8
|
-
"""
|
9
|
-
Registers services or bindings into the given container.
|
10
|
-
"""
|
11
|
-
self.app.singleton(IPathResolverService, PathResolverService)
|
12
|
-
|
13
|
-
async def boot(self) -> None:
|
14
|
-
"""
|
15
|
-
Boot the service provider.
|
16
|
-
|
17
|
-
This method is intended to be overridden by subclasses to perform
|
18
|
-
any necessary bootstrapping or initialization tasks.
|
19
|
-
"""
|
20
|
-
await self.app.make(IPathResolverService)
|
@@ -1,10 +0,0 @@
|
|
1
|
-
from orionis.luminate.services.workers.maximum_workers import MaximumWorkers
|
2
|
-
|
3
|
-
__all__ = [
|
4
|
-
"MaximumWorkers",
|
5
|
-
]
|
6
|
-
__author__ = "Raúl Mauricio Uñate Castro"
|
7
|
-
__description__ = (
|
8
|
-
"This module provides a class to calculate the maximum number of workers "
|
9
|
-
"that can be run on a machine based on its CPU and memory resources. "
|
10
|
-
)
|
@@ -1,29 +0,0 @@
|
|
1
|
-
class DotDict(dict):
|
2
|
-
|
3
|
-
"""
|
4
|
-
A dictionary subclass that allows access to dictionary values using dot notation, with handling for missing keys.
|
5
|
-
This class extends the built-in `dict` class to provide attribute-style access to dictionary keys. If a key is not found,
|
6
|
-
it returns `None` instead of raising a `KeyError`. Additionally, nested dictionaries are automatically converted to `DotDict`
|
7
|
-
instances.
|
8
|
-
Methods
|
9
|
-
-------
|
10
|
-
__getattr__(item)
|
11
|
-
Retrieves the value associated with the given key using dot notation. If the key does not exist, returns `None`.
|
12
|
-
If the value is a dictionary, it is converted to a `DotDict` instance.
|
13
|
-
"""
|
14
|
-
|
15
|
-
def __getattr__(self, item):
|
16
|
-
"""
|
17
|
-
Retrieves the value associated with the given key using dot notation. If the key does not exist, returns `None`.
|
18
|
-
If the value is a dictionary, it is converted to a `DotDict` instance.
|
19
|
-
"""
|
20
|
-
|
21
|
-
# Retrieve the value associated with the key
|
22
|
-
value = self.get(item, None)
|
23
|
-
|
24
|
-
# If the value is a dictionary, convert it to a DotDict instance
|
25
|
-
if isinstance(value, dict):
|
26
|
-
return DotDict(value)
|
27
|
-
|
28
|
-
# Otherwise, return the value
|
29
|
-
return value
|
@@ -1,40 +0,0 @@
|
|
1
|
-
import asyncio
|
2
|
-
from inspect import iscoroutine
|
3
|
-
from typing import Any, Coroutine, TypeVar, Union
|
4
|
-
from orionis.luminate.support.asynchrony.contracts.async_coroutine import IAsyncIO
|
5
|
-
|
6
|
-
T = TypeVar("T")
|
7
|
-
|
8
|
-
class AsyncIO(IAsyncIO):
|
9
|
-
"""
|
10
|
-
A utility class for executing coroutine objects in various asynchronous and synchronous contexts.
|
11
|
-
This class provides a static method to execute coroutine objects, handling different scenarios
|
12
|
-
such as running within an active event loop (e.g., in Jupyter notebooks or Starlette) or in a
|
13
|
-
synchronous context without an active event
|
14
|
-
"""
|
15
|
-
|
16
|
-
@staticmethod
|
17
|
-
def run(coro: Coroutine[Any, Any, T]) -> Union[T, asyncio.Future]:
|
18
|
-
"""
|
19
|
-
Executes the given coroutine object, adapting to the current execution context.
|
20
|
-
If there is an active event loop, it uses `asyncio.ensure_future` to schedule the coroutine.
|
21
|
-
If there is no active event loop, it uses `asyncio.run` to run the coroutine directly.
|
22
|
-
If the coroutine is already running, it returns a `Future` object that can be awaited.
|
23
|
-
|
24
|
-
Parameters
|
25
|
-
----------
|
26
|
-
coro : Coroutine[Any, Any, T]
|
27
|
-
The coroutine object
|
28
|
-
"""
|
29
|
-
if not iscoroutine(coro):
|
30
|
-
raise TypeError("Expected a coroutine object.")
|
31
|
-
|
32
|
-
try:
|
33
|
-
loop = asyncio.get_running_loop()
|
34
|
-
except RuntimeError:
|
35
|
-
return asyncio.run(coro)
|
36
|
-
|
37
|
-
if loop.is_running():
|
38
|
-
return asyncio.ensure_future(coro)
|
39
|
-
else:
|
40
|
-
return loop.run_until_complete(coro)
|
@@ -1,26 +0,0 @@
|
|
1
|
-
import asyncio
|
2
|
-
from typing import Any, Coroutine, TypeVar, Union
|
3
|
-
|
4
|
-
T = TypeVar("T")
|
5
|
-
|
6
|
-
class IAsyncIO:
|
7
|
-
"""
|
8
|
-
Interface for executing asynchronous coroutines.
|
9
|
-
"""
|
10
|
-
|
11
|
-
@staticmethod
|
12
|
-
def run(coro: Coroutine[Any, Any, T]) -> Union[T, asyncio.Future]:
|
13
|
-
"""
|
14
|
-
Execute the given coroutine.
|
15
|
-
|
16
|
-
Parameters
|
17
|
-
----------
|
18
|
-
coro : Coroutine[Any, Any, T]
|
19
|
-
The coroutine to be executed.
|
20
|
-
|
21
|
-
Returns
|
22
|
-
-------
|
23
|
-
Union[T, asyncio.Future]
|
24
|
-
The result of the coroutine execution or a Future object.
|
25
|
-
"""
|
26
|
-
pass
|
@@ -1,11 +0,0 @@
|
|
1
|
-
from dataclasses import dataclass
|
2
|
-
from typing import Any, Dict
|
3
|
-
|
4
|
-
@dataclass(frozen=True, kw_only=True)
|
5
|
-
class AbstractClassAttributes:
|
6
|
-
"""
|
7
|
-
A class to represent the attributes of an entity.
|
8
|
-
"""
|
9
|
-
public: Dict[str, Any]
|
10
|
-
private: Dict[str, Any]
|
11
|
-
protected: Dict[str, Any]
|
@@ -1,11 +0,0 @@
|
|
1
|
-
from dataclasses import dataclass
|
2
|
-
from typing import Any, Dict, List
|
3
|
-
from orionis.luminate.support.introspection.dependencies.entities.resolved_dependencies import ResolvedDependency
|
4
|
-
|
5
|
-
@dataclass(frozen=True, kw_only=True)
|
6
|
-
class ClassDependency:
|
7
|
-
"""
|
8
|
-
A class to represent a dependency of a class instance.
|
9
|
-
"""
|
10
|
-
resolved: Dict[ResolvedDependency, Any]
|
11
|
-
unresolved: List[str]
|
@@ -1,11 +0,0 @@
|
|
1
|
-
from dataclasses import dataclass
|
2
|
-
from typing import Any, Dict, List
|
3
|
-
from orionis.luminate.support.introspection.dependencies.entities.resolved_dependencies import ResolvedDependency
|
4
|
-
|
5
|
-
@dataclass(frozen=True, kw_only=True)
|
6
|
-
class MethodDependency:
|
7
|
-
"""
|
8
|
-
A class to represent a method dependency of a class instance.
|
9
|
-
"""
|
10
|
-
resolved: Dict[ResolvedDependency, Any]
|
11
|
-
unresolved: List[str]
|
@@ -1,12 +0,0 @@
|
|
1
|
-
from dataclasses import dataclass
|
2
|
-
from typing import Type
|
3
|
-
|
4
|
-
@dataclass(frozen=True, kw_only=True)
|
5
|
-
class ResolvedDependency:
|
6
|
-
"""
|
7
|
-
A class to represent a resolved dependency of a class instance.
|
8
|
-
"""
|
9
|
-
module_name: str
|
10
|
-
class_name: str
|
11
|
-
type: Type
|
12
|
-
full_class_path: str
|
@@ -1,67 +0,0 @@
|
|
1
|
-
from abc import ABC, abstractmethod
|
2
|
-
from typing import Optional
|
3
|
-
|
4
|
-
class IResolver(ABC):
|
5
|
-
"""
|
6
|
-
Interface for a utility class that resolves file and directory paths relative to a base path.
|
7
|
-
"""
|
8
|
-
|
9
|
-
@abstractmethod
|
10
|
-
def __init__(self, root_path: Optional[str] = None):
|
11
|
-
"""
|
12
|
-
Initializes the resolver with an optional root path.
|
13
|
-
|
14
|
-
Parameters
|
15
|
-
----------
|
16
|
-
root_path : str, optional
|
17
|
-
The root directory to resolve relative paths from.
|
18
|
-
"""
|
19
|
-
pass
|
20
|
-
|
21
|
-
@abstractmethod
|
22
|
-
def relativePath(self, relative_path: str):
|
23
|
-
"""
|
24
|
-
Resolves a relative path into an absolute one and validates its existence.
|
25
|
-
|
26
|
-
Parameters
|
27
|
-
----------
|
28
|
-
relative_path : str
|
29
|
-
The relative path to resolve.
|
30
|
-
|
31
|
-
Returns
|
32
|
-
-------
|
33
|
-
ResolverInterface
|
34
|
-
The instance itself for method chaining.
|
35
|
-
|
36
|
-
Raises
|
37
|
-
------
|
38
|
-
FileNotFoundError
|
39
|
-
If the resolved path does not exist.
|
40
|
-
ValueError
|
41
|
-
If the resolved path is neither a file nor a directory.
|
42
|
-
"""
|
43
|
-
pass
|
44
|
-
|
45
|
-
@abstractmethod
|
46
|
-
def toString(self) -> str:
|
47
|
-
"""
|
48
|
-
Returns the resolved path as a string.
|
49
|
-
|
50
|
-
Returns
|
51
|
-
-------
|
52
|
-
str
|
53
|
-
The resolved path.
|
54
|
-
"""
|
55
|
-
pass
|
56
|
-
|
57
|
-
@abstractmethod
|
58
|
-
def __str__(self) -> str:
|
59
|
-
"""
|
60
|
-
Returns the resolved path as a string (for print or str()).
|
61
|
-
|
62
|
-
Returns
|
63
|
-
-------
|
64
|
-
str
|
65
|
-
The resolved path.
|
66
|
-
"""
|
67
|
-
pass
|
@@ -1,83 +0,0 @@
|
|
1
|
-
import os
|
2
|
-
from pathlib import Path
|
3
|
-
from orionis.luminate.support.paths.contracts.resolver import IResolver
|
4
|
-
|
5
|
-
class Resolver(IResolver):
|
6
|
-
"""
|
7
|
-
A utility class for resolving file and directory paths relative to the project's root directory.
|
8
|
-
"""
|
9
|
-
|
10
|
-
def __init__(self, root_path: str = None):
|
11
|
-
"""
|
12
|
-
Initializes the Resolver instance with the project's root directory.
|
13
|
-
|
14
|
-
Parameters
|
15
|
-
----------
|
16
|
-
root_path : str, optional
|
17
|
-
The root directory of the project. If not provided, it defaults to the current working directory.
|
18
|
-
"""
|
19
|
-
self.base_path = Path(root_path).resolve() if root_path else Path(os.getcwd()).resolve()
|
20
|
-
self.resolved_path = None
|
21
|
-
|
22
|
-
def relativePath(self, relative_path: str) -> 'Resolver':
|
23
|
-
"""
|
24
|
-
Resolves a given relative path to an absolute path and validates its existence.
|
25
|
-
|
26
|
-
This method combines the project's root directory with the provided relative path,
|
27
|
-
resolves it to an absolute path, and ensures it exists as either a directory or a file.
|
28
|
-
|
29
|
-
Parameters
|
30
|
-
----------
|
31
|
-
relative_path : str
|
32
|
-
The relative path to a directory or file to be resolved.
|
33
|
-
|
34
|
-
Returns
|
35
|
-
-------
|
36
|
-
Resolver
|
37
|
-
The current instance of the Resolver class with the resolved path.
|
38
|
-
|
39
|
-
Raises
|
40
|
-
------
|
41
|
-
FileNotFoundError
|
42
|
-
If the resolved path does not exist.
|
43
|
-
ValueError
|
44
|
-
If the resolved path is neither a valid directory nor a file.
|
45
|
-
"""
|
46
|
-
# Combine the base path with the relative path and resolve it
|
47
|
-
resolved_path = (self.base_path / relative_path).resolve()
|
48
|
-
|
49
|
-
# Validate that the path exists
|
50
|
-
if not resolved_path.exists():
|
51
|
-
raise FileNotFoundError(f"The requested path does not exist: {resolved_path}")
|
52
|
-
|
53
|
-
# Validate that the path is either a directory or a file
|
54
|
-
if not (resolved_path.is_dir() or resolved_path.is_file()):
|
55
|
-
raise ValueError(f"The requested path is neither a valid directory nor a file: {resolved_path}")
|
56
|
-
|
57
|
-
# Store the resolved path in the instance variable
|
58
|
-
self.resolved_path = resolved_path
|
59
|
-
|
60
|
-
# Return the current instance
|
61
|
-
return self
|
62
|
-
|
63
|
-
def toString(self) -> str:
|
64
|
-
"""
|
65
|
-
Returns the string representation of the resolved path.
|
66
|
-
|
67
|
-
Returns
|
68
|
-
-------
|
69
|
-
str
|
70
|
-
The resolved path as a string.
|
71
|
-
"""
|
72
|
-
return str(self.resolved_path)
|
73
|
-
|
74
|
-
def __str__(self) -> str:
|
75
|
-
"""
|
76
|
-
Returns the string representation of the resolved path.
|
77
|
-
|
78
|
-
Returns
|
79
|
-
-------
|
80
|
-
str
|
81
|
-
The resolved path as a string.
|
82
|
-
"""
|
83
|
-
return str(self.resolved_path)
|
@@ -1,30 +0,0 @@
|
|
1
|
-
from abc import ABC, abstractmethod
|
2
|
-
from orionis.luminate.config.entities.testing import Testing
|
3
|
-
from orionis.luminate.test.core.test_unit import UnitTest
|
4
|
-
|
5
|
-
class ITestSuite(ABC):
|
6
|
-
"""
|
7
|
-
Interface for configuring and initializing a UnitTest suite using a provided Testing configuration.
|
8
|
-
Methods:
|
9
|
-
config(config: Testing) -> UnitTest:
|
10
|
-
"""
|
11
|
-
|
12
|
-
@staticmethod
|
13
|
-
@abstractmethod
|
14
|
-
def config(config:Testing) -> UnitTest:
|
15
|
-
"""
|
16
|
-
Configures and initializes a UnitTest suite based on the provided Testing configuration.
|
17
|
-
Args:
|
18
|
-
config (Testing): An instance of the Testing class containing configuration options for the test suite.
|
19
|
-
Returns:
|
20
|
-
UnitTest: An initialized UnitTest suite configured according to the provided settings.
|
21
|
-
Raises:
|
22
|
-
OrionisTestConfigException: If the config parameter is not an instance of the Testing class.
|
23
|
-
The function performs the following steps:
|
24
|
-
- Validates the type of the config parameter.
|
25
|
-
- Initializes a UnitTest suite and applies configuration values from the Testing instance.
|
26
|
-
- Discovers folders containing test files based on the specified base path, folder path(s), and filename pattern.
|
27
|
-
- Adds discovered test folders to the UnitTest suite, applying optional test name patterns and tags.
|
28
|
-
- Returns the configured UnitTest suite ready for execution.
|
29
|
-
"""
|
30
|
-
pass
|
@@ -1,93 +0,0 @@
|
|
1
|
-
import re
|
2
|
-
from os import walk
|
3
|
-
from orionis.luminate.config.entities.testing import Testing
|
4
|
-
from orionis.luminate.test.core.contracts.test_suite import ITestSuite
|
5
|
-
from orionis.luminate.test.core.test_unit import UnitTest
|
6
|
-
from orionis.luminate.test.exceptions.test_config_exception import OrionisTestConfigException
|
7
|
-
|
8
|
-
class TestSuite(ITestSuite):
|
9
|
-
"""
|
10
|
-
TestSuite provides static configuration and initialization of a unit test suite based on a given Testing configuration.
|
11
|
-
Methods:
|
12
|
-
config(config: Testing) -> UnitTest
|
13
|
-
Configures and initializes a test suite using the provided Testing configuration.
|
14
|
-
- Validates the type of the configuration object.
|
15
|
-
- Sets up the UnitTest suite with parameters such as verbosity, execution mode, worker count, and error handling.
|
16
|
-
- Discovers test folders based on base path, folder path(s), and filename pattern, supporting wildcards.
|
17
|
-
- Adds discovered test folders to the suite, optionally filtering by test name pattern and tags.
|
18
|
-
OrionisTestConfigException: If the provided config is not an instance of the Testing class.
|
19
|
-
"""
|
20
|
-
|
21
|
-
@staticmethod
|
22
|
-
def config(config:Testing) -> UnitTest:
|
23
|
-
"""
|
24
|
-
Configures and initializes a UnitTest suite based on the provided Testing configuration.
|
25
|
-
Args:
|
26
|
-
config (Testing): An instance of the Testing class containing configuration options for the test suite.
|
27
|
-
Returns:
|
28
|
-
UnitTest: An initialized UnitTest suite configured according to the provided settings.
|
29
|
-
Raises:
|
30
|
-
OrionisTestConfigException: If the config parameter is not an instance of the Testing class.
|
31
|
-
The function performs the following steps:
|
32
|
-
- Validates the type of the config parameter.
|
33
|
-
- Initializes a UnitTest suite and applies configuration values from the Testing instance.
|
34
|
-
- Discovers folders containing test files based on the specified base path, folder path(s), and filename pattern.
|
35
|
-
- Adds discovered test folders to the UnitTest suite, applying optional test name patterns and tags.
|
36
|
-
- Returns the configured UnitTest suite ready for execution.
|
37
|
-
"""
|
38
|
-
|
39
|
-
# Check if the config is an instance of Testing
|
40
|
-
if not isinstance(config, Testing):
|
41
|
-
raise OrionisTestConfigException("The config parameter must be an instance of the Testing class.")
|
42
|
-
|
43
|
-
# Initialize the test suite
|
44
|
-
tests = UnitTest()
|
45
|
-
|
46
|
-
# Assign config values to the test suite
|
47
|
-
tests.configure(
|
48
|
-
verbosity=config.verbosity,
|
49
|
-
execution_mode=config.execution_mode,
|
50
|
-
max_workers=config.max_workers,
|
51
|
-
fail_fast=config.fail_fast,
|
52
|
-
print_result=config.print_result,
|
53
|
-
throw_exception=config.throw_exception
|
54
|
-
)
|
55
|
-
|
56
|
-
# Extract configuration values
|
57
|
-
base_path = config.base_path
|
58
|
-
folder_path = config.folder_path
|
59
|
-
pattern = config.pattern
|
60
|
-
|
61
|
-
# Helper function to list folders matching the pattern
|
62
|
-
def list_matching_folders(custom_path: str, pattern: str):
|
63
|
-
matched_folders = []
|
64
|
-
for root, _, files in walk(custom_path):
|
65
|
-
for file in files:
|
66
|
-
if re.fullmatch(pattern.replace('*', '.*').replace('?', '.'), file):
|
67
|
-
relative_path = root.replace(base_path, '').replace('\\', '/').lstrip('/')
|
68
|
-
if relative_path not in matched_folders:
|
69
|
-
matched_folders.append(relative_path)
|
70
|
-
return matched_folders
|
71
|
-
|
72
|
-
# Discover folders
|
73
|
-
discovered_folders = []
|
74
|
-
if folder_path == '*':
|
75
|
-
discovered_folders.extend(list_matching_folders(base_path, pattern))
|
76
|
-
elif isinstance(folder_path, list):
|
77
|
-
for custom_path in folder_path:
|
78
|
-
discovered_folders.extend(list_matching_folders(f"{base_path}/{custom_path}", pattern))
|
79
|
-
else:
|
80
|
-
discovered_folders.extend(list_matching_folders(folder_path, pattern))
|
81
|
-
|
82
|
-
# Add discovered folders to the test suite
|
83
|
-
for folder in discovered_folders:
|
84
|
-
tests.discoverTestsInFolder(
|
85
|
-
folder_path=folder,
|
86
|
-
base_path=base_path,
|
87
|
-
pattern=pattern,
|
88
|
-
test_name_pattern=config.test_name_pattern if config.test_name_pattern else None,
|
89
|
-
tags=config.tags if config.tags else None
|
90
|
-
)
|
91
|
-
|
92
|
-
# Return the initialized test suite
|
93
|
-
return tests
|