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
@@ -0,0 +1,189 @@
|
|
1
|
+
from dataclasses import asdict, dataclass, field
|
2
|
+
from orionis.luminate.foundation.config.database.enums.pgsql_charsets import PGSQLCharset
|
3
|
+
from orionis.luminate.foundation.config.database.enums.pgsql_mode import PGSQLSSLMode
|
4
|
+
from orionis.luminate.foundation.config.exceptions.integrity import OrionisIntegrityException
|
5
|
+
from orionis.luminate.services.environment.env import Env
|
6
|
+
|
7
|
+
@dataclass(unsafe_hash=True, kw_only=True)
|
8
|
+
class PGSQL:
|
9
|
+
"""
|
10
|
+
Pgsql database configuration entity.
|
11
|
+
Attributes:
|
12
|
+
driver (str): Database driver type. Default: "pgsql".
|
13
|
+
host (str): Database host. Default: value of the environment variable DB_HOST or "127.0.0.1".
|
14
|
+
port (str): Database port. Default: value of the environment variable DB_PORT or "5432".
|
15
|
+
database (str): Database name. Default: value of the environment variable DB_DATABASE or "orionis".
|
16
|
+
username (str): Database user. Default: value of the environment variable DB_USERNAME or "root".
|
17
|
+
password (str): Database password. Default: value of the environment variable DB_PASSWORD or "".
|
18
|
+
charset (str): Database charset. Default: value of the environment variable DB_CHARSET or "utf8".
|
19
|
+
prefix (str): Table prefix. Default: "".
|
20
|
+
prefix_indexes (bool): Whether to prefix indexes. Default: True.
|
21
|
+
search_path (str): PostgreSQL schema search_path. Default: "public".
|
22
|
+
sslmode (str): Connection SSL mode. Default: "prefer".
|
23
|
+
"""
|
24
|
+
|
25
|
+
driver: str = field(
|
26
|
+
default="pgsql",
|
27
|
+
metadata={
|
28
|
+
"description": "Database driver type",
|
29
|
+
"default": "pgsql"
|
30
|
+
}
|
31
|
+
)
|
32
|
+
|
33
|
+
host: str = field(
|
34
|
+
default_factory=lambda: Env.get("DB_HOST", "127.0.0.1"),
|
35
|
+
metadata={
|
36
|
+
"description": "Database host",
|
37
|
+
"default": "127.0.0.1"
|
38
|
+
}
|
39
|
+
)
|
40
|
+
|
41
|
+
port: str = field(
|
42
|
+
default_factory=lambda: Env.get("DB_PORT", "5432"),
|
43
|
+
metadata={
|
44
|
+
"description": "Database port",
|
45
|
+
"default": "5432"
|
46
|
+
}
|
47
|
+
)
|
48
|
+
|
49
|
+
database: str = field(
|
50
|
+
default_factory=lambda: Env.get("DB_DATABASE", "orionis"),
|
51
|
+
metadata={
|
52
|
+
"description": "Database name",
|
53
|
+
"default": "orionis"
|
54
|
+
}
|
55
|
+
)
|
56
|
+
|
57
|
+
username: str = field(
|
58
|
+
default_factory=lambda: Env.get("DB_USERNAME", "root"),
|
59
|
+
metadata={
|
60
|
+
"description": "Database user",
|
61
|
+
"default": "root"
|
62
|
+
}
|
63
|
+
)
|
64
|
+
|
65
|
+
password: str = field(
|
66
|
+
default_factory=lambda: Env.get("DB_PASSWORD", ""),
|
67
|
+
metadata={
|
68
|
+
"description": "Database password",
|
69
|
+
"default": ""
|
70
|
+
}
|
71
|
+
)
|
72
|
+
|
73
|
+
charset: str | PGSQLCharset = field(
|
74
|
+
default_factory=lambda: Env.get("DB_CHARSET", PGSQLCharset.UTF8),
|
75
|
+
metadata={
|
76
|
+
"description": "Database charset",
|
77
|
+
"default": "utf8"
|
78
|
+
}
|
79
|
+
)
|
80
|
+
|
81
|
+
prefix: str = field(
|
82
|
+
default="",
|
83
|
+
metadata={
|
84
|
+
"description": "Table prefix",
|
85
|
+
"default": ""
|
86
|
+
}
|
87
|
+
)
|
88
|
+
|
89
|
+
prefix_indexes: bool = field(
|
90
|
+
default=True,
|
91
|
+
metadata={
|
92
|
+
"description": "Whether to prefix indexes",
|
93
|
+
"default": True
|
94
|
+
}
|
95
|
+
)
|
96
|
+
|
97
|
+
search_path: str = field(
|
98
|
+
default="public",
|
99
|
+
metadata={
|
100
|
+
"description": "PostgreSQL schema search_path",
|
101
|
+
"default": "public"
|
102
|
+
}
|
103
|
+
)
|
104
|
+
|
105
|
+
sslmode: str | PGSQLSSLMode = field(
|
106
|
+
default=PGSQLSSLMode.PREFER,
|
107
|
+
metadata={
|
108
|
+
"description": "Connection SSL mode",
|
109
|
+
"default": PGSQLSSLMode.PREFER
|
110
|
+
}
|
111
|
+
)
|
112
|
+
|
113
|
+
def __post_init__(self):
|
114
|
+
"""
|
115
|
+
Validates the initialization of the database entity attributes after object creation.
|
116
|
+
|
117
|
+
Raises:
|
118
|
+
OrionisIntegrityException: If any of the following conditions are not met:
|
119
|
+
- 'driver' is a non-empty string.
|
120
|
+
- 'url' is either None or a non-empty string.
|
121
|
+
- 'host' is a non-empty string.
|
122
|
+
- 'port' is a numeric string.
|
123
|
+
- 'database' is a non-empty string.
|
124
|
+
- 'username' is a non-empty string.
|
125
|
+
- 'password' is a string.
|
126
|
+
- 'charset' is a non-empty string.
|
127
|
+
- 'prefix' is a string.
|
128
|
+
- 'prefix_indexes' is a boolean.
|
129
|
+
- 'search_path' is a non-empty string.
|
130
|
+
- 'sslmode' is a non-empty string.
|
131
|
+
"""
|
132
|
+
|
133
|
+
if not isinstance(self.driver, str) or not self.driver:
|
134
|
+
raise OrionisIntegrityException(f"The 'driver' attribute must be a non-empty string. Received: {self.driver!r}")
|
135
|
+
|
136
|
+
if not isinstance(self.host, str) or not self.host.strip():
|
137
|
+
raise OrionisIntegrityException(f"The 'host' attribute must be a non-empty string. Received: {self.host!r}")
|
138
|
+
|
139
|
+
if not isinstance(self.port, str) or not self.port.isdigit():
|
140
|
+
raise OrionisIntegrityException(f"The 'port' attribute must be a numeric string. Received: {self.port!r}")
|
141
|
+
|
142
|
+
if not isinstance(self.database, str) or not self.database.strip():
|
143
|
+
raise OrionisIntegrityException(f"The 'database' attribute must be a non-empty string. Received: {self.database!r}")
|
144
|
+
|
145
|
+
if not isinstance(self.username, str) or not self.username.strip():
|
146
|
+
raise OrionisIntegrityException(f"The 'username' attribute must be a non-empty string. Received: {self.username!r}")
|
147
|
+
|
148
|
+
if not isinstance(self.password, str):
|
149
|
+
raise OrionisIntegrityException(f"The 'password' attribute must be a string. Received: {self.password!r}")
|
150
|
+
|
151
|
+
options_charset = PGSQLCharset._member_names_
|
152
|
+
if isinstance(self.charset, str):
|
153
|
+
_value = self.charset.upper().strip()
|
154
|
+
if _value not in options_charset:
|
155
|
+
raise OrionisIntegrityException(f"The 'charset' attribute must be a valid option {str(PGSQLCharset._member_names_)}")
|
156
|
+
else:
|
157
|
+
self.charset = PGSQLCharset[_value].value
|
158
|
+
else:
|
159
|
+
self.charset = self.charset.value
|
160
|
+
|
161
|
+
if not isinstance(self.prefix, str):
|
162
|
+
raise OrionisIntegrityException(f"The 'prefix' attribute must be a string. Received: {self.prefix!r}")
|
163
|
+
|
164
|
+
if not isinstance(self.prefix_indexes, bool):
|
165
|
+
raise OrionisIntegrityException(f"The 'prefix_indexes' attribute must be boolean. Received: {self.prefix_indexes!r}")
|
166
|
+
|
167
|
+
if not isinstance(self.search_path, str) or not self.search_path.strip():
|
168
|
+
raise OrionisIntegrityException(f"The 'search_path' attribute must be a non-empty string. Received: {self.search_path!r}")
|
169
|
+
|
170
|
+
if not isinstance(self.sslmode, (str, PGSQLSSLMode)):
|
171
|
+
raise OrionisIntegrityException(f"The 'sslmode' attribute must be a string or PGSQLSSLMode. Received: {self.sslmode!r}")
|
172
|
+
|
173
|
+
options_sslmode = PGSQLSSLMode._member_names_
|
174
|
+
if isinstance(self.sslmode, str):
|
175
|
+
_value = self.sslmode.upper().strip()
|
176
|
+
if _value not in options_sslmode:
|
177
|
+
raise OrionisIntegrityException(f"The 'sslmode' attribute must be a valid option {str(PGSQLSSLMode._member_names_)}")
|
178
|
+
else:
|
179
|
+
self.sslmode = PGSQLSSLMode[_value].value
|
180
|
+
else:
|
181
|
+
self.sslmode = self.sslmode.value
|
182
|
+
|
183
|
+
def toDict(self) -> dict:
|
184
|
+
"""
|
185
|
+
Convert the object to a dictionary representation.
|
186
|
+
Returns:
|
187
|
+
dict: A dictionary representation of the Dataclass object.
|
188
|
+
"""
|
189
|
+
return asdict(self)
|
@@ -0,0 +1,178 @@
|
|
1
|
+
from dataclasses import asdict, dataclass, field
|
2
|
+
from orionis.luminate.foundation.config.database.enums.sqlite_foreign_key import SQLiteForeignKey
|
3
|
+
from orionis.luminate.foundation.config.database.enums.sqlite_journal import SQLiteJournalMode
|
4
|
+
from orionis.luminate.foundation.config.database.enums.sqlite_synchronous import SQLiteSynchronous
|
5
|
+
from orionis.luminate.foundation.config.exceptions.integrity import OrionisIntegrityException
|
6
|
+
from orionis.luminate.services.environment.env import Env
|
7
|
+
|
8
|
+
@dataclass(unsafe_hash=True, kw_only=True)
|
9
|
+
class SQLite:
|
10
|
+
"""
|
11
|
+
Data class to represent the SQLite database configuration.
|
12
|
+
|
13
|
+
Attributes
|
14
|
+
----------
|
15
|
+
driver : str
|
16
|
+
The database driver being used, e.g., 'sqlite'.
|
17
|
+
url : str
|
18
|
+
The URL for connecting to the database.
|
19
|
+
database : str
|
20
|
+
The path to the SQLite database file.
|
21
|
+
prefix : str
|
22
|
+
Prefix for table names.
|
23
|
+
foreign_key_constraints : bool
|
24
|
+
Whether foreign key constraints are enabled.
|
25
|
+
busy_timeout : Optional[int]
|
26
|
+
The timeout period (in milliseconds) before retrying a locked database.
|
27
|
+
journal_mode : Optional[str]
|
28
|
+
The journal mode used for transactions.
|
29
|
+
synchronous : Optional[str]
|
30
|
+
The synchronization level for the database.
|
31
|
+
"""
|
32
|
+
|
33
|
+
driver: str = field(
|
34
|
+
default='sqlite',
|
35
|
+
metadata={
|
36
|
+
"description": "The database driver being used.",
|
37
|
+
"example": "sqlite",
|
38
|
+
},
|
39
|
+
)
|
40
|
+
|
41
|
+
url: str = field(
|
42
|
+
default_factory=lambda: Env.get('DB_URL', 'sqlite:///' + Env.get('DB_DATABASE', 'database/database.sqlite')),
|
43
|
+
metadata={
|
44
|
+
"description": "The URL for connecting to the database.",
|
45
|
+
"example": "sqlite:///database/database.sqlite",
|
46
|
+
},
|
47
|
+
)
|
48
|
+
|
49
|
+
database: str = field(
|
50
|
+
default_factory=lambda: Env.get('DB_DATABASE', 'database.sqlite'),
|
51
|
+
metadata={
|
52
|
+
"description": "The path to the SQLite database file.",
|
53
|
+
"example": "database.sqlite",
|
54
|
+
},
|
55
|
+
)
|
56
|
+
|
57
|
+
prefix: str = field(
|
58
|
+
default_factory=lambda: Env.get('DB_PREFIX', ''),
|
59
|
+
metadata={
|
60
|
+
"description": "Prefix for table names.",
|
61
|
+
"example": "",
|
62
|
+
},
|
63
|
+
)
|
64
|
+
|
65
|
+
foreign_key_constraints: bool | SQLiteForeignKey = field(
|
66
|
+
default_factory=lambda: Env.get('DB_FOREIGN_KEYS', SQLiteForeignKey.OFF),
|
67
|
+
metadata={
|
68
|
+
"description": "Whether foreign key constraints are enabled.",
|
69
|
+
"example": 'OFF',
|
70
|
+
},
|
71
|
+
)
|
72
|
+
|
73
|
+
busy_timeout: int = field(
|
74
|
+
default_factory=lambda: Env.get('DB_BUSY_TIMEOUT', 5000),
|
75
|
+
metadata={
|
76
|
+
"description": "The timeout period (in milliseconds) before retrying a locked database.",
|
77
|
+
"example": 5000,
|
78
|
+
},
|
79
|
+
)
|
80
|
+
|
81
|
+
journal_mode: str | SQLiteJournalMode = field(
|
82
|
+
default_factory=lambda: Env.get('DB_JOURNAL_MODE', SQLiteJournalMode.DELETE),
|
83
|
+
metadata={
|
84
|
+
"description": "The journal mode used for transactions.",
|
85
|
+
"example": "DELETE",
|
86
|
+
},
|
87
|
+
)
|
88
|
+
|
89
|
+
synchronous: str | SQLiteSynchronous = field(
|
90
|
+
default_factory=lambda: Env.get('DB_SYNCHRONOUS', SQLiteSynchronous.NORMAL),
|
91
|
+
metadata={
|
92
|
+
"description": "The synchronization level for the database.",
|
93
|
+
"example": "NORMAL",
|
94
|
+
},
|
95
|
+
)
|
96
|
+
|
97
|
+
def __post_init__(self):
|
98
|
+
"""
|
99
|
+
Post-initialization validation for SQLite database configuration fields.
|
100
|
+
This method ensures that all configuration attributes are of the correct type and meet required constraints:
|
101
|
+
- `driver`: Must be a non-empty string (e.g., 'sqlite').
|
102
|
+
- `url`: Must be a non-empty string (e.g., 'sqlite:///database/database.sqlite').
|
103
|
+
- `database`: Must be a non-empty string representing the database file path.
|
104
|
+
- `prefix`: Must be a string (can be empty).
|
105
|
+
- `foreign_key_constraints`: Must be a boolean (True or False).
|
106
|
+
- `busy_timeout`: If provided, must be a non-negative integer (milliseconds) or None.
|
107
|
+
- `journal_mode`: If provided, must be a string or None (e.g., 'WAL', 'DELETE').
|
108
|
+
- `synchronous`: If provided, must be a string or None (e.g., 'FULL', 'NORMAL', 'OFF').
|
109
|
+
Raises:
|
110
|
+
OrionisIntegrityException: If any attribute fails its validation check.
|
111
|
+
"""
|
112
|
+
|
113
|
+
# Validate driver
|
114
|
+
if not isinstance(self.driver, str) or not self.driver.strip():
|
115
|
+
raise OrionisIntegrityException("Invalid 'driver': must be a non-empty string (e.g., 'sqlite').")
|
116
|
+
|
117
|
+
# Validate url
|
118
|
+
if not isinstance(self.url, str) or not self.url.strip():
|
119
|
+
raise OrionisIntegrityException("Invalid 'url': must be a non-empty string (e.g., 'sqlite:///database/database.sqlite').")
|
120
|
+
|
121
|
+
# Validate database
|
122
|
+
if not isinstance(self.database, str) or not self.database.strip():
|
123
|
+
raise OrionisIntegrityException(f"Invalid 'database': must be a non-empty string representing the database file path.")
|
124
|
+
|
125
|
+
# Validate prefix
|
126
|
+
if not isinstance(self.prefix, str):
|
127
|
+
raise OrionisIntegrityException("Invalid 'prefix': must be a string (can be empty).")
|
128
|
+
|
129
|
+
# Validate foreign_key_constraints
|
130
|
+
options_foreign_keys = SQLiteForeignKey._member_names_
|
131
|
+
if isinstance(self.foreign_key_constraints, str):
|
132
|
+
_value = self.foreign_key_constraints.upper().strip()
|
133
|
+
if _value not in options_foreign_keys:
|
134
|
+
raise OrionisIntegrityException(
|
135
|
+
f"The 'foreign_key_constraints' attribute must be a valid option {str(SQLiteForeignKey._member_names_)}"
|
136
|
+
)
|
137
|
+
else:
|
138
|
+
self.foreign_key_constraints = SQLiteForeignKey[_value].value
|
139
|
+
else:
|
140
|
+
self.foreign_key_constraints = self.foreign_key_constraints.value
|
141
|
+
|
142
|
+
# Validate busy_timeout
|
143
|
+
if self.busy_timeout is not None and (not isinstance(self.busy_timeout, int) or self.busy_timeout < 0):
|
144
|
+
raise OrionisIntegrityException("Invalid 'busy_timeout': must be a non-negative integer (milliseconds) or None.")
|
145
|
+
|
146
|
+
# Validate journal_mode
|
147
|
+
options_journal_mode = SQLiteJournalMode._member_names_
|
148
|
+
if isinstance(self.journal_mode, str):
|
149
|
+
_value = self.journal_mode.upper().strip()
|
150
|
+
if _value not in options_journal_mode:
|
151
|
+
raise OrionisIntegrityException(
|
152
|
+
f"The 'journal_mode' attribute must be a valid option {str(SQLiteJournalMode._member_names_)}"
|
153
|
+
)
|
154
|
+
else:
|
155
|
+
self.journal_mode = SQLiteJournalMode[_value].value
|
156
|
+
else:
|
157
|
+
self.journal_mode = self.journal_mode.value
|
158
|
+
|
159
|
+
# Validate synchronous
|
160
|
+
options_synchronous = SQLiteSynchronous._member_names_
|
161
|
+
if isinstance(self.synchronous, str):
|
162
|
+
_value = self.synchronous.upper().strip()
|
163
|
+
if _value not in options_synchronous:
|
164
|
+
raise OrionisIntegrityException(
|
165
|
+
f"The 'synchronous' attribute must be a valid option {str(SQLiteSynchronous._member_names_)}"
|
166
|
+
)
|
167
|
+
else:
|
168
|
+
self.synchronous = SQLiteSynchronous[_value].value
|
169
|
+
else:
|
170
|
+
self.synchronous = self.synchronous.value
|
171
|
+
|
172
|
+
def toDict(self) -> dict:
|
173
|
+
"""
|
174
|
+
Convert the object to a dictionary representation.
|
175
|
+
Returns:
|
176
|
+
dict: A dictionary representation of the Dataclass object.
|
177
|
+
"""
|
178
|
+
return asdict(self)
|
@@ -0,0 +1,92 @@
|
|
1
|
+
from enum import Enum
|
2
|
+
|
3
|
+
class MySQLCharset(Enum):
|
4
|
+
"""
|
5
|
+
Enumeration of supported MySQL character sets.
|
6
|
+
Each member of this enum represents a valid character set name that can be used in MySQL database configurations.
|
7
|
+
These character sets determine how text is stored and compared in the database.
|
8
|
+
Attributes:
|
9
|
+
ARMSCII8: Armenian Standard Code for Information Interchange, 8-bit.
|
10
|
+
ASCII: US ASCII.
|
11
|
+
BIG5: Big5 Traditional Chinese.
|
12
|
+
BINARY: Binary pseudo charset.
|
13
|
+
CP1250: Windows Central European.
|
14
|
+
CP1251: Windows Cyrillic.
|
15
|
+
CP1256: Windows Arabic.
|
16
|
+
CP1257: Windows Baltic.
|
17
|
+
CP850: DOS West European.
|
18
|
+
CP852: DOS Central European.
|
19
|
+
CP866: DOS Russian.
|
20
|
+
CP932: SJIS for Windows Japanese.
|
21
|
+
DEC8: DEC West European.
|
22
|
+
EUCJPMS: UJIS for Windows Japanese.
|
23
|
+
EUCKR: EUC-KR Korean.
|
24
|
+
GB2312: GB2312 Simplified Chinese.
|
25
|
+
GBK: GBK Simplified Chinese.
|
26
|
+
GEOSTD8: GEOSTD8 Georgian.
|
27
|
+
GREEK: ISO 8859-7 Greek.
|
28
|
+
HEBREW: ISO 8859-8 Hebrew.
|
29
|
+
HP8: HP West European.
|
30
|
+
KEYBCS2: DOS Kamenicky Czech-Slovak.
|
31
|
+
KOI8R: KOI8-R Relcom Russian.
|
32
|
+
KOI8U: KOI8-U Ukrainian.
|
33
|
+
LATIN1: cp1252 West European.
|
34
|
+
LATIN2: ISO 8859-2 Central European.
|
35
|
+
LATIN5: ISO 8859-9 Turkish.
|
36
|
+
LATIN7: ISO 8859-13 Baltic.
|
37
|
+
MACCE: Mac Central European.
|
38
|
+
MACROMAN: Mac West European.
|
39
|
+
SJIS: Shift-JIS Japanese.
|
40
|
+
SWE7: 7bit Swedish.
|
41
|
+
TIS620: TIS620 Thai.
|
42
|
+
UCS2: UCS-2 Unicode.
|
43
|
+
UJIS: EUC-JP Japanese.
|
44
|
+
UTF16: UTF-16 Unicode.
|
45
|
+
UTF16LE: UTF-16LE Unicode.
|
46
|
+
UTF32: UTF-32 Unicode.
|
47
|
+
UTF8: UTF-8 Unicode.
|
48
|
+
UTF8MB3: UTF-8 Unicode (3-byte).
|
49
|
+
UTF8MB4: UTF-8 Unicode (4-byte).
|
50
|
+
"""
|
51
|
+
|
52
|
+
ARMSCII8 = "armscii8"
|
53
|
+
ASCII = "ascii"
|
54
|
+
BIG5 = "big5"
|
55
|
+
BINARY = "binary"
|
56
|
+
CP1250 = "cp1250"
|
57
|
+
CP1251 = "cp1251"
|
58
|
+
CP1256 = "cp1256"
|
59
|
+
CP1257 = "cp1257"
|
60
|
+
CP850 = "cp850"
|
61
|
+
CP852 = "cp852"
|
62
|
+
CP866 = "cp866"
|
63
|
+
CP932 = "cp932"
|
64
|
+
DEC8 = "dec8"
|
65
|
+
EUCJPMS = "eucjpms"
|
66
|
+
EUCKR = "euckr"
|
67
|
+
GB2312 = "gb2312"
|
68
|
+
GBK = "gbk"
|
69
|
+
GEOSTD8 = "geostd8"
|
70
|
+
GREEK = "greek"
|
71
|
+
HEBREW = "hebrew"
|
72
|
+
HP8 = "hp8"
|
73
|
+
KEYBCS2 = "keybcs2"
|
74
|
+
KOI8R = "koi8r"
|
75
|
+
KOI8U = "koi8u"
|
76
|
+
LATIN1 = "latin1"
|
77
|
+
LATIN2 = "latin2"
|
78
|
+
LATIN5 = "latin5"
|
79
|
+
LATIN7 = "latin7"
|
80
|
+
MACCE = "macce"
|
81
|
+
MACROMAN = "macroman"
|
82
|
+
SJIS = "sjis"
|
83
|
+
SWE7 = "swe7"
|
84
|
+
TIS620 = "tis620"
|
85
|
+
UCS2 = "ucs2"
|
86
|
+
UJIS = "ujis"
|
87
|
+
UTF16 = "utf16"
|
88
|
+
UTF16LE = "utf16le"
|
89
|
+
UTF32 = "utf32"
|
90
|
+
UTF8 = "utf8"
|
91
|
+
UTF8MB3 = "utf8mb3"
|
92
|
+
UTF8MB4 = "utf8mb4"
|
@@ -0,0 +1,53 @@
|
|
1
|
+
from enum import Enum
|
2
|
+
|
3
|
+
class MySQLCollation(Enum):
|
4
|
+
"""
|
5
|
+
Enumeration of common MySQL collations.
|
6
|
+
This enum provides a set of string constants representing various MySQL collations,
|
7
|
+
including those for UTF-8, UTF-8MB4, Latin1, ASCII, UCS2, UTF16, and UTF32 character sets.
|
8
|
+
Each member corresponds to a specific collation name as used in MySQL databases.
|
9
|
+
Attributes:
|
10
|
+
UTF8_GENERAL_CI: 'utf8_general_ci' - UTF-8, case-insensitive, general collation.
|
11
|
+
UTF8_UNICODE_CI: 'utf8_unicode_ci' - UTF-8, case-insensitive, Unicode collation.
|
12
|
+
UTF8_BIN: 'utf8_bin' - UTF-8, binary collation.
|
13
|
+
UTF8MB4_GENERAL_CI: 'utf8mb4_general_ci' - UTF-8MB4, case-insensitive, general collation.
|
14
|
+
UTF8MB4_UNICODE_CI: 'utf8mb4_unicode_ci' - UTF-8MB4, case-insensitive, Unicode collation.
|
15
|
+
UTF8MB4_BIN: 'utf8mb4_bin' - UTF-8MB4, binary collation.
|
16
|
+
LATIN1_SWEDISH_CI: 'latin1_swedish_ci' - Latin1, case-insensitive, Swedish collation.
|
17
|
+
LATIN1_GENERAL_CI: 'latin1_general_ci' - Latin1, case-insensitive, general collation.
|
18
|
+
LATIN1_BIN: 'latin1_bin' - Latin1, binary collation.
|
19
|
+
ASCII_GENERAL_CI: 'ascii_general_ci' - ASCII, case-insensitive, general collation.
|
20
|
+
ASCII_BIN: 'ascii_bin' - ASCII, binary collation.
|
21
|
+
UCS2_GENERAL_CI: 'ucs2_general_ci' - UCS2, case-insensitive, general collation.
|
22
|
+
UCS2_UNICODE_CI: 'ucs2_unicode_ci' - UCS2, case-insensitive, Unicode collation.
|
23
|
+
UCS2_BIN: 'ucs2_bin' - UCS2, binary collation.
|
24
|
+
UTF16_GENERAL_CI: 'utf16_general_ci' - UTF-16, case-insensitive, general collation.
|
25
|
+
UTF16_UNICODE_CI: 'utf16_unicode_ci' - UTF-16, case-insensitive, Unicode collation.
|
26
|
+
UTF16_BIN: 'utf16_bin' - UTF-16, binary collation.
|
27
|
+
UTF32_GENERAL_CI: 'utf32_general_ci' - UTF-32, case-insensitive, general collation.
|
28
|
+
UTF32_UNICODE_CI: 'utf32_unicode_ci' - UTF-32, case-insensitive, Unicode collation.
|
29
|
+
UTF32_BIN: 'utf32_bin' - UTF-32, binary collation.
|
30
|
+
Methods:
|
31
|
+
list(): Returns a list of all collation string values defined in the enumeration.
|
32
|
+
"""
|
33
|
+
|
34
|
+
UTF8_GENERAL_CI = "utf8_general_ci"
|
35
|
+
UTF8_UNICODE_CI = "utf8_unicode_ci"
|
36
|
+
UTF8_BIN = "utf8_bin"
|
37
|
+
UTF8MB4_GENERAL_CI = "utf8mb4_general_ci"
|
38
|
+
UTF8MB4_UNICODE_CI = "utf8mb4_unicode_ci"
|
39
|
+
UTF8MB4_BIN = "utf8mb4_bin"
|
40
|
+
LATIN1_SWEDISH_CI = "latin1_swedish_ci"
|
41
|
+
LATIN1_GENERAL_CI = "latin1_general_ci"
|
42
|
+
LATIN1_BIN = "latin1_bin"
|
43
|
+
ASCII_GENERAL_CI = "ascii_general_ci"
|
44
|
+
ASCII_BIN = "ascii_bin"
|
45
|
+
UCS2_GENERAL_CI = "ucs2_general_ci"
|
46
|
+
UCS2_UNICODE_CI = "ucs2_unicode_ci"
|
47
|
+
UCS2_BIN = "ucs2_bin"
|
48
|
+
UTF16_GENERAL_CI = "utf16_general_ci"
|
49
|
+
UTF16_UNICODE_CI = "utf16_unicode_ci"
|
50
|
+
UTF16_BIN = "utf16_bin"
|
51
|
+
UTF32_GENERAL_CI = "utf32_general_ci"
|
52
|
+
UTF32_UNICODE_CI = "utf32_unicode_ci"
|
53
|
+
UTF32_BIN = "utf32_bin"
|
@@ -0,0 +1,18 @@
|
|
1
|
+
from enum import Enum
|
2
|
+
|
3
|
+
class MySQLEngine(Enum):
|
4
|
+
"""
|
5
|
+
Enumeration of supported MySQL storage engines.
|
6
|
+
|
7
|
+
Attributes:
|
8
|
+
INNODB: Default transactional storage engine, supports ACID compliance and foreign keys.
|
9
|
+
MYISAM: Legacy non-transactional storage engine, faster for read-heavy workloads but lacks transaction support.
|
10
|
+
MEMORY: Stores all data in RAM for fast access, data is lost on server restart.
|
11
|
+
NDB: Clustered storage engine designed for distributed MySQL setups.
|
12
|
+
|
13
|
+
Use this enum to specify the desired storage engine when configuring MySQL database tables.
|
14
|
+
"""
|
15
|
+
INNODB = "InnoDB" # Default engine (transactional)
|
16
|
+
MYISAM = "MyISAM" # Legacy engine (non-transactional)
|
17
|
+
MEMORY = "MEMORY" # In-memory storage
|
18
|
+
NDB = "NDB" # Clustered storage engine
|
@@ -0,0 +1,44 @@
|
|
1
|
+
from enum import Enum
|
2
|
+
|
3
|
+
class OracleEncoding(Enum):
|
4
|
+
"""
|
5
|
+
Enumeration of common Oracle database character encodings.
|
6
|
+
|
7
|
+
Each member represents a specific Oracle encoding name, typically used for database character set configuration.
|
8
|
+
The enum values correspond to Oracle's official encoding identifiers.
|
9
|
+
|
10
|
+
Members:
|
11
|
+
AL32UTF8: Unicode UTF-8 (recommended)
|
12
|
+
AR8MSWIN1256: Arabic Windows
|
13
|
+
JA16EUC: Japanese EUC
|
14
|
+
JA16SJIS: Japanese Shift-JIS
|
15
|
+
KO16MSWIN949: Korean Windows
|
16
|
+
TH8TISASCII: Thai
|
17
|
+
TR8MSWIN1254: Turkish Windows
|
18
|
+
WE8ISO8859P1: Western European ISO
|
19
|
+
WE8MSWIN1252: Western European Windows
|
20
|
+
ZHS16GBK: Simplified Chinese GBK
|
21
|
+
ZHT16BIG5: Traditional Chinese Big5
|
22
|
+
ZHT32EUC: Traditional Chinese EUC
|
23
|
+
CL8MSWIN1251: Cyrillic Windows
|
24
|
+
EE8MSWIN1250: Central European Windows
|
25
|
+
EL8MSWIN1253: Greek Windows
|
26
|
+
IW8MSWIN1255: Hebrew Windows
|
27
|
+
"""
|
28
|
+
|
29
|
+
AL32UTF8 = "AL32UTF8" # Unicode UTF-8 (recomendado)
|
30
|
+
AR8MSWIN1256 = "AR8MSWIN1256" # Arabic Windows
|
31
|
+
JA16EUC = "JA16EUC" # Japanese EUC
|
32
|
+
JA16SJIS = "JA16SJIS" # Japanese Shift-JIS
|
33
|
+
KO16MSWIN949 = "KO16MSWIN949" # Korean Windows
|
34
|
+
TH8TISASCII = "TH8TISASCII" # Thai
|
35
|
+
TR8MSWIN1254 = "TR8MSWIN1254" # Turkish Windows
|
36
|
+
WE8ISO8859P1 = "WE8ISO8859P1" # Western European ISO
|
37
|
+
WE8MSWIN1252 = "WE8MSWIN1252" # Western European Windows
|
38
|
+
ZHS16GBK = "ZHS16GBK" # Simplified Chinese GBK
|
39
|
+
ZHT16BIG5 = "ZHT16BIG5" # Traditional Chinese Big5
|
40
|
+
ZHT32EUC = "ZHT32EUC" # Traditional Chinese EUC
|
41
|
+
CL8MSWIN1251 = "CL8MSWIN1251" # Cyrillic Windows
|
42
|
+
EE8MSWIN1250 = "EE8MSWIN1250" # Central European Windows
|
43
|
+
EL8MSWIN1253 = "EL8MSWIN1253" # Greek Windows
|
44
|
+
IW8MSWIN1255 = "IW8MSWIN1255" # Hebrew Windows
|
@@ -0,0 +1,31 @@
|
|
1
|
+
from enum import Enum
|
2
|
+
|
3
|
+
class OracleNencoding(Enum):
|
4
|
+
"""
|
5
|
+
Represents a specific type of Oracle encoding for NCHAR and NVARCHAR2 data types.
|
6
|
+
|
7
|
+
This class inherits from OracleEncoding and can be extended to implement
|
8
|
+
custom behaviors or properties related to Oracle's national character set encoding.
|
9
|
+
|
10
|
+
Attributes:
|
11
|
+
Inherits all attributes from OracleEncoding.
|
12
|
+
|
13
|
+
Methods:
|
14
|
+
Inherits all methods from OracleEncoding.
|
15
|
+
"""
|
16
|
+
AL32UTF8 = "AL32UTF8" # Unicode UTF-8 (recomendado)
|
17
|
+
AR8MSWIN1256 = "AR8MSWIN1256" # Arabic Windows
|
18
|
+
JA16EUC = "JA16EUC" # Japanese EUC
|
19
|
+
JA16SJIS = "JA16SJIS" # Japanese Shift-JIS
|
20
|
+
KO16MSWIN949 = "KO16MSWIN949" # Korean Windows
|
21
|
+
TH8TISASCII = "TH8TISASCII" # Thai
|
22
|
+
TR8MSWIN1254 = "TR8MSWIN1254" # Turkish Windows
|
23
|
+
WE8ISO8859P1 = "WE8ISO8859P1" # Western European ISO
|
24
|
+
WE8MSWIN1252 = "WE8MSWIN1252" # Western European Windows
|
25
|
+
ZHS16GBK = "ZHS16GBK" # Simplified Chinese GBK
|
26
|
+
ZHT16BIG5 = "ZHT16BIG5" # Traditional Chinese Big5
|
27
|
+
ZHT32EUC = "ZHT32EUC" # Traditional Chinese EUC
|
28
|
+
CL8MSWIN1251 = "CL8MSWIN1251" # Cyrillic Windows
|
29
|
+
EE8MSWIN1250 = "EE8MSWIN1250" # Central European Windows
|
30
|
+
EL8MSWIN1253 = "EL8MSWIN1253" # Greek Windows
|
31
|
+
IW8MSWIN1255 = "IW8MSWIN1255" # Hebrew Windows
|