orionis 0.139.0__tar.gz → 0.151.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 (195) hide show
  1. {orionis-0.139.0/orionis.egg-info → orionis-0.151.0}/PKG-INFO +1 -1
  2. {orionis-0.139.0 → orionis-0.151.0}/orionis/framework.py +1 -1
  3. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/console/base/command.py +6 -3
  4. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/console/command_filter.py +1 -1
  5. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/console/commands/cache_clear.py +4 -3
  6. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/console/commands/schedule_work.py +1 -1
  7. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/console/kernel.py +1 -2
  8. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/console/output/console.py +1 -1
  9. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/console/output/executor.py +1 -1
  10. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/console/output/progress_bar.py +1 -1
  11. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/console/parser.py +1 -1
  12. orionis-0.151.0/orionis/luminate/container/container.py +567 -0
  13. orionis-0.151.0/orionis/luminate/container/container_integrity.py +235 -0
  14. orionis-0.151.0/orionis/luminate/container/lifetimes.py +13 -0
  15. orionis-0.139.0/orionis/luminate/contracts/console/i_parser.py → orionis-0.151.0/orionis/luminate/contracts/console/parser.py +0 -1
  16. orionis-0.151.0/orionis/luminate/contracts/container/container.py +346 -0
  17. orionis-0.151.0/orionis/luminate/contracts/container/container_integrity.py +168 -0
  18. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/facades/commands/commands_facade.py +1 -1
  19. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/facades/commands/scheduler_facade.py +1 -1
  20. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/facades/config/config_facade.py +1 -1
  21. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/facades/environment/environment_facade.py +1 -2
  22. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/facades/files/path_facade.py +1 -1
  23. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/facades/log/log_facade.py +1 -1
  24. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/facades/tests/tests_facade.py +1 -1
  25. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/foundation/config/config_bootstrapper.py +1 -1
  26. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/foundation/console/command_bootstrapper.py +1 -1
  27. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/foundation/environment/environment_bootstrapper.py +1 -1
  28. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/foundation/providers/service_providers_bootstrapper.py +1 -1
  29. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/providers/commands/reactor_commands_service_provider.py +2 -1
  30. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/providers/commands/scheduler_provider.py +2 -1
  31. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/providers/config/config_service_provider.py +2 -1
  32. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/providers/environment/environment__service_provider.py +2 -1
  33. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/providers/files/paths_provider.py +2 -1
  34. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/providers/log/log_service_provider.py +2 -1
  35. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/providers/service_provider.py +1 -2
  36. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/services/commands/reactor_commands_service.py +1 -2
  37. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/services/commands/scheduler_service.py +1 -2
  38. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/services/config/config_service.py +1 -2
  39. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/services/environment/environment_service.py +1 -2
  40. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/services/files/path_resolver_service.py +1 -2
  41. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/services/log/log_service.py +1 -2
  42. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/support/exception_to_dict.py +1 -1
  43. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/support/reflection.py +1 -1
  44. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/support/std.py +1 -1
  45. {orionis-0.139.0 → orionis-0.151.0/orionis.egg-info}/PKG-INFO +1 -1
  46. {orionis-0.139.0 → orionis-0.151.0}/orionis.egg-info/SOURCES.txt +33 -32
  47. orionis-0.139.0/orionis/luminate/container/container.py +0 -458
  48. orionis-0.139.0/orionis/luminate/container/types.py +0 -51
  49. orionis-0.139.0/orionis/luminate/contracts/container/i_container.py +0 -239
  50. orionis-0.139.0/orionis/luminate/contracts/container/i_types.py +0 -16
  51. {orionis-0.139.0 → orionis-0.151.0}/LICENCE +0 -0
  52. {orionis-0.139.0 → orionis-0.151.0}/MANIFEST.in +0 -0
  53. {orionis-0.139.0 → orionis-0.151.0}/README.md +0 -0
  54. {orionis-0.139.0 → orionis-0.151.0}/orionis/__init__.py +0 -0
  55. {orionis-0.139.0 → orionis-0.151.0}/orionis/cli_manager.py +0 -0
  56. {orionis-0.139.0 → orionis-0.151.0}/orionis/installer/__init__.py +0 -0
  57. {orionis-0.139.0 → orionis-0.151.0}/orionis/installer/contracts/__init__.py +0 -0
  58. {orionis-0.139.0 → orionis-0.151.0}/orionis/installer/contracts/i_installer_manager.py +0 -0
  59. {orionis-0.139.0 → orionis-0.151.0}/orionis/installer/contracts/i_installer_output.py +0 -0
  60. {orionis-0.139.0 → orionis-0.151.0}/orionis/installer/contracts/i_installer_setup.py +0 -0
  61. {orionis-0.139.0 → orionis-0.151.0}/orionis/installer/manager.py +0 -0
  62. {orionis-0.139.0 → orionis-0.151.0}/orionis/installer/output/__init__.py +0 -0
  63. {orionis-0.139.0 → orionis-0.151.0}/orionis/installer/output/output.py +0 -0
  64. {orionis-0.139.0 → orionis-0.151.0}/orionis/installer/setup/__init__.py +0 -0
  65. {orionis-0.139.0 → orionis-0.151.0}/orionis/installer/setup/setup.py +0 -0
  66. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/__init__.py +0 -0
  67. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/application.py +0 -0
  68. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/config/__init__.py +0 -0
  69. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/config/app.py +0 -0
  70. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/config/auth.py +0 -0
  71. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/config/cache.py +0 -0
  72. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/config/cors.py +0 -0
  73. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/config/database.py +0 -0
  74. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/config/filesystems.py +0 -0
  75. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/config/logging.py +0 -0
  76. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/config/mail.py +0 -0
  77. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/config/queue.py +0 -0
  78. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/config/session.py +0 -0
  79. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/console/__init__.py +0 -0
  80. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/console/base/__init__.py +0 -0
  81. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/console/commands/__init__.py +0 -0
  82. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/console/commands/help.py +0 -0
  83. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/console/commands/tests.py +0 -0
  84. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/console/commands/version.py +0 -0
  85. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/console/exceptions/__init__.py +0 -0
  86. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/console/exceptions/cli_exception.py +0 -0
  87. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/console/output/__init__.py +0 -0
  88. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/console/output/styles.py +0 -0
  89. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/container/exception.py +0 -0
  90. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/contracts/__init__.py +0 -0
  91. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/contracts/config/__init__.py +0 -0
  92. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/contracts/config/i_config.py +0 -0
  93. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/contracts/console/__init__.py +0 -0
  94. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/contracts/console/base/__init__.py +0 -0
  95. /orionis-0.139.0/orionis/luminate/contracts/console/base/i_command.py → /orionis-0.151.0/orionis/luminate/contracts/console/base/command.py +0 -0
  96. /orionis-0.139.0/orionis/luminate/contracts/console/i_command_filter.py → /orionis-0.151.0/orionis/luminate/contracts/console/command_filter.py +0 -0
  97. /orionis-0.139.0/orionis/luminate/contracts/console/i_kernel.py → /orionis-0.151.0/orionis/luminate/contracts/console/kernel.py +0 -0
  98. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/contracts/console/output/__init__.py +0 -0
  99. /orionis-0.139.0/orionis/luminate/contracts/console/output/i_console.py → /orionis-0.151.0/orionis/luminate/contracts/console/output/console.py +0 -0
  100. /orionis-0.139.0/orionis/luminate/contracts/console/output/i_executor.py → /orionis-0.151.0/orionis/luminate/contracts/console/output/executor.py +0 -0
  101. /orionis-0.139.0/orionis/luminate/contracts/console/output/i_progress_bar.py → /orionis-0.151.0/orionis/luminate/contracts/console/output/progress_bar.py +0 -0
  102. /orionis-0.139.0/orionis/luminate/contracts/console/i_task_manager.py → /orionis-0.151.0/orionis/luminate/contracts/console/task_manager.py +0 -0
  103. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/contracts/facades/__init__.py +0 -0
  104. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/contracts/facades/commands/__init__.py +0 -0
  105. /orionis-0.139.0/orionis/luminate/contracts/facades/commands/i_commands_facade.py → /orionis-0.151.0/orionis/luminate/contracts/facades/commands/commands_facade.py +0 -0
  106. /orionis-0.139.0/orionis/luminate/contracts/facades/commands/i_scheduler_facade.py → /orionis-0.151.0/orionis/luminate/contracts/facades/commands/scheduler_facade.py +0 -0
  107. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/contracts/facades/config/__init__.py +0 -0
  108. /orionis-0.139.0/orionis/luminate/contracts/facades/config/i_config_facade.py → /orionis-0.151.0/orionis/luminate/contracts/facades/config/config_facade.py +0 -0
  109. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/contracts/facades/environment/__init__.py +0 -0
  110. /orionis-0.139.0/orionis/luminate/contracts/facades/environment/i_environment_facade.py → /orionis-0.151.0/orionis/luminate/contracts/facades/environment/environment_facade.py +0 -0
  111. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/contracts/facades/files/__init__.py +0 -0
  112. /orionis-0.139.0/orionis/luminate/contracts/facades/files/i_path_facade.py → /orionis-0.151.0/orionis/luminate/contracts/facades/files/path_facade.py +0 -0
  113. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/contracts/facades/log/__init__.py +0 -0
  114. /orionis-0.139.0/orionis/luminate/contracts/facades/log/i_log_facade.py → /orionis-0.151.0/orionis/luminate/contracts/facades/log/log_facade.py +0 -0
  115. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/contracts/facades/tests/__init__.py +0 -0
  116. /orionis-0.139.0/orionis/luminate/contracts/facades/tests/i_tests_facade.py → /orionis-0.151.0/orionis/luminate/contracts/facades/tests/tests_facade.py +0 -0
  117. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/contracts/foundation/__init__.py +0 -0
  118. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/contracts/foundation/config/__init__.py +0 -0
  119. /orionis-0.139.0/orionis/luminate/contracts/foundation/config/i_config_bootstrapper.py → /orionis-0.151.0/orionis/luminate/contracts/foundation/config/config_bootstrapper.py +0 -0
  120. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/contracts/foundation/console/__init__.py +0 -0
  121. /orionis-0.139.0/orionis/luminate/contracts/foundation/console/i_command_bootstrapper.py → /orionis-0.151.0/orionis/luminate/contracts/foundation/console/command_bootstrapper.py +0 -0
  122. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/contracts/foundation/environment/__init__.py +0 -0
  123. /orionis-0.139.0/orionis/luminate/contracts/foundation/environment/i_environment_bootstrapper.py → /orionis-0.151.0/orionis/luminate/contracts/foundation/environment/environment_bootstrapper.py +0 -0
  124. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/contracts/foundation/i_bootstraper.py +0 -0
  125. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/contracts/foundation/providers/__init__.py +0 -0
  126. /orionis-0.139.0/orionis/luminate/contracts/foundation/providers/i_service_providers_bootstrapper.py → /orionis-0.151.0/orionis/luminate/contracts/foundation/providers/service_providers_bootstrapper.py +0 -0
  127. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/contracts/providers/__init__.py +0 -0
  128. /orionis-0.139.0/orionis/luminate/contracts/providers/i_service_provider.py → /orionis-0.151.0/orionis/luminate/contracts/providers/service_provider.py +0 -0
  129. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/contracts/services/__init__.py +0 -0
  130. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/contracts/services/commands/__init__.py +0 -0
  131. /orionis-0.139.0/orionis/luminate/contracts/services/commands/i_reactor_commands_service.py → /orionis-0.151.0/orionis/luminate/contracts/services/commands/reactor_commands_service.py +0 -0
  132. /orionis-0.139.0/orionis/luminate/contracts/services/commands/i_schedule_service.py → /orionis-0.151.0/orionis/luminate/contracts/services/commands/schedule_service.py +0 -0
  133. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/contracts/services/config/__init__.py +0 -0
  134. /orionis-0.139.0/orionis/luminate/contracts/services/config/i_config_service.py → /orionis-0.151.0/orionis/luminate/contracts/services/config/config_service.py +0 -0
  135. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/contracts/services/environment/__init__.py +0 -0
  136. /orionis-0.139.0/orionis/luminate/contracts/services/environment/i_environment_service.py → /orionis-0.151.0/orionis/luminate/contracts/services/environment/environment_service.py +0 -0
  137. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/contracts/services/files/__init__.py +0 -0
  138. /orionis-0.139.0/orionis/luminate/contracts/services/files/i_path_resolver_service.py → /orionis-0.151.0/orionis/luminate/contracts/services/files/path_resolver_service.py +0 -0
  139. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/contracts/services/log/__init__.py +0 -0
  140. /orionis-0.139.0/orionis/luminate/contracts/services/log/i_log_service.py → /orionis-0.151.0/orionis/luminate/contracts/services/log/log_service.py +0 -0
  141. /orionis-0.139.0/orionis/luminate/contracts/support/i_exception_to_dict.py → /orionis-0.151.0/orionis/luminate/contracts/support/exception_to_dict.py +0 -0
  142. /orionis-0.139.0/orionis/luminate/contracts/support/i_reflection.py → /orionis-0.151.0/orionis/luminate/contracts/support/reflection.py +0 -0
  143. /orionis-0.139.0/orionis/luminate/contracts/support/i_std.py → /orionis-0.151.0/orionis/luminate/contracts/support/std.py +0 -0
  144. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/facades/__init__.py +0 -0
  145. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/facades/app_facade.py +0 -0
  146. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/facades/commands/__init__.py +0 -0
  147. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/facades/config/__init__.py +0 -0
  148. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/facades/environment/__init__.py +0 -0
  149. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/facades/files/__init__.py +0 -0
  150. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/facades/log/__init__.py +0 -0
  151. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/facades/tests/__init__.py +0 -0
  152. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/foundation/__init__.py +0 -0
  153. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/foundation/config/__init__.py +0 -0
  154. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/foundation/console/__init__.py +0 -0
  155. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/foundation/environment/__init__.py +0 -0
  156. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/foundation/exceptions/__init__.py +0 -0
  157. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/foundation/exceptions/exception_bootstrapper.py +0 -0
  158. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/foundation/providers/__init__.py +0 -0
  159. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/patterns/__init__.py +0 -0
  160. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/patterns/singleton.py +0 -0
  161. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/providers/__init__.py +0 -0
  162. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/providers/commands/__init__.py +0 -0
  163. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/providers/config/__init__.py +0 -0
  164. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/providers/environment/__init__.py +0 -0
  165. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/providers/files/__init__.py +0 -0
  166. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/providers/log/__init__.py +0 -0
  167. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/services/__init__.py +0 -0
  168. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/services/commands/__init__.py +0 -0
  169. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/services/config/__init__.py +0 -0
  170. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/services/environment/__init__.py +0 -0
  171. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/services/files/__init__.py +0 -0
  172. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/services/log/__init__.py +0 -0
  173. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/support/dot_dict.py +0 -0
  174. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/test/__init__.py +0 -0
  175. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/test/exception.py +0 -0
  176. {orionis-0.139.0 → orionis-0.151.0}/orionis/luminate/test/unit_test.py +0 -0
  177. {orionis-0.139.0 → orionis-0.151.0}/orionis/static/ascii/icon.ascii +0 -0
  178. {orionis-0.139.0 → orionis-0.151.0}/orionis/static/ascii/info.ascii +0 -0
  179. {orionis-0.139.0 → orionis-0.151.0}/orionis/static/bg/galaxy.jpg +0 -0
  180. {orionis-0.139.0 → orionis-0.151.0}/orionis/static/favicon/OrionisFrameworkFavicon.png +0 -0
  181. {orionis-0.139.0 → orionis-0.151.0}/orionis/static/logos/OrionisFramework.jpg +0 -0
  182. {orionis-0.139.0 → orionis-0.151.0}/orionis/static/logos/OrionisFramework.png +0 -0
  183. {orionis-0.139.0 → orionis-0.151.0}/orionis/static/logos/OrionisFramework.psd +0 -0
  184. {orionis-0.139.0 → orionis-0.151.0}/orionis/static/logos/OrionisFramework2.png +0 -0
  185. {orionis-0.139.0 → orionis-0.151.0}/orionis/static/logos/OrionisFramework3.png +0 -0
  186. {orionis-0.139.0 → orionis-0.151.0}/orionis.egg-info/dependency_links.txt +0 -0
  187. {orionis-0.139.0 → orionis-0.151.0}/orionis.egg-info/entry_points.txt +0 -0
  188. {orionis-0.139.0 → orionis-0.151.0}/orionis.egg-info/requires.txt +0 -0
  189. {orionis-0.139.0 → orionis-0.151.0}/orionis.egg-info/top_level.txt +0 -0
  190. {orionis-0.139.0 → orionis-0.151.0}/setup.cfg +0 -0
  191. {orionis-0.139.0 → orionis-0.151.0}/setup.py +0 -0
  192. {orionis-0.139.0 → orionis-0.151.0}/tests/__init__.py +0 -0
  193. {orionis-0.139.0 → orionis-0.151.0}/tests/tools/__init__.py +0 -0
  194. {orionis-0.139.0 → orionis-0.151.0}/tests/tools/class_example.py +0 -0
  195. {orionis-0.139.0 → orionis-0.151.0}/tests/tools/test_reflection.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: orionis
3
- Version: 0.139.0
3
+ Version: 0.151.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.139.0"
8
+ VERSION = "0.151.0"
9
9
 
10
10
  # Full name of the author or maintainer of the project
11
11
  AUTHOR = "Raul Mauricio Uñate Castro"
@@ -1,4 +1,4 @@
1
- from orionis.luminate.contracts.console.base.i_command import IBaseCommand
1
+ from orionis.luminate.contracts.console.base.command import IBaseCommand
2
2
  from orionis.luminate.console.output.console import Console
3
3
  from orionis.luminate.console.output.progress_bar import ProgressBar
4
4
 
@@ -8,9 +8,12 @@ class BaseCommand(IBaseCommand):
8
8
  various types (success, info, warning, etc.) in different styles (e.g., text, bold, colored).
9
9
 
10
10
  This class acts as a foundation for command classes, offering utility methods to interact with the console.
11
- """
12
11
 
13
- # Command arguments
12
+ Parameters
13
+ ----------
14
+ args : dict, optional
15
+ A dictionary containing the command arguments (default is an empty dictionary).
16
+ """
14
17
  args = {}
15
18
 
16
19
  def success(self, message: str = '', timestamp: bool = True):
@@ -1,4 +1,4 @@
1
- from orionis.luminate.contracts.console.i_command_filter import ICommandFilter
1
+ from orionis.luminate.contracts.console.command_filter import ICommandFilter
2
2
 
3
3
  # List of commands to exclude from output formatting
4
4
  EXCLUDED_COMMANDS = [
@@ -44,9 +44,10 @@ class CacheClearCommand(BaseCommand):
44
44
  # Recursively traverse directories starting from the base path
45
45
  for root, dirs, files in os.walk(base_path, topdown=True):
46
46
 
47
- # Skip the 'venv' directory and its subdirectories
48
- if 'venv' in dirs:
49
- dirs.remove('venv')
47
+ # Skip common environment directories (e.g., venv, env, vendor, node_modules)
48
+ for env_dir in ['venv', 'env', 'virtualenv', 'venv3', 'env3', 'venv2', 'env2', 'vendor', 'node_modules', 'environment']:
49
+ if env_dir in dirs:
50
+ dirs.remove(env_dir)
50
51
 
51
52
  # Check for __pycache__ directories
52
53
  if '__pycache__' in dirs:
@@ -1,7 +1,7 @@
1
1
  import importlib
2
2
  from orionis.luminate.console.base.command import BaseCommand
3
3
  from orionis.luminate.console.exceptions.cli_exception import CLIOrionisRuntimeError
4
- from orionis.luminate.contracts.console.i_task_manager import ITaskManager
4
+ from orionis.luminate.contracts.console.task_manager import ITaskManager
5
5
  from orionis.luminate.facades.commands.scheduler_facade import Schedule
6
6
 
7
7
 
@@ -1,6 +1,5 @@
1
1
  from typing import Any
2
- from orionis.luminate.contracts.console.i_kernel import ICLIKernel
3
- from orionis.luminate.console.runner import CLIRunner
2
+ from orionis.luminate.contracts.console.kernel import ICLIKernel
4
3
 
5
4
  class CLIKernel(ICLIKernel):
6
5
  """
@@ -2,7 +2,7 @@ import os
2
2
  import sys
3
3
  import getpass
4
4
  import datetime
5
- from orionis.luminate.contracts.console.output.i_console import IConsole
5
+ from orionis.luminate.contracts.console.output.console import IConsole
6
6
  from orionis.luminate.console.output.styles import ANSIColors
7
7
  from orionis.luminate.support.exception_to_dict import ExceptionsToDict
8
8
 
@@ -1,5 +1,5 @@
1
1
  from datetime import datetime
2
- from orionis.luminate.contracts.console.output.i_executor import IExecutor
2
+ from orionis.luminate.contracts.console.output.executor import IExecutor
3
3
  from orionis.luminate.console.output.styles import ANSIColors
4
4
 
5
5
  class Executor(IExecutor):
@@ -1,5 +1,5 @@
1
1
  import sys
2
- from orionis.luminate.contracts.console.output.i_progress_bar import IProgressBar
2
+ from orionis.luminate.contracts.console.output.progress_bar import IProgressBar
3
3
 
4
4
  class ProgressBar(IProgressBar):
5
5
  """
@@ -3,7 +3,7 @@ import types
3
3
  import argparse
4
4
  from contextlib import redirect_stderr
5
5
  from io import StringIO
6
- from orionis.luminate.contracts.console.i_parser import IParser
6
+ from orionis.luminate.contracts.console.parser import IParser
7
7
 
8
8
  class Parser(IParser):
9
9
  """
@@ -0,0 +1,567 @@
1
+ import inspect
2
+ from threading import Lock
3
+ from typing import Callable, Any, Dict, Deque, Optional, Type, get_origin, get_args
4
+ from collections import deque
5
+ from orionis.luminate.container.container_integrity import ContainerIntegrity
6
+ from orionis.luminate.container.lifetimes import Lifetime
7
+ from orionis.luminate.container.exception import OrionisContainerException, OrionisContainerValueError, OrionisContainerTypeError
8
+ from orionis.luminate.contracts.container.container import IContainer
9
+
10
+ class Container(IContainer):
11
+ """
12
+ Service container and dependency injection manager.
13
+
14
+ This class follows the singleton pattern to manage service bindings, instances,
15
+ and different lifecycle types such as transient, singleton, and scoped.
16
+ """
17
+
18
+ _instance = None
19
+ _lock = Lock()
20
+
21
+ @classmethod
22
+ def destroy(cls):
23
+ """
24
+ Destroys the current instance of the container.
25
+
26
+ This method resets the singleton instance, effectively clearing all registered
27
+ services and instances.
28
+
29
+ Examples
30
+ --------
31
+ >>> Container.destroy()
32
+ """
33
+ cls._instance = None
34
+
35
+ @classmethod
36
+ def reset(cls):
37
+ """
38
+ Resets the container to its initial state.
39
+
40
+ This method destroys the current instance and immediately creates a new one.
41
+
42
+ Examples
43
+ --------
44
+ >>> Container.reset()
45
+ """
46
+ cls._instance = None
47
+ super().__new__(cls)
48
+
49
+ def __new__(cls):
50
+ """
51
+ Create a new instance of the container.
52
+ """
53
+ if cls._instance is None:
54
+ with cls._lock:
55
+ if cls._instance is None:
56
+ cls._instance = super().__new__(cls)
57
+ cls._instance._scoped_instances = {}
58
+ cls._instance._singleton_instances = {}
59
+ cls._instance._instances_services = {}
60
+ cls._instance._transient_services = {}
61
+ cls._instance._scoped_services = {}
62
+ cls._instance._singleton_services = {}
63
+ cls._instance._aliases_services = {}
64
+ return cls._instance
65
+
66
+ def bind(self, abstract: Callable[..., Any], concrete: Callable[..., Any], lifetime: str = Lifetime.TRANSIENT.value) -> None:
67
+ """
68
+ Binds an abstract type to a concrete implementation with a specified lifetime.
69
+
70
+ Parameters
71
+ ----------
72
+ abstract : Callable[..., Any]
73
+ The abstract base type or alias to be bound.
74
+ concrete : Callable[..., Any]
75
+ The concrete implementation to associate with the abstract type.
76
+ lifetime : str
77
+ The lifecycle of the binding. Must be one of 'transient', 'scoped', or 'singleton'.
78
+
79
+ Raises
80
+ ------
81
+ OrionisContainerValueError
82
+ If an invalid lifetime is provided or the concrete implementation is None.
83
+
84
+ Examples
85
+ --------
86
+ >>> container.bind(MyService, MyServiceImplementation, "singleton")
87
+ """
88
+
89
+ if lifetime not in [member.value for member in Lifetime]:
90
+ raise OrionisContainerValueError(f"Invalid lifetime type '{lifetime}'.")
91
+
92
+ if concrete is None:
93
+ raise OrionisContainerValueError("Concrete implementation cannot be None when binding a service.")
94
+
95
+ abstract = abstract or concrete
96
+ ContainerIntegrity.ensureIsCallable(concrete)
97
+ ContainerIntegrity.ensureNotMain(concrete)
98
+
99
+ service_entry = {
100
+ "concrete": concrete,
101
+ "async": inspect.iscoroutinefunction(concrete)
102
+ }
103
+
104
+ service_registry = {
105
+ Lifetime.TRANSIENT.value: self._transient_services,
106
+ Lifetime.SCOPED.value: self._scoped_services,
107
+ Lifetime.SINGLETON.value: self._singleton_services
108
+ }
109
+
110
+ if ContainerIntegrity.isAbstract(abstract):
111
+ ContainerIntegrity.ensureImplementation(abstract, concrete)
112
+ service_registry[lifetime][abstract] = service_entry
113
+ return
114
+
115
+ if ContainerIntegrity.isAlias(abstract):
116
+ service_registry[lifetime][abstract] = service_entry
117
+ return
118
+
119
+ raise OrionisContainerValueError(f"Invalid abstract type '{abstract}'. It must be a valid alias or an abstract class.")
120
+
121
+ def transient(self, abstract: Callable[..., Any], concrete: Callable[..., Any]) -> None:
122
+ """
123
+ Registers a service with a transient lifetime.
124
+
125
+ Parameters
126
+ ----------
127
+ abstract : Callable[..., Any]
128
+ The abstract base type or alias to be bound.
129
+ concrete : Callable[..., Any]
130
+ The concrete implementation to associate with the abstract type.
131
+
132
+ Examples
133
+ --------
134
+ >>> container.transient(MyService, MyServiceImplementation)
135
+ """
136
+
137
+ self.bind(abstract, concrete, Lifetime.TRANSIENT.value)
138
+
139
+ def scoped(self, abstract: Callable[..., Any], concrete: Callable[..., Any]) -> None:
140
+ """
141
+ Registers a service with a scoped lifetime.
142
+
143
+ Parameters
144
+ ----------
145
+ abstract : Callable[..., Any]
146
+ The abstract base type or alias to be bound.
147
+ concrete : Callable[..., Any]
148
+ The concrete implementation to associate with the abstract type.
149
+
150
+ Examples
151
+ --------
152
+ >>> container.scoped(MyService, MyServiceImplementation)
153
+ """
154
+
155
+ self.bind(abstract, concrete, Lifetime.SCOPED.value)
156
+
157
+ def singleton(self, abstract: Callable[..., Any], concrete: Callable[..., Any]) -> None:
158
+ """
159
+ Registers a service with a singleton lifetime.
160
+
161
+ Parameters
162
+ ----------
163
+ abstract : Callable[..., Any]
164
+ The abstract base type or alias to be bound.
165
+ concrete : Callable[..., Any]
166
+ The concrete implementation to associate with the abstract type.
167
+
168
+ Examples
169
+ --------
170
+ >>> container.singleton(MyService, MyServiceImplementation)
171
+ """
172
+
173
+ self.bind(abstract, concrete, Lifetime.SINGLETON.value)
174
+
175
+ def instance(self, abstract: Callable[..., Any], instance: Any) -> None:
176
+ """
177
+ Registers an already instantiated object in the container.
178
+
179
+ Parameters
180
+ ----------
181
+ abstract : Callable[..., Any]
182
+ The abstract base type or alias to be bound.
183
+ instance : Any
184
+ The instance to be stored.
185
+
186
+ Raises
187
+ ------
188
+ OrionisContainerValueError
189
+ If the instance is None.
190
+
191
+ Examples
192
+ --------
193
+ >>> container.instance(MyService, my_service_instance)
194
+ """
195
+
196
+ if instance is None:
197
+ raise OrionisContainerValueError("The provided instance cannot be None.")
198
+
199
+ ContainerIntegrity.ensureIsInstance(instance)
200
+
201
+ if ContainerIntegrity.isAbstract(abstract):
202
+ ContainerIntegrity.ensureImplementation(abstract, instance.__class__)
203
+ self._instances_services[abstract] = instance
204
+ return
205
+
206
+ if ContainerIntegrity.isAlias(abstract):
207
+ self._instances_services[abstract] = instance
208
+ return
209
+
210
+ raise OrionisContainerValueError(f"Invalid abstract type '{abstract}'. It must be a valid alias or an abstract class.")
211
+
212
+ def bound(self, abstract_or_alias: Callable[..., Any]) -> bool:
213
+ """
214
+ Checks if a service or alias is bound in the container.
215
+
216
+ Parameters
217
+ ----------
218
+ abstract_or_alias : Callable[..., Any]
219
+ The abstract type or alias to check.
220
+
221
+ Returns
222
+ -------
223
+ bool
224
+ True if the service is bound, False otherwise.
225
+
226
+ Examples
227
+ --------
228
+ >>> container.bound(MyService)
229
+ True
230
+ """
231
+
232
+ service_dicts = [
233
+ self._instances_services,
234
+ self._transient_services,
235
+ self._scoped_services,
236
+ self._singleton_services,
237
+ self._aliases_services
238
+ ]
239
+ return any(abstract_or_alias in service_dict for service_dict in service_dicts)
240
+
241
+ def has(self, abstract_or_alias: Callable[..., Any]) -> bool:
242
+ """
243
+ Alias for `bound()` method.
244
+
245
+ Parameters
246
+ ----------
247
+ abstract_or_alias : Callable[..., Any]
248
+ The abstract type or alias to check.
249
+
250
+ Returns
251
+ -------
252
+ bool
253
+ True if the service is bound, False otherwise.
254
+
255
+ Examples
256
+ --------
257
+ >>> container.has(MyService)
258
+ True
259
+ """
260
+
261
+ return self.bound(abstract_or_alias)
262
+
263
+ def alias(self, alias: Callable[..., Any], abstract: Callable[..., Any]) -> None:
264
+ """
265
+ Creates an alias for an existing abstract binding.
266
+
267
+ Parameters
268
+ ----------
269
+ alias : Callable[..., Any]
270
+ The alias name.
271
+ abstract : Callable[..., Any]
272
+ The existing abstract type to alias.
273
+
274
+ Raises
275
+ ------
276
+ OrionisContainerValueError
277
+ If the abstract type is not registered or the alias is already in use.
278
+
279
+ Examples
280
+ --------
281
+ >>> container.alias("DatabaseService", MyDatabaseService)
282
+ """
283
+
284
+ if not self.has(abstract):
285
+ raise OrionisContainerValueError(f"Abstract '{abstract}' is not registered in the container.")
286
+
287
+ if alias in self._aliases_services:
288
+ raise OrionisContainerValueError(f"Alias '{alias}' is already in use.")
289
+
290
+ if not ContainerIntegrity.isAlias(abstract):
291
+ raise OrionisContainerValueError(f"Invalid target abstract type: {abstract}. It must be an alias.")
292
+
293
+ self._aliases_services[alias] = abstract
294
+
295
+ def isAlias(self, name: str) -> bool:
296
+ """
297
+ Checks if a given name is an alias.
298
+
299
+ Parameters
300
+ ----------
301
+ name : str
302
+ The name to check.
303
+
304
+ Returns
305
+ -------
306
+ bool
307
+ True if the name is an alias, False otherwise.
308
+
309
+ Raises
310
+ ------
311
+ OrionisContainerTypeError
312
+ If the name is not a string.
313
+
314
+ Examples
315
+ --------
316
+ >>> container.isAlias("DatabaseService")
317
+ True
318
+ """
319
+
320
+ if not isinstance(name, str):
321
+ raise OrionisContainerTypeError("The name must be a valid string.")
322
+ return name in self._aliases_services
323
+
324
+ def getBindings(self) -> Dict[str, Any]:
325
+ """
326
+ Retrieves all registered service bindings.
327
+
328
+ Returns
329
+ -------
330
+ dict
331
+ A dictionary containing all instances, transient, scoped, singleton, and alias services.
332
+
333
+ Examples
334
+ --------
335
+ >>> container.getBindings()
336
+ """
337
+
338
+ return {
339
+ "instances": self._instances_services,
340
+ "transient": self._transient_services,
341
+ "scoped": self._scoped_services,
342
+ "singleton": self._singleton_services,
343
+ "aliases": self._aliases_services
344
+ }
345
+
346
+ def getAlias(self, name: str) -> Callable[..., Any]:
347
+ """
348
+ Retrieves the abstract type associated with an alias.
349
+
350
+ Parameters
351
+ ----------
352
+ name : str
353
+ The alias name.
354
+
355
+ Returns
356
+ -------
357
+ Callable[..., Any]
358
+ The abstract type associated with the alias.
359
+
360
+ Raises
361
+ ------
362
+ OrionisContainerValueError
363
+ If the alias is not registered.
364
+
365
+ Examples
366
+ --------
367
+ >>> container.getAlias("DatabaseService")
368
+ <class 'MyDatabaseService'>
369
+ """
370
+
371
+ if not isinstance(name, str):
372
+ raise OrionisContainerValueError("The name must be a valid string.")
373
+
374
+ if name not in self._aliases_services:
375
+ raise OrionisContainerValueError(f"Alias '{name}' is not registered in the container.")
376
+
377
+ return self._aliases_services[name]
378
+
379
+ def forgetScopedInstances(self) -> None:
380
+ """
381
+ Clears all scoped instances.
382
+
383
+ Examples
384
+ --------
385
+ >>> container.forgetScopedInstances()
386
+ """
387
+
388
+ self._scoped_instances = {}
389
+
390
+ def newRequest(self) -> None:
391
+ """
392
+ Resets scoped instances to handle a new request.
393
+
394
+ Examples
395
+ --------
396
+ >>> container.newRequest()
397
+ """
398
+
399
+ self.forgetScopedInstances()
400
+
401
+ async def make(self, abstract_or_alias: Callable[..., Any]) -> Any:
402
+ """
403
+ Resolves and instantiates a service from the container.
404
+
405
+ Parameters
406
+ ----------
407
+ abstract_or_alias : Callable[..., Any]
408
+ The abstract type or alias to resolve.
409
+
410
+ Returns
411
+ -------
412
+ Any
413
+ The instantiated service.
414
+
415
+ Raises
416
+ ------
417
+ OrionisContainerException
418
+ If the service is not found.
419
+
420
+ Examples
421
+ --------
422
+ >>> service = await container.make(MyService)
423
+ """
424
+
425
+ if abstract_or_alias in self._aliases_services:
426
+ abstract_or_alias = self._aliases_services[abstract_or_alias]
427
+
428
+ if abstract_or_alias in self._instances_services:
429
+ return self._instances_services[abstract_or_alias]
430
+
431
+ if abstract_or_alias in self._singleton_services:
432
+ if abstract_or_alias not in self._singleton_instances:
433
+ service = self._singleton_services[abstract_or_alias]
434
+ self._singleton_instances[abstract_or_alias] = await service['concrete']() if service['async'] else service['concrete']()
435
+ return self._singleton_instances[abstract_or_alias]
436
+
437
+ if abstract_or_alias in self._scoped_services:
438
+ if abstract_or_alias not in self._scoped_instances:
439
+ service = self._scoped_services[abstract_or_alias]
440
+ self._scoped_instances[abstract_or_alias] = await service['concrete']() if service['async'] else service['concrete']()
441
+ return self._scoped_instances[abstract_or_alias]
442
+
443
+ if abstract_or_alias in self._transient_services:
444
+ service = self._transient_services[abstract_or_alias]
445
+ return await service['concrete']() if service['async'] else service['concrete']()
446
+
447
+ raise OrionisContainerException(f"No binding found for '{abstract_or_alias}' in the container.")
448
+
449
+ def _resolve(self, concrete: Callable[..., Any], resolving: Optional[Deque[Type]] = None) -> Any:
450
+ """
451
+ Resolves dependencies recursively and instantiates a class.
452
+
453
+ Parameters
454
+ ----------
455
+ concrete : Callable[..., Any]
456
+ The concrete implementation to instantiate.
457
+ resolving : Optional[Deque[Type]], optional
458
+ A queue to track resolving dependencies and prevent circular dependencies.
459
+
460
+ Returns
461
+ -------
462
+ Any
463
+ The instantiated object.
464
+
465
+ Raises
466
+ ------
467
+ OrionisContainerException
468
+ If circular dependencies are detected or instantiation fails.
469
+
470
+ Examples
471
+ --------
472
+ >>> instance = container._resolve(MyClass)
473
+ """
474
+
475
+ if resolving is None:
476
+ resolving = deque()
477
+
478
+ if concrete in resolving:
479
+ raise OrionisContainerException(f"Circular dependency detected for {concrete}.")
480
+
481
+ resolving.append(concrete)
482
+
483
+ try:
484
+ signature = inspect.signature(concrete)
485
+ except ValueError as e:
486
+ raise OrionisContainerException(f"Unable to inspect signature of {concrete}: {str(e)}")
487
+
488
+ resolved_dependencies: Dict[str, Any] = {}
489
+ unresolved_dependencies = deque()
490
+
491
+ for param_name, param in signature.parameters.items():
492
+ if param_name == 'self':
493
+ continue
494
+
495
+ if param.kind in (param.VAR_POSITIONAL, param.VAR_KEYWORD):
496
+ continue
497
+
498
+ if param.annotation is param.empty and param.default is param.empty:
499
+ unresolved_dependencies.append(param_name)
500
+ continue
501
+
502
+ if param.default is not param.empty:
503
+ resolved_dependencies[param_name] = param.default
504
+ continue
505
+
506
+ if param.annotation is not param.empty:
507
+ param_type = param.annotation
508
+
509
+ if get_origin(param_type) is not None:
510
+ param_type = get_args(param_type)[0]
511
+
512
+ if isinstance(param_type, type) and not issubclass(param_type, (int, str, bool, float)):
513
+ if self.has(param_type):
514
+ resolved_dependencies[param_name] = self.make(f"{param_type.__module__}.{param_type.__name__}")
515
+ else:
516
+ resolved_dependencies[param_name] = self._resolve_dependency(param_type, resolving)
517
+ else:
518
+ resolved_dependencies[param_name] = param_type
519
+
520
+ while unresolved_dependencies:
521
+ dep_name = unresolved_dependencies.popleft()
522
+ if dep_name not in resolved_dependencies:
523
+ resolved_dependencies[dep_name] = self._resolve_dependency(dep_name, resolving)
524
+
525
+ try:
526
+ instance = concrete(**resolved_dependencies)
527
+ resolving.pop()
528
+ return instance
529
+ except Exception as e:
530
+ raise OrionisContainerException(f"Failed to instantiate {concrete}: {str(e)}")
531
+
532
+ def _resolve_dependency(self, dep_type: Any, resolving: Optional[Deque[Type]] = None) -> Any:
533
+ """
534
+ Resolves a dependency by instantiating or retrieving it from the container.
535
+
536
+ Parameters
537
+ ----------
538
+ dep_type : Any
539
+ The dependency type to resolve.
540
+ resolving : Optional[Deque[Type]], optional
541
+ A queue to track resolving dependencies.
542
+
543
+ Returns
544
+ -------
545
+ Any
546
+ The resolved dependency.
547
+
548
+ Raises
549
+ ------
550
+ OrionisContainerException
551
+ If the dependency cannot be resolved.
552
+
553
+ Examples
554
+ --------
555
+ >>> dependency = container._resolve_dependency(MyDependency)
556
+ """
557
+
558
+ if resolving is None:
559
+ resolving = deque()
560
+
561
+ if isinstance(dep_type, type):
562
+ if self.has(dep_type):
563
+ return self.make(f"{dep_type.__module__}.{dep_type.__name__}")
564
+ else:
565
+ return self._resolve(dep_type, resolving)
566
+
567
+ raise OrionisContainerException(f"Cannot resolve dependency of type {dep_type}")