orionis 0.41.0__tar.gz → 0.43.0__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (163) hide show
  1. {orionis-0.41.0/orionis.egg-info → orionis-0.43.0}/PKG-INFO +1 -1
  2. {orionis-0.41.0 → orionis-0.43.0}/orionis/framework.py +1 -1
  3. orionis-0.43.0/orionis/luminate/app.py +99 -0
  4. orionis-0.43.0/orionis/luminate/app_context.py +58 -0
  5. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/facades/config.py +2 -2
  6. {orionis-0.41.0 → orionis-0.43.0/orionis.egg-info}/PKG-INFO +1 -1
  7. {orionis-0.41.0 → orionis-0.43.0}/orionis.egg-info/SOURCES.txt +2 -1
  8. orionis-0.41.0/orionis/luminate/orionis.py +0 -142
  9. {orionis-0.41.0 → orionis-0.43.0}/LICENCE +0 -0
  10. {orionis-0.41.0 → orionis-0.43.0}/MANIFEST.in +0 -0
  11. {orionis-0.41.0 → orionis-0.43.0}/README.md +0 -0
  12. {orionis-0.41.0 → orionis-0.43.0}/orionis/__init__.py +0 -0
  13. {orionis-0.41.0 → orionis-0.43.0}/orionis/cli_manager.py +0 -0
  14. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/__init__.py +0 -0
  15. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/bootstrap/__init__.py +0 -0
  16. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/bootstrap/cli_exception.py +0 -0
  17. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/bootstrap/commands/bootstrapper.py +0 -0
  18. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/bootstrap/commands/register.py +0 -0
  19. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/bootstrap/config/__init__.py +0 -0
  20. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/bootstrap/config/bootstrapper.py +0 -0
  21. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/bootstrap/config/parser.py +0 -0
  22. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/bootstrap/config/register.py +0 -0
  23. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/cache/__init__.py +0 -0
  24. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/cache/app/__init__.py +0 -0
  25. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/cache/app/config.py +0 -0
  26. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/cache/console/__init__.py +0 -0
  27. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/cache/console/commands.py +0 -0
  28. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/config/__init__.py +0 -0
  29. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/config/dataclass/__init__.py +0 -0
  30. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/config/dataclass/app.py +0 -0
  31. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/config/dataclass/auth.py +0 -0
  32. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/config/dataclass/cache.py +0 -0
  33. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/config/dataclass/cors.py +0 -0
  34. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/config/dataclass/database.py +0 -0
  35. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/config/dataclass/filesystems.py +0 -0
  36. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/config/dataclass/logging.py +0 -0
  37. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/config/dataclass/mail.py +0 -0
  38. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/config/dataclass/queue.py +0 -0
  39. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/config/dataclass/session.py +0 -0
  40. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/config/environment.py +0 -0
  41. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/console/__init__.py +0 -0
  42. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/console/base/__init__.py +0 -0
  43. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/console/base/command.py +0 -0
  44. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/console/cache.py +0 -0
  45. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/console/command.py +0 -0
  46. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/console/command_filter.py +0 -0
  47. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/console/commands/__init__.py +0 -0
  48. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/console/commands/cache_clear.py +0 -0
  49. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/console/commands/help.py +0 -0
  50. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/console/commands/schedule_work.py +0 -0
  51. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/console/commands/tests.py +0 -0
  52. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/console/commands/version.py +0 -0
  53. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/console/exceptions/__init__.py +0 -0
  54. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/console/exceptions/cli_exception.py +0 -0
  55. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/console/kernel.py +0 -0
  56. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/console/output/__init__.py +0 -0
  57. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/console/output/console.py +0 -0
  58. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/console/output/executor.py +0 -0
  59. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/console/output/progress_bar.py +0 -0
  60. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/console/output/styles.py +0 -0
  61. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/console/parser.py +0 -0
  62. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/console/runner.py +0 -0
  63. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/console/scripts/__init__.py +0 -0
  64. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/console/scripts/management.py +0 -0
  65. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/console/tasks/__init__.py +0 -0
  66. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/console/tasks/scheduler.py +0 -0
  67. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/container/container.py +0 -0
  68. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/container/exception.py +0 -0
  69. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/container/types.py +0 -0
  70. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/contracts/__init__.py +0 -0
  71. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/contracts/bootstrap/commands/bootstrapper_interface.py +0 -0
  72. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/contracts/bootstrap/commands/register_interface.py +0 -0
  73. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/contracts/bootstrap/config/bootstrapper_interface.py +0 -0
  74. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/contracts/bootstrap/config/parser_interface.py +0 -0
  75. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/contracts/bootstrap/config/register_interface.py +0 -0
  76. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/contracts/cache/__init__.py +0 -0
  77. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/contracts/cache/app/config_interface.py +0 -0
  78. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/contracts/cache/console/commands_interface.py +0 -0
  79. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/contracts/config/__init__.py +0 -0
  80. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/contracts/config/config_interface.py +0 -0
  81. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/contracts/config/environment_interface.py +0 -0
  82. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/contracts/console/__init__.py +0 -0
  83. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/contracts/console/base/base_command_interface.py +0 -0
  84. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/contracts/console/command_filter_interface.py +0 -0
  85. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/contracts/console/command_interface.py +0 -0
  86. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/contracts/console/kernel_interface.py +0 -0
  87. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/contracts/console/output/console_interface.py +0 -0
  88. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/contracts/console/output/executor_interface.py +0 -0
  89. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/contracts/console/output/progress_bar_interface.py +0 -0
  90. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/contracts/console/parser_interface.py +0 -0
  91. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/contracts/console/runner_interface.py +0 -0
  92. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/contracts/console/scripts/management_interface.py +0 -0
  93. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/contracts/console/task_manager_interface.py +0 -0
  94. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/contracts/console/tasks/schedule_interface.py +0 -0
  95. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/contracts/container/container_interface.py +0 -0
  96. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/contracts/container/types_interface.py +0 -0
  97. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/contracts/facades/__init__.py +0 -0
  98. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/contracts/facades/env_interface.py +0 -0
  99. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/contracts/facades/log_interface.py +0 -0
  100. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/contracts/facades/paths_interface.py +0 -0
  101. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/contracts/facades/tests_interface.py +0 -0
  102. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/contracts/files/__init__.py +0 -0
  103. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/contracts/files/paths_interface.py +0 -0
  104. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/contracts/installer/__init__.py +0 -0
  105. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/contracts/installer/output_interface.py +0 -0
  106. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/contracts/installer/setup_interface.py +0 -0
  107. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/contracts/installer/upgrade_interface.py +0 -0
  108. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/contracts/log/__init__.py +0 -0
  109. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/contracts/log/logger_interface.py +0 -0
  110. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/contracts/pipelines/cli_pipeline_interface.py +0 -0
  111. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/contracts/publisher/__init__.py +0 -0
  112. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/contracts/publisher/pypi_publisher_interface.py +0 -0
  113. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/contracts/test/__init__.py +0 -0
  114. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/contracts/test/unit_test_interface.py +0 -0
  115. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/contracts/tools/__init__.py +0 -0
  116. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/contracts/tools/exception_to_dict_interface.py +0 -0
  117. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/contracts/tools/reflection_interface.py +0 -0
  118. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/contracts/tools/std_interface.py +0 -0
  119. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/facades/__init__.py +0 -0
  120. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/facades/environment.py +0 -0
  121. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/facades/log.py +0 -0
  122. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/facades/paths.py +0 -0
  123. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/facades/tests.py +0 -0
  124. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/files/__init__.py +0 -0
  125. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/files/paths.py +0 -0
  126. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/installer/__init__.py +0 -0
  127. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/installer/icon.ascii +0 -0
  128. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/installer/info.ascii +0 -0
  129. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/installer/output.py +0 -0
  130. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/installer/setup.py +0 -0
  131. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/installer/upgrade.py +0 -0
  132. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/log/__init__.py +0 -0
  133. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/log/logger.py +0 -0
  134. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/patterns/singleton.py +0 -0
  135. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/pipelines/__init__.py +0 -0
  136. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/pipelines/cli_pipeline.py +0 -0
  137. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/publisher/__init__.py +0 -0
  138. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/publisher/pypi.py +0 -0
  139. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/static/bg/galaxy.jpg +0 -0
  140. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/static/favicon/OrionisFrameworkFavicon.png +0 -0
  141. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/static/logos/OrionisFramework.jpg +0 -0
  142. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/static/logos/OrionisFramework.png +0 -0
  143. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/static/logos/OrionisFramework.psd +0 -0
  144. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/static/logos/OrionisFramework2.png +0 -0
  145. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/static/logos/OrionisFramework3.png +0 -0
  146. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/test/__init__.py +0 -0
  147. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/test/exception.py +0 -0
  148. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/test/unit_test.py +0 -0
  149. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/tools/__init__.py +0 -0
  150. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/tools/dot_dict.py +0 -0
  151. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/tools/exception_to_dict.py +0 -0
  152. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/tools/reflection.py +0 -0
  153. {orionis-0.41.0 → orionis-0.43.0}/orionis/luminate/tools/std.py +0 -0
  154. {orionis-0.41.0 → orionis-0.43.0}/orionis.egg-info/dependency_links.txt +0 -0
  155. {orionis-0.41.0 → orionis-0.43.0}/orionis.egg-info/entry_points.txt +0 -0
  156. {orionis-0.41.0 → orionis-0.43.0}/orionis.egg-info/requires.txt +0 -0
  157. {orionis-0.41.0 → orionis-0.43.0}/orionis.egg-info/top_level.txt +0 -0
  158. {orionis-0.41.0 → orionis-0.43.0}/setup.cfg +0 -0
  159. {orionis-0.41.0 → orionis-0.43.0}/setup.py +0 -0
  160. {orionis-0.41.0 → orionis-0.43.0}/tests/__init__.py +0 -0
  161. {orionis-0.41.0 → orionis-0.43.0}/tests/tools/__init__.py +0 -0
  162. {orionis-0.41.0 → orionis-0.43.0}/tests/tools/class_example.py +0 -0
  163. {orionis-0.41.0 → orionis-0.43.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.41.0
3
+ Version: 0.43.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.41.0"
8
+ VERSION = "0.43.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.container
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
@@ -1,10 +1,10 @@
1
1
  from orionis.luminate.container.container import Container
2
2
  from orionis.luminate.cache.app.config import CacheConfig
3
- from orionis.luminate.orionis import OrionisContext
3
+ from orionis.luminate.app import OrionisContext
4
4
 
5
5
  class Config:
6
6
 
7
7
  @staticmethod
8
8
  def get():
9
9
  with OrionisContext() as ctx:
10
- return ctx.make(CacheConfig).config
10
+ return ctx.container.make(CacheConfig).config
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: orionis
3
- Version: 0.41.0
3
+ Version: 0.43.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,142 +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
- Context manager for the Orionis application that handles startup and cleanup.
11
-
12
- This class manages the lifecycle of an Orionis application instance.
13
- It starts the application when entering the context and ensures that the
14
- application is properly finished when exiting, capturing any exceptions that occur.
15
-
16
- Attributes
17
- ----------
18
- is_started : bool
19
- Flag indicating whether the application has been successfully started.
20
- app : App
21
- Instance of the Orionis application.
22
- error_info : tuple or None
23
- Tuple containing the exception instance and its formatted traceback if an error occurs;
24
- otherwise, None.
25
- """
26
-
27
- def __init__(self):
28
- """
29
- Initialize the OrionisContext.
30
-
31
- Sets up the application instance and initializes state variables.
32
- """
33
- self.container = Container()
34
- self.is_started = False
35
- self.error_info = None
36
-
37
- def __enter__(self):
38
- """
39
- Enter the runtime context and start the application.
40
-
41
- Attempts to start the Orionis application. If successful, sets the active flag
42
- and returns the context instance. If an exception is raised during startup,
43
- captures the exception and its traceback before re-raising it.
44
-
45
- Returns
46
- -------
47
- OrionisContext
48
- The current context instance with the application started.
49
-
50
- Raises
51
- ------
52
- Exception
53
- Re-raises any exception that occurs during the application startup.
54
- """
55
- try:
56
-
57
- self.container.singleton(CacheConfig)
58
- self.container.singleton(Register)
59
- self.container.singleton(Bootstrapper)
60
-
61
- self.container.make(Register)
62
- self.container.make(Bootstrapper)
63
-
64
- self.is_started = True
65
- OrionisContext().is_started = True
66
-
67
- return self
68
-
69
- except Exception as e:
70
-
71
- self.error_info = (e, traceback.format_exc())
72
- raise
73
-
74
- def __exit__(self, exc_type, exc_val, exc_tb):
75
- """
76
- Exit the runtime context and finish the application.
77
-
78
- Calls the application's finish method to perform cleanup regardless of whether
79
- an exception occurred. If an exception occurred, captures its information and
80
- returns False to indicate that the exception should not be suppressed.
81
-
82
- Parameters
83
- ----------
84
- exc_type : type
85
- The type of the exception raised (if any).
86
- exc_val : Exception
87
- The exception instance raised (if any).
88
- exc_tb : traceback
89
- The traceback associated with the exception (if any).
90
-
91
- Returns
92
- -------
93
- bool
94
- Always returns False so that any exception is propagated.
95
- """
96
- try:
97
- self.container = None
98
- finally:
99
- self.is_started = False
100
-
101
- if exc_type:
102
- self.error_info = (exc_val, traceback.format_exc())
103
- return False
104
-
105
- def isStarted(self):
106
- """
107
- Check if the application is currently active.
108
-
109
- Returns
110
- -------
111
- bool
112
- True if the application has been started and is active, False otherwise.
113
- """
114
- return self.is_started
115
-
116
- def getError(self):
117
- """
118
- Retrieve the stored error information.
119
-
120
- Returns
121
- -------
122
- tuple or None
123
- A tuple containing the exception and its formatted traceback if an error occurred;
124
- otherwise, None.
125
- """
126
- return self.error_info
127
-
128
- class OrionisContext(metaclass=SingletonMeta):
129
-
130
- def __init__(self):
131
- self.is_started = False
132
-
133
- def __enter__(self):
134
- if self.is_started:
135
- return Orionis()
136
- raise Exception(
137
- "Error: Not running within a valid Orionis Framework context. "
138
- "Please ensure that you are using the proper context manager."
139
- )
140
-
141
- def __exit__(self, exc_type, exc_val, exc_tb):
142
- pass
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes