orionis 0.401.0__py3-none-any.whl → 0.403.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/container/providers/service_provider.py +4 -4
- orionis/foundation/application.py +4 -2
- orionis/foundation/config/base.py +112 -0
- orionis/foundation/config/logging/entities/channels.py +87 -69
- orionis/foundation/config/logging/entities/chunked.py +37 -92
- orionis/foundation/config/logging/entities/daily.py +43 -81
- orionis/foundation/config/logging/entities/hourly.py +16 -71
- orionis/foundation/config/logging/entities/logging.py +37 -38
- orionis/foundation/config/logging/entities/monthly.py +19 -75
- orionis/foundation/config/logging/entities/stack.py +13 -69
- orionis/foundation/config/logging/entities/weekly.py +19 -75
- orionis/foundation/config/logging/enums/levels.py +6 -7
- orionis/foundation/config/logging/validators/__init__.py +7 -0
- orionis/foundation/config/logging/validators/level.py +54 -0
- orionis/foundation/config/logging/validators/path.py +34 -0
- orionis/foundation/providers/console_provider.py +0 -4
- orionis/foundation/providers/dumper_provider.py +0 -4
- orionis/foundation/providers/logger_provider.py +17 -0
- orionis/foundation/providers/path_resolver_provider.py +0 -4
- orionis/foundation/providers/progress_bar_provider.py +0 -4
- orionis/foundation/providers/workers_provider.py +0 -4
- orionis/metadata/framework.py +1 -1
- orionis/services/log/contracts/__init__.py +0 -0
- orionis/services/log/contracts/log_service.py +23 -0
- orionis/services/log/exceptions/__init__.py +5 -0
- orionis/services/log/exceptions/runtime.py +19 -0
- orionis/services/log/handlers/__init__.py +0 -0
- orionis/services/log/handlers/size_rotating.py +52 -0
- orionis/services/log/handlers/timed_rotating.py +53 -0
- orionis/services/log/log_service.py +188 -143
- orionis/support/facades/logger.py +15 -0
- {orionis-0.401.0.dist-info → orionis-0.403.0.dist-info}/METADATA +1 -1
- {orionis-0.401.0.dist-info → orionis-0.403.0.dist-info}/RECORD +37 -24
- {orionis-0.401.0.dist-info → orionis-0.403.0.dist-info}/WHEEL +0 -0
- {orionis-0.401.0.dist-info → orionis-0.403.0.dist-info}/licenses/LICENCE +0 -0
- {orionis-0.401.0.dist-info → orionis-0.403.0.dist-info}/top_level.txt +0 -0
- {orionis-0.401.0.dist-info → orionis-0.403.0.dist-info}/zip-safe +0 -0
|
@@ -1,54 +1,109 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
from
|
|
4
|
-
import
|
|
5
|
-
from
|
|
6
|
-
from
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
Attributes
|
|
17
|
-
----------
|
|
18
|
-
logger : logging.Logger
|
|
19
|
-
The logger instance used to log messages.
|
|
20
|
-
|
|
21
|
-
Methods
|
|
22
|
-
-------
|
|
23
|
-
__init__(config_service: ConfigService)
|
|
24
|
-
Initializes the logger with ConfigService
|
|
25
|
-
_initialize_logger(config_service: ConfigService)
|
|
26
|
-
Configures the logger with ConfigService settings.
|
|
27
|
-
info(message: str) -> None
|
|
28
|
-
Logs an informational message.
|
|
29
|
-
error(message: str) -> None
|
|
30
|
-
Logs an error message.
|
|
31
|
-
success(message: str) -> None
|
|
32
|
-
Logs a success message (treated as info).
|
|
33
|
-
warning(message: str) -> None
|
|
34
|
-
Logs a warning message.
|
|
35
|
-
debug(message: str) -> None
|
|
36
|
-
Logs a debug message.
|
|
37
|
-
"""
|
|
38
|
-
|
|
39
|
-
def __init__(self, config_service : IConfigService):
|
|
1
|
+
from orionis.foundation.config.logging.entities.logging import Logging
|
|
2
|
+
from orionis.foundation.config.logging.enums import Level
|
|
3
|
+
from orionis.services.log.contracts.log_service import ILoggerService
|
|
4
|
+
from orionis.services.log.exceptions import LoggerRuntimeError
|
|
5
|
+
from orionis.services.log.handlers.size_rotating import PrefixedSizeRotatingFileHandler
|
|
6
|
+
from orionis.services.log.handlers.timed_rotating import PrefixedTimedRotatingFileHandler
|
|
7
|
+
|
|
8
|
+
class LoggerService(ILoggerService):
|
|
9
|
+
|
|
10
|
+
def __init__(
|
|
11
|
+
self,
|
|
12
|
+
config: Logging | dict = None,
|
|
13
|
+
**kwargs
|
|
14
|
+
):
|
|
40
15
|
"""
|
|
41
|
-
|
|
16
|
+
Initialize the LoggerService with the provided configuration.
|
|
42
17
|
|
|
43
18
|
Parameters
|
|
44
19
|
----------
|
|
45
|
-
|
|
46
|
-
The configuration
|
|
20
|
+
config : Logging or dict, optional
|
|
21
|
+
The logging configuration. Can be an instance of the Logging class,
|
|
22
|
+
a dictionary of configuration parameters, or None. If None, configuration
|
|
23
|
+
is initialized using kwargs.
|
|
24
|
+
**kwargs
|
|
25
|
+
Additional keyword arguments used to initialize the Logging configuration
|
|
26
|
+
if config is None.
|
|
27
|
+
|
|
28
|
+
Raises
|
|
29
|
+
------
|
|
30
|
+
LoggerRuntimeError
|
|
31
|
+
If the logger configuration cannot be initialized from the provided arguments.
|
|
32
|
+
"""
|
|
33
|
+
|
|
34
|
+
# Attributes
|
|
35
|
+
self.__logger = None
|
|
36
|
+
self.__config = None
|
|
37
|
+
|
|
38
|
+
# Initialize the logger configuration using **kwargs if provided
|
|
39
|
+
if config is None:
|
|
40
|
+
try:
|
|
41
|
+
self.__config = Logging(**kwargs)
|
|
42
|
+
except Exception as e:
|
|
43
|
+
raise LoggerRuntimeError(f"Failed to initialize logger configuration: {e}")
|
|
44
|
+
|
|
45
|
+
# If config is a dictionary, convert it to Logging
|
|
46
|
+
elif isinstance(config, dict):
|
|
47
|
+
self.__config = Logging(**config)
|
|
48
|
+
|
|
49
|
+
# If config is already an instance of Logging, use it directly
|
|
50
|
+
elif isinstance(config, Logging):
|
|
51
|
+
self.__config = config
|
|
52
|
+
|
|
53
|
+
# Initialize LoggerService
|
|
54
|
+
self.__initLogger()
|
|
55
|
+
|
|
56
|
+
def __filename(self, original_path:str) -> str:
|
|
57
|
+
"""
|
|
58
|
+
Generates a rotated log filename by prefixing the original filename with a timestamp.
|
|
59
|
+
This method takes an original file path, extracts its directory, base name, and extension,
|
|
60
|
+
and returns a new file path where the base name is prefixed with the current timestamp
|
|
61
|
+
in the format 'YYYYMMDD_HHMMSS'. If the target directory does not exist, it is created.
|
|
62
|
+
The original file path to be rotated.
|
|
63
|
+
The new file path with a timestamp prefix added to the base name.
|
|
64
|
+
Notes
|
|
65
|
+
-----
|
|
66
|
+
- The timestamp is based on the current local time.
|
|
67
|
+
- The method ensures that the parent directory for the new file exists.
|
|
68
|
+
|
|
69
|
+
Returns
|
|
70
|
+
-------
|
|
71
|
+
str
|
|
72
|
+
The new filename with a timestamp prefix in the format 'YYYYMMDD_HHMMSS'.
|
|
47
73
|
"""
|
|
48
|
-
|
|
49
|
-
|
|
74
|
+
import os
|
|
75
|
+
from datetime import datetime
|
|
76
|
+
from pathlib import Path
|
|
50
77
|
|
|
51
|
-
|
|
78
|
+
# Split the original path to extract the base name and extension
|
|
79
|
+
if '/' in original_path:
|
|
80
|
+
parts = original_path.split('/')
|
|
81
|
+
elif '\\' in original_path:
|
|
82
|
+
parts = original_path.split('\\')
|
|
83
|
+
else:
|
|
84
|
+
parts = original_path.split(os.sep)
|
|
85
|
+
|
|
86
|
+
# Get the base name and extension
|
|
87
|
+
filename, ext = os.path.splitext(parts[-1])
|
|
88
|
+
|
|
89
|
+
# Create the path without the last part
|
|
90
|
+
path = os.path.join(*parts[:-1]) if len(parts) > 1 else ''
|
|
91
|
+
|
|
92
|
+
# Prefix the base name with a timestamp
|
|
93
|
+
prefix = datetime.now().strftime("%Y%m%d_%H%M%S")
|
|
94
|
+
|
|
95
|
+
# Join the path, prefix, and filename to create the full path
|
|
96
|
+
full_path = os.path.join(path, f"{prefix}_{filename}{ext}")
|
|
97
|
+
|
|
98
|
+
# Ensure the log directory exists
|
|
99
|
+
log_dir = Path(full_path).parent
|
|
100
|
+
if not log_dir.exists():
|
|
101
|
+
log_dir.mkdir(parents=True, exist_ok=True)
|
|
102
|
+
|
|
103
|
+
# Return the full path as a string
|
|
104
|
+
return full_path
|
|
105
|
+
|
|
106
|
+
def __initLogger(self):
|
|
52
107
|
"""
|
|
53
108
|
Configures the logger with the specified settings.
|
|
54
109
|
|
|
@@ -56,30 +111,33 @@ class LogguerService:
|
|
|
56
111
|
directory does not exist, it creates it. The log format includes the
|
|
57
112
|
timestamp and the log message.
|
|
58
113
|
|
|
59
|
-
Parameters
|
|
60
|
-
----------
|
|
61
|
-
config_service : ConfigService
|
|
62
|
-
The configuration service instance.
|
|
63
|
-
|
|
64
114
|
Raises
|
|
65
115
|
------
|
|
66
|
-
|
|
116
|
+
LoggerRuntimeError
|
|
67
117
|
If the logger cannot be initialized due to an error.
|
|
68
118
|
"""
|
|
69
|
-
|
|
119
|
+
import logging
|
|
120
|
+
from datetime import datetime
|
|
70
121
|
|
|
71
|
-
|
|
72
|
-
default_path = base / "storage" / "logs"
|
|
73
|
-
default_path.mkdir(parents=True, exist_ok=True)
|
|
74
|
-
default_path = default_path / "orionis.log"
|
|
122
|
+
try:
|
|
75
123
|
|
|
124
|
+
# List to hold the handlers
|
|
76
125
|
handlers = []
|
|
77
126
|
|
|
78
|
-
channel
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
127
|
+
# Get the channel from the configuration
|
|
128
|
+
channel: str = self.__config.default
|
|
129
|
+
|
|
130
|
+
# Get the configuration for the specified channel
|
|
131
|
+
config_channels = getattr(self.__config.channels, channel)
|
|
132
|
+
|
|
133
|
+
# Get the path from the channel configuration
|
|
134
|
+
path: str = self.__filename(getattr(config_channels, 'path'))
|
|
82
135
|
|
|
136
|
+
# Get Level from the channel configuration, defaulting to 10 (DEBUG)
|
|
137
|
+
level: Level | int = getattr(config_channels, 'level', 10)
|
|
138
|
+
level = level if isinstance(level, int) else level.value
|
|
139
|
+
|
|
140
|
+
# Create handlers based on the channel type
|
|
83
141
|
if channel == "stack":
|
|
84
142
|
|
|
85
143
|
handlers = [
|
|
@@ -92,153 +150,140 @@ class LogguerService:
|
|
|
92
150
|
elif channel == "hourly":
|
|
93
151
|
|
|
94
152
|
handlers = [
|
|
95
|
-
|
|
96
|
-
filename=path,
|
|
97
|
-
when="h",
|
|
98
|
-
interval=1,
|
|
99
|
-
backupCount=
|
|
100
|
-
encoding="utf-8",
|
|
101
|
-
utc=
|
|
153
|
+
PrefixedTimedRotatingFileHandler(
|
|
154
|
+
filename = path,
|
|
155
|
+
when = "h",
|
|
156
|
+
interval = 1,
|
|
157
|
+
backupCount = getattr(config_channels, 'retention_hours', 24),
|
|
158
|
+
encoding = "utf-8",
|
|
159
|
+
utc = False
|
|
102
160
|
)
|
|
103
161
|
]
|
|
104
162
|
|
|
105
163
|
elif channel == "daily":
|
|
106
164
|
|
|
107
|
-
backup_count = config.get('retention_days', 30)
|
|
108
|
-
hour_at:str = config.get('at', "00:00")
|
|
109
|
-
if backup_count < 1:
|
|
110
|
-
raise ValueError("The 'retention_days' value must be an integer greater than 0.")
|
|
111
|
-
if not bool(re.match(r"^(?:[01]?\d|2[0-3]):[0-5]?\d$", hour_at)):
|
|
112
|
-
raise ValueError("The 'at' value must be a valid time in the format HH:MM.")
|
|
113
|
-
|
|
114
165
|
handlers = [
|
|
115
|
-
|
|
116
|
-
filename=path,
|
|
117
|
-
when="d",
|
|
118
|
-
interval=1,
|
|
119
|
-
backupCount=
|
|
120
|
-
encoding="utf-8",
|
|
121
|
-
atTime=datetime.strptime(
|
|
122
|
-
utc=
|
|
166
|
+
PrefixedTimedRotatingFileHandler(
|
|
167
|
+
filename = path,
|
|
168
|
+
when = "d",
|
|
169
|
+
interval = 1,
|
|
170
|
+
backupCount = getattr(config_channels, 'retention_days', 7),
|
|
171
|
+
encoding = "utf-8",
|
|
172
|
+
atTime = datetime.strptime(getattr(config_channels, 'at', "00:00"), "%H:%M").time(),
|
|
173
|
+
utc = False
|
|
123
174
|
)
|
|
124
175
|
]
|
|
125
176
|
|
|
126
177
|
elif channel == "weekly":
|
|
127
178
|
|
|
128
|
-
backup_count = config.get('retention_weeks', 4)
|
|
129
|
-
if backup_count < 1:
|
|
130
|
-
raise ValueError("The 'retention_weeks' value must be an integer greater than 0.")
|
|
131
179
|
handlers = [
|
|
132
|
-
|
|
133
|
-
filename=path,
|
|
134
|
-
when="w0",
|
|
135
|
-
interval=1,
|
|
136
|
-
backupCount=
|
|
137
|
-
encoding="utf-8",
|
|
138
|
-
utc=
|
|
180
|
+
PrefixedTimedRotatingFileHandler(
|
|
181
|
+
filename = path,
|
|
182
|
+
when = "w0",
|
|
183
|
+
interval = 1,
|
|
184
|
+
backupCount = getattr(config_channels, 'retention_weeks', 4),
|
|
185
|
+
encoding = "utf-8",
|
|
186
|
+
utc = False
|
|
139
187
|
)
|
|
140
188
|
]
|
|
141
189
|
|
|
142
190
|
elif channel == "monthly":
|
|
143
191
|
|
|
144
|
-
backup_count = config.get('retention_months', 2)
|
|
145
|
-
if backup_count < 1:
|
|
146
|
-
raise ValueError("The 'retention_months' value must be an integer greater than 0.")
|
|
147
192
|
handlers = [
|
|
148
|
-
|
|
149
|
-
filename=path,
|
|
150
|
-
when="midnight",
|
|
151
|
-
interval=30,
|
|
152
|
-
backupCount=
|
|
153
|
-
encoding="utf-8",
|
|
154
|
-
utc=
|
|
193
|
+
PrefixedTimedRotatingFileHandler(
|
|
194
|
+
filename = path,
|
|
195
|
+
when = "midnight",
|
|
196
|
+
interval = 30,
|
|
197
|
+
backupCount = getattr(config_channels, 'retention_months', 4),
|
|
198
|
+
encoding = "utf-8",
|
|
199
|
+
utc = False
|
|
155
200
|
)
|
|
156
201
|
]
|
|
157
202
|
|
|
158
203
|
elif channel == "chunked":
|
|
159
204
|
|
|
160
|
-
max_bytes = config.get('mb_size', 5)
|
|
161
|
-
if max_bytes < 1:
|
|
162
|
-
raise ValueError("The 'mb_size' value must be an integer greater than 0.")
|
|
163
|
-
backup_count = config.get('max_files', 5)
|
|
164
|
-
if backup_count < 1:
|
|
165
|
-
raise ValueError("The 'max_files' value must be an integer greater than 0.")
|
|
166
205
|
handlers = [
|
|
167
|
-
|
|
168
|
-
filename=path,
|
|
169
|
-
maxBytes=
|
|
170
|
-
backupCount=
|
|
171
|
-
encoding="utf-8"
|
|
206
|
+
PrefixedSizeRotatingFileHandler(
|
|
207
|
+
filename = path,
|
|
208
|
+
maxBytes = getattr(config_channels, 'mb_size', 10) * 1024 * 1024,
|
|
209
|
+
backupCount =getattr(config_channels, 'files', 5),
|
|
210
|
+
encoding ="utf-8"
|
|
172
211
|
)
|
|
173
212
|
]
|
|
174
213
|
|
|
175
|
-
|
|
176
214
|
# Configure the logger
|
|
177
215
|
logging.basicConfig(
|
|
178
|
-
level=
|
|
179
|
-
format="%(asctime)s - %(message)s",
|
|
180
|
-
datefmt="%Y-%m-%d %H:%M:%S",
|
|
181
|
-
encoding="utf-8",
|
|
182
|
-
handlers=handlers
|
|
216
|
+
level = level,
|
|
217
|
+
format = "%(asctime)s [%(levelname)s] - %(message)s",
|
|
218
|
+
datefmt = "%Y-%m-%d %H:%M:%S",
|
|
219
|
+
encoding = "utf-8",
|
|
220
|
+
handlers = handlers
|
|
183
221
|
)
|
|
184
222
|
|
|
185
223
|
# Get the logger instance
|
|
186
|
-
self.
|
|
224
|
+
self.__logger = logging.getLogger(__name__)
|
|
187
225
|
|
|
188
226
|
except Exception as e:
|
|
189
|
-
|
|
227
|
+
|
|
228
|
+
# Raise a runtime error if logger initialization fails
|
|
229
|
+
raise LoggerRuntimeError(f"Failed to initialize logger: {e}")
|
|
190
230
|
|
|
191
231
|
def info(self, message: str) -> None:
|
|
192
232
|
"""
|
|
193
|
-
|
|
233
|
+
Log an informational message.
|
|
194
234
|
|
|
195
235
|
Parameters
|
|
196
236
|
----------
|
|
197
237
|
message : str
|
|
198
|
-
The message to log.
|
|
238
|
+
The informational message to log.
|
|
239
|
+
|
|
240
|
+
Returns
|
|
241
|
+
-------
|
|
242
|
+
None
|
|
199
243
|
"""
|
|
200
|
-
self.
|
|
244
|
+
self.__logger.info(message.strip())
|
|
201
245
|
|
|
202
246
|
def error(self, message: str) -> None:
|
|
203
247
|
"""
|
|
204
|
-
|
|
248
|
+
Log an error message.
|
|
205
249
|
|
|
206
250
|
Parameters
|
|
207
251
|
----------
|
|
208
252
|
message : str
|
|
209
|
-
The message to log.
|
|
210
|
-
"""
|
|
211
|
-
self.logger.error(f"[ERROR] - {message}")
|
|
253
|
+
The error message to log.
|
|
212
254
|
|
|
213
|
-
|
|
255
|
+
Returns
|
|
256
|
+
-------
|
|
257
|
+
None
|
|
214
258
|
"""
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
Parameters
|
|
218
|
-
----------
|
|
219
|
-
message : str
|
|
220
|
-
The message to log.
|
|
221
|
-
"""
|
|
222
|
-
self.logger.info(f"[SUCCESS] - {message}")
|
|
259
|
+
self.__logger.error(message.strip())
|
|
223
260
|
|
|
224
261
|
def warning(self, message: str) -> None:
|
|
225
262
|
"""
|
|
226
|
-
|
|
263
|
+
Log a warning message.
|
|
227
264
|
|
|
228
265
|
Parameters
|
|
229
266
|
----------
|
|
230
267
|
message : str
|
|
231
|
-
The message to log.
|
|
268
|
+
The warning message to log.
|
|
269
|
+
|
|
270
|
+
Returns
|
|
271
|
+
-------
|
|
272
|
+
None
|
|
232
273
|
"""
|
|
233
|
-
self.
|
|
274
|
+
self.__logger.warning(message.strip())
|
|
234
275
|
|
|
235
276
|
def debug(self, message: str) -> None:
|
|
236
277
|
"""
|
|
237
|
-
|
|
278
|
+
Log a debug message.
|
|
238
279
|
|
|
239
280
|
Parameters
|
|
240
281
|
----------
|
|
241
282
|
message : str
|
|
242
|
-
The message to log.
|
|
283
|
+
The debug message to log.
|
|
284
|
+
|
|
285
|
+
Returns
|
|
286
|
+
-------
|
|
287
|
+
None
|
|
243
288
|
"""
|
|
244
|
-
self.
|
|
289
|
+
self.__logger.debug(message.strip())
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
from orionis.container.facades.facade import Facade
|
|
2
|
+
|
|
3
|
+
class Log(Facade):
|
|
4
|
+
|
|
5
|
+
@classmethod
|
|
6
|
+
def getFacadeAccessor(cls) -> str:
|
|
7
|
+
"""
|
|
8
|
+
Get the service container binding key for the dumper component.
|
|
9
|
+
|
|
10
|
+
Returns
|
|
11
|
+
-------
|
|
12
|
+
str
|
|
13
|
+
The service container binding key.
|
|
14
|
+
"""
|
|
15
|
+
return "core.orionis.logger"
|
|
@@ -132,7 +132,7 @@ orionis/container/exceptions/value.py,sha256=hjY0YEusoL3DurME1ornxvIv1wyGaf6tBgg
|
|
|
132
132
|
orionis/container/facades/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
133
133
|
orionis/container/facades/facade.py,sha256=wIjcQKxQa0xlTGGd6UIakenHMv0mM1BVPI7kt2Hk6uw,3724
|
|
134
134
|
orionis/container/providers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
135
|
-
orionis/container/providers/service_provider.py,sha256=
|
|
135
|
+
orionis/container/providers/service_provider.py,sha256=rAvo32CBPqCSXns4d6IzM7AB9bEPzTCQe-3e5BAUrv8,1934
|
|
136
136
|
orionis/container/resolver/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
137
137
|
orionis/container/resolver/resolver.py,sha256=8mTouPo9hhMwz1CxZcqmzZlg3vHoLCs5HEWtreZ-KWk,23523
|
|
138
138
|
orionis/container/validators/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -146,8 +146,9 @@ orionis/container/validators/is_subclass.py,sha256=4sBaGLoRs8nUhuWjlP0VJqyTwVHYq
|
|
|
146
146
|
orionis/container/validators/is_valid_alias.py,sha256=4uAYcq8xov7jZbXnpKpjNkxcZtlTNnL5RRctVPMwJes,1424
|
|
147
147
|
orionis/container/validators/lifetime.py,sha256=IQ43fDNrxYHMlZH2zlYDJnlkLO_eS4U7Fs3UJgQBidI,1844
|
|
148
148
|
orionis/foundation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
149
|
-
orionis/foundation/application.py,sha256=
|
|
149
|
+
orionis/foundation/application.py,sha256=IpzpEHFOks8SGvh_vqA02DND2KE2SwcqY1PrgRi2bCs,35094
|
|
150
150
|
orionis/foundation/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
151
|
+
orionis/foundation/config/base.py,sha256=E_wKMdaXLN3tNTDKDeE40xiU7wpT1Hvg821_p6mttMc,3972
|
|
151
152
|
orionis/foundation/config/startup.py,sha256=zutF-34DkW68bpiTxH9xrmIe1iJdXCF9Y6wueXS6qys,8265
|
|
152
153
|
orionis/foundation/config/app/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
153
154
|
orionis/foundation/config/app/entities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -197,16 +198,19 @@ orionis/foundation/config/filesystems/entitites/local.py,sha256=joREyccRBj243Ign
|
|
|
197
198
|
orionis/foundation/config/filesystems/entitites/public.py,sha256=wB3zjoVzgAdGZw8sX8r8CobKBK7AzjCD-muBmMPg9-Y,2818
|
|
198
199
|
orionis/foundation/config/logging/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
199
200
|
orionis/foundation/config/logging/entities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
200
|
-
orionis/foundation/config/logging/entities/channels.py,sha256=
|
|
201
|
-
orionis/foundation/config/logging/entities/chunked.py,sha256=
|
|
202
|
-
orionis/foundation/config/logging/entities/daily.py,sha256=
|
|
203
|
-
orionis/foundation/config/logging/entities/hourly.py,sha256=
|
|
204
|
-
orionis/foundation/config/logging/entities/logging.py,sha256=
|
|
205
|
-
orionis/foundation/config/logging/entities/monthly.py,sha256=
|
|
206
|
-
orionis/foundation/config/logging/entities/stack.py,sha256=
|
|
207
|
-
orionis/foundation/config/logging/entities/weekly.py,sha256=
|
|
201
|
+
orionis/foundation/config/logging/entities/channels.py,sha256=ep4yRP7N84ZCzy3uV0jW7dJdZMG7g1jN8X9TAto2fl0,6077
|
|
202
|
+
orionis/foundation/config/logging/entities/chunked.py,sha256=kPG_AXmtedCGEcwKc90JbnWeGT2_FVqXola1aJkRNbI,3512
|
|
203
|
+
orionis/foundation/config/logging/entities/daily.py,sha256=tfZa4OpyljysAcYRDppTyxKYL8bR-KecPm8m9QDKNv4,3669
|
|
204
|
+
orionis/foundation/config/logging/entities/hourly.py,sha256=EgjV4iV-yKSj5Y6SQQlKhd2pn68zF-zJ94xAUme3zG4,2617
|
|
205
|
+
orionis/foundation/config/logging/entities/logging.py,sha256=Uo937rlOGKKI_7QHPRT5-egfHOf4D6q41j5i8Vkgreo,2781
|
|
206
|
+
orionis/foundation/config/logging/entities/monthly.py,sha256=TuaMkJcbyxXu2M4e4j2JsMA6c_7kYILMc6kQ6PBh1ew,2604
|
|
207
|
+
orionis/foundation/config/logging/entities/stack.py,sha256=cVxHNeHjn6x0NW8XxepUJYni4-sHcDjA1D86XXu3jxw,1402
|
|
208
|
+
orionis/foundation/config/logging/entities/weekly.py,sha256=uniGZ62ysb1SyQYNs4pWmqf-yHxsY0u54RsoB_-IMpQ,2552
|
|
208
209
|
orionis/foundation/config/logging/enums/__init__.py,sha256=QUTGa3iIds08ycR7d-Oqa11P07G-djFLGco9ziJjg0E,57
|
|
209
|
-
orionis/foundation/config/logging/enums/levels.py,sha256=
|
|
210
|
+
orionis/foundation/config/logging/enums/levels.py,sha256=9ELSmWnlaB14uqp5OsKXltsF5aVbxwdLQxYp8pjQAbk,872
|
|
211
|
+
orionis/foundation/config/logging/validators/__init__.py,sha256=ZJmPiObyJgbGCgFFz20Ryu4CX5z-cPW9ZWxirQrJoZ0,121
|
|
212
|
+
orionis/foundation/config/logging/validators/level.py,sha256=FOO_c-EKcIBoCexIT98YMyrs8jDFEYj8eDY5kW3b184,1994
|
|
213
|
+
orionis/foundation/config/logging/validators/path.py,sha256=UXjF86HxF6kWCi-Oyx42s9CkbxuewKTmQTiibCqFJ_Q,1094
|
|
210
214
|
orionis/foundation/config/mail/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
211
215
|
orionis/foundation/config/mail/entities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
212
216
|
orionis/foundation/config/mail/entities/file.py,sha256=EL9RCFAEJGbdYB-ynXt6wSWVkyuITAJCmTHsknOeuCI,2525
|
|
@@ -243,13 +247,14 @@ orionis/foundation/exceptions/runtime.py,sha256=QS9Wjy79UFoM_lA-JR907p4l4Z8ae5E8
|
|
|
243
247
|
orionis/foundation/exceptions/type.py,sha256=Ug51YdaUKUlbngR0KeWnJNqIwS9StP4ScVobFY1eI18,463
|
|
244
248
|
orionis/foundation/exceptions/value.py,sha256=hQhXybXEnaa59ba7JxG65jceHt3mnql9MyekF-TChpM,465
|
|
245
249
|
orionis/foundation/providers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
246
|
-
orionis/foundation/providers/console_provider.py,sha256=
|
|
247
|
-
orionis/foundation/providers/dumper_provider.py,sha256=
|
|
248
|
-
orionis/foundation/providers/
|
|
249
|
-
orionis/foundation/providers/
|
|
250
|
-
orionis/foundation/providers/
|
|
250
|
+
orionis/foundation/providers/console_provider.py,sha256=yXw-Y_JH1o9fGN2JDbrJuGO3RoRrOdXpU27weIU14R0,570
|
|
251
|
+
orionis/foundation/providers/dumper_provider.py,sha256=gKkhjkA5BieDcTNDJX05ZlQ5EmLSOnFrcgUkKJhP4ro,554
|
|
252
|
+
orionis/foundation/providers/logger_provider.py,sha256=C-n5a4CV5Fxll4aM1ZJWU1Gf9ihQyRevBoRhXmZKXjA,623
|
|
253
|
+
orionis/foundation/providers/path_resolver_provider.py,sha256=pJE9HJ4hdsUTZ4TXHLfZkyXiwvqwH131CsOqkEnbWWs,587
|
|
254
|
+
orionis/foundation/providers/progress_bar_provider.py,sha256=budmwU2N8WE74x7Vq3xDAFHyjtWq0cbrIGbclqw00Mg,607
|
|
255
|
+
orionis/foundation/providers/workers_provider.py,sha256=KZ_c8Rpf0-JhpkVYr8BvhQtXMAc1t_LFh0frHRz_h30,572
|
|
251
256
|
orionis/metadata/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
252
|
-
orionis/metadata/framework.py,sha256=
|
|
257
|
+
orionis/metadata/framework.py,sha256=PXt85XjOGF5TFTQ0w6zBCT7ScLA8qItXOOvCGUdurCM,4960
|
|
253
258
|
orionis/metadata/package.py,sha256=tqLfBRo-w1j_GN4xvzUNFyweWYFS-qhSgAEc-AmCH1M,5452
|
|
254
259
|
orionis/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
255
260
|
orionis/services/asynchrony/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -310,7 +315,14 @@ orionis/services/introspection/modules/contracts/reflection.py,sha256=YLqKg5Ehad
|
|
|
310
315
|
orionis/services/introspection/objects/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
311
316
|
orionis/services/introspection/objects/types.py,sha256=vNKWc2b7K-X7B2X8RCimgAWQqbQlVT-aL24nUB8t_yQ,6343
|
|
312
317
|
orionis/services/log/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
313
|
-
orionis/services/log/log_service.py,sha256=
|
|
318
|
+
orionis/services/log/log_service.py,sha256=x5I47hwGUeWS4BLN3OMwHvahitOwas6tLpKco_E8WPA,9731
|
|
319
|
+
orionis/services/log/contracts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
320
|
+
orionis/services/log/contracts/log_service.py,sha256=ky7T2EIvJQMV0tKMSwFsUxDBoA24xYro8ChC6-7iUtY,546
|
|
321
|
+
orionis/services/log/exceptions/__init__.py,sha256=PPn_LBV3U-0Yi69ZLDQmlkbmlL1iLTleLw-s88Ipg9o,84
|
|
322
|
+
orionis/services/log/exceptions/runtime.py,sha256=LnaK0w0WlgxtZ9Zjn9RYIgp6fbQZmXZ_1fy9dkuA2jQ,468
|
|
323
|
+
orionis/services/log/handlers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
324
|
+
orionis/services/log/handlers/size_rotating.py,sha256=hEOBE2W_bqAS_kAna23jcbduJWskeHhnQqdcio9iiys,2096
|
|
325
|
+
orionis/services/log/handlers/timed_rotating.py,sha256=KXmJ6mQR9365CR_xlhUiFVIHvBs2zSfL3eWAhLGQx-o,2109
|
|
314
326
|
orionis/services/paths/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
315
327
|
orionis/services/paths/resolver.py,sha256=9PXTawN3QV142Fhe7C2EqXyAlf984Hc05A_M2cqXAps,3217
|
|
316
328
|
orionis/services/paths/contracts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -330,6 +342,7 @@ orionis/support/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
330
342
|
orionis/support/facades/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
331
343
|
orionis/support/facades/console.py,sha256=Hx_VGZazpdPDkg1LgcCTzgASq7blzazGHXVNp2uN5w8,372
|
|
332
344
|
orionis/support/facades/dumper.py,sha256=JD0xT11ReLlzTH1O5wdIG1-r9sg1nriJnhtqkLsavW8,370
|
|
345
|
+
orionis/support/facades/logger.py,sha256=TWJP2OKiGIECnPqbCbxxNpgbhSFeqVaQkYOIVclYPdk,367
|
|
333
346
|
orionis/support/facades/path_resolver.py,sha256=-ro3-yxmjKHngf6aOy2dzyeNulsiSJuxu__vJWsRuUA,376
|
|
334
347
|
orionis/support/facades/progress_bar.py,sha256=ZmU7hojRP88PM39BX1fN0_2pTCUhOXdIqyKaQwPoQ-A,374
|
|
335
348
|
orionis/support/facades/workers.py,sha256=P-ppMQOzexbkcLDiGPdIPVA41LRlgNZcW-aB890ujk8,369
|
|
@@ -386,7 +399,7 @@ orionis/test/records/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hS
|
|
|
386
399
|
orionis/test/records/logs.py,sha256=EOQcloMVdhlNl2lU9igQz8H4b-OtKtiwh2pgr_QZWOI,13186
|
|
387
400
|
orionis/test/view/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
388
401
|
orionis/test/view/render.py,sha256=zd7xDvVfmQ2HxZamDTzL2-z2PpyL99EaolbbM7wTah4,5014
|
|
389
|
-
orionis-0.
|
|
402
|
+
orionis-0.403.0.dist-info/licenses/LICENCE,sha256=-_4cF2EBKuYVS_SQpy1uapq0oJPUU1vl_RUWSy2jJTo,1111
|
|
390
403
|
tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
391
404
|
tests/example/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
392
405
|
tests/example/test_example.py,sha256=yctjQT5ocYEu__kNvJxmQJ-l5yxRMkohwcfYWSjWDVo,25566
|
|
@@ -487,8 +500,8 @@ tests/support/wrapper/test_services_wrapper_docdict.py,sha256=nTNrvJkMSPx_aopEQ9
|
|
|
487
500
|
tests/testing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
488
501
|
tests/testing/test_testing_result.py,sha256=fnH7hjumNSErAFGITJgq2LHxSzvPF2tdtmHL9kyAv-Y,4409
|
|
489
502
|
tests/testing/test_testing_unit.py,sha256=d3CRGo6608fMzYcZKIKapjx_af2aigqWiKSiuK9euIY,7600
|
|
490
|
-
orionis-0.
|
|
491
|
-
orionis-0.
|
|
492
|
-
orionis-0.
|
|
493
|
-
orionis-0.
|
|
494
|
-
orionis-0.
|
|
503
|
+
orionis-0.403.0.dist-info/METADATA,sha256=sAx254Pfbwdz4i_vXEyQeKmws88FTutkZMqarwnVh1w,4772
|
|
504
|
+
orionis-0.403.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
505
|
+
orionis-0.403.0.dist-info/top_level.txt,sha256=2bdoHgyGZhOtLAXS6Om8OCTmL24dUMC_L1quMe_ETbk,14
|
|
506
|
+
orionis-0.403.0.dist-info/zip-safe,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
|
|
507
|
+
orionis-0.403.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|