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
@@ -1,9 +0,0 @@
1
- from orionis.luminate.services.paths.resolver import Resolver
2
-
3
- __all__ = [
4
- "Resolver",
5
- ]
6
- __author__ = "Raúl Mauricio Uñate Castro"
7
- __description__ = (
8
- "This module provides a Resolver class that is used to resolve paths in the Orionis Framework application. "
9
- )
@@ -1,6 +1,6 @@
1
1
  import os
2
2
  from pathlib import Path
3
- from orionis.luminate.support.paths.contracts.resolver import IResolver
3
+ from orionis.luminate.services.paths.contracts.resolver import IResolver
4
4
 
5
5
  class Resolver(IResolver):
6
6
  """
File without changes
@@ -1,4 +1,4 @@
1
- from orionis.luminate.support.standard.contracts.std import IStdClass
1
+ from orionis.luminate.services.standard.contracts.std import IStdClass
2
2
 
3
3
  class StdClass(IStdClass):
4
4
  """
File without changes
File without changes
@@ -0,0 +1,31 @@
1
+ from abc import ABC, abstractmethod
2
+
3
+ class IImports(ABC):
4
+ """
5
+ Interface for a utility to collect and display information about currently loaded Python modules.
6
+ """
7
+
8
+ @abstractmethod
9
+ def collect(self):
10
+ """
11
+ Collects information about user-defined Python modules currently loaded in sys.modules.
12
+ Returns:
13
+ IImports: The current instance with updated imports information.
14
+ """
15
+ pass
16
+
17
+ @abstractmethod
18
+ def display(self) -> None:
19
+ """
20
+ Displays a formatted table of collected import statements.
21
+ Returns:
22
+ None
23
+ """
24
+ pass
25
+
26
+ @abstractmethod
27
+ def clear(self) -> None:
28
+ """
29
+ Clears the collected imports list.
30
+ """
31
+ pass
@@ -0,0 +1,18 @@
1
+ from abc import ABC, abstractmethod
2
+
3
+ class IWorkers(ABC):
4
+ """
5
+ Interface - Calculates the optimal number of workers a machine can handle based on CPU and memory resources.
6
+ """
7
+
8
+ @abstractmethod
9
+ def calculate(self) -> int:
10
+ """
11
+ Computes the maximum number of workers supported by the current machine.
12
+
13
+ Returns
14
+ -------
15
+ int
16
+ The recommended number of worker processes based on CPU and memory limits.
17
+ """
18
+ pass
@@ -0,0 +1,124 @@
1
+ from typing import List, Dict, Any
2
+ from orionis.luminate.services.system.contracts.imports import IImports
3
+
4
+ class Imports(IImports):
5
+ """
6
+ A utility class to collect and display information about currently loaded Python modules.
7
+ """
8
+
9
+ def __init__(self):
10
+ """
11
+ Initializes the Imports object with an empty list to store module information.
12
+ """
13
+ self.imports: List[Dict[str, Any]] = []
14
+
15
+ def collect(self) -> 'Imports':
16
+ """
17
+ Collects information about user-defined (non-standard library, non-venv) Python modules currently loaded in sys.modules.
18
+ For each qualifying module, gathers:
19
+ - The module's name.
20
+ - The relative file path to the module from the current working directory.
21
+ - A list of symbols (functions, classes, or submodules) defined in the module.
22
+ Excludes:
23
+ - Modules from the standard library.
24
+ - Modules from the active virtual environment (if any).
25
+ - Binary extension modules (.pyd, .dll, .so).
26
+ - Special modules like "__main__", "__mp_main__", and modules starting with "_distutils".
27
+ The collected information is stored in self.imports as a list of dictionaries.
28
+ Returns:
29
+ Imports: The current instance with updated imports information.
30
+ """
31
+
32
+ import sys
33
+ import os
34
+ import types
35
+
36
+ self.imports.clear()
37
+ stdlib_paths = [os.path.dirname(os.__file__)]
38
+ venv_path = os.environ.get("VIRTUAL_ENV")
39
+ if venv_path:
40
+ venv_path = os.path.abspath(venv_path)
41
+
42
+ for name, module in sys.modules.items():
43
+ file:str = getattr(module, '__file__', None)
44
+
45
+ if (
46
+ file
47
+ and not any(file.startswith(stdlib_path) for stdlib_path in stdlib_paths)
48
+ and (not venv_path or not file.startswith(venv_path))
49
+ and not file.lower().endswith(('.pyd', '.dll', '.so'))
50
+ and name not in ("__main__", "__mp_main__")
51
+ and not name.startswith("_distutils")
52
+ ):
53
+ rel_file = os.path.relpath(file, os.getcwd())
54
+ symbols = []
55
+
56
+ try:
57
+ for attr in dir(module):
58
+ value = getattr(module, attr)
59
+ if isinstance(value, (types.FunctionType, type, types.ModuleType)):
60
+ if getattr(value, '__module__', None) == name:
61
+ symbols.append(attr)
62
+ except Exception:
63
+ pass
64
+
65
+ if not rel_file.endswith('__init__.py') and symbols:
66
+ self.imports.append({
67
+ "name": name,
68
+ "file": rel_file,
69
+ "symbols": symbols,
70
+ })
71
+
72
+ return self
73
+
74
+ def display(self) -> None:
75
+ """
76
+ Displays a formatted table of collected import statements using the Rich library.
77
+ If the imports have not been collected yet, it calls self.collect() to gather them.
78
+ The table includes columns for the import name, file, and imported symbols, and is
79
+ rendered inside a styled panel in the console.
80
+ Returns:
81
+ None
82
+ """
83
+
84
+ if not self.imports:
85
+ self.collect()
86
+
87
+ from rich.console import Console
88
+ from rich.table import Table
89
+ from rich.box import MINIMAL
90
+ from rich.panel import Panel
91
+
92
+ console = Console()
93
+ width = int(console.size.width * 0.75)
94
+
95
+ table = Table(
96
+ box=MINIMAL,
97
+ show_header=True,
98
+ show_edge=False,
99
+ pad_edge=False,
100
+ min_width=width,
101
+ padding=(0, 1),
102
+ collapse_padding=True,
103
+ )
104
+
105
+ table.add_column("Name", style="cyan", no_wrap=True)
106
+ table.add_column("File", style="white")
107
+ table.add_column("Symbols", style="magenta")
108
+
109
+ for imp in sorted(self.imports, key=lambda x: x["name"].lower()):
110
+ symbols_str = ", ".join(imp["symbols"])
111
+ table.add_row(imp["name"], imp["file"], symbols_str)
112
+
113
+ console.print(Panel(
114
+ table,
115
+ title="[bold blue]🔎 Loaded Python Modules (Orionis Imports Trace)[/bold blue]",
116
+ border_style="blue",
117
+ width=width
118
+ ))
119
+
120
+ def clear(self) -> None:
121
+ """
122
+ Clears the collected imports list.
123
+ """
124
+ self.imports.clear()
@@ -0,0 +1,70 @@
1
+ """
2
+ orionis.luminate.services.system.runtime_imports
3
+
4
+ This module overrides Python's built-in import mechanism to monitor and log
5
+ the number of times modules from the 'orionis' package are imported.
6
+
7
+ Each time a module whose name starts with 'orionis' is imported, a message is printed
8
+ showing:
9
+ - The module name
10
+ - The number of times it has been imported
11
+ - The fromlist used in the import
12
+
13
+ Thread safety is ensured using a lock.
14
+
15
+ Usage:
16
+ Import this module at the very beginning of your application to enable import tracking
17
+ for 'orionis' modules. No further configuration is required.
18
+
19
+ Example output:
20
+ Module: orionis.example | Imported: 2 | FromList: ('submodule',)
21
+
22
+ Note:
23
+ This affects the global import system for the current Python process.
24
+ To disable, restore builtins.__import__ to its original value.
25
+ """
26
+ import builtins
27
+ from collections import defaultdict
28
+ from threading import Lock
29
+
30
+ # Store the original __import__ function
31
+ _original_import = builtins.__import__
32
+
33
+ # Dictionary to count imports per module
34
+ _import_count = defaultdict(int)
35
+
36
+ # Lock to ensure thread safety
37
+ _import_lock = Lock()
38
+
39
+ def custom_import(name, globals=None, locals=None, fromlist=(), level=0):
40
+ """
41
+ Custom import function that tracks imports of 'orionis' modules.
42
+
43
+ Args:
44
+ name (str): The name of the module to import.
45
+ globals (dict, optional): The global namespace.
46
+ locals (dict, optional): The local namespace.
47
+ fromlist (tuple, optional): Names to import from the module.
48
+ level (int, optional): Relative import level.
49
+
50
+ Returns:
51
+ The imported module.
52
+ """
53
+ # Check if the module name starts with 'orionis'
54
+ if str(name).startswith("orionis"):
55
+ with _import_lock:
56
+ _import_count[name] += 1
57
+ count = _import_count[name]
58
+
59
+ # Print the import details
60
+ print(
61
+ f"\033[1;37mModule\033[0m: \033[90m{name}\033[0m | "
62
+ f"\033[1;37mImported\033[0m: \033[90m{count}\033[0m | "
63
+ f"\033[1;37mFromList\033[0m: \033[90m{fromlist}\033[0m"
64
+ )
65
+
66
+ # Call the original import function
67
+ return _original_import(name, globals, locals, fromlist, level)
68
+
69
+ # Override the built-in __import__ function
70
+ builtins.__import__ = custom_import
@@ -1,8 +1,9 @@
1
1
  import multiprocessing
2
2
  import math
3
3
  import psutil
4
+ from orionis.luminate.services.system.contracts.workers import IWorkers
4
5
 
5
- class MaximumWorkers:
6
+ class Workers(IWorkers):
6
7
  """
7
8
  Calculates the optimal number of workers a machine can handle based on CPU and memory resources.
8
9
 
File without changes
File without changes
@@ -0,0 +1,115 @@
1
+ from typing import Any, Optional, Dict
2
+
3
+ class DotDict(dict):
4
+ """
5
+ A dictionary subclass that allows attribute-style access to keys, with full support for nested dictionaries.
6
+ Nested dicts are automatically converted to DotDict instances, enabling recursive dot notation.
7
+ Missing keys return None instead of raising AttributeError or KeyError.
8
+ """
9
+
10
+ __slots__ = ()
11
+
12
+ def __getattr__(self, key: str) -> Optional[Any]:
13
+ """
14
+ Retrieve the value associated with the given key as an attribute.
15
+ If the value is a dictionary (but not already a DotDict), it is converted to a DotDict and updated in-place.
16
+ Returns None if the key does not exist.
17
+ Args:
18
+ key (str): The attribute name to retrieve.
19
+ Returns:
20
+ Optional[Any]: The value associated with the key, converted to DotDict if applicable, or None if the key is not found.
21
+ """
22
+
23
+ try:
24
+ value = self[key]
25
+ if isinstance(value, dict) and not isinstance(value, DotDict):
26
+ value = DotDict(value)
27
+ self[key] = value
28
+ return value
29
+ except KeyError:
30
+ return None
31
+
32
+ def __setattr__(self, key: str, value: Any) -> None:
33
+ """
34
+ Sets an attribute on the DotDict instance.
35
+
36
+ If the value assigned is a dictionary (but not already a DotDict), it is automatically converted into a DotDict.
37
+ The attribute is stored as a key-value pair in the underlying dictionary.
38
+
39
+ Args:
40
+ key (str): The attribute name to set.
41
+ value (Any): The value to assign to the attribute. If it's a dict, it will be converted to a DotDict.
42
+
43
+ """
44
+ if isinstance(value, dict) and not isinstance(value, DotDict):
45
+ value = DotDict(value)
46
+ self[key] = value
47
+
48
+ def __delattr__(self, key: str) -> None:
49
+ """
50
+ Deletes the attribute with the specified key from the dictionary.
51
+
52
+ Args:
53
+ key (str): The name of the attribute to delete.
54
+
55
+ Raises:
56
+ AttributeError: If the attribute does not exist.
57
+ """
58
+ try:
59
+ del self[key]
60
+ except KeyError as e:
61
+ raise AttributeError(f"'{self.__class__.__name__}' has no attribute '{key}'") from e
62
+
63
+ def get(self, key: str, default: Optional[Any] = None) -> Optional[Any]:
64
+ """
65
+ Retrieve the value associated with the given key, returning a default value if the key is not found.
66
+
67
+ If the retrieved value is a plain dictionary (not a DotDict), it is converted to a DotDict,
68
+ stored back in the dictionary, and then returned.
69
+
70
+ Args:
71
+ key (str): The key to look up in the dictionary.
72
+ default (Optional[Any], optional): The value to return if the key is not found. Defaults to None.
73
+
74
+ Returns:
75
+ Optional[Any]: The value associated with the key, converted to a DotDict if it is a dict,
76
+ or the default value if the key is not present.
77
+ """
78
+ value = super().get(key, default)
79
+ if isinstance(value, dict) and not isinstance(value, DotDict):
80
+ value = DotDict(value)
81
+ self[key] = value
82
+ return value
83
+
84
+ def export(self) -> Dict[str, Any]:
85
+ """
86
+ Recursively exports the contents of the DotDict as a standard dictionary.
87
+
88
+ Returns:
89
+ Dict[str, Any]: A dictionary representation of the DotDict, where any nested DotDict instances
90
+ are also converted to dictionaries via their own export method.
91
+ """
92
+ return {k: v.export() if isinstance(v, DotDict) else v for k, v in self.items()}
93
+
94
+ def copy(self) -> 'DotDict':
95
+ """
96
+ Create a deep copy of the DotDict instance.
97
+
98
+ Returns:
99
+ DotDict: A new DotDict object with recursively copied contents.
100
+ Nested DotDict and dict instances are also copied to ensure no shared references.
101
+ """
102
+ return DotDict({k: v.copy() if isinstance(v, DotDict) else (DotDict(v) if isinstance(v, dict) else v)
103
+ for k, v in self.items()})
104
+
105
+ def __repr__(self) -> str:
106
+ """
107
+ Return a string representation of the DotDict instance.
108
+
109
+ This method overrides the default __repr__ implementation to provide a more informative
110
+ string that includes the class name 'DotDict' and the representation of the underlying dictionary.
111
+
112
+ Returns:
113
+ str: A string representation of the DotDict object.
114
+ """
115
+ return f"DotDict({super().__repr__()})"
@@ -1,5 +0,0 @@
1
- from orionis.luminate.support.introspection.reflection import Reflection
2
-
3
- __all__ = [
4
- "Reflection"
5
- ]
@@ -2,8 +2,8 @@ import re
2
2
  import inspect
3
3
  from abc import ABC
4
4
  from typing import Any, Callable, Set, Type
5
- from orionis.luminate.container.exception import OrionisContainerValueError, OrionisContainerTypeError
6
- from orionis.luminate.contracts.container.container_integrity import IContainerIntegrity
5
+ from orionis.luminate._container.exception import OrionisContainerValueError, OrionisContainerTypeError
6
+ from orionis.luminate._contracts.container.container_integrity import IContainerIntegrity
7
7
 
8
8
  class ContainerIntegrity(IContainerIntegrity):
9
9
 
@@ -1,5 +0,0 @@
1
- from orionis.luminate.support.introspection.instances.reflection_instance import ReflectionInstance
2
-
3
- __all__ = [
4
- "ReflectionInstance",
5
- ]
@@ -1,6 +1,6 @@
1
1
  import abc
2
2
  from typing import Any, Type, TypeVar
3
- from orionis.luminate.contracts.support.reflection import IReflection
3
+ from orionis.luminate._contracts.support.reflection import IReflection
4
4
  from orionis.luminate.support.introspection.helpers.functions import HelpersReflection
5
5
  from orionis.luminate.support.introspection.abstracts.reflect_abstract import ReflexionAbstract
6
6
  from orionis.luminate.support.introspection.reflexion_concrete import ReflexionConcrete
@@ -1,23 +0,0 @@
1
- from orionis.luminate.test.cases.test_async import AsyncTestCase
2
- from orionis.luminate.test.cases.test_case import TestCase
3
- from orionis.luminate.test.cases.test_sync import SyncTestCase
4
- from orionis.luminate.test.core.test_suite import TestSuite
5
- from orionis.luminate.test.core.test_unit import UnitTest
6
-
7
- __all__ = [
8
- "TestSuite",
9
- "UnitTest",
10
- "AsyncTestCase",
11
- "TestCase",
12
- "SyncTestCase",
13
- ]
14
- __author__ = "Raúl Mauricio Uñate Castro"
15
- __description__ = (
16
- "Orionis Framework - Component Test Suites is a microframework "
17
- "for creating unit and integration tests. "
18
- "It allows you to write tests quickly and easily, "
19
- "using a clear and concise syntax. "
20
- "Supports both asynchronous and synchronous tests, "
21
- "as well as the creation of test suites and parallel test execution. "
22
- "It uses Python's native unittest module for test creation."
23
- )
@@ -1,23 +1,55 @@
1
1
  import unittest
2
- from orionis.luminate.test.output.test_std_out import TestStdOut
2
+ from orionis.luminate.test.output.dumper import TestDumper
3
3
 
4
- class AsyncTestCase(unittest.IsolatedAsyncioTestCase, TestStdOut):
4
+ class AsyncTestCase(unittest.IsolatedAsyncioTestCase, TestDumper):
5
5
  """
6
- AsyncTestCase is a test case class designed for asynchronous unit testing.
7
- It inherits from `unittest.IsolatedAsyncioTestCase` to provide support for
8
- async test methods and `TestStdOut` for additional functionality.
6
+ Base test case for async unit tests.
9
7
  """
10
8
 
11
9
  async def asyncSetUp(self):
12
10
  """
13
- Asynchronous setup method called before each test.
14
- It ensures that the parent class's asyncSetUp method is invoked to initialize
11
+ Asynchronous setup method for test cases.
12
+
13
+ This method is called before each test coroutine is run. It first calls the parent
14
+ class's asyncSetUp method to perform any necessary setup defined in the superclass,
15
+ then calls the onAsyncSetup coroutine for additional setup specific to this test case.
16
+
17
+ Override onAsyncSetup to implement custom asynchronous setup logic.
18
+
19
+ Returns:
20
+ Awaitable: Completes when setup is finished.
15
21
  """
16
22
  await super().asyncSetUp()
23
+ await self.onAsyncSetup()
17
24
 
18
25
  async def asyncTearDown(self):
19
26
  """
20
27
  Asynchronous teardown method called after each test.
21
- It ensures that the parent class's asyncTearDown method is invoked to clean up
28
+
29
+ This method performs any necessary asynchronous cleanup by first calling
30
+ `onAsyncTeardown()` for custom teardown logic, then invoking the superclass's
31
+ `asyncTearDown()` to ensure proper teardown in the class hierarchy.
32
+ """
33
+ await self.onAsyncTeardown()
34
+ await super().asyncTearDown()
35
+
36
+ async def onAsyncSetup(self):
37
+ """
38
+ Asynchronous setup method to be executed before running tests.
39
+
40
+ This method can be overridden to perform any asynchronous initialization
41
+ required for the test case. By default, it does nothing.
42
+
43
+ Returns:
44
+ None
45
+ """
46
+ pass
47
+
48
+ async def onAsyncTeardown(self):
49
+ """
50
+ Asynchronous teardown method to be executed after each test case.
51
+
52
+ This method can be overridden to perform any necessary cleanup operations
53
+ that need to run asynchronously after the completion of a test case.
22
54
  """
23
- await super().asyncTearDown()
55
+ pass
@@ -1,28 +1,42 @@
1
1
  import unittest
2
- from orionis.luminate.test.output.test_std_out import TestStdOut
2
+ from orionis.luminate.test.output.dumper import TestDumper
3
3
 
4
- class TestCase(unittest.IsolatedAsyncioTestCase, TestStdOut):
4
+ class TestCase(unittest.IsolatedAsyncioTestCase, TestDumper):
5
5
  """
6
- A base test case class for asynchronous unit tests.
7
- Inherits from:
8
- unittest.IsolatedAsyncioTestCase: Provides support for asynchronous test methods and setup/teardown.
9
- TestStdOut: Mixin for capturing or testing standard output during tests.
10
- This class defines asynchronous setup and teardown methods to ensure proper initialization and cleanup
11
- of resources before and after each test case.
6
+ Base test case for async unit tests.
12
7
  """
13
8
 
14
9
  async def asyncSetUp(self):
15
10
  """
16
11
  Asynchronous setup method called before each test.
17
- It ensures that the parent class's asyncSetUp method is invoked to initialize
18
- any required resources.
12
+
13
+ This method first calls the parent class's asyncSetUp method to ensure any inherited setup logic is executed.
14
+ Then, it calls the onAsyncSetup method, which can be used to perform additional asynchronous setup specific to this test case.
15
+
16
+ Override this method to customize asynchronous setup behavior for your tests.
19
17
  """
20
18
  await super().asyncSetUp()
19
+ await self.onAsyncSetup()
21
20
 
22
21
  async def asyncTearDown(self):
23
22
  """
24
23
  Asynchronous teardown method called after each test.
25
- It ensures that the parent class's asyncTearDown method is invoked to clean up
26
- any resources used during the test.
24
+
25
+ This method performs any necessary asynchronous cleanup by first invoking
26
+ the custom `onAsyncTeardown` coroutine, followed by the superclass's
27
+ `asyncTearDown` method to ensure proper teardown in the test lifecycle.
28
+ """
29
+ await self.onAsyncTeardown()
30
+ await super().asyncTearDown()
31
+
32
+ async def onAsyncSetup(self):
33
+ """
34
+ Hook for subclasses to add async setup logic.
35
+ """
36
+ pass
37
+
38
+ async def onAsyncTeardown(self):
39
+ """
40
+ Hook for subclasses to add async teardown logic.
27
41
  """
28
- await super().asyncTearDown()
42
+ pass
@@ -1,11 +1,33 @@
1
1
  import unittest
2
- from orionis.luminate.test.output.test_std_out import TestStdOut
2
+ from orionis.luminate.test.output.dumper import TestDumper
3
3
 
4
- class SyncTestCase(unittest.TestCase, TestStdOut):
4
+ class SyncTestCase(unittest.TestCase, TestDumper):
5
5
  """
6
- SyncTestCase is a test case class designed for synchronous unit testing.
7
- It inherits from `unittest.TestCase` to provide support for standard test methods
8
- and `TestStdOut` for additional functionality.
6
+ Base test case for sync unit tests.
9
7
  """
10
8
 
11
- pass
9
+ def setUp(self):
10
+ """
11
+ Synchronous setup method called before each test.
12
+ """
13
+ super().setUp()
14
+ self.onSetup()
15
+
16
+ def tearDown(self):
17
+ """
18
+ Synchronous teardown method called after each test.
19
+ """
20
+ self.onTeardown()
21
+ super().tearDown()
22
+
23
+ def onSetup(self):
24
+ """
25
+ Hook for subclasses to add setup logic.
26
+ """
27
+ pass
28
+
29
+ def onTeardown(self):
30
+ """
31
+ Hook for subclasses to add teardown logic.
32
+ """
33
+ pass
@@ -1,5 +1,6 @@
1
1
  from abc import ABC, abstractmethod
2
- class ITestStdOut(ABC):
2
+
3
+ class ITestDumper(ABC):
3
4
  """
4
5
  Interface for standard output debugging utilities.
5
6
  This interface defines methods for dumping debugging information, capturing the caller's file, method, and line number, and utilizing a Debug class to output the information. Implementations should provide mechanisms to output or log the provided arguments for debugging purposes