orionis 0.42.0__tar.gz → 0.44.0__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (164) hide show
  1. {orionis-0.42.0/orionis.egg-info → orionis-0.44.0}/PKG-INFO +1 -1
  2. {orionis-0.42.0 → orionis-0.44.0}/orionis/framework.py +1 -1
  3. orionis-0.44.0/orionis/luminate/app.py +99 -0
  4. orionis-0.44.0/orionis/luminate/app_context.py +58 -0
  5. orionis-0.44.0/orionis/luminate/facades/config.py +10 -0
  6. {orionis-0.42.0 → orionis-0.44.0/orionis.egg-info}/PKG-INFO +1 -1
  7. {orionis-0.42.0 → orionis-0.44.0}/orionis.egg-info/SOURCES.txt +2 -1
  8. orionis-0.42.0/orionis/luminate/facades/config.py +0 -10
  9. orionis-0.42.0/orionis/luminate/orionis.py +0 -109
  10. {orionis-0.42.0 → orionis-0.44.0}/LICENCE +0 -0
  11. {orionis-0.42.0 → orionis-0.44.0}/MANIFEST.in +0 -0
  12. {orionis-0.42.0 → orionis-0.44.0}/README.md +0 -0
  13. {orionis-0.42.0 → orionis-0.44.0}/orionis/__init__.py +0 -0
  14. {orionis-0.42.0 → orionis-0.44.0}/orionis/cli_manager.py +0 -0
  15. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/__init__.py +0 -0
  16. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/bootstrap/__init__.py +0 -0
  17. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/bootstrap/cli_exception.py +0 -0
  18. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/bootstrap/commands/bootstrapper.py +0 -0
  19. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/bootstrap/commands/register.py +0 -0
  20. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/bootstrap/config/__init__.py +0 -0
  21. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/bootstrap/config/bootstrapper.py +0 -0
  22. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/bootstrap/config/parser.py +0 -0
  23. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/bootstrap/config/register.py +0 -0
  24. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/cache/__init__.py +0 -0
  25. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/cache/app/__init__.py +0 -0
  26. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/cache/app/config.py +0 -0
  27. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/cache/console/__init__.py +0 -0
  28. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/cache/console/commands.py +0 -0
  29. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/config/__init__.py +0 -0
  30. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/config/dataclass/__init__.py +0 -0
  31. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/config/dataclass/app.py +0 -0
  32. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/config/dataclass/auth.py +0 -0
  33. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/config/dataclass/cache.py +0 -0
  34. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/config/dataclass/cors.py +0 -0
  35. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/config/dataclass/database.py +0 -0
  36. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/config/dataclass/filesystems.py +0 -0
  37. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/config/dataclass/logging.py +0 -0
  38. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/config/dataclass/mail.py +0 -0
  39. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/config/dataclass/queue.py +0 -0
  40. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/config/dataclass/session.py +0 -0
  41. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/config/environment.py +0 -0
  42. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/console/__init__.py +0 -0
  43. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/console/base/__init__.py +0 -0
  44. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/console/base/command.py +0 -0
  45. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/console/cache.py +0 -0
  46. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/console/command.py +0 -0
  47. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/console/command_filter.py +0 -0
  48. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/console/commands/__init__.py +0 -0
  49. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/console/commands/cache_clear.py +0 -0
  50. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/console/commands/help.py +0 -0
  51. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/console/commands/schedule_work.py +0 -0
  52. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/console/commands/tests.py +0 -0
  53. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/console/commands/version.py +0 -0
  54. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/console/exceptions/__init__.py +0 -0
  55. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/console/exceptions/cli_exception.py +0 -0
  56. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/console/kernel.py +0 -0
  57. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/console/output/__init__.py +0 -0
  58. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/console/output/console.py +0 -0
  59. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/console/output/executor.py +0 -0
  60. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/console/output/progress_bar.py +0 -0
  61. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/console/output/styles.py +0 -0
  62. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/console/parser.py +0 -0
  63. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/console/runner.py +0 -0
  64. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/console/scripts/__init__.py +0 -0
  65. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/console/scripts/management.py +0 -0
  66. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/console/tasks/__init__.py +0 -0
  67. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/console/tasks/scheduler.py +0 -0
  68. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/container/container.py +0 -0
  69. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/container/exception.py +0 -0
  70. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/container/types.py +0 -0
  71. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/contracts/__init__.py +0 -0
  72. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/contracts/bootstrap/commands/bootstrapper_interface.py +0 -0
  73. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/contracts/bootstrap/commands/register_interface.py +0 -0
  74. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/contracts/bootstrap/config/bootstrapper_interface.py +0 -0
  75. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/contracts/bootstrap/config/parser_interface.py +0 -0
  76. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/contracts/bootstrap/config/register_interface.py +0 -0
  77. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/contracts/cache/__init__.py +0 -0
  78. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/contracts/cache/app/config_interface.py +0 -0
  79. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/contracts/cache/console/commands_interface.py +0 -0
  80. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/contracts/config/__init__.py +0 -0
  81. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/contracts/config/config_interface.py +0 -0
  82. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/contracts/config/environment_interface.py +0 -0
  83. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/contracts/console/__init__.py +0 -0
  84. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/contracts/console/base/base_command_interface.py +0 -0
  85. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/contracts/console/command_filter_interface.py +0 -0
  86. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/contracts/console/command_interface.py +0 -0
  87. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/contracts/console/kernel_interface.py +0 -0
  88. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/contracts/console/output/console_interface.py +0 -0
  89. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/contracts/console/output/executor_interface.py +0 -0
  90. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/contracts/console/output/progress_bar_interface.py +0 -0
  91. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/contracts/console/parser_interface.py +0 -0
  92. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/contracts/console/runner_interface.py +0 -0
  93. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/contracts/console/scripts/management_interface.py +0 -0
  94. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/contracts/console/task_manager_interface.py +0 -0
  95. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/contracts/console/tasks/schedule_interface.py +0 -0
  96. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/contracts/container/container_interface.py +0 -0
  97. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/contracts/container/types_interface.py +0 -0
  98. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/contracts/facades/__init__.py +0 -0
  99. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/contracts/facades/env_interface.py +0 -0
  100. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/contracts/facades/log_interface.py +0 -0
  101. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/contracts/facades/paths_interface.py +0 -0
  102. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/contracts/facades/tests_interface.py +0 -0
  103. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/contracts/files/__init__.py +0 -0
  104. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/contracts/files/paths_interface.py +0 -0
  105. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/contracts/installer/__init__.py +0 -0
  106. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/contracts/installer/output_interface.py +0 -0
  107. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/contracts/installer/setup_interface.py +0 -0
  108. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/contracts/installer/upgrade_interface.py +0 -0
  109. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/contracts/log/__init__.py +0 -0
  110. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/contracts/log/logger_interface.py +0 -0
  111. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/contracts/pipelines/cli_pipeline_interface.py +0 -0
  112. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/contracts/publisher/__init__.py +0 -0
  113. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/contracts/publisher/pypi_publisher_interface.py +0 -0
  114. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/contracts/test/__init__.py +0 -0
  115. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/contracts/test/unit_test_interface.py +0 -0
  116. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/contracts/tools/__init__.py +0 -0
  117. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/contracts/tools/exception_to_dict_interface.py +0 -0
  118. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/contracts/tools/reflection_interface.py +0 -0
  119. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/contracts/tools/std_interface.py +0 -0
  120. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/facades/__init__.py +0 -0
  121. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/facades/environment.py +0 -0
  122. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/facades/log.py +0 -0
  123. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/facades/paths.py +0 -0
  124. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/facades/tests.py +0 -0
  125. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/files/__init__.py +0 -0
  126. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/files/paths.py +0 -0
  127. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/installer/__init__.py +0 -0
  128. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/installer/icon.ascii +0 -0
  129. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/installer/info.ascii +0 -0
  130. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/installer/output.py +0 -0
  131. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/installer/setup.py +0 -0
  132. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/installer/upgrade.py +0 -0
  133. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/log/__init__.py +0 -0
  134. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/log/logger.py +0 -0
  135. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/patterns/singleton.py +0 -0
  136. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/pipelines/__init__.py +0 -0
  137. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/pipelines/cli_pipeline.py +0 -0
  138. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/publisher/__init__.py +0 -0
  139. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/publisher/pypi.py +0 -0
  140. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/static/bg/galaxy.jpg +0 -0
  141. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/static/favicon/OrionisFrameworkFavicon.png +0 -0
  142. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/static/logos/OrionisFramework.jpg +0 -0
  143. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/static/logos/OrionisFramework.png +0 -0
  144. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/static/logos/OrionisFramework.psd +0 -0
  145. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/static/logos/OrionisFramework2.png +0 -0
  146. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/static/logos/OrionisFramework3.png +0 -0
  147. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/test/__init__.py +0 -0
  148. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/test/exception.py +0 -0
  149. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/test/unit_test.py +0 -0
  150. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/tools/__init__.py +0 -0
  151. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/tools/dot_dict.py +0 -0
  152. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/tools/exception_to_dict.py +0 -0
  153. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/tools/reflection.py +0 -0
  154. {orionis-0.42.0 → orionis-0.44.0}/orionis/luminate/tools/std.py +0 -0
  155. {orionis-0.42.0 → orionis-0.44.0}/orionis.egg-info/dependency_links.txt +0 -0
  156. {orionis-0.42.0 → orionis-0.44.0}/orionis.egg-info/entry_points.txt +0 -0
  157. {orionis-0.42.0 → orionis-0.44.0}/orionis.egg-info/requires.txt +0 -0
  158. {orionis-0.42.0 → orionis-0.44.0}/orionis.egg-info/top_level.txt +0 -0
  159. {orionis-0.42.0 → orionis-0.44.0}/setup.cfg +0 -0
  160. {orionis-0.42.0 → orionis-0.44.0}/setup.py +0 -0
  161. {orionis-0.42.0 → orionis-0.44.0}/tests/__init__.py +0 -0
  162. {orionis-0.42.0 → orionis-0.44.0}/tests/tools/__init__.py +0 -0
  163. {orionis-0.42.0 → orionis-0.44.0}/tests/tools/class_example.py +0 -0
  164. {orionis-0.42.0 → orionis-0.44.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.42.0
3
+ Version: 0.44.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.42.0"
8
+ VERSION = "0.44.0"
9
9
 
10
10
  # Full name of the author or maintainer of the project
11
11
  AUTHOR = "Raul Mauricio Uñate Castro"
@@ -0,0 +1,99 @@
1
+ import traceback
2
+ from orionis.luminate.container.container import Container
3
+ from orionis.luminate.cache.app.config import CacheConfig
4
+ from orionis.luminate.bootstrap.config.register import Register
5
+ from orionis.luminate.bootstrap.config.bootstrapper import Bootstrapper
6
+ from orionis.luminate.patterns.singleton import SingletonMeta
7
+
8
+ class Application(metaclass=SingletonMeta):
9
+ """
10
+ The main service container for the Orionis Framework, ensuring persistent dependency resolution.
11
+
12
+ This class acts as a singleton service container, similar to Laravel's Application class.
13
+ It maintains service bindings, ensures proper initialization, and prevents unnecessary re-instantiation.
14
+
15
+ Attributes
16
+ ----------
17
+ container : Container
18
+ The IoC container that holds all service bindings.
19
+ booted : bool
20
+ Indicates whether the application has been initialized.
21
+ error_info : tuple or None
22
+ Stores error information if an exception occurs during boot.
23
+
24
+ Methods
25
+ -------
26
+ boot()
27
+ Initializes the application and registers all necessary dependencies.
28
+ isBooted()
29
+ Checks if the application is currently running.
30
+ getError()
31
+ Retrieves stored error information, if any.
32
+ """
33
+
34
+ def __init__(self):
35
+ """Initializes the application with an empty dependency container."""
36
+ self.container = Container()
37
+ self.booted = False
38
+ self.error_info = None
39
+
40
+ def boot(self):
41
+ """
42
+ Boots the application and registers necessary dependencies.
43
+
44
+ This method ensures that all required services are bound to the container and instantiated.
45
+ If the application is already booted, it returns immediately.
46
+
47
+ Returns
48
+ -------
49
+ Application
50
+ The current instance of the application.
51
+
52
+ Raises
53
+ ------
54
+ Exception
55
+ If an error occurs during the boot process.
56
+ """
57
+ if self.booted:
58
+ return self
59
+
60
+ try:
61
+ # Register core services as singletons
62
+ self.container.singleton(CacheConfig)
63
+ self.container.singleton(Register)
64
+ self.container.singleton(Bootstrapper)
65
+
66
+ # Resolve the registered dependencies
67
+ self.container.make(Register)
68
+ self.container.make(Bootstrapper)
69
+
70
+ self.booted = True
71
+ return self
72
+
73
+ except Exception as e:
74
+ # Capture and store exception details
75
+ self.error_info = (e, traceback.format_exc())
76
+ raise
77
+
78
+ def isBooted(self):
79
+ """
80
+ Checks if the application has been successfully initialized.
81
+
82
+ Returns
83
+ -------
84
+ bool
85
+ True if the application has been booted, False otherwise.
86
+ """
87
+ return self.booted
88
+
89
+ def getError(self):
90
+ """
91
+ Retrieves the last stored error details.
92
+
93
+ Returns
94
+ -------
95
+ tuple or None
96
+ A tuple containing the exception instance and its formatted traceback if an error occurred;
97
+ otherwise, None.
98
+ """
99
+ return self.error_info
@@ -0,0 +1,58 @@
1
+ from orionis.luminate.app import Application
2
+
3
+ class AppContext:
4
+ """
5
+ Context manager for resolving dependencies within a valid Orionis application context.
6
+
7
+ This class ensures that Orionis is properly initialized before resolving dependencies,
8
+ similar to how Laravel’s `app()` helper works.
9
+
10
+ Methods
11
+ -------
12
+ __enter__()
13
+ Validates the application state and provides access to the service container.
14
+ __exit__(exc_type, exc_val, exc_tb)
15
+ Ensures exceptions propagate naturally.
16
+ """
17
+
18
+ def __enter__(self):
19
+ """
20
+ Validates that the Orionis application is booted before allowing access to the container.
21
+
22
+ Returns
23
+ -------
24
+ Container
25
+ The application’s IoC container instance.
26
+
27
+ Raises
28
+ ------
29
+ RuntimeError
30
+ If the application has not been properly initialized.
31
+ """
32
+ app = Application()
33
+ if not app.isBooted():
34
+ raise RuntimeError(
35
+ "Error: Not running within a valid Orionis Framework context. "
36
+ "Ensure that the Orionis application is correctly initialized."
37
+ )
38
+ return app
39
+
40
+ def __exit__(self, exc_type, exc_val, exc_tb):
41
+ """
42
+ Allows exceptions to propagate naturally.
43
+
44
+ Parameters
45
+ ----------
46
+ exc_type : type
47
+ The exception type, if an error occurred.
48
+ exc_val : Exception
49
+ The exception instance, if an error occurred.
50
+ exc_tb : traceback
51
+ The traceback object associated with the exception, if an error occurred.
52
+
53
+ Returns
54
+ -------
55
+ bool
56
+ Always returns False to ensure exceptions are not suppressed.
57
+ """
58
+ return False
@@ -0,0 +1,10 @@
1
+ from orionis.luminate.app_context import AppContext
2
+ from orionis.luminate.cache.app.config import CacheConfig
3
+
4
+ class Config:
5
+
6
+ @staticmethod
7
+ def get():
8
+ with AppContext() as app:
9
+ cache = app.container.make(CacheConfig)
10
+ return cache.config
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: orionis
3
- Version: 0.42.0
3
+ Version: 0.44.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
@@ -12,7 +12,8 @@ orionis.egg-info/entry_points.txt
12
12
  orionis.egg-info/requires.txt
13
13
  orionis.egg-info/top_level.txt
14
14
  orionis/luminate/__init__.py
15
- orionis/luminate/orionis.py
15
+ orionis/luminate/app.py
16
+ orionis/luminate/app_context.py
16
17
  orionis/luminate/bootstrap/__init__.py
17
18
  orionis/luminate/bootstrap/cli_exception.py
18
19
  orionis/luminate/bootstrap/commands/bootstrapper.py
@@ -1,10 +0,0 @@
1
- from orionis.luminate.container.container import Container
2
- from orionis.luminate.cache.app.config import CacheConfig
3
- from orionis.luminate.orionis import OrionisContext
4
-
5
- class Config:
6
-
7
- @staticmethod
8
- def get():
9
- with OrionisContext() as ctx:
10
- return ctx.container.make(CacheConfig).config
@@ -1,109 +0,0 @@
1
- import traceback
2
- from orionis.luminate.container.container import Container
3
- from orionis.luminate.cache.app.config import CacheConfig
4
- from orionis.luminate.bootstrap.config.register import Register
5
- from orionis.luminate.bootstrap.config.bootstrapper import Bootstrapper
6
- from orionis.luminate.patterns.singleton import SingletonMeta
7
-
8
- class Orionis(metaclass=SingletonMeta):
9
- """
10
- Manages the Orionis application lifecycle, ensuring proper initialization
11
- and cleanup while handling exceptions.
12
- """
13
-
14
- def __init__(self):
15
- """Initialize Orionis with a container and setup state tracking."""
16
- self.container = None
17
- self.is_started = False
18
- self.error_info = None
19
-
20
- def __enter__(self):
21
- """
22
- Starts the Orionis application and registers required dependencies.
23
-
24
- Returns
25
- -------
26
- Orionis
27
- The initialized Orionis instance.
28
-
29
- Raises
30
- ------
31
- Exception
32
- If an error occurs during startup.
33
- """
34
- try:
35
- if self.is_started:
36
- return self
37
-
38
- self.container = Container()
39
-
40
- self.container.singleton(CacheConfig)
41
- self.container.singleton(Register)
42
- self.container.singleton(Bootstrapper)
43
-
44
- self.container.make(Register)
45
- self.container.make(Bootstrapper)
46
-
47
- self.is_started = True
48
- return self
49
-
50
- except Exception as e:
51
- self.error_info = (e, traceback.format_exc())
52
- raise
53
-
54
- def __exit__(self, exc_type, exc_val, exc_tb):
55
- """
56
- Cleans up resources and ensures proper shutdown.
57
-
58
- Returns
59
- -------
60
- bool
61
- False to propagate exceptions.
62
- """
63
- self.container = None
64
- self.is_started = False
65
-
66
- if exc_type:
67
- self.error_info = (exc_val, traceback.format_exc())
68
- return False
69
-
70
- def isStarted(self):
71
- """Check if Orionis is currently active."""
72
- return self.is_started
73
-
74
- def getError(self):
75
- """Retrieve stored error information."""
76
- return self.error_info
77
-
78
-
79
- class OrionisContext:
80
- """
81
- Ensures that Orionis is running within a valid context before allowing access
82
- to the dependency container.
83
- """
84
-
85
- def __enter__(self):
86
- """
87
- Validates that Orionis is active and provides access to its container.
88
-
89
- Returns
90
- -------
91
- Container
92
- The Orionis container instance.
93
-
94
- Raises
95
- ------
96
- RuntimeError
97
- If Orionis is not running.
98
- """
99
- orionis = Orionis()
100
- if not orionis.isStarted():
101
- raise RuntimeError(
102
- "Error: Not running within a valid Orionis Framework context. "
103
- "Ensure that the Orionis application is correctly initialized."
104
- )
105
- return orionis
106
-
107
- def __exit__(self, exc_type, exc_val, exc_tb):
108
- """Ensures exceptions propagate naturally."""
109
- return False
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes