orionis 0.252.0__py3-none-any.whl → 0.265.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.
Files changed (397) hide show
  1. orionis/application.py +6 -0
  2. orionis/framework.py +1 -1
  3. orionis/luminate/{application.py → _application.py} +21 -19
  4. orionis/luminate/{container → _container}/container.py +4 -4
  5. orionis/luminate/{container → _container}/container_integrity.py +2 -2
  6. orionis/luminate/{container → _container}/resolve.py +2 -2
  7. orionis/luminate/{contracts → _contracts}/application.py +2 -2
  8. orionis/luminate/{contracts → _contracts}/console/task_manager.py +1 -1
  9. orionis/luminate/{contracts → _contracts}/facades/commands/scheduler_facade.py +1 -1
  10. orionis/luminate/{contracts → _contracts}/facades/facade.py +4 -3
  11. orionis/luminate/{contracts → _contracts}/foundation/providers/service_providers_bootstrapper.py +2 -2
  12. orionis/luminate/{contracts → _contracts}/providers/service_provider.py +1 -1
  13. orionis/luminate/{facades → _facades}/app_facade.py +2 -2
  14. orionis/luminate/{facades → _facades}/commands/commands_facade.py +3 -3
  15. orionis/luminate/{facades → _facades}/commands/scheduler_facade.py +3 -3
  16. orionis/luminate/{facades → _facades}/config/config_facade.py +3 -3
  17. orionis/luminate/{facades → _facades}/environment/environment_facade.py +3 -3
  18. orionis/luminate/{facades → _facades}/files/path_facade.py +4 -4
  19. orionis/luminate/{facades → _facades}/log/log_facade.py +2 -2
  20. orionis/luminate/{foundation → _foundation}/console/command_bootstrapper.py +2 -2
  21. orionis/luminate/{foundation → _foundation}/environment/environment_bootstrapper.py +3 -3
  22. orionis/luminate/{foundation → _foundation/foundation}/config/config_bootstrapper.py +3 -3
  23. orionis/luminate/{foundation → _foundation}/providers/service_providers_bootstrapper.py +4 -4
  24. orionis/luminate/{providers → _providers}/commands/reactor_commands_service_provider.py +7 -7
  25. orionis/luminate/{providers → _providers}/commands/scheduler_provider.py +3 -3
  26. orionis/luminate/{providers → _providers}/config/config_service_provider.py +3 -3
  27. orionis/luminate/{providers → _providers}/environment/environment__service_provider.py +4 -4
  28. orionis/luminate/_providers/files/paths_provider.py +21 -0
  29. orionis/luminate/{providers → _providers}/log/log_service_provider.py +5 -5
  30. orionis/luminate/{providers → _providers}/service_provider.py +2 -2
  31. orionis/luminate/{services_ → _services}/commands/reactor_commands_service.py +3 -3
  32. orionis/luminate/{services_ → _services}/commands/scheduler_service.py +1 -1
  33. orionis/luminate/{services_ → _services}/config/config_service.py +1 -1
  34. orionis/luminate/{services_ → _services}/log/log_service.py +1 -1
  35. orionis/luminate/app.py +19 -0
  36. orionis/luminate/console/base/command.py +1 -1
  37. orionis/luminate/console/command_filter.py +1 -1
  38. orionis/luminate/console/commands/help.py +1 -1
  39. orionis/luminate/console/commands/schedule_work.py +2 -2
  40. orionis/luminate/console/dumper/dump_die.py +1 -1
  41. orionis/luminate/console/kernel.py +1 -1
  42. orionis/luminate/console/output/console.py +3 -3
  43. orionis/luminate/console/output/executor.py +1 -1
  44. orionis/luminate/console/output/progress_bar.py +1 -1
  45. orionis/luminate/console/parser.py +1 -1
  46. orionis/luminate/{config → foundation/config}/app/entities/app.py +44 -43
  47. orionis/luminate/{config → foundation/config}/auth/entities/auth.py +9 -1
  48. orionis/luminate/foundation/config/cache/entities/cache.py +74 -0
  49. orionis/luminate/foundation/config/cache/entities/file.py +46 -0
  50. orionis/luminate/foundation/config/cache/entities/stores.py +46 -0
  51. orionis/luminate/{contracts/config → foundation/config/contracts}/config.py +8 -12
  52. orionis/luminate/foundation/config/cors/entities/cors.py +129 -0
  53. orionis/luminate/foundation/config/database/entities/connections.py +89 -0
  54. orionis/luminate/foundation/config/database/entities/database.py +62 -0
  55. orionis/luminate/foundation/config/database/entities/mysql.py +270 -0
  56. orionis/luminate/foundation/config/database/entities/oracle.py +227 -0
  57. orionis/luminate/foundation/config/database/entities/pgsql.py +189 -0
  58. orionis/luminate/foundation/config/database/entities/sqlite.py +178 -0
  59. orionis/luminate/foundation/config/database/enums/mysql_charsets.py +92 -0
  60. orionis/luminate/foundation/config/database/enums/mysql_collations.py +53 -0
  61. orionis/luminate/foundation/config/database/enums/mysql_engine.py +18 -0
  62. orionis/luminate/foundation/config/database/enums/oracle_encoding.py +44 -0
  63. orionis/luminate/foundation/config/database/enums/oracle_nencoding.py +31 -0
  64. orionis/luminate/foundation/config/database/enums/pgsql_charsets.py +90 -0
  65. orionis/luminate/foundation/config/database/enums/pgsql_collations.py +26 -0
  66. orionis/luminate/foundation/config/database/enums/pgsql_mode.py +24 -0
  67. orionis/luminate/foundation/config/database/enums/sqlite_foreign_key.py +12 -0
  68. orionis/luminate/foundation/config/database/enums/sqlite_journal.py +22 -0
  69. orionis/luminate/foundation/config/database/enums/sqlite_synchronous.py +16 -0
  70. orionis/luminate/foundation/config/filesystems/entitites/aws.py +134 -0
  71. orionis/luminate/foundation/config/filesystems/entitites/disks.py +68 -0
  72. orionis/luminate/foundation/config/filesystems/entitites/filesystems.py +53 -0
  73. orionis/luminate/foundation/config/filesystems/entitites/local.py +39 -0
  74. orionis/luminate/foundation/config/filesystems/entitites/public.py +52 -0
  75. orionis/luminate/foundation/config/logging/entities/channels.py +115 -0
  76. orionis/luminate/foundation/config/logging/entities/chunked.py +128 -0
  77. orionis/luminate/foundation/config/logging/entities/daily.py +113 -0
  78. orionis/luminate/foundation/config/logging/entities/hourly.py +100 -0
  79. orionis/luminate/foundation/config/logging/entities/logging.py +51 -0
  80. orionis/luminate/foundation/config/logging/entities/monthly.py +100 -0
  81. orionis/luminate/foundation/config/logging/entities/stack.py +74 -0
  82. orionis/luminate/foundation/config/logging/entities/weekly.py +102 -0
  83. orionis/luminate/foundation/config/logging/enums/levels.py +21 -0
  84. orionis/luminate/foundation/config/mail/entities/file.py +41 -0
  85. orionis/luminate/foundation/config/mail/entities/mail.py +56 -0
  86. orionis/luminate/foundation/config/mail/entities/mailers.py +54 -0
  87. orionis/luminate/foundation/config/mail/entities/smtp.py +104 -0
  88. orionis/luminate/foundation/config/queue/entities/brokers.py +55 -0
  89. orionis/luminate/foundation/config/queue/entities/database.py +107 -0
  90. orionis/luminate/foundation/config/queue/entities/queue.py +47 -0
  91. orionis/luminate/foundation/config/queue/enums/strategy.py +15 -0
  92. orionis/luminate/foundation/config/roots/paths.py +446 -0
  93. orionis/luminate/foundation/config/session/entities/session.py +147 -0
  94. orionis/luminate/foundation/config/session/enums/same_site_policy.py +14 -0
  95. orionis/luminate/foundation/config/session/helpers/secret_key.py +16 -0
  96. orionis/luminate/foundation/config/startup.py +203 -0
  97. orionis/luminate/foundation/config/testing/entities/__init__.py +0 -0
  98. orionis/luminate/{config → foundation/config/testing}/entities/testing.py +36 -20
  99. orionis/luminate/foundation/config/testing/enums/__init__.py +0 -0
  100. orionis/luminate/foundation/config/testing/enums/test_mode.py +12 -0
  101. orionis/luminate/patterns/__init__.py +0 -4
  102. orionis/luminate/patterns/singleton/__init__.py +0 -10
  103. orionis/luminate/services/asynchrony/__init__.py +0 -0
  104. orionis/luminate/services/asynchrony/async_io.py +31 -0
  105. orionis/luminate/services/environment/__init__.py +0 -10
  106. orionis/luminate/services/environment/contracts/__init__.py +0 -5
  107. orionis/luminate/services/environment/contracts/env.py +0 -11
  108. orionis/luminate/services/environment/dot_env.py +87 -163
  109. orionis/luminate/services/environment/env.py +0 -11
  110. orionis/luminate/services/introspection/__init__.py +0 -0
  111. orionis/luminate/services/introspection/abstracts/__init__.py +0 -0
  112. orionis/luminate/services/introspection/abstracts/entities/__init__.py +0 -0
  113. orionis/luminate/services/introspection/abstracts/entities/abstract_class_attributes.py +37 -0
  114. orionis/luminate/{support → services}/introspection/abstracts/reflect_abstract.py +1 -1
  115. orionis/luminate/services/introspection/dependencies/__init__.py +0 -0
  116. orionis/luminate/services/introspection/dependencies/contracts/__init__.py +0 -0
  117. orionis/luminate/{support → services}/introspection/dependencies/contracts/reflect_dependencies.py +2 -2
  118. orionis/luminate/services/introspection/dependencies/entities/__init__.py +0 -0
  119. orionis/luminate/services/introspection/dependencies/entities/class_dependencies.py +41 -0
  120. orionis/luminate/services/introspection/dependencies/entities/method_dependencies.py +42 -0
  121. orionis/luminate/services/introspection/dependencies/entities/resolved_dependencies.py +49 -0
  122. orionis/luminate/{support → services}/introspection/dependencies/reflect_dependencies.py +4 -4
  123. orionis/luminate/services/parsers/__init__.py +0 -0
  124. orionis/luminate/services/parsers/contracts/__init__.py +0 -0
  125. orionis/luminate/{support/parsers/exception_parser.py → services/parsers/exception.py} +1 -1
  126. orionis/luminate/services/parsers/serializer.py +15 -0
  127. orionis/luminate/services/paths/__init__.py +0 -9
  128. orionis/luminate/services/paths/resolver.py +1 -1
  129. orionis/luminate/services/standard/__init__.py +0 -0
  130. orionis/luminate/services/standard/contracts/__init__.py +0 -0
  131. orionis/luminate/{support → services}/standard/std.py +1 -1
  132. orionis/luminate/services/system/__init__.py +0 -0
  133. orionis/luminate/services/system/contracts/__init__.py +0 -0
  134. orionis/luminate/services/system/contracts/imports.py +31 -0
  135. orionis/luminate/services/system/contracts/workers.py +18 -0
  136. orionis/luminate/services/system/imports.py +124 -0
  137. orionis/luminate/services/system/runtime_imports.py +70 -0
  138. orionis/luminate/services/{workers/maximum_workers.py → system/workers.py} +2 -1
  139. orionis/luminate/services/wrapper/__init__.py +0 -0
  140. orionis/luminate/services/wrapper/dicts/__init__.py +0 -0
  141. orionis/luminate/services/wrapper/dicts/dot_dict.py +115 -0
  142. orionis/luminate/support/introspection/__init__.py +0 -5
  143. orionis/luminate/support/introspection/container_integrity.py +2 -2
  144. orionis/luminate/support/introspection/instances/__init__.py +0 -5
  145. orionis/luminate/support/introspection/reflection.py +1 -1
  146. orionis/luminate/test/__init__.py +0 -23
  147. orionis/luminate/test/cases/test_async.py +41 -9
  148. orionis/luminate/test/cases/test_case.py +27 -13
  149. orionis/luminate/test/cases/test_sync.py +28 -6
  150. orionis/luminate/test/output/contracts/{test_std_out.py → dumper.py} +2 -1
  151. orionis/luminate/test/output/{test_std_out.py → dumper.py} +7 -4
  152. orionis/luminate/test/suites/__init__.py +0 -0
  153. orionis/luminate/test/suites/contracts/__init__.py +0 -0
  154. orionis/luminate/test/suites/contracts/test_suite.py +23 -0
  155. orionis/luminate/test/suites/test_suite.py +101 -0
  156. orionis/luminate/test/{core → suites}/test_unit.py +16 -8
  157. orionis/unittesting.py +43 -0
  158. {orionis-0.252.0.dist-info → orionis-0.265.0.dist-info}/METADATA +19 -3
  159. orionis-0.265.0.dist-info/RECORD +440 -0
  160. {orionis-0.252.0.dist-info → orionis-0.265.0.dist-info}/WHEEL +1 -1
  161. orionis-0.265.0.dist-info/entry_points.txt +2 -0
  162. orionis-0.265.0.dist-info/zip-safe +1 -0
  163. tests/example/test_example.py +1 -1
  164. tests/foundation/__init__.py +0 -0
  165. tests/foundation/config/__init__.py +0 -0
  166. tests/foundation/config/app/__init__.py +0 -0
  167. tests/foundation/config/app/test_app.py +140 -0
  168. tests/foundation/config/auth/__init__.py +0 -0
  169. tests/{config → foundation/config/auth}/test_auth.py +6 -3
  170. tests/foundation/config/cache/__init__.py +0 -0
  171. tests/foundation/config/cache/test_cache.py +98 -0
  172. tests/foundation/config/cache/test_cache_file.py +78 -0
  173. tests/foundation/config/cache/test_cache_stores.py +88 -0
  174. tests/foundation/config/cors/__init__.py +0 -0
  175. tests/foundation/config/cors/test_cors.py +121 -0
  176. tests/foundation/config/database/__init__.py +0 -0
  177. tests/foundation/config/database/test_database.py +108 -0
  178. tests/foundation/config/database/test_database_connections.py +129 -0
  179. tests/foundation/config/database/test_database_mysql.py +231 -0
  180. tests/foundation/config/database/test_database_oracle.py +204 -0
  181. tests/foundation/config/database/test_database_pgsql.py +187 -0
  182. tests/foundation/config/database/test_database_sqlite.py +153 -0
  183. tests/foundation/config/exceptions/__init__.py +0 -0
  184. tests/foundation/config/exceptions/test_exceptions_integrity.py +83 -0
  185. tests/foundation/config/filesystems/__init__.py +0 -0
  186. tests/foundation/config/filesystems/test_filesystems.py +110 -0
  187. tests/foundation/config/filesystems/test_filesystems_aws.py +133 -0
  188. tests/foundation/config/filesystems/test_filesystems_disks.py +114 -0
  189. tests/foundation/config/filesystems/test_filesystems_local.py +95 -0
  190. tests/foundation/config/filesystems/test_filesystems_public.py +120 -0
  191. tests/foundation/config/logging/__init__.py +0 -0
  192. tests/foundation/config/logging/test_logging.py +48 -0
  193. tests/foundation/config/logging/test_logging_channels.py +157 -0
  194. tests/foundation/config/logging/test_logging_chunked.py +166 -0
  195. tests/foundation/config/logging/test_logging_daily.py +153 -0
  196. tests/foundation/config/logging/test_logging_hourly.py +131 -0
  197. tests/foundation/config/logging/test_logging_monthly.py +133 -0
  198. tests/foundation/config/logging/test_logging_stack.py +124 -0
  199. tests/foundation/config/logging/test_logging_weekly.py +133 -0
  200. tests/foundation/config/mail/__init__.py +0 -0
  201. tests/foundation/config/mail/test_mail.py +73 -0
  202. tests/foundation/config/mail/test_mail_file.py +61 -0
  203. tests/foundation/config/mail/test_mail_mailers.py +58 -0
  204. tests/foundation/config/mail/test_mail_smtp.py +102 -0
  205. tests/foundation/config/queue/__init__.py +0 -0
  206. tests/foundation/config/queue/test_queue.py +58 -0
  207. tests/foundation/config/queue/test_queue_brokers.py +67 -0
  208. tests/foundation/config/queue/test_queue_database.py +95 -0
  209. tests/foundation/config/root/__init__.py +0 -0
  210. tests/foundation/config/root/test_root_paths.py +134 -0
  211. tests/foundation/config/session/__init__.py +0 -0
  212. tests/foundation/config/session/test_session.py +138 -0
  213. tests/foundation/config/startup/__init__.py +0 -0
  214. tests/foundation/config/startup/test_config_startup.py +134 -0
  215. tests/foundation/config/testing/__init__.py +0 -0
  216. tests/foundation/config/testing/test_testing.py +167 -0
  217. tests/patterns/singleton/test_singleton.py +2 -2
  218. tests/services/asynchrony/__init__.py +0 -0
  219. tests/{support/async_io/test_async_coroutine.py → services/asynchrony/test_async_io.py} +6 -5
  220. tests/services/environment/test_env.py +155 -33
  221. tests/services/inspection/__init__.py +0 -0
  222. tests/services/inspection/dependencies/__init__.py +0 -0
  223. tests/services/inspection/dependencies/mocks/__init__.py +0 -0
  224. tests/services/inspection/dependencies/mocks/mock_user.py +30 -0
  225. tests/services/inspection/dependencies/mocks/mock_user_controller.py +27 -0
  226. tests/services/inspection/dependencies/mocks/mock_users_permissions.py +41 -0
  227. tests/services/inspection/dependencies/test_reflect_dependencies.py +94 -0
  228. tests/services/parsers/__init__.py +0 -0
  229. tests/services/parsers/mocks/__init__.py +0 -0
  230. tests/services/parsers/mocks/mock_custom_error.py +15 -0
  231. tests/{support → services}/parsers/test_exception_parser.py +8 -8
  232. tests/services/path/__init__.py +0 -0
  233. tests/services/path/test_resolver.py +73 -0
  234. tests/services/standard/__init__.py +0 -0
  235. tests/services/standard/test_std.py +127 -0
  236. tests/services/wrapper/__init__.py +0 -0
  237. tests/services/wrapper/test_wrapper_doc_dict.py +129 -0
  238. tests/testing/__init__.py +0 -0
  239. tests/testing/test_testing_result.py +92 -0
  240. tests/testing/test_testing_unit.py +138 -0
  241. orionis/luminate/config/app/__init__.py +0 -10
  242. orionis/luminate/config/auth/__init__.py +0 -7
  243. orionis/luminate/config/cache/__init__.py +0 -9
  244. orionis/luminate/config/cache/entities/cache.py +0 -58
  245. orionis/luminate/config/cache/entities/file.py +0 -29
  246. orionis/luminate/config/cache/entities/stores.py +0 -35
  247. orionis/luminate/config/entities/cors.py +0 -58
  248. orionis/luminate/config/entities/database.py +0 -204
  249. orionis/luminate/config/entities/filesystems.py +0 -98
  250. orionis/luminate/config/entities/logging.py +0 -157
  251. orionis/luminate/config/entities/mail.py +0 -76
  252. orionis/luminate/config/entities/queue.py +0 -62
  253. orionis/luminate/config/entities/session.py +0 -58
  254. orionis/luminate/providers/files/paths_provider.py +0 -20
  255. orionis/luminate/services/workers/__init__.py +0 -10
  256. orionis/luminate/support/adapters/dot_dict.py +0 -29
  257. orionis/luminate/support/asynchrony/async_io.py +0 -40
  258. orionis/luminate/support/asynchrony/contracts/async_coroutine.py +0 -26
  259. orionis/luminate/support/introspection/abstracts/entities/abstract_class_attributes.py +0 -11
  260. orionis/luminate/support/introspection/dependencies/__init__.py +0 -5
  261. orionis/luminate/support/introspection/dependencies/entities/class_dependencies.py +0 -11
  262. orionis/luminate/support/introspection/dependencies/entities/method_dependencies.py +0 -11
  263. orionis/luminate/support/introspection/dependencies/entities/resolved_dependencies.py +0 -12
  264. orionis/luminate/support/paths/contracts/resolver.py +0 -67
  265. orionis/luminate/support/paths/resolver.py +0 -83
  266. orionis/luminate/test/core/contracts/test_suite.py +0 -30
  267. orionis/luminate/test/core/test_suite.py +0 -93
  268. orionis-0.252.0.dist-info/RECORD +0 -318
  269. orionis-0.252.0.dist-info/entry_points.txt +0 -2
  270. tests/config/test_app.py +0 -122
  271. tests/config/test_cache.py +0 -20
  272. tests/support/adapters/fakes/fake_dict.py +0 -15
  273. tests/support/adapters/test_doct_dict.py +0 -21
  274. tests/support/inspection/fakes/fake_reflect_dependencies.py +0 -25
  275. tests/support/inspection/test_reflect_dependencies.py +0 -67
  276. tests/support/parsers/fakes/fake_custom_error.py +0 -27
  277. tests/support/path/test_resolver.py +0 -33
  278. tests/support/standard/test_std.py +0 -62
  279. /orionis/{console.py → clinstall.py} +0 -0
  280. /orionis/luminate/{config → _container}/__init__.py +0 -0
  281. /orionis/luminate/{container → _container}/exception.py +0 -0
  282. /orionis/luminate/{container → _container}/lifetimes.py +0 -0
  283. /orionis/luminate/{config/app/entities → _contracts}/__init__.py +0 -0
  284. /orionis/luminate/{config/app/enums → _contracts/config}/__init__.py +0 -0
  285. /orionis/luminate/{config/contracts → _contracts/config}/config.py +0 -0
  286. /orionis/luminate/{config/auth/entities → _contracts/console}/__init__.py +0 -0
  287. /orionis/luminate/{config/cache/entities → _contracts/console/base}/__init__.py +0 -0
  288. /orionis/luminate/{contracts → _contracts}/console/base/command.py +0 -0
  289. /orionis/luminate/{contracts → _contracts}/console/command_filter.py +0 -0
  290. /orionis/luminate/{contracts → _contracts}/console/kernel.py +0 -0
  291. /orionis/luminate/{config/cache/enums → _contracts/console/output}/__init__.py +0 -0
  292. /orionis/luminate/{contracts → _contracts}/console/output/console.py +0 -0
  293. /orionis/luminate/{contracts → _contracts}/console/output/executor.py +0 -0
  294. /orionis/luminate/{contracts → _contracts}/console/output/progress_bar.py +0 -0
  295. /orionis/luminate/{contracts → _contracts}/console/parser.py +0 -0
  296. /orionis/luminate/{contracts → _contracts}/container/container.py +0 -0
  297. /orionis/luminate/{contracts → _contracts}/container/container_integrity.py +0 -0
  298. /orionis/luminate/{config/contracts → _contracts/facades}/__init__.py +0 -0
  299. /orionis/luminate/{config/exceptions → _contracts/facades/commands}/__init__.py +0 -0
  300. /orionis/luminate/{contracts → _contracts}/facades/commands/commands_facade.py +0 -0
  301. /orionis/luminate/{container → _contracts/facades/config}/__init__.py +0 -0
  302. /orionis/luminate/{contracts → _contracts}/facades/config/config_facade.py +0 -0
  303. /orionis/luminate/{contracts → _contracts/facades/environment}/__init__.py +0 -0
  304. /orionis/luminate/{contracts → _contracts}/facades/environment/environment_facade.py +0 -0
  305. /orionis/luminate/{contracts/config → _contracts/facades/files}/__init__.py +0 -0
  306. /orionis/luminate/{contracts → _contracts}/facades/files/path_facade.py +0 -0
  307. /orionis/luminate/{contracts/console → _contracts/facades/log}/__init__.py +0 -0
  308. /orionis/luminate/{contracts → _contracts}/facades/log/log_facade.py +0 -0
  309. /orionis/luminate/{contracts/console/base → _contracts/facades/tests}/__init__.py +0 -0
  310. /orionis/luminate/{contracts → _contracts}/facades/tests/tests_facade.py +0 -0
  311. /orionis/luminate/{contracts/console/output → _contracts/foundation}/__init__.py +0 -0
  312. /orionis/luminate/{contracts → _contracts}/foundation/bootstraper.py +0 -0
  313. /orionis/luminate/{contracts/facades → _contracts/foundation/config}/__init__.py +0 -0
  314. /orionis/luminate/{contracts → _contracts}/foundation/config/config_bootstrapper.py +0 -0
  315. /orionis/luminate/{contracts/facades/commands → _contracts/foundation/console}/__init__.py +0 -0
  316. /orionis/luminate/{contracts → _contracts}/foundation/console/command_bootstrapper.py +0 -0
  317. /orionis/luminate/{contracts/facades/config → _contracts/foundation/environment}/__init__.py +0 -0
  318. /orionis/luminate/{contracts → _contracts}/foundation/environment/environment_bootstrapper.py +0 -0
  319. /orionis/luminate/{contracts/facades/environment → _contracts/foundation/providers}/__init__.py +0 -0
  320. /orionis/luminate/{contracts/facades/files → _contracts/providers}/__init__.py +0 -0
  321. /orionis/luminate/{contracts/facades/log → _contracts/services}/__init__.py +0 -0
  322. /orionis/luminate/{contracts/facades/tests → _contracts/services/commands}/__init__.py +0 -0
  323. /orionis/luminate/{contracts → _contracts}/services/commands/reactor_commands_service.py +0 -0
  324. /orionis/luminate/{contracts → _contracts}/services/commands/schedule_service.py +0 -0
  325. /orionis/luminate/{contracts/foundation → _contracts/services/config}/__init__.py +0 -0
  326. /orionis/luminate/{contracts → _contracts}/services/config/config_service.py +0 -0
  327. /orionis/luminate/{contracts/foundation/config → _contracts/services/environment}/__init__.py +0 -0
  328. /orionis/luminate/{contracts → _contracts}/services/environment/environment_service.py +0 -0
  329. /orionis/luminate/{contracts/foundation/console → _contracts/services/files}/__init__.py +0 -0
  330. /orionis/luminate/{contracts → _contracts}/services/files/path_resolver_service.py +0 -0
  331. /orionis/luminate/{contracts/foundation/environment → _contracts/services/log}/__init__.py +0 -0
  332. /orionis/luminate/{contracts → _contracts}/services/log/log_service.py +0 -0
  333. /orionis/luminate/{contracts → _contracts}/support/exception_parse.py +0 -0
  334. /orionis/luminate/{contracts → _contracts}/support/reflection.py +0 -0
  335. /orionis/luminate/{contracts/foundation/providers → _facades}/__init__.py +0 -0
  336. /orionis/luminate/{contracts/providers → _facades/commands}/__init__.py +0 -0
  337. /orionis/luminate/{contracts/services → _facades/config}/__init__.py +0 -0
  338. /orionis/luminate/{contracts/services/commands → _facades/environment}/__init__.py +0 -0
  339. /orionis/luminate/{contracts/services/config → _facades/files}/__init__.py +0 -0
  340. /orionis/luminate/{contracts/services/environment → _facades/log}/__init__.py +0 -0
  341. /orionis/luminate/{contracts/services/files → _foundation}/__init__.py +0 -0
  342. /orionis/luminate/{contracts/services/log → _foundation/console}/__init__.py +0 -0
  343. /orionis/luminate/{facades → _foundation/environment}/__init__.py +0 -0
  344. /orionis/luminate/{facades/commands → _foundation/exceptions}/__init__.py +0 -0
  345. /orionis/luminate/{foundation → _foundation}/exceptions/exception_bootstrapper.py +0 -0
  346. /orionis/luminate/{foundation → _foundation}/exceptions/exception_providers.py +0 -0
  347. /orionis/luminate/{facades → _foundation/foundation}/config/__init__.py +0 -0
  348. /orionis/luminate/{facades/environment → _foundation/providers}/__init__.py +0 -0
  349. /orionis/luminate/{facades/files → _providers}/__init__.py +0 -0
  350. /orionis/luminate/{facades/log → _providers/commands}/__init__.py +0 -0
  351. /orionis/luminate/{foundation/console → _providers/config}/__init__.py +0 -0
  352. /orionis/luminate/{foundation → _providers}/environment/__init__.py +0 -0
  353. /orionis/luminate/{foundation/exceptions → _providers/files}/__init__.py +0 -0
  354. /orionis/luminate/{foundation/providers → _providers/log}/__init__.py +0 -0
  355. /orionis/luminate/{providers → _services}/__init__.py +0 -0
  356. /orionis/luminate/{providers → _services}/commands/__init__.py +0 -0
  357. /orionis/luminate/{providers → _services}/config/__init__.py +0 -0
  358. /orionis/luminate/{providers/environment → _services/log}/__init__.py +0 -0
  359. /orionis/luminate/{providers/files → foundation/config/app}/__init__.py +0 -0
  360. /orionis/luminate/{providers/log → foundation/config/app/entities}/__init__.py +0 -0
  361. /orionis/luminate/{services_ → foundation/config/app/enums}/__init__.py +0 -0
  362. /orionis/luminate/{config → foundation/config}/app/enums/ciphers.py +0 -0
  363. /orionis/luminate/{config → foundation/config}/app/enums/environments.py +0 -0
  364. /orionis/luminate/{services_/commands → foundation/config/auth}/__init__.py +0 -0
  365. /orionis/luminate/{services_/config → foundation/config/auth/entities}/__init__.py +0 -0
  366. /orionis/luminate/{services_/log → foundation/config/cache}/__init__.py +0 -0
  367. /orionis/luminate/{support/adapters → foundation/config/cache/entities}/__init__.py +0 -0
  368. /orionis/luminate/{support/asynchrony → foundation/config/cache/enums}/__init__.py +0 -0
  369. /orionis/luminate/{config → foundation/config}/cache/enums/drivers.py +0 -0
  370. /orionis/luminate/{support/asynchrony → foundation/config}/contracts/__init__.py +0 -0
  371. /orionis/luminate/{support/introspection/abstracts → foundation/config/cors}/__init__.py +0 -0
  372. /orionis/luminate/{support/introspection/abstracts → foundation/config/cors}/entities/__init__.py +0 -0
  373. /orionis/luminate/{support/introspection/dependencies/contracts → foundation/config/database}/__init__.py +0 -0
  374. /orionis/luminate/{support/introspection/dependencies → foundation/config/database}/entities/__init__.py +0 -0
  375. /orionis/luminate/{support/parsers → foundation/config/database/enums}/__init__.py +0 -0
  376. /orionis/luminate/{support/parsers/contracts → foundation/config/exceptions}/__init__.py +0 -0
  377. /orionis/luminate/{config/exceptions/integrity_exception.py → foundation/config/exceptions/integrity.py} +0 -0
  378. /orionis/luminate/{support/paths → foundation/config/filesystems}/__init__.py +0 -0
  379. /orionis/luminate/{support/paths/contracts → foundation/config/filesystems/entitites}/__init__.py +0 -0
  380. /orionis/luminate/{support/standard → foundation/config/logging}/__init__.py +0 -0
  381. /orionis/luminate/{support/standard/contracts → foundation/config/logging/entities}/__init__.py +0 -0
  382. /orionis/luminate/{test/core → foundation/config/logging/enums}/__init__.py +0 -0
  383. /orionis/luminate/{test/core/contracts → foundation/config/mail}/__init__.py +0 -0
  384. {tests/config → orionis/luminate/foundation/config/mail/entities}/__init__.py +0 -0
  385. {tests/support/adapters → orionis/luminate/foundation/config/queue}/__init__.py +0 -0
  386. {tests/support/adapters/fakes → orionis/luminate/foundation/config/queue/entities}/__init__.py +0 -0
  387. {tests/support/async_io → orionis/luminate/foundation/config/roots}/__init__.py +0 -0
  388. {tests/support/parsers → orionis/luminate/foundation/config/session}/__init__.py +0 -0
  389. {tests/support/parsers/fakes → orionis/luminate/foundation/config/session/entities}/__init__.py +0 -0
  390. {tests/support/path → orionis/luminate/foundation/config/session/enums}/__init__.py +0 -0
  391. {tests/support/standard → orionis/luminate/foundation/config/testing}/__init__.py +0 -0
  392. /orionis/luminate/{support → services}/parsers/contracts/exception_parser.py +0 -0
  393. /orionis/luminate/{support → services}/standard/contracts/std.py +0 -0
  394. /orionis/luminate/test/exceptions/{test_exception.py → test_failure_exception.py} +0 -0
  395. /orionis/luminate/test/{core → suites}/contracts/test_unit.py +0 -0
  396. {orionis-0.252.0.dist-info → orionis-0.265.0.dist-info/licenses}/LICENCE +0 -0
  397. {orionis-0.252.0.dist-info → orionis-0.265.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