orionis 0.304.0__py3-none-any.whl → 0.306.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.
Files changed (66) hide show
  1. orionis/metadata/framework.py +1 -1
  2. orionis/services/introspection/modules/{reflection_instance.py → reflection_module.py} +1 -1
  3. orionis/services/introspection/reflection.py +90 -0
  4. orionis/{services → support}/standard/std.py +2 -2
  5. orionis/test/{facade/test_suite.py → test_suite.py} +1 -2
  6. orionis/unittesting.py +1 -1
  7. {orionis-0.304.0.dist-info → orionis-0.306.0.dist-info}/METADATA +1 -1
  8. {orionis-0.304.0.dist-info → orionis-0.306.0.dist-info}/RECORD +28 -65
  9. tests/{services → support}/standard/test_services_std.py +3 -3
  10. tests/{services → support}/wrapper/test_services_wrapper_docdict.py +2 -2
  11. orionis/support/abstracts/entities/abstract_class_attributes.py +0 -37
  12. orionis/support/abstracts/reflect_abstract.py +0 -556
  13. orionis/support/helpers/functions.py +0 -285
  14. orionis/support/introspection/container_integrity.py +0 -292
  15. orionis/support/introspection/contracts/__init__.py +0 -0
  16. orionis/support/introspection/contracts/reflection.py +0 -187
  17. orionis/support/introspection/contracts/reflexion_abstract.py +0 -264
  18. orionis/support/introspection/helpers/__init__.py +0 -0
  19. orionis/support/introspection/helpers/functions.py +0 -281
  20. orionis/support/introspection/instances/__init__.py +0 -0
  21. orionis/support/introspection/instances/contracts/__init__.py +0 -0
  22. orionis/support/introspection/instances/contracts/reflection_instance.py +0 -649
  23. orionis/support/introspection/instances/entities/__init__.py +0 -0
  24. orionis/support/introspection/instances/reflection_instance.py +0 -758
  25. orionis/support/introspection/reflect_decorators.py +0 -335
  26. orionis/support/introspection/reflection.py +0 -216
  27. orionis/support/introspection/reflexion_concrete.py +0 -276
  28. orionis/support/introspection/reflexion_concrete_with_abstract.py +0 -185
  29. orionis/support/introspection/reflexion_instance_with_abstract.py +0 -230
  30. orionis/support/introspection/reflexion_module.py +0 -19
  31. orionis/support/introspection/reflexion_module_with_classname.py +0 -22
  32. orionis/support/reflection.py +0 -216
  33. orionis/test/facade/__init__.py +0 -0
  34. orionis/test/facade/contracts/__init__.py +0 -0
  35. orionis/test/facade/contracts/test_suite.py +0 -25
  36. tests/services/standard/__init__.py +0 -0
  37. tests/services/wrapper/__init__.py +0 -0
  38. tests/support/inspection/__init__.py +0 -0
  39. tests/support/inspection/fakes/__init__.py +0 -0
  40. tests/support/inspection/fakes/fake_reflect_abstract.py +0 -276
  41. tests/support/inspection/fakes/fake_reflection_concrete.py +0 -44
  42. tests/support/inspection/fakes/fake_reflection_concrete_with_abstract.py +0 -78
  43. tests/support/inspection/fakes/fake_reflection_instance_with_abstract.py +0 -45
  44. tests/support/inspection/test_reflect_abstract.py +0 -334
  45. tests/support/inspection/test_reflect_instance.py +0 -288
  46. tests/support/inspection/test_reflection_concrete.py +0 -142
  47. tests/support/inspection/test_reflection_concrete_with_abstract.py +0 -87
  48. tests/support/inspection/test_reflection_instance_with_abstract.py +0 -79
  49. /orionis/services/introspection/modules/contracts/{reflection_instance.py → reflection_module.py} +0 -0
  50. /orionis/{services → support}/standard/__init__.py +0 -0
  51. /orionis/{services → support}/standard/contracts/__init__.py +0 -0
  52. /orionis/{services → support}/standard/contracts/std.py +0 -0
  53. /orionis/{services → support}/standard/exceptions/__init__.py +0 -0
  54. /orionis/{services → support}/standard/exceptions/std_value_exception.py +0 -0
  55. /orionis/{services → support}/wrapper/__init__.py +0 -0
  56. /orionis/{services → support}/wrapper/dicts/__init__.py +0 -0
  57. /orionis/{services → support}/wrapper/dicts/dot_dict.py +0 -0
  58. {orionis-0.304.0.dist-info → orionis-0.306.0.dist-info}/WHEEL +0 -0
  59. {orionis-0.304.0.dist-info → orionis-0.306.0.dist-info}/licenses/LICENCE +0 -0
  60. {orionis-0.304.0.dist-info → orionis-0.306.0.dist-info}/top_level.txt +0 -0
  61. {orionis-0.304.0.dist-info → orionis-0.306.0.dist-info}/zip-safe +0 -0
  62. {orionis/support/abstracts → tests/services/inspection/reflection}/__init__.py +0 -0
  63. {orionis/support/abstracts/entities → tests/services/inspection/reflection/mock}/__init__.py +0 -0
  64. /tests/{support/inspection/fakes → services/inspection/reflection/mock}/fake_reflect_instance.py +0 -0
  65. {orionis/support/helpers → tests/support/standard}/__init__.py +0 -0
  66. {orionis/support/introspection → tests/support/wrapper}/__init__.py +0 -0
@@ -1,142 +0,0 @@
1
- from orionis.support.introspection.reflection import Reflection
2
- from orionis.support.introspection.reflexion_concrete import ReflexionConcrete
3
- from orionis.test import TestCase
4
- from tests.support.inspection.fakes.fake_reflection_concrete import BaseExample, FakeExample
5
-
6
- class TestReflectionConcrete(TestCase):
7
- """
8
- Unit tests for the Reflection class.
9
- """
10
-
11
- async def testReflectionConcreteExceptionValueError(self):
12
- """Ensure Reflection.instance raises ValueError for invalid types."""
13
- with self.assertRaises(ValueError):
14
- Reflection.concrete(str)
15
-
16
- async def testReflectionConcrete(self):
17
- """Verify Reflection.instance returns an instance of ReflexionInstance."""
18
- self.assertIsInstance(Reflection.concrete(FakeExample), ReflexionConcrete)
19
-
20
- async def testReflectionConcreteGetClassName(self):
21
- """Test getClassName method."""
22
- reflection = Reflection.concrete(FakeExample)
23
- self.assertEqual(reflection.getClassName(), "FakeExample")
24
-
25
- async def testReflectionConcreteGetClass(self):
26
- """Test getClass method."""
27
- reflection = Reflection.concrete(FakeExample)
28
- self.assertEqual(reflection.getClass(), FakeExample)
29
-
30
- async def testReflectionConcreteGetModuleName(self):
31
- """Test getModuleName method."""
32
- reflection = Reflection.concrete(FakeExample)
33
- self.assertEqual(reflection.getModuleName(), "tests.support.inspection.fakes.fake_reflection_concrete")
34
-
35
- async def testReflectionConcreteGetAttributes(self):
36
- """Test getAttributes method."""
37
- reflection = Reflection.concrete(FakeExample)
38
- self.assertEqual(reflection.getAttributes(), {'class_attr': 42, 'another_attr': 'hello'})
39
-
40
- async def testReflectionConcreteGetMethods(self):
41
- """Test getMethods method."""
42
- reflection = Reflection.concrete(FakeExample)
43
- expected_methods = [
44
- 'baseMethod',
45
- 'method_one',
46
- 'method_two',
47
- 'static_method',
48
- ]
49
- self.assertEqual(reflection.getMethods(), expected_methods)
50
-
51
- async def testReflectionConcreteGetStaticMethods(self):
52
- """Test getStaticMethods method."""
53
- reflection = Reflection.concrete(FakeExample)
54
- expected_static_methods = [
55
- 'static_method'
56
- ]
57
- self.assertEqual(reflection.getStaticMethods(), expected_static_methods)
58
-
59
- async def testReflectionConcreteGetPropertyNames(self):
60
- """Test getPropertyNames method."""
61
- reflection = Reflection.concrete(FakeExample)
62
- expected_properties = [
63
- 'prop',
64
- 'prop_with_getter',
65
- ]
66
- self.assertEqual(reflection.getPropertyNames(), expected_properties)
67
-
68
- async def testReflectionConcreteGetMethodSignature(self):
69
- """Test getMethodSignature method."""
70
- reflection = Reflection.concrete(FakeExample)
71
- self.assertEqual(str(reflection.getMethodSignature('method_one')), '(self, x: int) -> int')
72
- self.assertEqual(str(reflection.getMethodSignature('method_two')), '(self, a: str, b: str = \'default\') -> str')
73
- self.assertEqual(str(reflection.getMethodSignature('__init__')), '(self, value: int = 10) -> None')
74
-
75
- async def testReflectionConcreteGetPropertySignature(self):
76
- """Test getPropertySignature method."""
77
- reflection = Reflection.concrete(FakeExample)
78
- self.assertEqual(str(reflection.getPropertySignature('prop')), '(self) -> int')
79
- self.assertEqual(str(reflection.getPropertySignature('prop_with_getter')), '(self) -> str')
80
-
81
- async def testReflectionConcreteGetDocstring(self):
82
- """Test getDocstring method."""
83
- reflection = Reflection.concrete(FakeExample)
84
- self.assertIn('This is a fake example class for testing reflection', reflection.getDocstring())
85
-
86
- async def testReflectionConcreteGetBaseClasses(self):
87
- """Test getBaseClasses method."""
88
- reflection = Reflection.concrete(FakeExample)
89
- self.assertEqual(reflection.getBaseClasses(), (BaseExample,))
90
-
91
- async def testReflectionConcreteIsSubclassOf(self):
92
- """Test isSubclassOf method."""
93
- reflection = Reflection.concrete(FakeExample)
94
- self.assertTrue(reflection.isSubclassOf(BaseExample))
95
- self.assertFalse(reflection.isSubclassOf(str))
96
-
97
- async def testReflectionConcreteGetSourceCode(self):
98
- """Test getSourceCode method."""
99
- reflection = Reflection.concrete(FakeExample)
100
- source_code = reflection.getSourceCode()
101
- self.assertIn('class FakeExample(BaseExample):', source_code)
102
- self.assertIn('def method_one(self, x: int) -> int:', source_code)
103
-
104
- async def testReflectionConcreteGetFileLocation(self):
105
- """Test getFileLocation method."""
106
- reflection = Reflection.concrete(FakeExample)
107
- file_location = reflection.getFileLocation()
108
- self.assertIn('tests', file_location)
109
- self.assertIn('support', file_location)
110
- self.assertIn('inspection', file_location)
111
- self.assertIn('fakes', file_location)
112
- self.assertIn('fake_reflection_concrete.py', file_location)
113
-
114
- async def testReflectionConcreteGetAnnotations(self):
115
- """Test getAnnotations method."""
116
- reflection = Reflection.concrete(FakeExample)
117
- self.assertEqual(reflection.getAnnotations(), {'class_attr': int})
118
-
119
- async def testReflectionConcreteHasAttribute(self):
120
- """Test hasAttribute method."""
121
- reflection = Reflection.concrete(FakeExample)
122
- self.assertTrue(reflection.hasAttribute('class_attr'))
123
- self.assertFalse(reflection.hasAttribute('non_existent_attr'))
124
-
125
- async def testReflectionConcreteGetAttribute(self):
126
- """Test getAttribute method."""
127
- reflection = Reflection.concrete(FakeExample)
128
- self.assertEqual(reflection.getAttribute('class_attr'), 42)
129
- with self.assertRaises(AttributeError):
130
- reflection.getAttribute('non_existent_attr')
131
-
132
- async def testReflectionConcreteGetCallableMembers(self):
133
- """Test getCallableMembers method."""
134
- reflection = Reflection.concrete(FakeExample)
135
- callable_members = reflection.getCallableMembers()
136
- self.assertIn('_private_method', callable_members)
137
- self.assertIn('_private_static', callable_members)
138
- self.assertIn('baseMethod', callable_members)
139
- self.assertIn('class_method', callable_members)
140
- self.assertIn('method_one', callable_members)
141
- self.assertIn('method_two', callable_members)
142
- self.assertIn('static_method', callable_members)
@@ -1,87 +0,0 @@
1
- from orionis.support.introspection.reflexion_concrete_with_abstract import ReflexionConcreteWithAbstract
2
- from orionis.test import TestCase
3
- from tests.support.inspection.fakes.fake_reflection_concrete_with_abstract import AbstractService, PartiallyImplementedService
4
-
5
- class TestReflexionConcreteWithAbstract(TestCase):
6
-
7
- async def testReflexionInstanceWithAbstractGetImplementationAnalysis(self):
8
- """Test reflexion con AbstractService y PartiallyImplementedService."""
9
- inspector = ReflexionConcreteWithAbstract(PartiallyImplementedService, AbstractService)
10
-
11
- # Get Implementation analysis
12
- analysis = inspector.getImplementationAnalysis()
13
-
14
- # Verifying implemented methods
15
- self.assertFalse(analysis['configure']['implemented'])
16
- self.assertIsNone(analysis['configure']['abstract_signature'])
17
- self.assertIsNone(analysis['configure']['concrete_signature'])
18
- self.assertFalse(analysis['configure']['signature_match'])
19
- self.assertEqual(analysis['configure']['type'], 'method')
20
-
21
- self.assertTrue(analysis['get_logs']['implemented'])
22
- self.assertEqual(str(analysis['get_logs']['abstract_signature']), "(self, limit: int = 10) -> List[str]")
23
- self.assertEqual(str(analysis['get_logs']['concrete_signature']), "(self, limit: int = 10) -> List[str]")
24
- self.assertTrue(analysis['get_logs']['signature_match'])
25
- self.assertEqual(analysis['get_logs']['type'], 'method')
26
-
27
- self.assertFalse(analysis['reset']['implemented'])
28
- self.assertIsNone(analysis['reset']['abstract_signature'])
29
- self.assertIsNone(analysis['reset']['concrete_signature'])
30
- self.assertFalse(analysis['reset']['signature_match'])
31
- self.assertEqual(analysis['reset']['type'], 'method')
32
-
33
- self.assertTrue(analysis['process']['implemented'])
34
- self.assertEqual(str(analysis['process']['abstract_signature']), "(self, data: str) -> bool")
35
- self.assertEqual(str(analysis['process']['concrete_signature']), "(self, data: str) -> bool")
36
- self.assertTrue(analysis['process']['signature_match'])
37
- self.assertEqual(analysis['process']['type'], 'method')
38
-
39
- self.assertFalse(analysis['status']['implemented'])
40
- self.assertIsNone(analysis['status']['abstract_signature'])
41
- self.assertIsNone(analysis['status']['concrete_signature'])
42
- self.assertFalse(analysis['status']['signature_match'])
43
- self.assertEqual(analysis['status']['type'], 'property')
44
-
45
- async def testReflexionConcreteWithAbstractGetNonInheritedImplementation(self):
46
- """Test reflexion con AbstractService y PartiallyImplementedService."""
47
- inspector = ReflexionConcreteWithAbstract(PartiallyImplementedService, AbstractService)
48
-
49
- # Get Non-Inherited implementation analysis
50
- analysis = inspector.getNonInheritedImplementation()
51
-
52
- self.assertIn('extra', analysis['methods'])
53
- self.assertListEqual(analysis['properties'], [])
54
- self.assertIn('__annotations__', analysis['attributes'])
55
-
56
- async def testReflexionConcreteWithAbstractValidateImplementation(self):
57
- """Test reflexion con AbstractService y PartiallyImplementedService."""
58
- inspector = ReflexionConcreteWithAbstract(PartiallyImplementedService, AbstractService)
59
-
60
- # Get Implementation analysis
61
- is_valid, issues = inspector.validateImplementation()
62
-
63
- # Verifying implemented methods
64
- self.assertFalse(is_valid)
65
- self.assertIn('reset', issues['missing'])
66
-
67
- async def testReflexionConcreteWithAbstractGetHierarchyAnalysis(self):
68
- """Test reflexion con AbstractService y PartiallyImplementedService."""
69
- inspector = ReflexionConcreteWithAbstract(PartiallyImplementedService, AbstractService)
70
-
71
- # Get Hierarchy analysis
72
- analysis = inspector.getHierarchyAnalysis()
73
-
74
- # Verifying implemented methods
75
- self.assertEqual(analysis['common_ancestors'], [])
76
- self.assertIn('AbstractService', analysis['abstract_hierarchy'])
77
- self.assertIn('PartiallyImplementedService', analysis['concrete_hierarchy'])
78
-
79
- async def testReflexionConcreteWithAbstractGetImplementationCoverage(self):
80
- """Test reflexion con AbstractService y PartiallyImplementedService."""
81
- inspector = ReflexionConcreteWithAbstract(PartiallyImplementedService, AbstractService)
82
-
83
- # Get Implementation coverage
84
- coverage = inspector.getImplementationCoverage()
85
-
86
- # Verifying implemented methods
87
- self.assertTrue(coverage >= 0.4)
@@ -1,79 +0,0 @@
1
- from orionis.support.introspection.reflexion_instance_with_abstract import ReflexionInstanceWithAbstract
2
- from orionis.test import TestCase
3
- from tests.support.inspection.fakes.fake_reflection_instance_with_abstract import FakeDataProcessor, IDataProcessor
4
-
5
- class TestReflexionInstanceWithAbstract(TestCase):
6
-
7
- async def testReflexionInstanceWithAbstractGetImplementationAnalysis(self):
8
- """Test reflexion con IDataProcessor y FakeDataProcessor."""
9
- processor = FakeDataProcessor()
10
- inspector = ReflexionInstanceWithAbstract(processor, IDataProcessor)
11
-
12
- # Get Implementation analysis
13
- analysis = inspector.getImplementationAnalysis()
14
-
15
- # Verifying implemented methods
16
- self.assertTrue(analysis['validate_input']['implemented'])
17
- self.assertEqual(str(analysis['validate_input']['abstract_signature']), "(self, raw_data: str) -> bool")
18
- self.assertEqual(str(analysis['validate_input']['concrete_signature']), "(source: str) -> bool")
19
- self.assertFalse(analysis['validate_input']['signature_match'])
20
- self.assertEqual(analysis['validate_input']['type'], 'method')
21
-
22
- self.assertTrue(analysis['process']['implemented'])
23
- self.assertEqual(str(analysis['process']['abstract_signature']), "(self, data: List[float]) -> Dict[str, float]")
24
- self.assertEqual(str(analysis['process']['concrete_signature']), "(values: List[float]) -> Dict[str, float]")
25
- self.assertFalse(analysis['process']['signature_match'])
26
- self.assertEqual(analysis['process']['type'], 'method')
27
-
28
- self.assertTrue(analysis['config']['implemented'])
29
- self.assertEqual(str(analysis['config']['abstract_signature']), "(self) -> Dict[str, str]")
30
- self.assertEqual(str(analysis['config']['concrete_signature']), "(self) -> Dict[str, str]")
31
- self.assertTrue(analysis['config']['signature_match'])
32
- self.assertEqual(analysis['config']['type'], 'property')
33
-
34
- async def testReflexionInstanceWithAbstractGetNonInheritedImplementation(self):
35
- """Test reflexion con IDataProcessor y FakeDataProcessor."""
36
- processor = FakeDataProcessor()
37
- inspector = ReflexionInstanceWithAbstract(processor, IDataProcessor)
38
-
39
- # Get Non-Inherited implementation analysis
40
- analysis = inspector.getNonInheritedImplementation()
41
-
42
- # Verifying implemented methods
43
- self.assertIn('extra_method', analysis['methods'])
44
-
45
- async def testReflexionInstanceWithAbstractValidateImplementation(self):
46
- """Test reflexion con IDataProcessor y FakeDataProcessor."""
47
- processor = FakeDataProcessor()
48
- inspector = ReflexionInstanceWithAbstract(processor, IDataProcessor)
49
-
50
- # Get Implementation analysis
51
- is_valid, issues = inspector.validateImplementation()
52
-
53
- # Verifying implemented methods
54
- self.assertFalse(is_valid)
55
- self.assertIn('process', issues['signature_mismatch'])
56
-
57
- async def testReflexionInstanceWithAbstractGetHierarchyAnalysis(self):
58
- """Test reflexion con IDataProcessor y FakeDataProcessor."""
59
- processor = FakeDataProcessor()
60
- inspector = ReflexionInstanceWithAbstract(processor, IDataProcessor)
61
-
62
- # Get Hierarchy analysis
63
- analysis = inspector.getHierarchyAnalysis()
64
-
65
- # Verifying implemented methods
66
- self.assertEqual(analysis['common_ancestors'], [])
67
- self.assertIn('IDataProcessor', analysis['abstract_hierarchy'])
68
- self.assertIn('FakeDataProcessor', analysis['concrete_hierarchy'])
69
-
70
- async def testReflexionInstanceWithAbstractGetImplementationCoverage(self):
71
- """Test reflexion con IDataProcessor y FakeDataProcessor."""
72
- processor = FakeDataProcessor()
73
- inspector = ReflexionInstanceWithAbstract(processor, IDataProcessor)
74
-
75
- # Get Implementation coverage
76
- coverage = inspector.getImplementationCoverage()
77
-
78
- # Verifying implemented methods
79
- self.assertTrue(coverage >= 0.66)
File without changes
File without changes
File without changes
File without changes
File without changes