orionis 0.111.0__tar.gz → 0.112.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 (190) hide show
  1. {orionis-0.111.0/orionis.egg-info → orionis-0.112.0}/PKG-INFO +1 -1
  2. {orionis-0.111.0 → orionis-0.112.0}/orionis/framework.py +1 -1
  3. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/app.py +31 -6
  4. orionis-0.112.0/orionis/luminate/app_context.py +60 -0
  5. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/facades/app.py +6 -1
  6. {orionis-0.111.0 → orionis-0.112.0/orionis.egg-info}/PKG-INFO +1 -1
  7. orionis-0.111.0/orionis/luminate/app_context.py +0 -35
  8. {orionis-0.111.0 → orionis-0.112.0}/LICENCE +0 -0
  9. {orionis-0.111.0 → orionis-0.112.0}/MANIFEST.in +0 -0
  10. {orionis-0.111.0 → orionis-0.112.0}/README.md +0 -0
  11. {orionis-0.111.0 → orionis-0.112.0}/orionis/__init__.py +0 -0
  12. {orionis-0.111.0 → orionis-0.112.0}/orionis/cli_manager.py +0 -0
  13. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/__init__.py +0 -0
  14. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/config/__init__.py +0 -0
  15. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/config/i_config.py +0 -0
  16. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/console/__init__.py +0 -0
  17. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/console/base/__init__.py +0 -0
  18. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/console/base/i_command.py +0 -0
  19. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/console/i_command_filter.py +0 -0
  20. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/console/i_kernel.py +0 -0
  21. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/console/i_parser.py +0 -0
  22. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/console/i_task_manager.py +0 -0
  23. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/console/output/__init__.py +0 -0
  24. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/console/output/i_console.py +0 -0
  25. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/console/output/i_executor.py +0 -0
  26. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/console/output/i_progress_bar.py +0 -0
  27. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/container/i_container.py +0 -0
  28. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/container/i_types.py +0 -0
  29. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/facades/__init__.py +0 -0
  30. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/facades/commands/__init__.py +0 -0
  31. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/facades/commands/i_commands_facade.py +0 -0
  32. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/facades/commands/i_scheduler_facade.py +0 -0
  33. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/facades/config/__init__.py +0 -0
  34. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/facades/config/i_config_facade.py +0 -0
  35. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/facades/environment/__init__.py +0 -0
  36. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/facades/environment/i_environment_facade.py +0 -0
  37. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/facades/files/__init__.py +0 -0
  38. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/facades/files/i_path_facade.py +0 -0
  39. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/facades/log/__init__.py +0 -0
  40. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/facades/log/i_log_facade.py +0 -0
  41. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/facades/tests/__init__.py +0 -0
  42. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/facades/tests/i_tests_facade.py +0 -0
  43. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/foundation/__init__.py +0 -0
  44. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/foundation/config/__init__.py +0 -0
  45. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/foundation/config/i_config_bootstrapper.py +0 -0
  46. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/foundation/console/__init__.py +0 -0
  47. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/foundation/console/i_command_bootstrapper.py +0 -0
  48. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/foundation/environment/__init__.py +0 -0
  49. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/foundation/environment/i_environment_bootstrapper.py +0 -0
  50. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/foundation/i_bootstraper.py +0 -0
  51. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/foundation/providers/__init__.py +0 -0
  52. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/foundation/providers/i_service_providers_bootstrapper.py +0 -0
  53. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/installer/__init__.py +0 -0
  54. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/installer/i_installer_manager.py +0 -0
  55. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/installer/i_installer_output.py +0 -0
  56. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/installer/i_installer_setup.py +0 -0
  57. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/providers/__init__.py +0 -0
  58. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/providers/i_service_provider.py +0 -0
  59. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/services/__init__.py +0 -0
  60. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/services/commands/__init__.py +0 -0
  61. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/services/commands/i_reactor_commands_service.py +0 -0
  62. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/services/commands/i_schedule_service.py +0 -0
  63. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/services/config/__init__.py +0 -0
  64. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/services/config/i_config_service.py +0 -0
  65. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/services/environment/__init__.py +0 -0
  66. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/services/environment/i_environment_service.py +0 -0
  67. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/services/files/__init__.py +0 -0
  68. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/services/files/i_path_resolver_service.py +0 -0
  69. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/services/log/__init__.py +0 -0
  70. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/services/log/i_log_service.py +0 -0
  71. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/support/i_exception_to_dict.py +0 -0
  72. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/support/i_reflection.py +0 -0
  73. {orionis-0.111.0 → orionis-0.112.0}/orionis/contracts/support/i_std.py +0 -0
  74. {orionis-0.111.0 → orionis-0.112.0}/orionis/installer/__init__.py +0 -0
  75. {orionis-0.111.0 → orionis-0.112.0}/orionis/installer/installer_manager.py +0 -0
  76. {orionis-0.111.0 → orionis-0.112.0}/orionis/installer/installer_output.py +0 -0
  77. {orionis-0.111.0 → orionis-0.112.0}/orionis/installer/installer_setup.py +0 -0
  78. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/__init__.py +0 -0
  79. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/config/__init__.py +0 -0
  80. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/config/app.py +0 -0
  81. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/config/auth.py +0 -0
  82. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/config/cache.py +0 -0
  83. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/config/cors.py +0 -0
  84. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/config/database.py +0 -0
  85. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/config/filesystems.py +0 -0
  86. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/config/logging.py +0 -0
  87. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/config/mail.py +0 -0
  88. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/config/queue.py +0 -0
  89. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/config/session.py +0 -0
  90. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/console/__init__.py +0 -0
  91. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/console/base/__init__.py +0 -0
  92. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/console/base/command.py +0 -0
  93. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/console/command_filter.py +0 -0
  94. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/console/commands/__init__.py +0 -0
  95. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/console/commands/cache_clear.py +0 -0
  96. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/console/commands/help.py +0 -0
  97. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/console/commands/schedule_work.py +0 -0
  98. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/console/commands/tests.py +0 -0
  99. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/console/commands/version.py +0 -0
  100. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/console/exceptions/__init__.py +0 -0
  101. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/console/exceptions/cli_exception.py +0 -0
  102. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/console/kernel.py +0 -0
  103. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/console/output/__init__.py +0 -0
  104. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/console/output/console.py +0 -0
  105. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/console/output/executor.py +0 -0
  106. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/console/output/progress_bar.py +0 -0
  107. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/console/output/styles.py +0 -0
  108. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/console/parser.py +0 -0
  109. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/container/container.py +0 -0
  110. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/container/exception.py +0 -0
  111. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/container/types.py +0 -0
  112. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/facades/__init__.py +0 -0
  113. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/facades/commands/__init__.py +0 -0
  114. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/facades/commands/commands_facade.py +0 -0
  115. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/facades/commands/scheduler_facade.py +0 -0
  116. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/facades/config/__init__.py +0 -0
  117. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/facades/config/config_facade.py +0 -0
  118. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/facades/environment/__init__.py +0 -0
  119. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/facades/environment/environment_facade.py +0 -0
  120. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/facades/files/__init__.py +0 -0
  121. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/facades/files/path_facade.py +0 -0
  122. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/facades/log/__init__.py +0 -0
  123. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/facades/log/log_facade.py +0 -0
  124. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/facades/tests/__init__.py +0 -0
  125. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/facades/tests/tests_facade.py +0 -0
  126. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/foundation/__init__.py +0 -0
  127. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/foundation/config/__init__.py +0 -0
  128. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/foundation/config/config_bootstrapper.py +0 -0
  129. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/foundation/console/__init__.py +0 -0
  130. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/foundation/console/command_bootstrapper.py +0 -0
  131. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/foundation/environment/__init__.py +0 -0
  132. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/foundation/environment/environment_bootstrapper.py +0 -0
  133. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/foundation/exceptions/__init__.py +0 -0
  134. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/foundation/exceptions/exception_bootstrapper.py +0 -0
  135. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/foundation/providers/__init__.py +0 -0
  136. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/foundation/providers/service_providers_bootstrapper.py +0 -0
  137. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/patterns/__init__.py +0 -0
  138. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/patterns/singleton.py +0 -0
  139. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/providers/__init__.py +0 -0
  140. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/providers/commands/__init__.py +0 -0
  141. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/providers/commands/reactor_commands_service_provider.py +0 -0
  142. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/providers/commands/scheduler_provider.py +0 -0
  143. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/providers/config/__init__.py +0 -0
  144. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/providers/config/config_service_provider.py +0 -0
  145. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/providers/environment/__init__.py +0 -0
  146. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/providers/environment/environment__service_provider.py +0 -0
  147. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/providers/files/__init__.py +0 -0
  148. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/providers/files/paths_provider.py +0 -0
  149. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/providers/log/__init__.py +0 -0
  150. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/providers/log/log_service_provider.py +0 -0
  151. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/providers/service_provider.py +0 -0
  152. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/services/__init__.py +0 -0
  153. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/services/commands/__init__.py +0 -0
  154. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/services/commands/reactor_commands_service.py +0 -0
  155. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/services/commands/scheduler_service.py +0 -0
  156. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/services/config/__init__.py +0 -0
  157. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/services/config/config_service.py +0 -0
  158. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/services/environment/__init__.py +0 -0
  159. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/services/environment/environment_service.py +0 -0
  160. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/services/files/__init__.py +0 -0
  161. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/services/files/path_resolver_service.py +0 -0
  162. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/services/log/__init__.py +0 -0
  163. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/services/log/log_service.py +0 -0
  164. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/support/dot_dict.py +0 -0
  165. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/support/exception_to_dict.py +0 -0
  166. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/support/reflection.py +0 -0
  167. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/support/std.py +0 -0
  168. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/test/__init__.py +0 -0
  169. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/test/exception.py +0 -0
  170. {orionis-0.111.0 → orionis-0.112.0}/orionis/luminate/test/unit_test.py +0 -0
  171. {orionis-0.111.0 → orionis-0.112.0}/orionis/static/ascii/icon.ascii +0 -0
  172. {orionis-0.111.0 → orionis-0.112.0}/orionis/static/ascii/info.ascii +0 -0
  173. {orionis-0.111.0 → orionis-0.112.0}/orionis/static/bg/galaxy.jpg +0 -0
  174. {orionis-0.111.0 → orionis-0.112.0}/orionis/static/favicon/OrionisFrameworkFavicon.png +0 -0
  175. {orionis-0.111.0 → orionis-0.112.0}/orionis/static/logos/OrionisFramework.jpg +0 -0
  176. {orionis-0.111.0 → orionis-0.112.0}/orionis/static/logos/OrionisFramework.png +0 -0
  177. {orionis-0.111.0 → orionis-0.112.0}/orionis/static/logos/OrionisFramework.psd +0 -0
  178. {orionis-0.111.0 → orionis-0.112.0}/orionis/static/logos/OrionisFramework2.png +0 -0
  179. {orionis-0.111.0 → orionis-0.112.0}/orionis/static/logos/OrionisFramework3.png +0 -0
  180. {orionis-0.111.0 → orionis-0.112.0}/orionis.egg-info/SOURCES.txt +0 -0
  181. {orionis-0.111.0 → orionis-0.112.0}/orionis.egg-info/dependency_links.txt +0 -0
  182. {orionis-0.111.0 → orionis-0.112.0}/orionis.egg-info/entry_points.txt +0 -0
  183. {orionis-0.111.0 → orionis-0.112.0}/orionis.egg-info/requires.txt +0 -0
  184. {orionis-0.111.0 → orionis-0.112.0}/orionis.egg-info/top_level.txt +0 -0
  185. {orionis-0.111.0 → orionis-0.112.0}/setup.cfg +0 -0
  186. {orionis-0.111.0 → orionis-0.112.0}/setup.py +0 -0
  187. {orionis-0.111.0 → orionis-0.112.0}/tests/__init__.py +0 -0
  188. {orionis-0.111.0 → orionis-0.112.0}/tests/tools/__init__.py +0 -0
  189. {orionis-0.111.0 → orionis-0.112.0}/tests/tools/class_example.py +0 -0
  190. {orionis-0.111.0 → orionis-0.112.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.111.0
3
+ Version: 0.112.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.111.0"
8
+ VERSION = "0.112.0"
9
9
 
10
10
  # Full name of the author or maintainer of the project
11
11
  AUTHOR = "Raul Mauricio Uñate Castro"
@@ -37,6 +37,33 @@ class Application(metaclass=SingletonMeta):
37
37
  _afterBootstrapProviders()
38
38
  Registers and boots additional providers after bootstrapping.
39
39
  """
40
+ booted = False
41
+
42
+ @classmethod
43
+ def started(cls):
44
+ """
45
+ Marks the application as booted.
46
+ """
47
+ cls.booted = True
48
+
49
+ @classmethod
50
+ def getCurrentInstance(cls):
51
+ """
52
+ Returns the existing application instance if available.
53
+
54
+ Returns
55
+ -------
56
+ Application
57
+ The current singleton instance of the application.
58
+
59
+ Raises
60
+ ------
61
+ RuntimeError
62
+ If no instance has been initialized yet.
63
+ """
64
+ if cls not in SingletonMeta._instances:
65
+ raise RuntimeError("Application has not been initialized yet. Please create an instance first.")
66
+ return SingletonMeta._instances[cls]
40
67
 
41
68
  def __init__(self, container: Container):
42
69
  """
@@ -58,10 +85,6 @@ class Application(metaclass=SingletonMeta):
58
85
  # Initialize the application container
59
86
  self.container = container
60
87
  self.container.instance(container)
61
- try:
62
- self._boot()
63
- except Exception as e:
64
- Console.exception(e)
65
88
 
66
89
  def isBooted(self) -> bool:
67
90
  """
@@ -189,7 +212,7 @@ class Application(metaclass=SingletonMeta):
189
212
  """
190
213
  return self.container.forgetScopedInstances()
191
214
 
192
- def _boot(self):
215
+ def boot(self):
193
216
  """
194
217
  Bootstraps the application by loading environment configuration and core providers.
195
218
  Notes
@@ -207,7 +230,9 @@ class Application(metaclass=SingletonMeta):
207
230
  self._bootstrapping()
208
231
  self._afterBootstrapProviders()
209
232
  self._loadCommands()
210
- self._booted = True
233
+
234
+ # Mark the application as booted
235
+ Application.started()
211
236
 
212
237
  def _bootServices(self):
213
238
  """
@@ -0,0 +1,60 @@
1
+ from contextlib import contextmanager
2
+ from orionis.luminate.app import Application
3
+ from orionis.luminate.container.container import Container
4
+
5
+ @contextmanager
6
+ def app_context():
7
+ """
8
+ Context manager for creating an instance of the Orionis application.
9
+
10
+ This function initializes the Orionis application with a new container,
11
+ ensuring that the application is properly set up before use.
12
+
13
+ Yields
14
+ ------
15
+ Application
16
+ The initialized Orionis application instance.
17
+
18
+ Raises
19
+ ------
20
+ RuntimeError
21
+ If the application has not been properly initialized.
22
+ """
23
+ try:
24
+
25
+ # Check if the application has been booted
26
+ if not Application.booted:
27
+ # Create a new application instance
28
+ app = Application(Container())
29
+ app.boot()
30
+ else:
31
+ # Get the current application instance
32
+ app = Application.getCurrentInstance()
33
+
34
+ # Yield the application instance
35
+ yield app
36
+
37
+ finally:
38
+
39
+ # Close Context Manager
40
+ pass
41
+
42
+
43
+ def app_booted():
44
+ """
45
+ Context manager for creating an instance of the Orionis application.
46
+
47
+ This function initializes the Orionis application with a new container,
48
+ ensuring that the application is properly set up before use.
49
+
50
+ Yields
51
+ ------
52
+ Application
53
+ The initialized Orionis application instance.
54
+
55
+ Raises
56
+ ------
57
+ RuntimeError
58
+ If the application has not been properly initialized.
59
+ """
60
+ return Application.booted
@@ -1,6 +1,8 @@
1
1
  from typing import Any
2
+ from orionis.luminate.app_context import app_booted
3
+ from orionis.luminate.console.output.console import Console
2
4
  from orionis.luminate.container.container import Container
3
- from orionis.luminate.container.exception import OrionisContainerTypeError
5
+ from orionis.luminate.container.exception import OrionisContainerException, OrionisContainerTypeError
4
6
 
5
7
  def app(concrete: Any = None):
6
8
  """
@@ -27,6 +29,9 @@ def app(concrete: Any = None):
27
29
  OrionisContainerException
28
30
  If `concrete` is not bound to the container.
29
31
  """
32
+ if not app_booted():
33
+ Console.error("The application context is not valid.")
34
+ raise OrionisContainerException("The application context is not valid.")
30
35
 
31
36
  # Create a new container instance
32
37
  container : Container = Container()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: orionis
3
- Version: 0.111.0
3
+ Version: 0.112.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
@@ -1,35 +0,0 @@
1
- from contextlib import contextmanager
2
- from orionis.luminate.app import Application
3
- from orionis.luminate.container.container import Container
4
-
5
- @contextmanager
6
- def app_context():
7
- """
8
- Context manager for resolving dependencies within a valid Orionis application context.
9
-
10
- This function ensures that Orionis is properly initialized before resolving dependencies,
11
- similar to how Laravel’s `app()` helper works.
12
-
13
- Yields
14
- ------
15
- Application
16
- The initialized Orionis application instance.
17
-
18
- Raises
19
- ------
20
- RuntimeError
21
- If the application has not been properly initialized.
22
- """
23
- container = Container()
24
- app = Application(container)
25
-
26
- if not app.isBooted():
27
- raise RuntimeError(
28
- "Error: Not running within a valid Orionis Framework context. "
29
- "Ensure that the Orionis application is correctly initialized."
30
- )
31
-
32
- try:
33
- yield app
34
- finally:
35
- pass
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes