orionis 0.41.0__py3-none-any.whl → 0.43.0__py3-none-any.whl
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.
- orionis/framework.py +1 -1
- orionis/luminate/app.py +99 -0
- orionis/luminate/app_context.py +58 -0
- orionis/luminate/facades/config.py +2 -2
- {orionis-0.41.0.dist-info → orionis-0.43.0.dist-info}/METADATA +1 -1
- {orionis-0.41.0.dist-info → orionis-0.43.0.dist-info}/RECORD +10 -9
- orionis/luminate/orionis.py +0 -142
- {orionis-0.41.0.dist-info → orionis-0.43.0.dist-info}/LICENCE +0 -0
- {orionis-0.41.0.dist-info → orionis-0.43.0.dist-info}/WHEEL +0 -0
- {orionis-0.41.0.dist-info → orionis-0.43.0.dist-info}/entry_points.txt +0 -0
- {orionis-0.41.0.dist-info → orionis-0.43.0.dist-info}/top_level.txt +0 -0
orionis/framework.py
CHANGED
orionis/luminate/app.py
ADDED
@@ -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.
|
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,8 +1,9 @@
|
|
1
1
|
orionis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
2
2
|
orionis/cli_manager.py,sha256=9wNVJxB0HyqUbNesUvkwlsqTyUbZwK6R46iVLE5WVBQ,1715
|
3
|
-
orionis/framework.py,sha256=
|
3
|
+
orionis/framework.py,sha256=w-skVjle56yYri7y4-JudXFEnPxgzqAFQ-jKgobFre4,1386
|
4
4
|
orionis/luminate/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
5
|
-
orionis/luminate/
|
5
|
+
orionis/luminate/app.py,sha256=w7uUYbbLiGcpf_dOao6t0k0BJzXEJ2KC2zbfBHO3tvo,3231
|
6
|
+
orionis/luminate/app_context.py,sha256=MikUzwxyVC_ni-EWSNkVblrcM3SJTYwBjk4VoaC66x4,1837
|
6
7
|
orionis/luminate/bootstrap/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
7
8
|
orionis/luminate/bootstrap/cli_exception.py,sha256=wDKfEW295c7-bavr7YUHK2CLYcTSZgjT9ZRSBne6GOE,1356
|
8
9
|
orionis/luminate/bootstrap/commands/bootstrapper.py,sha256=TuXuQUzeaiDL8sJyZNdqnFl2h2MfxcnSU045IeIKVQE,4016
|
@@ -108,7 +109,7 @@ orionis/luminate/contracts/tools/exception_to_dict_interface.py,sha256=rCuhx2tmU
|
|
108
109
|
orionis/luminate/contracts/tools/reflection_interface.py,sha256=k9y7So3Z-_QFBBaCl-4t50ZRixt1pcxPtpwlo1NrSGk,8140
|
109
110
|
orionis/luminate/contracts/tools/std_interface.py,sha256=VtOlmz7c1llBRVzKnEBA4aJE5m0Y0w7pFJ_1TgG1-G0,1408
|
110
111
|
orionis/luminate/facades/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
111
|
-
orionis/luminate/facades/config.py,sha256=
|
112
|
+
orionis/luminate/facades/config.py,sha256=Yiy9rhxsnRZYutXt0pyvgtTUzIJCI89ZhyafPFmT1qY,320
|
112
113
|
orionis/luminate/facades/environment.py,sha256=HFnePQKzbBuJxKuL2bv3-6Fwm2xXeJdqDIpGTeY2HUM,2225
|
113
114
|
orionis/luminate/facades/log.py,sha256=yHht-ok-eseVmwZgsAiHuFOS3MRLJ-YJrbG7VmHguMU,1643
|
114
115
|
orionis/luminate/facades/paths.py,sha256=qXU9KvgNw54IsNc82_S66o198CA9bMZqO8wuCMW1Rnk,7300
|
@@ -147,9 +148,9 @@ tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
147
148
|
tests/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
148
149
|
tests/tools/class_example.py,sha256=dIPD997Y15n6WmKhWoOFSwEldRm9MdOHTZZ49eF1p3c,1056
|
149
150
|
tests/tools/test_reflection.py,sha256=dNN5p_xAosyEf0ddAElmmmTfhcTtBd4zBNl7qzgnsc0,5242
|
150
|
-
orionis-0.
|
151
|
-
orionis-0.
|
152
|
-
orionis-0.
|
153
|
-
orionis-0.
|
154
|
-
orionis-0.
|
155
|
-
orionis-0.
|
151
|
+
orionis-0.43.0.dist-info/LICENCE,sha256=-_4cF2EBKuYVS_SQpy1uapq0oJPUU1vl_RUWSy2jJTo,1111
|
152
|
+
orionis-0.43.0.dist-info/METADATA,sha256=wANx3owLTDihMBZ9BxkZbJ3lKwc1IW_AonBcTFXvWEw,2978
|
153
|
+
orionis-0.43.0.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
154
|
+
orionis-0.43.0.dist-info/entry_points.txt,sha256=eef1_CVewfokKjrGBynXa06KabSJYo7LlDKKIKvs1cM,53
|
155
|
+
orionis-0.43.0.dist-info/top_level.txt,sha256=2bdoHgyGZhOtLAXS6Om8OCTmL24dUMC_L1quMe_ETbk,14
|
156
|
+
orionis-0.43.0.dist-info/RECORD,,
|
orionis/luminate/orionis.py
DELETED
@@ -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
|