orionis 0.300.0__py3-none-any.whl → 0.302.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/metadata/framework.py +1 -1
- orionis/services/introspection/abstract/__init__.py +0 -0
- orionis/services/introspection/abstract/contracts/__init__.py +0 -0
- orionis/services/introspection/abstract/contracts/reflection_abstract.py +893 -0
- orionis/services/introspection/abstract/reflection_abstract.py +1266 -0
- orionis/services/introspection/concretes/contracts/__init__.py +0 -0
- orionis/services/introspection/concretes/contracts/reflection_concrete.py +997 -0
- orionis/services/introspection/concretes/reflection_concrete.py +23 -9
- orionis/services/introspection/instances/reflection_instance.py +4 -1
- orionis/services/introspection/modules/__init__.py +0 -0
- orionis/services/introspection/modules/contracts/__init__.py +0 -0
- orionis/services/introspection/modules/contracts/reflection_instance.py +380 -0
- orionis/services/introspection/modules/reflection_instance.py +500 -0
- {orionis-0.300.0.dist-info → orionis-0.302.0.dist-info}/METADATA +1 -1
- {orionis-0.300.0.dist-info → orionis-0.302.0.dist-info}/RECORD +21 -11
- tests/example/test_example.py +1 -1
- tests/support/inspection/fakes/fake_reflect_instance.py +237 -1
- {orionis-0.300.0.dist-info → orionis-0.302.0.dist-info}/WHEEL +0 -0
- {orionis-0.300.0.dist-info → orionis-0.302.0.dist-info}/licenses/LICENCE +0 -0
- {orionis-0.300.0.dist-info → orionis-0.302.0.dist-info}/top_level.txt +0 -0
- {orionis-0.300.0.dist-info → orionis-0.302.0.dist-info}/zip-safe +0 -0
@@ -0,0 +1,500 @@
|
|
1
|
+
import importlib
|
2
|
+
import inspect
|
3
|
+
import keyword
|
4
|
+
from orionis.services.introspection.exceptions.reflection_type_error import ReflectionTypeError
|
5
|
+
from orionis.services.introspection.exceptions.reflection_value_error import ReflectionValueError
|
6
|
+
from orionis.services.introspection.modules.contracts.reflection_instance import IReflectionModule
|
7
|
+
|
8
|
+
class ReflectionModule(IReflectionModule):
|
9
|
+
|
10
|
+
def __init__(self, module: str):
|
11
|
+
"""
|
12
|
+
Parameters
|
13
|
+
----------
|
14
|
+
module : str
|
15
|
+
The name of the module to import and reflect upon.
|
16
|
+
Raises
|
17
|
+
------
|
18
|
+
ReflectionTypeError
|
19
|
+
If `module` is not a non-empty string or if the module cannot be imported.
|
20
|
+
Notes
|
21
|
+
-----
|
22
|
+
This constructor attempts to import the specified module using `importlib.import_module`.
|
23
|
+
If the import fails or the module name is invalid, a `ReflectionTypeError` is raised.
|
24
|
+
"""
|
25
|
+
if not isinstance(module, str) or not module.strip():
|
26
|
+
raise ReflectionTypeError(f"Module name must be a non-empty string, got {repr(module)}")
|
27
|
+
try:
|
28
|
+
self.__module = importlib.import_module(module)
|
29
|
+
except Exception as e:
|
30
|
+
raise ReflectionTypeError(f"Failed to import module '{module}': {e}") from e
|
31
|
+
|
32
|
+
def getModule(self):
|
33
|
+
"""
|
34
|
+
Returns the module object.
|
35
|
+
|
36
|
+
Returns
|
37
|
+
-------
|
38
|
+
module
|
39
|
+
The imported module object.
|
40
|
+
"""
|
41
|
+
return self.__module
|
42
|
+
|
43
|
+
def hasClass(self, class_name: str) -> bool:
|
44
|
+
"""
|
45
|
+
Check if the module contains a class with the specified name.
|
46
|
+
|
47
|
+
Parameters
|
48
|
+
----------
|
49
|
+
class_name : str
|
50
|
+
The name of the class to check for.
|
51
|
+
|
52
|
+
Returns
|
53
|
+
-------
|
54
|
+
bool
|
55
|
+
True if the class exists in the module, False otherwise.
|
56
|
+
"""
|
57
|
+
return class_name in self.getClasses()
|
58
|
+
|
59
|
+
def getClass(self, class_name: str):
|
60
|
+
"""
|
61
|
+
Get a class by its name from the module.
|
62
|
+
|
63
|
+
Parameters
|
64
|
+
----------
|
65
|
+
class_name : str
|
66
|
+
The name of the class to retrieve.
|
67
|
+
|
68
|
+
Returns
|
69
|
+
-------
|
70
|
+
type
|
71
|
+
The class object if found, None otherwise.
|
72
|
+
"""
|
73
|
+
classes = self.getClasses()
|
74
|
+
if class_name in classes:
|
75
|
+
return classes[class_name]
|
76
|
+
|
77
|
+
return None
|
78
|
+
|
79
|
+
def setClass(self, class_name: str, cls: type) -> bool:
|
80
|
+
"""
|
81
|
+
Set a class in the module.
|
82
|
+
|
83
|
+
Parameters
|
84
|
+
----------
|
85
|
+
class_name : str
|
86
|
+
The name of the class to set.
|
87
|
+
cls : type
|
88
|
+
The class object to set.
|
89
|
+
|
90
|
+
Raises
|
91
|
+
------
|
92
|
+
ValueError
|
93
|
+
If `cls` is not a class or if `class_name` is not a valid identifier.
|
94
|
+
"""
|
95
|
+
if not isinstance(cls, type):
|
96
|
+
raise ReflectionValueError(f"Expected a class type, got {type(cls)}")
|
97
|
+
if not class_name.isidentifier():
|
98
|
+
raise ReflectionValueError(f"Invalid class name '{class_name}'. Must be a valid identifier.")
|
99
|
+
if keyword.iskeyword(class_name):
|
100
|
+
raise ReflectionValueError(f"Class name '{class_name}' is a reserved keyword.")
|
101
|
+
|
102
|
+
setattr(self.__module, class_name, cls)
|
103
|
+
return True
|
104
|
+
|
105
|
+
def removeClass(self, class_name: str) -> bool:
|
106
|
+
"""
|
107
|
+
Remove a class from the module.
|
108
|
+
|
109
|
+
Parameters
|
110
|
+
----------
|
111
|
+
class_name : str
|
112
|
+
The name of the class to remove.
|
113
|
+
|
114
|
+
Raises
|
115
|
+
------
|
116
|
+
ValueError
|
117
|
+
If `class_name` is not a valid identifier or if the class does not exist.
|
118
|
+
"""
|
119
|
+
if class_name not in self.getClasses():
|
120
|
+
raise ValueError(f"Class '{class_name}' does not exist in module '{self.__module.__name__}'")
|
121
|
+
|
122
|
+
delattr(self.__module, class_name)
|
123
|
+
return True
|
124
|
+
|
125
|
+
def initClass(self, class_name: str, *args, **kwargs):
|
126
|
+
"""
|
127
|
+
Initialize a class from the module with the given arguments.
|
128
|
+
|
129
|
+
Parameters
|
130
|
+
----------
|
131
|
+
class_name : str
|
132
|
+
The name of the class to initialize.
|
133
|
+
*args
|
134
|
+
Positional arguments to pass to the class constructor.
|
135
|
+
**kwargs
|
136
|
+
Keyword arguments to pass to the class constructor.
|
137
|
+
|
138
|
+
Returns
|
139
|
+
-------
|
140
|
+
object
|
141
|
+
An instance of the class initialized with the provided arguments.
|
142
|
+
|
143
|
+
Raises
|
144
|
+
------
|
145
|
+
ReflectionValueError
|
146
|
+
If the class does not exist or if the class name is not a valid identifier.
|
147
|
+
"""
|
148
|
+
|
149
|
+
cls = self.getClass(class_name)
|
150
|
+
if cls is None:
|
151
|
+
raise ReflectionValueError(f"Class '{class_name}' does not exist in module '{self.__module.__name__}'")
|
152
|
+
|
153
|
+
return cls(*args, **kwargs)
|
154
|
+
|
155
|
+
def getClasses(self) -> dict:
|
156
|
+
"""
|
157
|
+
Returns a dictionary of classes defined in the module.
|
158
|
+
|
159
|
+
Returns
|
160
|
+
-------
|
161
|
+
dict
|
162
|
+
A dictionary where keys are class names and values are class objects.
|
163
|
+
"""
|
164
|
+
classes = {}
|
165
|
+
|
166
|
+
# Check if it's a module
|
167
|
+
for k, v in self.__module.__dict__.items():
|
168
|
+
if isinstance(v, type) and issubclass(v, object):
|
169
|
+
classes[k] = v
|
170
|
+
|
171
|
+
# Return the dictionary of classes
|
172
|
+
return classes
|
173
|
+
|
174
|
+
def getPublicClasses(self) -> dict:
|
175
|
+
"""
|
176
|
+
Returns a dictionary of public classes defined in the module.
|
177
|
+
|
178
|
+
Returns
|
179
|
+
-------
|
180
|
+
dict
|
181
|
+
A dictionary where keys are class names and values are class objects.
|
182
|
+
"""
|
183
|
+
public_classes = {}
|
184
|
+
for k, v in self.getClasses().items():
|
185
|
+
if not str(k).startswith('_'):
|
186
|
+
public_classes[k] = v
|
187
|
+
return public_classes
|
188
|
+
|
189
|
+
def getProtectedClasses(self) -> dict:
|
190
|
+
"""
|
191
|
+
Returns a dictionary of protected classes defined in the module.
|
192
|
+
|
193
|
+
Returns
|
194
|
+
-------
|
195
|
+
dict
|
196
|
+
A dictionary where keys are class names and values are class objects.
|
197
|
+
"""
|
198
|
+
protected_classes = {}
|
199
|
+
for k, v in self.getClasses().items():
|
200
|
+
if str(k).startswith('_') and not str(k).startswith('__'):
|
201
|
+
protected_classes[k] = v
|
202
|
+
|
203
|
+
return protected_classes
|
204
|
+
|
205
|
+
def getPrivateClasses(self) -> dict:
|
206
|
+
"""
|
207
|
+
Returns a dictionary of private classes defined in the module.
|
208
|
+
|
209
|
+
Returns
|
210
|
+
-------
|
211
|
+
dict
|
212
|
+
A dictionary where keys are class names and values are class objects.
|
213
|
+
"""
|
214
|
+
private_classes = {}
|
215
|
+
for k, v in self.getClasses().items():
|
216
|
+
if str(k).startswith('__') and not str(k).endswith('__'):
|
217
|
+
private_classes[k] = v
|
218
|
+
|
219
|
+
return private_classes
|
220
|
+
|
221
|
+
def getConstant(self, constant_name: str):
|
222
|
+
"""
|
223
|
+
Get a constant by its name from the module.
|
224
|
+
|
225
|
+
Parameters
|
226
|
+
----------
|
227
|
+
constant_name : str
|
228
|
+
The name of the constant to retrieve.
|
229
|
+
|
230
|
+
Returns
|
231
|
+
-------
|
232
|
+
Any
|
233
|
+
The value of the constant if found, None otherwise.
|
234
|
+
"""
|
235
|
+
constants = self.getConstants()
|
236
|
+
if constant_name in constants:
|
237
|
+
return constants[constant_name]
|
238
|
+
|
239
|
+
return None
|
240
|
+
|
241
|
+
def getConstants(self) -> dict:
|
242
|
+
"""
|
243
|
+
Returns a dictionary of constants defined in the module.
|
244
|
+
|
245
|
+
Returns
|
246
|
+
-------
|
247
|
+
dict
|
248
|
+
A dictionary where keys are constant names and values are their values.
|
249
|
+
"""
|
250
|
+
constants = {}
|
251
|
+
for k, v in self.__module.__dict__.items():
|
252
|
+
if not callable(v) and k.isupper() and not keyword.iskeyword(k):
|
253
|
+
constants[k] = v
|
254
|
+
|
255
|
+
return constants
|
256
|
+
|
257
|
+
def getPublicConstants(self) -> dict:
|
258
|
+
"""
|
259
|
+
Returns a dictionary of public constants defined in the module.
|
260
|
+
|
261
|
+
Returns
|
262
|
+
-------
|
263
|
+
dict
|
264
|
+
A dictionary where keys are constant names and values are their values.
|
265
|
+
"""
|
266
|
+
public_constants = {}
|
267
|
+
for k, v in self.getConstants().items():
|
268
|
+
if not str(k).startswith('_'):
|
269
|
+
public_constants[k] = v
|
270
|
+
|
271
|
+
return public_constants
|
272
|
+
|
273
|
+
def getProtectedConstants(self) -> dict:
|
274
|
+
"""
|
275
|
+
Returns a dictionary of protected constants defined in the module.
|
276
|
+
|
277
|
+
Returns
|
278
|
+
-------
|
279
|
+
dict
|
280
|
+
A dictionary where keys are constant names and values are their values.
|
281
|
+
"""
|
282
|
+
protected_constants = {}
|
283
|
+
for k, v in self.getConstants().items():
|
284
|
+
if str(k).startswith('_') and not str(k).startswith('__'):
|
285
|
+
protected_constants[k] = v
|
286
|
+
|
287
|
+
return protected_constants
|
288
|
+
|
289
|
+
def getPrivateConstants(self) -> dict:
|
290
|
+
"""
|
291
|
+
Returns a dictionary of private constants defined in the module.
|
292
|
+
|
293
|
+
Returns
|
294
|
+
-------
|
295
|
+
dict
|
296
|
+
A dictionary where keys are constant names and values are their values.
|
297
|
+
"""
|
298
|
+
private_constants = {}
|
299
|
+
for k, v in self.getConstants().items():
|
300
|
+
if str(k).startswith('__') and not str(k).endswith('__'):
|
301
|
+
private_constants[k] = v
|
302
|
+
|
303
|
+
return private_constants
|
304
|
+
|
305
|
+
def getFunctions(self) -> dict:
|
306
|
+
"""
|
307
|
+
Returns a dictionary of functions defined in the module.
|
308
|
+
|
309
|
+
Returns
|
310
|
+
-------
|
311
|
+
dict
|
312
|
+
A dictionary where keys are function names and values are function objects.
|
313
|
+
"""
|
314
|
+
functions = {}
|
315
|
+
for k, v in self.__module.__dict__.items():
|
316
|
+
if callable(v):
|
317
|
+
if hasattr(v, '__code__'):
|
318
|
+
functions[k] = v
|
319
|
+
|
320
|
+
return functions
|
321
|
+
|
322
|
+
def getPublicFunctions(self) -> dict:
|
323
|
+
"""
|
324
|
+
Returns a dictionary of public functions defined in the module.
|
325
|
+
|
326
|
+
Returns
|
327
|
+
-------
|
328
|
+
dict
|
329
|
+
A dictionary where keys are function names and values are function objects.
|
330
|
+
"""
|
331
|
+
public_functions = {}
|
332
|
+
for k, v in self.getFunctions().items():
|
333
|
+
if not str(k).startswith('_'):
|
334
|
+
public_functions[k] = v
|
335
|
+
|
336
|
+
return public_functions
|
337
|
+
|
338
|
+
def getPublicSyncFunctions(self) -> dict:
|
339
|
+
"""
|
340
|
+
Returns a dictionary of public synchronous functions defined in the module.
|
341
|
+
|
342
|
+
Returns
|
343
|
+
-------
|
344
|
+
dict
|
345
|
+
A dictionary where keys are function names and values are function objects.
|
346
|
+
"""
|
347
|
+
sync_functions = {}
|
348
|
+
for k, v in self.getPublicFunctions().items():
|
349
|
+
if not v.__code__.co_flags & 0x80:
|
350
|
+
sync_functions[k] = v
|
351
|
+
return sync_functions
|
352
|
+
|
353
|
+
def getPublicAsyncFunctions(self) -> dict:
|
354
|
+
"""
|
355
|
+
Returns a dictionary of public asynchronous functions defined in the module.
|
356
|
+
|
357
|
+
Returns
|
358
|
+
-------
|
359
|
+
dict
|
360
|
+
A dictionary where keys are function names and values are function objects.
|
361
|
+
"""
|
362
|
+
async_functions = {}
|
363
|
+
for k, v in self.getPublicFunctions().items():
|
364
|
+
if v.__code__.co_flags & 0x80:
|
365
|
+
async_functions[k] = v
|
366
|
+
return async_functions
|
367
|
+
|
368
|
+
def getProtectedFunctions(self) -> dict:
|
369
|
+
"""
|
370
|
+
Returns a dictionary of protected functions defined in the module.
|
371
|
+
|
372
|
+
Returns
|
373
|
+
-------
|
374
|
+
dict
|
375
|
+
A dictionary where keys are function names and values are function objects.
|
376
|
+
"""
|
377
|
+
protected_functions = {}
|
378
|
+
for k, v in self.getFunctions().items():
|
379
|
+
if str(k).startswith('_') and not str(k).startswith('__'):
|
380
|
+
protected_functions[k] = v
|
381
|
+
|
382
|
+
return protected_functions
|
383
|
+
|
384
|
+
def getProtectedSyncFunctions(self) -> dict:
|
385
|
+
"""
|
386
|
+
Returns a dictionary of protected synchronous functions defined in the module.
|
387
|
+
|
388
|
+
Returns
|
389
|
+
-------
|
390
|
+
dict
|
391
|
+
A dictionary where keys are function names and values are function objects.
|
392
|
+
"""
|
393
|
+
sync_functions = {}
|
394
|
+
for k, v in self.getProtectedFunctions().items():
|
395
|
+
if not v.__code__.co_flags & 0x80:
|
396
|
+
sync_functions[k] = v
|
397
|
+
return sync_functions
|
398
|
+
|
399
|
+
def getProtectedAsyncFunctions(self) -> dict:
|
400
|
+
"""
|
401
|
+
Returns a dictionary of protected asynchronous functions defined in the module.
|
402
|
+
|
403
|
+
Returns
|
404
|
+
-------
|
405
|
+
dict
|
406
|
+
A dictionary where keys are function names and values are function objects.
|
407
|
+
"""
|
408
|
+
async_functions = {}
|
409
|
+
for k, v in self.getProtectedFunctions().items():
|
410
|
+
if v.__code__.co_flags & 0x80:
|
411
|
+
async_functions[k] = v
|
412
|
+
return async_functions
|
413
|
+
|
414
|
+
def getPrivateFunctions(self) -> dict:
|
415
|
+
"""
|
416
|
+
Returns a dictionary of private functions defined in the module.
|
417
|
+
|
418
|
+
Returns
|
419
|
+
-------
|
420
|
+
dict
|
421
|
+
A dictionary where keys are function names and values are function objects.
|
422
|
+
"""
|
423
|
+
private_functions = {}
|
424
|
+
for k, v in self.getFunctions().items():
|
425
|
+
if str(k).startswith('__') and not str(k).endswith('__'):
|
426
|
+
private_functions[k] = v
|
427
|
+
|
428
|
+
return private_functions
|
429
|
+
|
430
|
+
def getPrivateSyncFunctions(self) -> dict:
|
431
|
+
"""
|
432
|
+
Returns a dictionary of private synchronous functions defined in the module.
|
433
|
+
|
434
|
+
Returns
|
435
|
+
-------
|
436
|
+
dict
|
437
|
+
A dictionary where keys are function names and values are function objects.
|
438
|
+
"""
|
439
|
+
sync_functions = {}
|
440
|
+
for k, v in self.getPrivateFunctions().items():
|
441
|
+
if not v.__code__.co_flags & 0x80:
|
442
|
+
sync_functions[k] = v
|
443
|
+
return sync_functions
|
444
|
+
|
445
|
+
def getPrivateAsyncFunctions(self) -> dict:
|
446
|
+
"""
|
447
|
+
Returns a dictionary of private asynchronous functions defined in the module.
|
448
|
+
|
449
|
+
Returns
|
450
|
+
-------
|
451
|
+
dict
|
452
|
+
A dictionary where keys are function names and values are function objects.
|
453
|
+
"""
|
454
|
+
async_functions = {}
|
455
|
+
for k, v in self.getPrivateFunctions().items():
|
456
|
+
if v.__code__.co_flags & 0x80:
|
457
|
+
async_functions[k] = v
|
458
|
+
return async_functions
|
459
|
+
|
460
|
+
def getImports(self) -> dict:
|
461
|
+
"""
|
462
|
+
Returns a dictionary of imported modules in the module.
|
463
|
+
|
464
|
+
Returns
|
465
|
+
-------
|
466
|
+
dict
|
467
|
+
A dictionary where keys are import names and values are module objects.
|
468
|
+
"""
|
469
|
+
imports = {}
|
470
|
+
for k, v in self.__module.__dict__.items():
|
471
|
+
if isinstance(v, type(importlib)):
|
472
|
+
imports[k] = v
|
473
|
+
|
474
|
+
return imports
|
475
|
+
|
476
|
+
def getFile(self) -> str:
|
477
|
+
"""
|
478
|
+
Returns the file name of the module.
|
479
|
+
|
480
|
+
Returns
|
481
|
+
-------
|
482
|
+
str
|
483
|
+
The file name of the module.
|
484
|
+
"""
|
485
|
+
return inspect.getfile(self.__module)
|
486
|
+
|
487
|
+
def getSourceCode(self) -> str:
|
488
|
+
"""
|
489
|
+
Returns the source code of the module.
|
490
|
+
|
491
|
+
Returns
|
492
|
+
-------
|
493
|
+
str
|
494
|
+
The source code of the module.
|
495
|
+
"""
|
496
|
+
try:
|
497
|
+
with open(self.getFile(), 'r', encoding='utf-8') as file:
|
498
|
+
return file.read()
|
499
|
+
except Exception as e:
|
500
|
+
raise ReflectionValueError(f"Failed to read source code for module '{self.__module.__name__}': {e}") from e
|
@@ -226,7 +226,7 @@ orionis/foundation/config/testing/entities/testing.py,sha256=AuhPU9O15Aeqs8jQVHW
|
|
226
226
|
orionis/foundation/config/testing/enums/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
227
227
|
orionis/foundation/config/testing/enums/test_mode.py,sha256=IbFpauu7J-iSAfmC8jDbmTEYl8eZr-AexL-lyOh8_74,337
|
228
228
|
orionis/metadata/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
229
|
-
orionis/metadata/framework.py,sha256=
|
229
|
+
orionis/metadata/framework.py,sha256=cKXBCBoLPBXiQ6LZ7ghbe8MWVFfuG0Caa85ZhtiYLTM,4960
|
230
230
|
orionis/metadata/package.py,sha256=tqLfBRo-w1j_GN4xvzUNFyweWYFS-qhSgAEc-AmCH1M,5452
|
231
231
|
orionis/patterns/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
232
232
|
orionis/patterns/singleton/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -249,8 +249,14 @@ orionis/services/environment/exceptions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5J
|
|
249
249
|
orionis/services/environment/exceptions/environment_value_error.py,sha256=Y3QTwzUrn0D5FqT7hI_9uCACVz473YhhoAFOx1-rcXE,627
|
250
250
|
orionis/services/environment/exceptions/environment_value_exception.py,sha256=zlxRFJwi0Yj-xFHQUvZ8X1ZlxRDDVv7Xcw-w4qCocL4,646
|
251
251
|
orionis/services/introspection/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
252
|
+
orionis/services/introspection/abstract/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
253
|
+
orionis/services/introspection/abstract/reflection_abstract.py,sha256=OwVPnVaRr6iXXluZgDIhHoGIQrIti25FY55gXr2VdgI,42737
|
254
|
+
orionis/services/introspection/abstract/contracts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
255
|
+
orionis/services/introspection/abstract/contracts/reflection_abstract.py,sha256=MuVZ-BaDI0ilH6ENiVn6nRqx_kEdIp7vxwtxSIzfMFE,22371
|
252
256
|
orionis/services/introspection/concretes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
253
|
-
orionis/services/introspection/concretes/reflection_concrete.py,sha256=
|
257
|
+
orionis/services/introspection/concretes/reflection_concrete.py,sha256=oji40QcV-i9IHdFhlqrMsxmOGmlIrpnz4Nix3ikz7Bg,49771
|
258
|
+
orionis/services/introspection/concretes/contracts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
259
|
+
orionis/services/introspection/concretes/contracts/reflection_concrete.py,sha256=JiCgsmx-9M2a3PpAUOLeq2c0EkG231FArKYs54SeuRc,25068
|
254
260
|
orionis/services/introspection/dependencies/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
255
261
|
orionis/services/introspection/dependencies/reflect_dependencies.py,sha256=HL2cX7_SSIWeKxzBDUMEdmfjetrZmMfPZvqM34DvJMg,7145
|
256
262
|
orionis/services/introspection/dependencies/contracts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -264,9 +270,13 @@ orionis/services/introspection/exceptions/reflection_attribute_error.py,sha256=7
|
|
264
270
|
orionis/services/introspection/exceptions/reflection_type_error.py,sha256=6BizQOgt50qlLPDBvBJfUWgAwAr_8GAk1FhownPs-8A,747
|
265
271
|
orionis/services/introspection/exceptions/reflection_value_error.py,sha256=X38649JMKSPbdpa1lmo69RhhTATH8ykTF-UAqe7IAaU,748
|
266
272
|
orionis/services/introspection/instances/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
267
|
-
orionis/services/introspection/instances/reflection_instance.py,sha256=
|
273
|
+
orionis/services/introspection/instances/reflection_instance.py,sha256=deqQpeAZquij7tMgcyuZaK09YGLkQb95OiZx5zEWiwk,51941
|
268
274
|
orionis/services/introspection/instances/contracts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
269
275
|
orionis/services/introspection/instances/contracts/reflection_instance.py,sha256=zc-uOHDixR4Wg2PwF4mX9lpl-AGMKtMvJUN7_Pixr2Q,20938
|
276
|
+
orionis/services/introspection/modules/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
277
|
+
orionis/services/introspection/modules/reflection_instance.py,sha256=9tLwz9J-ZzyBLNQ8lFU_U0_f2LFnoQBK5ObejOb9MHQ,15642
|
278
|
+
orionis/services/introspection/modules/contracts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
279
|
+
orionis/services/introspection/modules/contracts/reflection_instance.py,sha256=YLqKg5EhaddUBrytMHX1-uz9mNsRISK1iVyG_iUiVYA,9666
|
270
280
|
orionis/services/parsers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
271
281
|
orionis/services/parsers/serializer.py,sha256=mxWlzqgkoO7EeIr3MZ5gdzQUuSfjqWDMau85PEqlBQY,531
|
272
282
|
orionis/services/parsers/contracts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -355,10 +365,10 @@ orionis/test/suites/contracts/test_suite.py,sha256=eluzYwkNBbKjxYStj_tHN_Fm3YDPp
|
|
355
365
|
orionis/test/suites/contracts/test_unit.py,sha256=l1LQllODyvcSByXMl1lGrUkoLsXbBHZZLWZI4A-mlQg,5881
|
356
366
|
orionis/test/view/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
357
367
|
orionis/test/view/render.py,sha256=jXZkbITBknbUwm_mD8bcTiwLDvsFkrO9qrf0ZgPwqxc,4903
|
358
|
-
orionis-0.
|
368
|
+
orionis-0.302.0.dist-info/licenses/LICENCE,sha256=-_4cF2EBKuYVS_SQpy1uapq0oJPUU1vl_RUWSy2jJTo,1111
|
359
369
|
tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
360
370
|
tests/example/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
361
|
-
tests/example/test_example.py,sha256=
|
371
|
+
tests/example/test_example.py,sha256=k6wYRMEQ-ntzr6SIp1KFhKxWVrq3nLUKsJmT3m7JNuw,601
|
362
372
|
tests/foundation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
363
373
|
tests/foundation/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
364
374
|
tests/foundation/config/app/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -452,15 +462,15 @@ tests/support/inspection/test_reflection_concrete_with_abstract.py,sha256=Qzd87J
|
|
452
462
|
tests/support/inspection/test_reflection_instance_with_abstract.py,sha256=L3nQy2l95yEIyvAHErqxGRVVF5x8YkyM82uGm0wUlxk,4064
|
453
463
|
tests/support/inspection/fakes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
454
464
|
tests/support/inspection/fakes/fake_reflect_abstract.py,sha256=woE15uLmoD3fLgPBMjNh5XkwvMDmW2VDbADYPIS_88o,6387
|
455
|
-
tests/support/inspection/fakes/fake_reflect_instance.py,sha256=
|
465
|
+
tests/support/inspection/fakes/fake_reflect_instance.py,sha256=WZsXKb8WQcP6Xz72ejrtqw6m2FMPl9HhhurkF1OyUC4,18248
|
456
466
|
tests/support/inspection/fakes/fake_reflection_concrete.py,sha256=j6gzsxE3xq5oJ30H_Hm1RsUwEY3jOYBu4sclxtD1ayo,1047
|
457
467
|
tests/support/inspection/fakes/fake_reflection_concrete_with_abstract.py,sha256=ibCjrtNM6BMf5Z5VMvat7E6zOAk5g9z--gj4ykKJWY8,2118
|
458
468
|
tests/support/inspection/fakes/fake_reflection_instance_with_abstract.py,sha256=SfL8FuFmr650RlzXTrP4tGMfsPVZLhOxVnBXu_g1POg,1471
|
459
469
|
tests/testing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
460
470
|
tests/testing/test_testing_result.py,sha256=MrGK3ZimedL0b5Ydu69Dg8Iul017AzLTm7VPxpXlpfU,4315
|
461
471
|
tests/testing/test_testing_unit.py,sha256=A6QkiOkP7GPC1Szh_GqsrV7GxjWjK8cIwFez6YfrzmM,7683
|
462
|
-
orionis-0.
|
463
|
-
orionis-0.
|
464
|
-
orionis-0.
|
465
|
-
orionis-0.
|
466
|
-
orionis-0.
|
472
|
+
orionis-0.302.0.dist-info/METADATA,sha256=JimB10OhnB9KCPYmZg9Xm5dX--Jn6kK1p0X3wnCig-k,4772
|
473
|
+
orionis-0.302.0.dist-info/WHEEL,sha256=Nw36Djuh_5VDukK0H78QzOX-_FQEo6V37m3nkm96gtU,91
|
474
|
+
orionis-0.302.0.dist-info/top_level.txt,sha256=2bdoHgyGZhOtLAXS6Om8OCTmL24dUMC_L1quMe_ETbk,14
|
475
|
+
orionis-0.302.0.dist-info/zip-safe,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
|
476
|
+
orionis-0.302.0.dist-info/RECORD,,
|
tests/example/test_example.py
CHANGED