orionis 0.236.0__py3-none-any.whl → 0.238.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 (25) hide show
  1. orionis/framework.py +1 -1
  2. orionis/luminate/support/introspection/__init__.py +0 -1
  3. orionis/luminate/support/introspection/dependencies/__init__.py +5 -0
  4. orionis/luminate/support/introspection/dependencies/entities/class_dependencies.py +3 -2
  5. orionis/luminate/support/introspection/dependencies/entities/method_dependencies.py +3 -2
  6. orionis/luminate/support/introspection/dependencies/entities/resolved_dependencies.py +1 -1
  7. orionis/luminate/support/introspection/instances/__init__.py +5 -0
  8. orionis/luminate/support/introspection/instances/entities/__init__.py +0 -0
  9. orionis/luminate/support/introspection/instances/entities/class_attributes.py +11 -0
  10. orionis/luminate/support/introspection/instances/entities/class_method.py +18 -0
  11. orionis/luminate/support/introspection/instances/entities/class_parsed.py +18 -0
  12. orionis/luminate/support/introspection/instances/entities/class_property.py +13 -0
  13. orionis/luminate/support/introspection/{reflection_instance.py → instances/reflection_instance.py} +7 -53
  14. orionis/luminate/support/introspection/reflection.py +1 -1
  15. orionis/luminate/support/introspection/reflexion_instance_with_abstract.py +1 -1
  16. {orionis-0.236.0.dist-info → orionis-0.238.0.dist-info}/METADATA +1 -1
  17. {orionis-0.236.0.dist-info → orionis-0.238.0.dist-info}/RECORD +25 -17
  18. tests/support/inspection/fakes/fake_reflect_dependencies.py +25 -0
  19. tests/support/inspection/test_reflect_dependencies.py +67 -0
  20. tests/support/inspection/{test_reflection_instance.py → test_reflect_instance.py} +6 -5
  21. {orionis-0.236.0.dist-info → orionis-0.238.0.dist-info}/LICENCE +0 -0
  22. {orionis-0.236.0.dist-info → orionis-0.238.0.dist-info}/WHEEL +0 -0
  23. {orionis-0.236.0.dist-info → orionis-0.238.0.dist-info}/entry_points.txt +0 -0
  24. {orionis-0.236.0.dist-info → orionis-0.238.0.dist-info}/top_level.txt +0 -0
  25. /tests/support/inspection/fakes/{fake_reflection_instance.py → fake_reflect_instance.py} +0 -0
orionis/framework.py CHANGED
@@ -5,7 +5,7 @@
5
5
  NAME = "orionis"
6
6
 
7
7
  # Current version of the framework
8
- VERSION = "0.236.0"
8
+ VERSION = "0.238.0"
9
9
 
10
10
  # Full name of the author or maintainer of the project
11
11
  AUTHOR = "Raul Mauricio Uñate Castro"
@@ -1,5 +1,4 @@
1
1
  from orionis.luminate.support.introspection.reflection import Reflection
2
- from orionis.luminate.support.introspection.reflection_instance import ReflectionInstance
3
2
 
4
3
  __all__ = [
5
4
  "Reflection",
@@ -0,0 +1,5 @@
1
+ from orionis.luminate.support.introspection.dependencies.reflect_dependencies import ReflectDependencies
2
+
3
+ __all__ = [
4
+ "ReflectDependencies"
5
+ ]
@@ -1,10 +1,11 @@
1
1
  from dataclasses import dataclass
2
2
  from typing import Any, Dict, List
3
+ from orionis.luminate.support.introspection.dependencies.entities.resolved_dependencies import ResolvedDependency
3
4
 
4
- @dataclass(frozen=True)
5
+ @dataclass(frozen=True, kw_only=True)
5
6
  class ClassDependency:
6
7
  """
7
8
  A class to represent a dependency of a class instance.
8
9
  """
9
- resolved: Dict[str, Any]
10
+ resolved: Dict[ResolvedDependency, Any]
10
11
  unresolved: List[str]
@@ -1,10 +1,11 @@
1
1
  from dataclasses import dataclass
2
2
  from typing import Any, Dict, List
3
+ from orionis.luminate.support.introspection.dependencies.entities.resolved_dependencies import ResolvedDependency
3
4
 
4
- @dataclass(frozen=True)
5
+ @dataclass(frozen=True, kw_only=True)
5
6
  class MethodDependency:
6
7
  """
7
8
  A class to represent a method dependency of a class instance.
8
9
  """
9
- resolved: Dict[str, Any]
10
+ resolved: Dict[ResolvedDependency, Any]
10
11
  unresolved: List[str]
@@ -1,7 +1,7 @@
1
1
  from dataclasses import dataclass
2
2
  from typing import Type
3
3
 
4
- @dataclass(frozen=True)
4
+ @dataclass(frozen=True, kw_only=True)
5
5
  class ResolvedDependency:
6
6
  """
7
7
  A class to represent a resolved dependency of a class instance.
@@ -0,0 +1,5 @@
1
+ from orionis.luminate.support.introspection.instances.reflection_instance import ReflectionInstance
2
+
3
+ __all__ = [
4
+ "ReflectionInstance",
5
+ ]
@@ -0,0 +1,11 @@
1
+ from dataclasses import dataclass
2
+ from typing import Any, Dict
3
+
4
+ @dataclass(frozen=True, kw_only=True)
5
+ class ClassAttributes:
6
+ """
7
+ A class to represent the attributes of a class instance.
8
+ """
9
+ public: Dict[str, Any]
10
+ private: Dict[str, Any]
11
+ protected: Dict[str, Any]
@@ -0,0 +1,18 @@
1
+ from dataclasses import dataclass
2
+ from typing import List
3
+
4
+ @dataclass(frozen=False, kw_only=True)
5
+ class ClassMethod:
6
+ """
7
+ A class to represent the methods of a class instance.
8
+ """
9
+ public: List[str]
10
+ private: List[str]
11
+ protected: List[str]
12
+ static: List[str]
13
+ asynchronous: List[str]
14
+ synchronous: List[str]
15
+ class_methods: List[str]
16
+ asynchronous_static: List[str]
17
+ synchronous_static: List[str]
18
+ magic: List[str]
@@ -0,0 +1,18 @@
1
+ from dataclasses import dataclass
2
+ from typing import List
3
+ from orionis.luminate.support.introspection.dependencies.entities.class_dependencies import ClassDependency
4
+ from orionis.luminate.support.introspection.instances.entities.class_attributes import ClassAttributes
5
+ from orionis.luminate.support.introspection.instances.entities.class_method import ClassMethod
6
+ from orionis.luminate.support.introspection.instances.entities.class_property import ClassProperty
7
+
8
+ @dataclass(frozen=True, kw_only=True)
9
+ class ClassParsed:
10
+ """
11
+ A class to represent the parsed information of a class instance.
12
+ """
13
+ name : str = None
14
+ module : str = None
15
+ attributes : ClassAttributes = None
16
+ methods : ClassMethod = None
17
+ properties : List[ClassProperty] = None,
18
+ dependencies : ClassDependency = None
@@ -0,0 +1,13 @@
1
+ from dataclasses import dataclass
2
+ import inspect
3
+ from typing import Any
4
+
5
+ @dataclass(frozen=True, kw_only=True)
6
+ class ClassProperty:
7
+ """
8
+ A class to represent a property of a class instance.
9
+ """
10
+ name: str
11
+ value: Any
12
+ signature: inspect.Signature
13
+ doc: str
@@ -1,59 +1,13 @@
1
1
  import inspect
2
- from dataclasses import dataclass
3
2
  from typing import Any, Callable, Dict, List, Optional, Tuple, Type
4
3
  from orionis.luminate.support.asynchrony.async_io import AsyncIO
5
- from orionis.luminate.support.introspection.dependencies.reflect_dependencies import (
6
- ClassDependency,
7
- MethodDependency,
8
- ReflectDependencies,
9
- )
10
-
11
- @dataclass
12
- class ClassAttributes:
13
- """
14
- A class to represent the attributes of a class instance.
15
- """
16
- public: Dict[str, Any]
17
- private: Dict[str, Any]
18
- protected: Dict[str, Any]
19
-
20
- @dataclass
21
- class ClassMethod:
22
- """
23
- A class to represent the methods of a class instance.
24
- """
25
- public: List[str]
26
- private: List[str]
27
- protected: List[str]
28
- static: List[str]
29
- asynchronous: List[str]
30
- synchronous: List[str]
31
- class_methods: List[str]
32
- asynchronous_static: List[str]
33
- synchronous_static: List[str]
34
- magic: List[str]
35
-
36
- @dataclass
37
- class ClassProperty:
38
- """
39
- A class to represent a property of a class instance.
40
- """
41
- name: str
42
- value: Any
43
- signature: inspect.Signature
44
- doc: str
45
-
46
- @dataclass
47
- class ClassParsed:
48
- """
49
- A class to represent the parsed information of a class instance.
50
- """
51
- name : str = None
52
- module : str = None
53
- attributes : ClassAttributes = None
54
- methods : ClassMethod = None
55
- properties : List[ClassProperty] = None,
56
- dependencies : ClassDependency = None
4
+ from orionis.luminate.support.introspection.dependencies import ReflectDependencies
5
+ from orionis.luminate.support.introspection.dependencies.entities.class_dependencies import ClassDependency
6
+ from orionis.luminate.support.introspection.dependencies.entities.method_dependencies import MethodDependency
7
+ from orionis.luminate.support.introspection.instances.entities.class_attributes import ClassAttributes
8
+ from orionis.luminate.support.introspection.instances.entities.class_method import ClassMethod
9
+ from orionis.luminate.support.introspection.instances.entities.class_parsed import ClassParsed
10
+ from orionis.luminate.support.introspection.instances.entities.class_property import ClassProperty
57
11
 
58
12
  class ReflectionInstance:
59
13
  """
@@ -5,7 +5,7 @@ from orionis.luminate.support.introspection.helpers.functions import HelpersRefl
5
5
  from orionis.luminate.support.introspection.reflect_abstract import ReflexionAbstract
6
6
  from orionis.luminate.support.introspection.reflexion_concrete import ReflexionConcrete
7
7
  from orionis.luminate.support.introspection.reflexion_concrete_with_abstract import ReflexionConcreteWithAbstract
8
- from orionis.luminate.support.introspection.reflection_instance import ReflectionInstance
8
+ from orionis.luminate.support.introspection.instances.reflection_instance import ReflectionInstance
9
9
  from orionis.luminate.support.introspection.reflexion_instance_with_abstract import ReflexionInstanceWithAbstract
10
10
  from orionis.luminate.support.introspection.reflexion_module import ReflexionModule
11
11
  from orionis.luminate.support.introspection.reflexion_module_with_classname import ReflexionModuleWithClassName
@@ -2,7 +2,7 @@ import abc
2
2
  import inspect
3
3
  from typing import Any, Dict, List, Tuple, Type, TypeVar, Union
4
4
  from orionis.luminate.support.introspection.reflect_abstract import ReflexionAbstract
5
- from orionis.luminate.support.introspection.reflection_instance import ReflectionInstance
5
+ from orionis.luminate.support.introspection.instances.reflection_instance import ReflectionInstance
6
6
 
7
7
  T = TypeVar('T')
8
8
  ABC = TypeVar('ABC', bound=abc.ABC)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: orionis
3
- Version: 0.236.0
3
+ Version: 0.238.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
@@ -1,6 +1,6 @@
1
1
  orionis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
2
  orionis/console.py,sha256=4gYWxf0fWYgJ4RKwARvnTPh06FL3GJ6SAZ7R2NzOICw,1342
3
- orionis/framework.py,sha256=P7M85I_tdQEdnqGzgyT3_QBGWX8hf4vYnQQ93ode2cw,1458
3
+ orionis/framework.py,sha256=XYV_QTxamR0xFfY_RI03mQrvKvRBn423IUDQkDO3D0U,1458
4
4
  orionis/installer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
5
  orionis/installer/manager.py,sha256=Li4TVziRXWfum02xNG4JHwbnLk-u8xzHjdqKz-D894k,2755
6
6
  orionis/installer/output.py,sha256=7O9qa2xtXMB_4ZvVi-Klneom9YazwygAd_4uYAoxhbU,8548
@@ -166,30 +166,36 @@ orionis/luminate/support/environment/functions.py,sha256=L6gL4z3c89ZU17IWvOXyQ2_
166
166
  orionis/luminate/support/environment/helper.py,sha256=G1670w1xkI1pj-rW_inv6D3XmU4oliwnWnrJO5CBm2E,818
167
167
  orionis/luminate/support/environment/contracts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
168
168
  orionis/luminate/support/environment/contracts/env.py,sha256=buJfzebBOUuq2CnhQCWlnJuzJAEo06-S0_SPR4N_mOY,1647
169
- orionis/luminate/support/introspection/__init__.py,sha256=jYIlYv5a8cmifzet7ozzxt2fJEmqJSamlJFTbWhYeUU,227
169
+ orionis/luminate/support/introspection/__init__.py,sha256=s7ZMEnwkCAKNJtNXID4YbWTKTuab8jhqTmkkcmtlO5s,136
170
170
  orionis/luminate/support/introspection/container_integrity.py,sha256=6d9FsGk-Rm1AXgqBS3Nww49dR7n1ptXTTNyGUuBHgNY,10111
171
171
  orionis/luminate/support/introspection/reflect_abstract.py,sha256=vcPy5r33WeyTzFEXGMmGeI7C23_S4nGS_VXBBODAfng,10851
172
172
  orionis/luminate/support/introspection/reflect_decorators.py,sha256=fnxnkEcRSU8TxDGdjCNlvXMNHEKzW7AwO_aPOVCbs9w,11548
173
- orionis/luminate/support/introspection/reflection.py,sha256=z9yTQvMKNGjvWh59HH-AEwPXq-3s4hT4ciXbw4FIfKo,7823
174
- orionis/luminate/support/introspection/reflection_instance.py,sha256=XQnNTYuN9aLWyTJIu-sc1OYbaj3XtihOIeVuSHVIiQE,24862
173
+ orionis/luminate/support/introspection/reflection.py,sha256=gSWNcnHUkM4TbSzt1u_EC17RZQv9BuN8Drei-mFgc6Y,7833
175
174
  orionis/luminate/support/introspection/reflexion_concrete.py,sha256=1ISuy2L6Oser-EhmpuGALmbauh7Z-X8Rx1YYgt5CabQ,7543
176
175
  orionis/luminate/support/introspection/reflexion_concrete_with_abstract.py,sha256=9DYldzJZcx1fgdDkZsMj63zLVSTPYlhygphRjAtJY3k,7484
177
- orionis/luminate/support/introspection/reflexion_instance_with_abstract.py,sha256=h4E_PxCR7F2ImjVfJFyDPgHA2SSUeQnrbmdUVvuavYo,9414
176
+ orionis/luminate/support/introspection/reflexion_instance_with_abstract.py,sha256=Y8TNIzQciR3YCklim9OrxAxZpYOS0HKxEpEf8-kTAvE,9424
178
177
  orionis/luminate/support/introspection/reflexion_module.py,sha256=OgBXpqNJHkmq-gX4rqFStv-WVNe9R38RsgUgfHpak8k,405
179
178
  orionis/luminate/support/introspection/reflexion_module_with_classname.py,sha256=YZHZI0XUZkSWnq9wrGxrIXtI64nY9yVSZoMe7PZXq8Y,620
180
179
  orionis/luminate/support/introspection/contracts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
181
180
  orionis/luminate/support/introspection/contracts/reflection.py,sha256=zF9OLiEdgWJtJWvfrmWCQhbDjgYmm-QvAkFv9OLb3rE,4959
182
181
  orionis/luminate/support/introspection/contracts/reflexion_abstract.py,sha256=u8SiBTvcWltwR9g64akCNCzsTq8YkkZIPPEPwbyroQU,6396
183
- orionis/luminate/support/introspection/dependencies/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
182
+ orionis/luminate/support/introspection/dependencies/__init__.py,sha256=WWSAZWJzc4fhCWVycKMgalFPXzLyUiVc01qhAIm5XBc,149
184
183
  orionis/luminate/support/introspection/dependencies/reflect_dependencies.py,sha256=Udg4eUDehJiJNaiZOwGvpomNA2OvEQRwbKQk6OPb1sw,7027
185
184
  orionis/luminate/support/introspection/dependencies/contracts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
186
185
  orionis/luminate/support/introspection/dependencies/contracts/reflect_dependencies.py,sha256=RnwRP_3uBM0ivE3Y9bgx3chGSmTFhCAcVtKucwEOs0U,1688
187
186
  orionis/luminate/support/introspection/dependencies/entities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
188
- orionis/luminate/support/introspection/dependencies/entities/class_dependencies.py,sha256=aUr8AIWn5R2X_kpdBOnin_dbg7NkkGcxUSZXosx9Xqk,257
189
- orionis/luminate/support/introspection/dependencies/entities/method_dependencies.py,sha256=ZYmCrvhtTeIORFpNuK4h_CgnT2AEpf1MmGnBH0w_roo,263
190
- orionis/luminate/support/introspection/dependencies/entities/resolved_dependencies.py,sha256=yhnJC7lwdTtemRSIjxc2HschBOUp6Nf2rNky6zI5oos,284
187
+ orionis/luminate/support/introspection/dependencies/entities/class_dependencies.py,sha256=ZI79TL8D8RsO7_V1SF-mL-IbeRmVWQJa9AGsOIrMmP8,401
188
+ orionis/luminate/support/introspection/dependencies/entities/method_dependencies.py,sha256=6UauiMVmsLfUbIPRe4jC6CeS4T_77FyMJu0gLUs6I3U,407
189
+ orionis/luminate/support/introspection/dependencies/entities/resolved_dependencies.py,sha256=u6iM-MIpOHWDF7hG9tjb50mSpPrzcc3adh0yg7AZ30s,298
191
190
  orionis/luminate/support/introspection/helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
192
191
  orionis/luminate/support/introspection/helpers/functions.py,sha256=JC2_t732LqcJn3zoRZwFAqcm6kT6HvsJmupysjH3aiY,8537
192
+ orionis/luminate/support/introspection/instances/__init__.py,sha256=R6dZ6yPk-4m2IaW74ceM4-Sba52aeAryfmIK4pAVWpc,144
193
+ orionis/luminate/support/introspection/instances/reflection_instance.py,sha256=Ft2rqsPYmhQctCwPjFJIQWwDZ2g4whyYzf_MHsdhL2Q,24248
194
+ orionis/luminate/support/introspection/instances/entities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
195
+ orionis/luminate/support/introspection/instances/entities/class_attributes.py,sha256=eQSiqCE_3ai_1FJF7VCJlLVmX3X7lEwD7bsoomd5z80,296
196
+ orionis/luminate/support/introspection/instances/entities/class_method.py,sha256=KHxd5mBCNnbtq6RhNrAk5Wu1VrblJzd629rBXMzBVZ8,473
197
+ orionis/luminate/support/introspection/instances/entities/class_parsed.py,sha256=9uTke2oAOX87ygYg_I4GFWMzLWbRhhxVTxWtfV97CsE,828
198
+ orionis/luminate/support/introspection/instances/entities/class_property.py,sha256=cH1fTY5OXYfK8aeV8U19Kz6uVKI61PAhmVRUUWRIEVU,291
193
199
  orionis/luminate/support/parsers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
194
200
  orionis/luminate/support/parsers/exception_parser.py,sha256=6MTeql76c1Muh9Nn-jz2jJdzb9_F7SLdoFjqBD5F8lY,3642
195
201
  orionis/luminate/support/parsers/contracts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -240,16 +246,18 @@ tests/support/async_io/test_async_coroutine.py,sha256=rMpjIH3DDjMDIqZkaDGv1q1yGl
240
246
  tests/support/environment/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
241
247
  tests/support/environment/test_env.py,sha256=fcMyvGnDnP2qamhG7yDRN9MyUDjeYN-oSmlno2mc7dQ,2652
242
248
  tests/support/inspection/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
249
+ tests/support/inspection/test_reflect_dependencies.py,sha256=frROd9NDbzwmEpb7TEOpikshFJKbPN5NvJ62ZWUm11E,3686
250
+ tests/support/inspection/test_reflect_instance.py,sha256=dMSVheTV32y3Faz4kYV803gdN2B4IP944e5wB2RVncs,14065
243
251
  tests/support/inspection/test_reflection_abstract.py,sha256=447L7TCQ5-08QKWuzpIlx0EZ9b9LjEOpR5ZMU5N2Kz0,9340
244
252
  tests/support/inspection/test_reflection_concrete.py,sha256=OXUG4EDW0Xa8c7TWeUuGdwRc3eQ4hoP67ZGbevg8BdU,6778
245
253
  tests/support/inspection/test_reflection_concrete_with_abstract.py,sha256=7QPHwZZOpBaRTlpiXWIQ4DPYQBlnD1-XxNMtjEfMPu4,4673
246
- tests/support/inspection/test_reflection_instance.py,sha256=XIPGzQUFXewkcTNVT1vvmDBgx0oqOfJ4dHavOF_Jb-k,14015
247
254
  tests/support/inspection/test_reflection_instance_with_abstract.py,sha256=GmY2W9S84uFCBIRsEjAAVhWbqWR7ZgOPD-AN8sAmhSM,4082
248
255
  tests/support/inspection/fakes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
256
+ tests/support/inspection/fakes/fake_reflect_dependencies.py,sha256=TgLnBm31I8CE2qL-BkU_vo2XdBILfF5FvLe9VIr5J_E,797
257
+ tests/support/inspection/fakes/fake_reflect_instance.py,sha256=P5lSFiGPLLAPOIRmw4VE3YWctxlqmXARRiWMSGLrg3E,1382
249
258
  tests/support/inspection/fakes/fake_reflection_abstract.py,sha256=7qtz44brfFzE4oNYi9kIsvdWP79nP2FnzSz-0bU__pg,5045
250
259
  tests/support/inspection/fakes/fake_reflection_concrete.py,sha256=j6gzsxE3xq5oJ30H_Hm1RsUwEY3jOYBu4sclxtD1ayo,1047
251
260
  tests/support/inspection/fakes/fake_reflection_concrete_with_abstract.py,sha256=ibCjrtNM6BMf5Z5VMvat7E6zOAk5g9z--gj4ykKJWY8,2118
252
- tests/support/inspection/fakes/fake_reflection_instance.py,sha256=P5lSFiGPLLAPOIRmw4VE3YWctxlqmXARRiWMSGLrg3E,1382
253
261
  tests/support/inspection/fakes/fake_reflection_instance_with_abstract.py,sha256=SfL8FuFmr650RlzXTrP4tGMfsPVZLhOxVnBXu_g1POg,1471
254
262
  tests/support/parsers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
255
263
  tests/support/parsers/test_exception_parser.py,sha256=0z3wanBtrLyGa6T9z2u5juqy8F5ZEHhwa3zOwiQIPGk,2353
@@ -261,9 +269,9 @@ tests/support/patterns/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3
261
269
  tests/support/patterns/test_singleton.py,sha256=I0Cawq0C5mV5v2I1mLmxJeXw9Vt3B1iq1RgLePsG30I,624
262
270
  tests/support/standard/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
263
271
  tests/support/standard/test_std.py,sha256=g_iU9Pa6W9XDnxwdLB_NAmD60547VAReXe_Vhyrhf4M,2032
264
- orionis-0.236.0.dist-info/LICENCE,sha256=-_4cF2EBKuYVS_SQpy1uapq0oJPUU1vl_RUWSy2jJTo,1111
265
- orionis-0.236.0.dist-info/METADATA,sha256=Rr2hDcSWC6wFRRGCptE4Xs9O24n9GvLE3LskYLvybiw,3003
266
- orionis-0.236.0.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
267
- orionis-0.236.0.dist-info/entry_points.txt,sha256=a_e0faeSqyUCVZd0MqljQ2oaHHdlsz6g9sU_bMqi5zQ,49
268
- orionis-0.236.0.dist-info/top_level.txt,sha256=2bdoHgyGZhOtLAXS6Om8OCTmL24dUMC_L1quMe_ETbk,14
269
- orionis-0.236.0.dist-info/RECORD,,
272
+ orionis-0.238.0.dist-info/LICENCE,sha256=-_4cF2EBKuYVS_SQpy1uapq0oJPUU1vl_RUWSy2jJTo,1111
273
+ orionis-0.238.0.dist-info/METADATA,sha256=E30K5IsKRPLJJ73TdUVMQ17rxAb7asTfPBSb92l2O9o,3003
274
+ orionis-0.238.0.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
275
+ orionis-0.238.0.dist-info/entry_points.txt,sha256=a_e0faeSqyUCVZd0MqljQ2oaHHdlsz6g9sU_bMqi5zQ,49
276
+ orionis-0.238.0.dist-info/top_level.txt,sha256=2bdoHgyGZhOtLAXS6Om8OCTmL24dUMC_L1quMe_ETbk,14
277
+ orionis-0.238.0.dist-info/RECORD,,
@@ -0,0 +1,25 @@
1
+ class FakeUser:
2
+ def __init__(self):
3
+ self.user_data = None
4
+
5
+ def get_user(self, user_id):
6
+ return self.user_data
7
+
8
+ class FakeUserWithPermissions:
9
+ def __init__(self):
10
+ self.permissions = set()
11
+
12
+ def add_permission(self, permission: str):
13
+ self.permissions.add(permission)
14
+
15
+ def has_permission(self, permission: str) -> bool:
16
+ return permission in self.permissions
17
+
18
+ class UserController:
19
+ def __init__(self, user_repository: FakeUser):
20
+ self.user_repository = user_repository
21
+
22
+ def create_user_with_permissions(self, user_permissions: FakeUserWithPermissions, permissions: list[str]):
23
+ for permission in permissions:
24
+ user_permissions.add_permission(permission)
25
+ return user_permissions
@@ -0,0 +1,67 @@
1
+ from orionis.luminate.support.introspection.dependencies import ReflectDependencies
2
+ from orionis.luminate.support.introspection.dependencies.entities.class_dependencies import ClassDependency
3
+ from orionis.luminate.support.introspection.dependencies.entities.method_dependencies import MethodDependency
4
+ from orionis.luminate.support.introspection.dependencies.entities.resolved_dependencies import ResolvedDependency
5
+ from orionis.luminate.test import TestCase
6
+ from tests.support.inspection.fakes.fake_reflect_dependencies import FakeUser, FakeUserWithPermissions, UserController
7
+
8
+ class TestReflectDependencies(TestCase):
9
+ """
10
+ Unit tests for the Reflection class.
11
+ """
12
+
13
+ async def testReflectionDependenciesGetConstructorDependencies(self):
14
+ """
15
+ Test the reflection of dependencies in a class.
16
+ """
17
+ depend = ReflectDependencies(UserController)
18
+ constructor_dependencies = depend.getConstructorDependencies()
19
+
20
+ # Check Instance of ClassDependency
21
+ self.assertIsInstance(constructor_dependencies, ClassDependency)
22
+
23
+ # Check unresolved dependencies
24
+ self.assertEqual(constructor_dependencies.unresolved, [])
25
+
26
+ # Check Instance of ResolvedDependency
27
+ dep_user_repository:ResolvedDependency = constructor_dependencies.resolved.get('user_repository')
28
+ self.assertIsInstance(dep_user_repository, ResolvedDependency)
29
+
30
+ # Check resolved dependencies
31
+ self.assertEqual(dep_user_repository.module_name, 'tests.support.inspection.fakes.fake_reflect_dependencies')
32
+ self.assertEqual(dep_user_repository.class_name, 'FakeUser')
33
+ self.assertEqual(dep_user_repository.full_class_path, 'tests.support.inspection.fakes.fake_reflect_dependencies.FakeUser')
34
+ self.assertEqual(dep_user_repository.type, FakeUser)
35
+
36
+ async def testReflectionDependenciesGetMethodDependencies(self):
37
+ """
38
+ Test the reflection of dependencies in a class method.
39
+ """
40
+ depend = ReflectDependencies(UserController)
41
+ method_dependencies = depend.getMethodDependencies('create_user_with_permissions')
42
+
43
+ # Check Instance of MethodDependency
44
+ self.assertIsInstance(method_dependencies, MethodDependency)
45
+
46
+ # Check unresolved dependencies
47
+ self.assertEqual(method_dependencies.unresolved, [])
48
+
49
+ # Check Instance of ResolvedDependency for 'user_permissions'
50
+ dep_user_permissions:ResolvedDependency = method_dependencies.resolved.get('user_permissions')
51
+ self.assertIsInstance(dep_user_permissions, ResolvedDependency)
52
+
53
+ # Check resolved dependencies for 'user_permissions'
54
+ self.assertEqual(dep_user_permissions.module_name, 'tests.support.inspection.fakes.fake_reflect_dependencies')
55
+ self.assertEqual(dep_user_permissions.class_name, 'FakeUserWithPermissions')
56
+ self.assertEqual(dep_user_permissions.full_class_path, 'tests.support.inspection.fakes.fake_reflect_dependencies.FakeUserWithPermissions')
57
+ self.assertEqual(dep_user_permissions.type, FakeUserWithPermissions)
58
+
59
+ # Check Instance of ResolvedDependency for 'permissions'
60
+ dep_permissions:ResolvedDependency = method_dependencies.resolved.get('permissions')
61
+ self.assertIsInstance(dep_permissions, ResolvedDependency)
62
+
63
+ # Check resolved dependencies for 'permissions'
64
+ self.assertEqual(dep_permissions.module_name, 'builtins')
65
+ self.assertEqual(dep_permissions.class_name, 'list')
66
+ self.assertEqual(dep_permissions.full_class_path, 'builtins.list')
67
+ self.assertEqual(dep_permissions.type, list[str])
@@ -1,9 +1,10 @@
1
1
  import asyncio
2
- from orionis.luminate.support.introspection import Reflection, ReflectionInstance
2
+ from orionis.luminate.support.introspection import Reflection
3
+ from orionis.luminate.support.introspection.reflection import ReflectionInstance
3
4
  from orionis.luminate.test import TestCase
4
- from tests.support.inspection.fakes.fake_reflection_instance import BaseFakeClass, FakeClass
5
+ from tests.support.inspection.fakes.fake_reflect_instance import BaseFakeClass, FakeClass
5
6
 
6
- class TestReflectionInstance(TestCase):
7
+ class TestReflectInstance(TestCase):
7
8
  """
8
9
  Unit tests for the Reflection class.
9
10
  """
@@ -30,7 +31,7 @@ class TestReflectionInstance(TestCase):
30
31
  async def testReflectionInstanceGetModuleName(self):
31
32
  """Verify getModuleName returns the correct module name."""
32
33
  reflex = Reflection.instance(FakeClass())
33
- self.assertEqual(reflex.getModuleName(), "tests.support.inspection.fakes.fake_reflection_instance")
34
+ self.assertEqual(reflex.getModuleName(), "tests.support.inspection.fakes.fake_reflect_instance")
34
35
 
35
36
  async def testReflectionInstanceGetAllAttributes(self):
36
37
  """Check that getAllAttributes returns all attributes of the class."""
@@ -211,7 +212,7 @@ class TestReflectionInstance(TestCase):
211
212
  """Ensure getFileLocation returns the correct file path."""
212
213
  reflex = Reflection.instance(FakeClass())
213
214
  file_location = reflex.getFileLocation()
214
- self.assertIn("fake_reflection_instance.py", file_location)
215
+ self.assertIn("fake_reflect_instance.py", file_location)
215
216
 
216
217
  async def testReflectionInstanceGetAnnotations(self):
217
218
  """Verify getAnnotations returns the correct class annotations."""