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.
@@ -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
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: orionis
3
- Version: 0.300.0
3
+ Version: 0.302.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
@@ -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=R-JsoGLrxcrd1Lg3XxLUWlT6tmNZ4uyXPhYfASmQP3A,4960
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=5vCwokfKJerpUnFRz_IVDMj-5BdbbIy4OUkTJ7KxB4E,49050
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=j8VA7zIfIZbz4orMxcBWU9qCxZi4eC5glu9tlUKjMXI,51807
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.300.0.dist-info/licenses/LICENCE,sha256=-_4cF2EBKuYVS_SQpy1uapq0oJPUU1vl_RUWSy2jJTo,1111
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=vt4UsQ1sDWZU9zFjrO2zcfZNDFj8h9TgnCRGtdNN358,601
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=g2Uo0aSAOnro0t4ipoFsEAE2WunpOwTN3WaNlsX5k0g,12397
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.300.0.dist-info/METADATA,sha256=RPubn8dwFyV0kTRUWgJOWGixxR86EorukI_6qlaa9BI,4772
463
- orionis-0.300.0.dist-info/WHEEL,sha256=Nw36Djuh_5VDukK0H78QzOX-_FQEo6V37m3nkm96gtU,91
464
- orionis-0.300.0.dist-info/top_level.txt,sha256=2bdoHgyGZhOtLAXS6Om8OCTmL24dUMC_L1quMe_ETbk,14
465
- orionis-0.300.0.dist-info/zip-safe,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
466
- orionis-0.300.0.dist-info/RECORD,,
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,,
@@ -20,4 +20,4 @@ class TestExample(TestCase):
20
20
  self.assertEqual(1, 1)
21
21
 
22
22
  # Check if 2 equals 2
23
- self.assertEqual(2, 3)
23
+ self.assertEqual(3, 3)