orionis 0.218.0__tar.gz → 0.220.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (250) hide show
  1. {orionis-0.218.0/orionis.egg-info → orionis-0.220.0}/PKG-INFO +1 -1
  2. {orionis-0.218.0 → orionis-0.220.0}/orionis/framework.py +1 -1
  3. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/application.py +1 -1
  4. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/container/resolve.py +1 -1
  5. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/contracts/facades/facade.py +1 -1
  6. orionis-0.220.0/orionis/luminate/support/async_io/async_coroutine.py +48 -0
  7. orionis-0.220.0/orionis/luminate/support/async_io/contracts/async_coroutine.py +31 -0
  8. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/support/standard/std.py +0 -9
  9. orionis-0.220.0/orionis/luminate/test/contracts/test_std_out.py +17 -0
  10. orionis-0.220.0/orionis/luminate/test/contracts/test_suite.py +37 -0
  11. orionis-0.220.0/orionis/luminate/test/contracts/test_unit.py +82 -0
  12. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/test/test_std_out.py +2 -1
  13. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/test/test_suite.py +2 -1
  14. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/test/test_unit.py +2 -1
  15. {orionis-0.218.0 → orionis-0.220.0/orionis.egg-info}/PKG-INFO +1 -1
  16. {orionis-0.218.0 → orionis-0.220.0}/orionis.egg-info/SOURCES.txt +15 -2
  17. orionis-0.220.0/tests/support/adapters/fakes/fake_dict.py +15 -0
  18. orionis-0.220.0/tests/support/adapters/test_doct_dict.py +21 -0
  19. orionis-0.220.0/tests/support/async_io/__init__.py +0 -0
  20. orionis-0.220.0/tests/support/async_io/test_async_coroutine.py +38 -0
  21. orionis-0.220.0/tests/support/inspection/__init__.py +0 -0
  22. orionis-0.220.0/tests/support/inspection/fakes/__init__.py +0 -0
  23. orionis-0.220.0/tests/support/parsers/__init__.py +0 -0
  24. orionis-0.220.0/tests/support/parsers/fakes/__init__.py +0 -0
  25. orionis-0.220.0/tests/support/standard/__init__.py +0 -0
  26. orionis-0.218.0/orionis/luminate/support/asyn_run.py +0 -41
  27. {orionis-0.218.0 → orionis-0.220.0}/LICENCE +0 -0
  28. {orionis-0.218.0 → orionis-0.220.0}/MANIFEST.in +0 -0
  29. {orionis-0.218.0 → orionis-0.220.0}/README.md +0 -0
  30. {orionis-0.218.0 → orionis-0.220.0}/orionis/__init__.py +0 -0
  31. {orionis-0.218.0 → orionis-0.220.0}/orionis/console.py +0 -0
  32. {orionis-0.218.0 → orionis-0.220.0}/orionis/installer/__init__.py +0 -0
  33. {orionis-0.218.0 → orionis-0.220.0}/orionis/installer/contracts/__init__.py +0 -0
  34. {orionis-0.218.0 → orionis-0.220.0}/orionis/installer/contracts/manager.py +0 -0
  35. {orionis-0.218.0 → orionis-0.220.0}/orionis/installer/contracts/output.py +0 -0
  36. {orionis-0.218.0 → orionis-0.220.0}/orionis/installer/contracts/setup.py +0 -0
  37. {orionis-0.218.0 → orionis-0.220.0}/orionis/installer/manager.py +0 -0
  38. {orionis-0.218.0 → orionis-0.220.0}/orionis/installer/output.py +0 -0
  39. {orionis-0.218.0 → orionis-0.220.0}/orionis/installer/setup.py +0 -0
  40. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/__init__.py +0 -0
  41. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/config/__init__.py +0 -0
  42. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/config/app.py +0 -0
  43. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/config/auth.py +0 -0
  44. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/config/cache.py +0 -0
  45. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/config/cors.py +0 -0
  46. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/config/database.py +0 -0
  47. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/config/filesystems.py +0 -0
  48. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/config/logging.py +0 -0
  49. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/config/mail.py +0 -0
  50. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/config/queue.py +0 -0
  51. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/config/session.py +0 -0
  52. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/console/__init__.py +0 -0
  53. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/console/base/__init__.py +0 -0
  54. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/console/base/command.py +0 -0
  55. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/console/command_filter.py +0 -0
  56. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/console/commands/__init__.py +0 -0
  57. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/console/commands/cache_clear.py +0 -0
  58. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/console/commands/help.py +0 -0
  59. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/console/commands/schedule_work.py +0 -0
  60. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/console/commands/version.py +0 -0
  61. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/console/exceptions/__init__.py +0 -0
  62. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/console/exceptions/cli-orionis-value-error.py +0 -0
  63. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/console/exceptions/cli_exception.py +0 -0
  64. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/console/exceptions/cli_runtime_error.py +0 -0
  65. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/console/exceptions/cli_schedule_exception.py +0 -0
  66. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/console/kernel.py +0 -0
  67. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/console/output/__init__.py +0 -0
  68. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/console/output/console.py +0 -0
  69. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/console/output/executor.py +0 -0
  70. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/console/output/progress_bar.py +0 -0
  71. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/console/output/styles.py +0 -0
  72. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/console/parser.py +0 -0
  73. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/container/__init__.py +0 -0
  74. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/container/container.py +0 -0
  75. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/container/container_integrity.py +0 -0
  76. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/container/exception.py +0 -0
  77. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/container/lifetimes.py +0 -0
  78. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/contracts/__init__.py +0 -0
  79. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/contracts/application.py +0 -0
  80. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/contracts/config/__init__.py +0 -0
  81. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/contracts/config/config.py +0 -0
  82. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/contracts/console/__init__.py +0 -0
  83. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/contracts/console/base/__init__.py +0 -0
  84. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/contracts/console/base/command.py +0 -0
  85. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/contracts/console/command_filter.py +0 -0
  86. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/contracts/console/kernel.py +0 -0
  87. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/contracts/console/output/__init__.py +0 -0
  88. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/contracts/console/output/console.py +0 -0
  89. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/contracts/console/output/executor.py +0 -0
  90. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/contracts/console/output/progress_bar.py +0 -0
  91. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/contracts/console/parser.py +0 -0
  92. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/contracts/console/task_manager.py +0 -0
  93. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/contracts/container/container.py +0 -0
  94. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/contracts/container/container_integrity.py +0 -0
  95. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/contracts/facades/__init__.py +0 -0
  96. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/contracts/facades/commands/__init__.py +0 -0
  97. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/contracts/facades/commands/commands_facade.py +0 -0
  98. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/contracts/facades/commands/scheduler_facade.py +0 -0
  99. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/contracts/facades/config/__init__.py +0 -0
  100. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/contracts/facades/config/config_facade.py +0 -0
  101. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/contracts/facades/environment/__init__.py +0 -0
  102. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/contracts/facades/environment/environment_facade.py +0 -0
  103. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/contracts/facades/files/__init__.py +0 -0
  104. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/contracts/facades/files/path_facade.py +0 -0
  105. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/contracts/facades/log/__init__.py +0 -0
  106. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/contracts/facades/log/log_facade.py +0 -0
  107. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/contracts/facades/tests/__init__.py +0 -0
  108. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/contracts/facades/tests/tests_facade.py +0 -0
  109. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/contracts/foundation/__init__.py +0 -0
  110. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/contracts/foundation/bootstraper.py +0 -0
  111. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/contracts/foundation/config/__init__.py +0 -0
  112. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/contracts/foundation/config/config_bootstrapper.py +0 -0
  113. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/contracts/foundation/console/__init__.py +0 -0
  114. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/contracts/foundation/console/command_bootstrapper.py +0 -0
  115. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/contracts/foundation/environment/__init__.py +0 -0
  116. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/contracts/foundation/environment/environment_bootstrapper.py +0 -0
  117. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/contracts/foundation/providers/__init__.py +0 -0
  118. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/contracts/foundation/providers/service_providers_bootstrapper.py +0 -0
  119. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/contracts/providers/__init__.py +0 -0
  120. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/contracts/providers/service_provider.py +0 -0
  121. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/contracts/services/__init__.py +0 -0
  122. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/contracts/services/commands/__init__.py +0 -0
  123. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/contracts/services/commands/reactor_commands_service.py +0 -0
  124. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/contracts/services/commands/schedule_service.py +0 -0
  125. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/contracts/services/config/__init__.py +0 -0
  126. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/contracts/services/config/config_service.py +0 -0
  127. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/contracts/services/environment/__init__.py +0 -0
  128. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/contracts/services/environment/environment_service.py +0 -0
  129. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/contracts/services/files/__init__.py +0 -0
  130. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/contracts/services/files/path_resolver_service.py +0 -0
  131. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/contracts/services/log/__init__.py +0 -0
  132. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/contracts/services/log/log_service.py +0 -0
  133. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/contracts/support/exception_parse.py +0 -0
  134. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/contracts/support/reflection.py +0 -0
  135. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/facades/__init__.py +0 -0
  136. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/facades/app_facade.py +0 -0
  137. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/facades/commands/__init__.py +0 -0
  138. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/facades/commands/commands_facade.py +0 -0
  139. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/facades/commands/scheduler_facade.py +0 -0
  140. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/facades/config/__init__.py +0 -0
  141. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/facades/config/config_facade.py +0 -0
  142. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/facades/environment/__init__.py +0 -0
  143. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/facades/environment/environment_facade.py +0 -0
  144. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/facades/files/__init__.py +0 -0
  145. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/facades/files/path_facade.py +0 -0
  146. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/facades/log/__init__.py +0 -0
  147. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/facades/log/log_facade.py +0 -0
  148. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/foundation/__init__.py +0 -0
  149. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/foundation/config/__init__.py +0 -0
  150. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/foundation/config/config_bootstrapper.py +0 -0
  151. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/foundation/console/__init__.py +0 -0
  152. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/foundation/console/command_bootstrapper.py +0 -0
  153. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/foundation/environment/__init__.py +0 -0
  154. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/foundation/environment/environment_bootstrapper.py +0 -0
  155. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/foundation/exceptions/__init__.py +0 -0
  156. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/foundation/exceptions/exception_bootstrapper.py +0 -0
  157. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/foundation/exceptions/exception_providers.py +0 -0
  158. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/foundation/providers/__init__.py +0 -0
  159. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/foundation/providers/service_providers_bootstrapper.py +0 -0
  160. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/patterns/__init__.py +0 -0
  161. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/patterns/singleton.py +0 -0
  162. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/providers/__init__.py +0 -0
  163. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/providers/commands/__init__.py +0 -0
  164. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/providers/commands/reactor_commands_service_provider.py +0 -0
  165. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/providers/commands/scheduler_provider.py +0 -0
  166. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/providers/config/__init__.py +0 -0
  167. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/providers/config/config_service_provider.py +0 -0
  168. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/providers/environment/__init__.py +0 -0
  169. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/providers/environment/environment__service_provider.py +0 -0
  170. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/providers/files/__init__.py +0 -0
  171. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/providers/files/paths_provider.py +0 -0
  172. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/providers/log/__init__.py +0 -0
  173. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/providers/log/log_service_provider.py +0 -0
  174. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/providers/service_provider.py +0 -0
  175. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/services/__init__.py +0 -0
  176. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/services/commands/__init__.py +0 -0
  177. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/services/commands/reactor_commands_service.py +0 -0
  178. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/services/commands/scheduler_service.py +0 -0
  179. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/services/config/__init__.py +0 -0
  180. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/services/config/config_service.py +0 -0
  181. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/services/environment/__init__.py +0 -0
  182. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/services/environment/environment_service.py +0 -0
  183. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/services/files/__init__.py +0 -0
  184. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/services/files/path_resolver_service.py +0 -0
  185. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/services/log/__init__.py +0 -0
  186. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/services/log/log_service.py +0 -0
  187. {orionis-0.218.0/orionis/luminate/support/inspection → orionis-0.220.0/orionis/luminate/support/adapters}/__init__.py +0 -0
  188. {orionis-0.218.0/orionis/luminate/support → orionis-0.220.0/orionis/luminate/support/adapters}/dot_dict.py +0 -0
  189. {orionis-0.218.0/orionis/luminate/support/inspection/contracts → orionis-0.220.0/orionis/luminate/support/async_io}/__init__.py +0 -0
  190. {orionis-0.218.0/orionis/luminate/support/parsers → orionis-0.220.0/orionis/luminate/support/inspection}/__init__.py +0 -0
  191. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/support/inspection/container_integrity.py +0 -0
  192. {orionis-0.218.0/orionis/luminate/support/parsers → orionis-0.220.0/orionis/luminate/support/inspection}/contracts/__init__.py +0 -0
  193. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/support/inspection/contracts/reflection.py +0 -0
  194. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/support/inspection/contracts/reflexion_abstract.py +0 -0
  195. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/support/inspection/functions.py +0 -0
  196. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/support/inspection/reflection.py +0 -0
  197. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/support/inspection/reflexion_abstract.py +0 -0
  198. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/support/inspection/reflexion_concrete.py +0 -0
  199. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/support/inspection/reflexion_concrete_with_abstract.py +0 -0
  200. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/support/inspection/reflexion_instance.py +0 -0
  201. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/support/inspection/reflexion_instance_with_abstract.py +0 -0
  202. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/support/inspection/reflexion_module.py +0 -0
  203. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/support/inspection/reflexion_module_with_classname.py +0 -0
  204. {orionis-0.218.0/orionis/luminate/support/standard → orionis-0.220.0/orionis/luminate/support/parsers}/__init__.py +0 -0
  205. {orionis-0.218.0/orionis/luminate/support/standard → orionis-0.220.0/orionis/luminate/support/parsers}/contracts/__init__.py +0 -0
  206. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/support/parsers/contracts/exception_parser.py +0 -0
  207. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/support/parsers/exception_parser.py +0 -0
  208. {orionis-0.218.0/orionis/luminate/test → orionis-0.220.0/orionis/luminate/support/standard}/__init__.py +0 -0
  209. {orionis-0.218.0/tests → orionis-0.220.0/orionis/luminate/support/standard/contracts}/__init__.py +0 -0
  210. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/support/standard/contracts/std.py +0 -0
  211. {orionis-0.218.0/tests/example → orionis-0.220.0/orionis/luminate/test}/__init__.py +0 -0
  212. {orionis-0.218.0/tests/support → orionis-0.220.0/orionis/luminate/test/contracts}/__init__.py +0 -0
  213. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/test/test_case.py +0 -0
  214. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/test/test_exception.py +0 -0
  215. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/test/test_result.py +0 -0
  216. {orionis-0.218.0 → orionis-0.220.0}/orionis/luminate/test/test_status.py +0 -0
  217. {orionis-0.218.0 → orionis-0.220.0}/orionis/static/ascii/icon.ascii +0 -0
  218. {orionis-0.218.0 → orionis-0.220.0}/orionis/static/ascii/info.ascii +0 -0
  219. {orionis-0.218.0 → orionis-0.220.0}/orionis/static/bg/galaxy.jpg +0 -0
  220. {orionis-0.218.0 → orionis-0.220.0}/orionis/static/favicon/OrionisFrameworkFavicon.png +0 -0
  221. {orionis-0.218.0 → orionis-0.220.0}/orionis/static/logos/OrionisFramework.jpg +0 -0
  222. {orionis-0.218.0 → orionis-0.220.0}/orionis/static/logos/OrionisFramework.png +0 -0
  223. {orionis-0.218.0 → orionis-0.220.0}/orionis/static/logos/OrionisFramework.psd +0 -0
  224. {orionis-0.218.0 → orionis-0.220.0}/orionis/static/logos/OrionisFramework2.png +0 -0
  225. {orionis-0.218.0 → orionis-0.220.0}/orionis/static/logos/OrionisFramework3.png +0 -0
  226. {orionis-0.218.0 → orionis-0.220.0}/orionis.egg-info/dependency_links.txt +0 -0
  227. {orionis-0.218.0 → orionis-0.220.0}/orionis.egg-info/entry_points.txt +0 -0
  228. {orionis-0.218.0 → orionis-0.220.0}/orionis.egg-info/requires.txt +0 -0
  229. {orionis-0.218.0 → orionis-0.220.0}/orionis.egg-info/top_level.txt +0 -0
  230. {orionis-0.218.0 → orionis-0.220.0}/setup.cfg +0 -0
  231. {orionis-0.218.0 → orionis-0.220.0}/setup.py +0 -0
  232. {orionis-0.218.0/tests/support/inspection → orionis-0.220.0/tests}/__init__.py +0 -0
  233. {orionis-0.218.0/tests/support/inspection/fakes → orionis-0.220.0/tests/example}/__init__.py +0 -0
  234. {orionis-0.218.0 → orionis-0.220.0}/tests/example/test_example.py +0 -0
  235. {orionis-0.218.0/tests/support/parsers → orionis-0.220.0/tests/support}/__init__.py +0 -0
  236. {orionis-0.218.0/tests/support/parsers/fakes → orionis-0.220.0/tests/support/adapters}/__init__.py +0 -0
  237. {orionis-0.218.0/tests/support/standard → orionis-0.220.0/tests/support/adapters/fakes}/__init__.py +0 -0
  238. {orionis-0.218.0 → orionis-0.220.0}/tests/support/inspection/fakes/fake_reflection_abstract.py +0 -0
  239. {orionis-0.218.0 → orionis-0.220.0}/tests/support/inspection/fakes/fake_reflection_concrete.py +0 -0
  240. {orionis-0.218.0 → orionis-0.220.0}/tests/support/inspection/fakes/fake_reflection_concrete_with_abstract.py +0 -0
  241. {orionis-0.218.0 → orionis-0.220.0}/tests/support/inspection/fakes/fake_reflection_instance.py +0 -0
  242. {orionis-0.218.0 → orionis-0.220.0}/tests/support/inspection/fakes/fake_reflection_instance_with_abstract.py +0 -0
  243. {orionis-0.218.0 → orionis-0.220.0}/tests/support/inspection/test_reflection_abstract.py +0 -0
  244. {orionis-0.218.0 → orionis-0.220.0}/tests/support/inspection/test_reflection_concrete.py +0 -0
  245. {orionis-0.218.0 → orionis-0.220.0}/tests/support/inspection/test_reflection_concrete_with_abstract.py +0 -0
  246. {orionis-0.218.0 → orionis-0.220.0}/tests/support/inspection/test_reflection_instance.py +0 -0
  247. {orionis-0.218.0 → orionis-0.220.0}/tests/support/inspection/test_reflection_instance_with_abstract.py +0 -0
  248. {orionis-0.218.0 → orionis-0.220.0}/tests/support/parsers/fakes/fake_custom_error.py +0 -0
  249. {orionis-0.218.0 → orionis-0.220.0}/tests/support/parsers/test_exception_parser.py +0 -0
  250. {orionis-0.218.0 → orionis-0.220.0}/tests/support/standard/test_std.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: orionis
3
- Version: 0.218.0
3
+ Version: 0.220.0
4
4
  Summary: Orionis Framework – Elegant, Fast, and Powerful.
5
5
  Home-page: https://github.com/orionis-framework/framework
6
6
  Author: Raul Mauricio Uñate Castro
@@ -5,7 +5,7 @@
5
5
  NAME = "orionis"
6
6
 
7
7
  # Current version of the framework
8
- VERSION = "0.218.0"
8
+ VERSION = "0.220.0"
9
9
 
10
10
  # Full name of the author or maintainer of the project
11
11
  AUTHOR = "Raul Mauricio Uñate Castro"
@@ -10,7 +10,7 @@ from orionis.luminate.foundation.environment.environment_bootstrapper import Env
10
10
  from orionis.luminate.foundation.exceptions.exception_bootstrapper import BootstrapRuntimeError
11
11
  from orionis.luminate.foundation.providers.service_providers_bootstrapper import ServiceProvidersBootstrapper
12
12
  from orionis.luminate.patterns.singleton import SingletonMeta
13
- from orionis.luminate.support.asyn_run import AsyncExecutor
13
+ from orionis.luminate.support.async_io.async_coroutine import AsyncExecutor
14
14
 
15
15
  class Application(metaclass=SingletonMeta):
16
16
  """
@@ -1,7 +1,7 @@
1
1
  from typing import Any, Callable
2
2
  from orionis.luminate.container.container import Container
3
3
  from orionis.luminate.container.exception import OrionisContainerValueError
4
- from orionis.luminate.support.asyn_run import AsyncExecutor
4
+ from orionis.luminate.support.async_io.async_coroutine import AsyncExecutor
5
5
 
6
6
  class Resolve:
7
7
  """
@@ -1,5 +1,5 @@
1
1
  from orionis.luminate.container.container import Container
2
- from orionis.luminate.support.asyn_run import AsyncExecutor
2
+ from orionis.luminate.support.async_io.async_coroutine import AsyncExecutor
3
3
 
4
4
  class FacadeMeta(type):
5
5
  """
@@ -0,0 +1,48 @@
1
+ import asyncio
2
+ from inspect import iscoroutine
3
+ from typing import Any, Coroutine, TypeVar, Union
4
+ from orionis.luminate.support.async_io.contracts.async_coroutine import IAsyncCoroutine
5
+
6
+ T = TypeVar("T")
7
+
8
+ class AsyncCoroutine(IAsyncCoroutine):
9
+ """
10
+ A utility class for executing coroutine objects in various asynchronous and synchronous contexts.
11
+ This class provides a static method to execute coroutine objects, handling different scenarios
12
+ such as running within an active event loop (e.g., in Jupyter notebooks or Starlette) or in a
13
+ synchronous context without an active event loop.
14
+
15
+ Methods
16
+ -------
17
+ execute(coro: Coroutine[Any, Any, T]) -> Union[T, asyncio.Future]
18
+ Executes the given coroutine object, adapting to the current execution context.
19
+ """
20
+
21
+ @staticmethod
22
+ def execute(coro: Coroutine[Any, Any, T]) -> Union[T, asyncio.Future]:
23
+ """
24
+ Executes the given coroutine object, adapting to the current execution context.
25
+ If there is an active event loop, it uses `asyncio.ensure_future` to schedule the coroutine.
26
+ If there is no active event loop, it uses `asyncio.run` to run the coroutine directly.
27
+ If the coroutine is already running, it returns a `Future` object that can be awaited.
28
+
29
+ Parameters
30
+ ----------
31
+ coro : Coroutine[Any, Any, T]
32
+ The coroutine object
33
+ """
34
+ if not iscoroutine(coro):
35
+ raise TypeError("Expected a coroutine object.")
36
+
37
+ try:
38
+ loop = asyncio.get_running_loop()
39
+ except RuntimeError:
40
+ # No hay loop activo: ejecutamos directamente
41
+ return asyncio.run(coro)
42
+
43
+ if loop.is_running():
44
+ # Ya hay un loop activo (notebooks, FastAPI, etc.)
45
+ return asyncio.ensure_future(coro) # devuelve un Future (debes await si estás en async)
46
+ else:
47
+ # Estamos en código síncrono, pero con acceso al loop
48
+ return loop.run_until_complete(coro)
@@ -0,0 +1,31 @@
1
+ import asyncio
2
+ from typing import Any, Coroutine, TypeVar, Union
3
+
4
+ T = TypeVar("T")
5
+
6
+ class IAsyncCoroutine:
7
+ """
8
+ Interface for executing asynchronous coroutines.
9
+
10
+ Methods
11
+ -------
12
+ execute(coro: Coroutine[Any, Any, T]) -> Union[T, asyncio.Future]
13
+ Executes the given coroutine.
14
+ """
15
+
16
+ @staticmethod
17
+ def execute(coro: Coroutine[Any, Any, T]) -> Union[T, asyncio.Future]:
18
+ """
19
+ Execute the given coroutine.
20
+
21
+ Parameters
22
+ ----------
23
+ coro : Coroutine[Any, Any, T]
24
+ The coroutine to be executed.
25
+
26
+ Returns
27
+ -------
28
+ Union[T, asyncio.Future]
29
+ The result of the coroutine execution or a Future object.
30
+ """
31
+ pass
@@ -4,15 +4,6 @@ class StdClass(IStdClass):
4
4
  """
5
5
  A dynamic class that allows setting arbitrary attributes,
6
6
  similar to PHP's stdClass.
7
-
8
- Examples
9
- --------
10
- >>> obj = StdClass(name='Raul', age=30)
11
- >>> obj.name
12
- 'Raul'
13
- >>> obj.update(age=31)
14
- >>> obj.toDict()
15
- {'name': 'Raul', 'age': 31}
16
7
  """
17
8
 
18
9
  def __init__(self, **kwargs):
@@ -0,0 +1,17 @@
1
+ from typing import Any
2
+
3
+ class ITestStdOut:
4
+ """
5
+ Utility for printing debug info during tests, including caller context (file, line, method).
6
+ """
7
+
8
+ @staticmethod
9
+ def print(*args: Any) -> None:
10
+ """
11
+ Print arguments to the console with file, line, and method of the caller.
12
+
13
+ Parameters
14
+ ----------
15
+ *args : Any
16
+ Any values to print. The first argument is ignored (typically the class or context).
17
+ """
@@ -0,0 +1,37 @@
1
+ class ITests:
2
+ """
3
+ Provides utility methods to configure and execute unit tests from specified folders.
4
+ """
5
+
6
+ @staticmethod
7
+ def execute(folders: list, print_result:bool = True, throw_exception:bool = False):
8
+ """
9
+ Configure and run unit tests from a list of folder definitions.
10
+
11
+ Parameters
12
+ ----------
13
+ folders : list of dict
14
+ Each dict must include:
15
+ - 'folder_path' (str): Path to the folder with test files.
16
+ - 'base_path' (str): Base path for resolving test imports.
17
+ - 'pattern' (str): Glob pattern for test file names.
18
+
19
+ print_result : bool, default=True
20
+ Whether to print test results to the console.
21
+
22
+ throw_exception : bool, default=False
23
+ Whether to raise exceptions on test failures.
24
+
25
+ Returns
26
+ -------
27
+ UnitTestClass
28
+ The initialized and executed test suite.
29
+
30
+ Raises
31
+ ------
32
+ TypeError
33
+ If `folders` is not a list of dictionaries.
34
+ KeyError
35
+ If any dictionary lacks required keys: 'folder_path', 'base_path', or 'pattern'.
36
+ """
37
+ pass
@@ -0,0 +1,82 @@
1
+ from typing import Any, Dict, Optional
2
+
3
+ class IUnitTest:
4
+ """
5
+ Advanced unit testing utility for discovering, executing, and reporting test results
6
+ with support for folder-based discovery, regex filtering, and customizable output.
7
+
8
+ Attributes
9
+ ----------
10
+ loader : unittest.TestLoader
11
+ Internal loader for test discovery.
12
+ suite : unittest.TestSuite
13
+ The aggregated test suite to be executed.
14
+ test_results : List[TestResult]
15
+ List of captured results per test, including status and errors.
16
+ start_time : float
17
+ Timestamp when the test execution started.
18
+ """
19
+
20
+ def addFolder(
21
+ self,
22
+ folder_path: str,
23
+ base_path: str = "tests",
24
+ pattern: str = "test_*.py",
25
+ test_name_pattern: Optional[str] = None
26
+ ):
27
+ """
28
+ Discover and add test cases from a given folder to the test suite.
29
+
30
+ Parameters
31
+ ----------
32
+ folder_path : str
33
+ Relative path to the folder containing test files.
34
+ base_path : str, default="tests"
35
+ Base path used to resolve full path to test modules.
36
+ pattern : str, default="test_*.py"
37
+ Glob pattern to match test filenames.
38
+ test_name_pattern : Optional[str], optional
39
+ Regex pattern to filter discovered test method names.
40
+
41
+ Returns
42
+ -------
43
+ UnitTest
44
+ Self instance for chaining.
45
+
46
+ Raises
47
+ ------
48
+ ValueError
49
+ If folder is invalid or no tests are found.
50
+ """
51
+ pass
52
+
53
+ def run(self, print_result:bool = True, throw_exception:bool = False) -> Dict[str, Any]:
54
+ """
55
+ Run all added tests and return a summary of the results.
56
+
57
+ Parameters
58
+ ----------
59
+ print_result : bool, default=True
60
+ Whether to print a formatted report to the console.
61
+ throw_exception : bool, default=False
62
+ Raise an exception if there are failures or errors.
63
+
64
+ Returns
65
+ -------
66
+ Dict[str, Any]
67
+ Summary including:
68
+ - total_tests : int
69
+ - passed : int
70
+ - failed : int
71
+ - errors : int
72
+ - skipped : int
73
+ - total_time : str (e.g., '1.234 seconds')
74
+ - success_rate : str (e.g., '87.5%')
75
+ - test_details : List[Dict[str, Any]]
76
+
77
+ Raises
78
+ ------
79
+ OrionisTestFailureException
80
+ If any test fails or errors occur and `throw_exception=True`.
81
+ """
82
+ pass
@@ -1,8 +1,9 @@
1
1
  import os
2
2
  import sys
3
3
  from orionis.luminate.console.output.console import Console
4
+ from orionis.luminate.test.contracts.test_std_out import ITestStdOut
4
5
 
5
- class TestStdOut:
6
+ class TestStdOut(ITestStdOut):
6
7
  """
7
8
  A utility class for printing debug information during testing. This class temporarily
8
9
  redirects the standard output and error streams to their original states to ensure
@@ -1,6 +1,7 @@
1
+ from orionis.luminate.test.contracts.test_suite import ITests
1
2
  from orionis.luminate.test.test_unit import UnitTest as UnitTestClass
2
3
 
3
- class Tests:
4
+ class Tests(ITests):
4
5
  """
5
6
  A class containing test utility methods.
6
7
 
@@ -7,11 +7,12 @@ from contextlib import redirect_stdout, redirect_stderr
7
7
  from dataclasses import asdict
8
8
  from typing import Any, Dict, List, Optional, Tuple
9
9
  from orionis.luminate.console.output.console import Console
10
+ from orionis.luminate.test.contracts.test_unit import IUnitTest
10
11
  from orionis.luminate.test.test_exception import OrionisTestFailureException
11
12
  from orionis.luminate.test.test_result import TestResult
12
13
  from orionis.luminate.test.test_status import TestStatus
13
14
 
14
- class UnitTest:
15
+ class UnitTest(IUnitTest):
15
16
  """
16
17
  An advanced testing framework for discovering, running, and analyzing unit tests.
17
18
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: orionis
3
- Version: 0.218.0
3
+ Version: 0.220.0
4
4
  Summary: Orionis Framework – Elegant, Fast, and Powerful.
5
5
  Home-page: https://github.com/orionis-framework/framework
6
6
  Author: Raul Mauricio Uñate Castro
@@ -169,8 +169,11 @@ orionis/luminate/services/files/__init__.py
169
169
  orionis/luminate/services/files/path_resolver_service.py
170
170
  orionis/luminate/services/log/__init__.py
171
171
  orionis/luminate/services/log/log_service.py
172
- orionis/luminate/support/asyn_run.py
173
- orionis/luminate/support/dot_dict.py
172
+ orionis/luminate/support/adapters/__init__.py
173
+ orionis/luminate/support/adapters/dot_dict.py
174
+ orionis/luminate/support/async_io/__init__.py
175
+ orionis/luminate/support/async_io/async_coroutine.py
176
+ orionis/luminate/support/async_io/contracts/async_coroutine.py
174
177
  orionis/luminate/support/inspection/__init__.py
175
178
  orionis/luminate/support/inspection/container_integrity.py
176
179
  orionis/luminate/support/inspection/functions.py
@@ -201,6 +204,10 @@ orionis/luminate/test/test_status.py
201
204
  orionis/luminate/test/test_std_out.py
202
205
  orionis/luminate/test/test_suite.py
203
206
  orionis/luminate/test/test_unit.py
207
+ orionis/luminate/test/contracts/__init__.py
208
+ orionis/luminate/test/contracts/test_std_out.py
209
+ orionis/luminate/test/contracts/test_suite.py
210
+ orionis/luminate/test/contracts/test_unit.py
204
211
  orionis/static/ascii/icon.ascii
205
212
  orionis/static/ascii/info.ascii
206
213
  orionis/static/bg/galaxy.jpg
@@ -214,6 +221,12 @@ tests/__init__.py
214
221
  tests/example/__init__.py
215
222
  tests/example/test_example.py
216
223
  tests/support/__init__.py
224
+ tests/support/adapters/__init__.py
225
+ tests/support/adapters/test_doct_dict.py
226
+ tests/support/adapters/fakes/__init__.py
227
+ tests/support/adapters/fakes/fake_dict.py
228
+ tests/support/async_io/__init__.py
229
+ tests/support/async_io/test_async_coroutine.py
217
230
  tests/support/inspection/__init__.py
218
231
  tests/support/inspection/test_reflection_abstract.py
219
232
  tests/support/inspection/test_reflection_concrete.py
@@ -0,0 +1,15 @@
1
+ fake_dict = {
2
+ "type": "framework",
3
+ "name": "Orionis Framework",
4
+ "features": {
5
+ "authentication": True,
6
+ "csrf_protection": True,
7
+ "session_management": True,
8
+ "logging": True,
9
+ "error_handling": True,
10
+ "database_integration": True,
11
+ "template_engine": True,
12
+ "api_support": True,
13
+ "routing": True
14
+ }
15
+ }
@@ -0,0 +1,21 @@
1
+ from orionis.luminate.support.adapters.dot_dict import DotDict
2
+ from orionis.luminate.test.test_case import TestCase
3
+ from tests.support.adapters.fakes.fake_dict import fake_dict
4
+
5
+ class TestsDotDict(TestCase):
6
+
7
+ async def testAccessByDot(self):
8
+ """
9
+ Test the ability to access dictionary values using dot notation.
10
+ """
11
+ # Create a DotDict instance from the fake_dict
12
+ dot_dict = DotDict(fake_dict)
13
+
14
+ # Access the 'type' attribute using dot notation
15
+ self.assertEqual(dot_dict.type, "framework")
16
+
17
+ # Access the 'name' attribute using dot notation
18
+ self.assertEqual(dot_dict.name, "Orionis Framework")
19
+
20
+ # Access a nested attribute using dot notation
21
+ self.assertEqual(dot_dict.features.authentication, True)
File without changes
@@ -0,0 +1,38 @@
1
+ from orionis.luminate.support.async_io.async_coroutine import AsyncCoroutine
2
+ from orionis.luminate.test.test_case import TestCase
3
+
4
+ class TestsAsyncCoroutine(TestCase):
5
+
6
+ async def testExecuteWithActiveEventLoop(self):
7
+ """
8
+ Test the execution of a coroutine within an active event loop.
9
+ This test simulates a scenario where the coroutine is executed in an environment with an active event loop,
10
+ such as a Jupyter notebook or a Starlette application.
11
+ """
12
+ async def sample_coroutine():
13
+ return "Hello, World!"
14
+
15
+ result = await AsyncCoroutine.execute(sample_coroutine())
16
+ self.assertEqual(result, "Hello, World!")
17
+
18
+ def testExecuteWithoutActiveEventLoop(self):
19
+ """
20
+ Test the execution of a coroutine without an active event loop.
21
+ This test simulates a scenario where the coroutine is executed in a synchronous context without an active event loop.
22
+ """
23
+ async def sample_coroutine():
24
+ return "Hello, World!"
25
+
26
+ result = AsyncCoroutine.execute(sample_coroutine())
27
+ self.assertEqual(result, "Hello, World!")
28
+
29
+ def testExecuteWithNonCoroutine(self):
30
+ """
31
+ Test the execution of a non-coroutine object.
32
+ This test checks that a TypeError is raised when a non-coroutine object is passed to the execute method.
33
+ """
34
+ def sample_no_coroutine():
35
+ return "Hello, World!"
36
+
37
+ with self.assertRaises(TypeError):
38
+ AsyncCoroutine.execute(sample_no_coroutine())
File without changes
File without changes
File without changes
@@ -1,41 +0,0 @@
1
- import asyncio
2
- import logging
3
- from typing import Any, Coroutine, TypeVar
4
-
5
- T = TypeVar("T")
6
-
7
- class AsyncExecutor:
8
- """ Utility class to run asynchronous functions synchronously. """
9
-
10
- @staticmethod
11
- def run(callback: Coroutine[Any, Any, T]) -> T:
12
- """
13
- Runs an asynchronous coroutine in a synchronous context.
14
-
15
- Parameters
16
- ----------
17
- callback : Coroutine[Any, Any, T]
18
- The asynchronous coroutine to execute.
19
-
20
- Returns
21
- -------
22
- T
23
- The result of the coroutine execution.
24
-
25
- Raises
26
- ------
27
- Exception
28
- If the coroutine execution fails.
29
- """
30
- logging.getLogger('asyncio').setLevel(logging.WARNING)
31
-
32
- try:
33
- loop = asyncio.get_running_loop()
34
- except RuntimeError:
35
- loop = asyncio.new_event_loop()
36
- asyncio.set_event_loop(loop)
37
-
38
- try:
39
- return loop.run_until_complete(callback)
40
- except Exception as e:
41
- raise RuntimeError(f"Error executing coroutine: {e}") from e
File without changes
File without changes
File without changes
File without changes
File without changes