orionis 0.40.0__py3-none-any.whl → 0.42.0__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
orionis/framework.py CHANGED
@@ -5,7 +5,7 @@
5
5
  NAME = "orionis"
6
6
 
7
7
  # Current version of the framework
8
- VERSION = "0.40.0"
8
+ VERSION = "0.42.0"
9
9
 
10
10
  # Full name of the author or maintainer of the project
11
11
  AUTHOR = "Raul Mauricio Uñate Castro"
@@ -7,4 +7,4 @@ class Config:
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
@@ -7,52 +7,35 @@ from orionis.luminate.patterns.singleton import SingletonMeta
7
7
 
8
8
  class Orionis(metaclass=SingletonMeta):
9
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.
10
+ Manages the Orionis application lifecycle, ensuring proper initialization
11
+ and cleanup while handling exceptions.
25
12
  """
26
13
 
27
14
  def __init__(self):
28
- """
29
- Initialize the OrionisContext.
30
-
31
- Sets up the application instance and initializes state variables.
32
- """
33
- self.container = Container()
15
+ """Initialize Orionis with a container and setup state tracking."""
16
+ self.container = None
34
17
  self.is_started = False
35
18
  self.error_info = None
36
19
 
37
20
  def __enter__(self):
38
21
  """
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.
22
+ Starts the Orionis application and registers required dependencies.
44
23
 
45
24
  Returns
46
25
  -------
47
- OrionisContext
48
- The current context instance with the application started.
26
+ Orionis
27
+ The initialized Orionis instance.
49
28
 
50
29
  Raises
51
30
  ------
52
31
  Exception
53
- Re-raises any exception that occurs during the application startup.
32
+ If an error occurs during startup.
54
33
  """
55
34
  try:
35
+ if self.is_started:
36
+ return self
37
+
38
+ self.container = Container()
56
39
 
57
40
  self.container.singleton(CacheConfig)
58
41
  self.container.singleton(Register)
@@ -62,80 +45,65 @@ class Orionis(metaclass=SingletonMeta):
62
45
  self.container.make(Bootstrapper)
63
46
 
64
47
  self.is_started = True
65
-
66
48
  return self
67
49
 
68
50
  except Exception as e:
69
-
70
51
  self.error_info = (e, traceback.format_exc())
71
52
  raise
72
53
 
73
54
  def __exit__(self, exc_type, exc_val, exc_tb):
74
55
  """
75
- Exit the runtime context and finish the application.
76
-
77
- Calls the application's finish method to perform cleanup regardless of whether
78
- an exception occurred. If an exception occurred, captures its information and
79
- returns False to indicate that the exception should not be suppressed.
80
-
81
- Parameters
82
- ----------
83
- exc_type : type
84
- The type of the exception raised (if any).
85
- exc_val : Exception
86
- The exception instance raised (if any).
87
- exc_tb : traceback
88
- The traceback associated with the exception (if any).
56
+ Cleans up resources and ensures proper shutdown.
89
57
 
90
58
  Returns
91
59
  -------
92
60
  bool
93
- Always returns False so that any exception is propagated.
61
+ False to propagate exceptions.
94
62
  """
95
- try:
96
- self.container = None
97
- finally:
98
- self.is_started = False
63
+ self.container = None
64
+ self.is_started = False
99
65
 
100
66
  if exc_type:
101
67
  self.error_info = (exc_val, traceback.format_exc())
102
68
  return False
103
69
 
104
70
  def isStarted(self):
105
- """
106
- Check if the application is currently active.
107
-
108
- Returns
109
- -------
110
- bool
111
- True if the application has been started and is active, False otherwise.
112
- """
71
+ """Check if Orionis is currently active."""
113
72
  return self.is_started
114
73
 
115
74
  def getError(self):
116
- """
117
- Retrieve the stored error information.
118
-
119
- Returns
120
- -------
121
- tuple or None
122
- A tuple containing the exception and its formatted traceback if an error occurred;
123
- otherwise, None.
124
- """
75
+ """Retrieve stored error information."""
125
76
  return self.error_info
126
77
 
127
- class OrionisContext(metaclass=SingletonMeta):
128
78
 
129
- def __init__(self):
130
- self.orionis = Orionis()
79
+ class OrionisContext:
80
+ """
81
+ Ensures that Orionis is running within a valid context before allowing access
82
+ to the dependency container.
83
+ """
131
84
 
132
85
  def __enter__(self):
133
- if self.orionis.isStarted():
134
- return self.orionis.container
135
- raise Exception(
136
- "Error: Not running within a valid Orionis Framework context. "
137
- "Please ensure that you are using the proper context manager."
138
- )
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
139
106
 
140
107
  def __exit__(self, exc_type, exc_val, exc_tb):
141
- pass
108
+ """Ensures exceptions propagate naturally."""
109
+ return False
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: orionis
3
- Version: 0.40.0
3
+ Version: 0.42.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,8 +1,8 @@
1
1
  orionis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
2
  orionis/cli_manager.py,sha256=9wNVJxB0HyqUbNesUvkwlsqTyUbZwK6R46iVLE5WVBQ,1715
3
- orionis/framework.py,sha256=MnrjDYY-H6A2jU-u_U17nBEbHRRNy9rh_mWVZZTi3nY,1386
3
+ orionis/framework.py,sha256=TlT7nkQG2E_adhasSB1bze9IufktITLC1x24P5H2Ubo,1386
4
4
  orionis/luminate/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
- orionis/luminate/orionis.py,sha256=MYwyppBfeYf4y3C_zprXOis93dMKe9Ku9WgadlTfPH8,4528
5
+ orionis/luminate/orionis.py,sha256=HojY14tDsDZ38CeyOaQFMDsXz3hiTCbq8zscVsUmYls,3150
6
6
  orionis/luminate/bootstrap/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
7
  orionis/luminate/bootstrap/cli_exception.py,sha256=wDKfEW295c7-bavr7YUHK2CLYcTSZgjT9ZRSBne6GOE,1356
8
8
  orionis/luminate/bootstrap/commands/bootstrapper.py,sha256=TuXuQUzeaiDL8sJyZNdqnFl2h2MfxcnSU045IeIKVQE,4016
@@ -108,7 +108,7 @@ orionis/luminate/contracts/tools/exception_to_dict_interface.py,sha256=rCuhx2tmU
108
108
  orionis/luminate/contracts/tools/reflection_interface.py,sha256=k9y7So3Z-_QFBBaCl-4t50ZRixt1pcxPtpwlo1NrSGk,8140
109
109
  orionis/luminate/contracts/tools/std_interface.py,sha256=VtOlmz7c1llBRVzKnEBA4aJE5m0Y0w7pFJ_1TgG1-G0,1408
110
110
  orionis/luminate/facades/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
111
- orionis/luminate/facades/config.py,sha256=Wa8WDE6NmKVwwFO-MuLK_mhA7jLiZsEDz8f7Yo3myAA,314
111
+ orionis/luminate/facades/config.py,sha256=5x-m8XNz_IEGNtnLqQ0rkRkVR2NCs_vPocbDOxZygow,324
112
112
  orionis/luminate/facades/environment.py,sha256=HFnePQKzbBuJxKuL2bv3-6Fwm2xXeJdqDIpGTeY2HUM,2225
113
113
  orionis/luminate/facades/log.py,sha256=yHht-ok-eseVmwZgsAiHuFOS3MRLJ-YJrbG7VmHguMU,1643
114
114
  orionis/luminate/facades/paths.py,sha256=qXU9KvgNw54IsNc82_S66o198CA9bMZqO8wuCMW1Rnk,7300
@@ -147,9 +147,9 @@ tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
147
147
  tests/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
148
148
  tests/tools/class_example.py,sha256=dIPD997Y15n6WmKhWoOFSwEldRm9MdOHTZZ49eF1p3c,1056
149
149
  tests/tools/test_reflection.py,sha256=dNN5p_xAosyEf0ddAElmmmTfhcTtBd4zBNl7qzgnsc0,5242
150
- orionis-0.40.0.dist-info/LICENCE,sha256=-_4cF2EBKuYVS_SQpy1uapq0oJPUU1vl_RUWSy2jJTo,1111
151
- orionis-0.40.0.dist-info/METADATA,sha256=XOmuN0L2Uu0xe_bgDXrZr_ujm4NZu493JMkrZauwv7k,2978
152
- orionis-0.40.0.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
153
- orionis-0.40.0.dist-info/entry_points.txt,sha256=eef1_CVewfokKjrGBynXa06KabSJYo7LlDKKIKvs1cM,53
154
- orionis-0.40.0.dist-info/top_level.txt,sha256=2bdoHgyGZhOtLAXS6Om8OCTmL24dUMC_L1quMe_ETbk,14
155
- orionis-0.40.0.dist-info/RECORD,,
150
+ orionis-0.42.0.dist-info/LICENCE,sha256=-_4cF2EBKuYVS_SQpy1uapq0oJPUU1vl_RUWSy2jJTo,1111
151
+ orionis-0.42.0.dist-info/METADATA,sha256=4pDDzZVrM92tNXgB5Uv7WfdTmpyoBOW6iUCyv7fKsT0,2978
152
+ orionis-0.42.0.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
153
+ orionis-0.42.0.dist-info/entry_points.txt,sha256=eef1_CVewfokKjrGBynXa06KabSJYo7LlDKKIKvs1cM,53
154
+ orionis-0.42.0.dist-info/top_level.txt,sha256=2bdoHgyGZhOtLAXS6Om8OCTmL24dUMC_L1quMe_ETbk,14
155
+ orionis-0.42.0.dist-info/RECORD,,