orionis 0.311.0__py3-none-any.whl → 0.313.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 (50) hide show
  1. orionis/container/container.py +101 -2
  2. orionis/container/exceptions/container_exception.py +13 -11
  3. orionis/container/exceptions/type_error_exception.py +2 -2
  4. orionis/container/exceptions/value_exception.py +13 -11
  5. orionis/metadata/framework.py +1 -1
  6. orionis/services/introspection/abstract/reflection_abstract.py +18 -2
  7. orionis/services/introspection/concretes/reflection_concrete.py +56 -13
  8. {orionis-0.311.0.dist-info → orionis-0.313.0.dist-info}/METADATA +1 -1
  9. {orionis-0.311.0.dist-info → orionis-0.313.0.dist-info}/RECORD +50 -50
  10. tests/foundation/config/app/test_foundation_config_app.py +1 -1
  11. tests/foundation/config/cache/test_foundation_config_cache.py +1 -1
  12. tests/foundation/config/cache/test_foundation_config_cache_file.py +1 -1
  13. tests/foundation/config/cache/test_foundation_config_cache_stores.py +1 -1
  14. tests/foundation/config/cors/test_foundation_config_cors.py +1 -1
  15. tests/foundation/config/database/test_foundation_config_database.py +1 -1
  16. tests/foundation/config/database/test_foundation_config_database_connections.py +1 -1
  17. tests/foundation/config/database/test_foundation_config_database_mysql.py +1 -1
  18. tests/foundation/config/database/test_foundation_config_database_oracle.py +1 -1
  19. tests/foundation/config/database/test_foundation_config_database_pgsql.py +1 -1
  20. tests/foundation/config/database/test_foundation_config_database_sqlite.py +1 -1
  21. tests/foundation/config/filesystems/test_foundation_config_filesystems.py +1 -1
  22. tests/foundation/config/filesystems/test_foundation_config_filesystems_aws.py +1 -1
  23. tests/foundation/config/filesystems/test_foundation_config_filesystems_disks.py +1 -1
  24. tests/foundation/config/filesystems/test_foundation_config_filesystems_local.py +1 -1
  25. tests/foundation/config/filesystems/test_foundation_config_filesystems_public.py +1 -1
  26. tests/foundation/config/logging/test_foundation_config_logging.py +1 -1
  27. tests/foundation/config/logging/test_foundation_config_logging_channels.py +1 -1
  28. tests/foundation/config/logging/test_foundation_config_logging_chunked.py +1 -1
  29. tests/foundation/config/logging/test_foundation_config_logging_daily.py +1 -1
  30. tests/foundation/config/logging/test_foundation_config_logging_hourly.py +1 -1
  31. tests/foundation/config/logging/test_foundation_config_logging_monthly.py +1 -1
  32. tests/foundation/config/logging/test_foundation_config_logging_stack.py +1 -1
  33. tests/foundation/config/logging/test_foundation_config_logging_weekly.py +1 -1
  34. tests/foundation/config/mail/test_foundation_config_mail.py +1 -1
  35. tests/foundation/config/mail/test_foundation_config_mail_file.py +1 -1
  36. tests/foundation/config/mail/test_foundation_config_mail_mailers.py +1 -1
  37. tests/foundation/config/mail/test_foundation_config_mail_smtp.py +1 -1
  38. tests/foundation/config/queue/test_foundation_config_queue.py +1 -1
  39. tests/foundation/config/queue/test_foundation_config_queue_brokers.py +1 -1
  40. tests/foundation/config/queue/test_foundation_config_queue_database.py +1 -1
  41. tests/foundation/config/root/test_foundation_config_root_paths.py +1 -1
  42. tests/foundation/config/session/test_foundation_config_session.py +1 -1
  43. tests/foundation/config/startup/test_foundation_config_startup.py +1 -1
  44. tests/foundation/config/testing/test_foundation_config_testing.py +1 -1
  45. tests/foundation/{config/exceptions → exceptions}/test_foundation_config_exceptions.py +7 -7
  46. {orionis-0.311.0.dist-info → orionis-0.313.0.dist-info}/WHEEL +0 -0
  47. {orionis-0.311.0.dist-info → orionis-0.313.0.dist-info}/licenses/LICENCE +0 -0
  48. {orionis-0.311.0.dist-info → orionis-0.313.0.dist-info}/top_level.txt +0 -0
  49. {orionis-0.311.0.dist-info → orionis-0.313.0.dist-info}/zip-safe +0 -0
  50. /tests/foundation/{config/exceptions → exceptions}/__init__.py +0 -0
@@ -1,12 +1,29 @@
1
1
  from typing import Any, Callable
2
2
  from orionis.container.enums.lifetimes import Lifetime
3
+ from orionis.container.exceptions.container_exception import OrionisContainerException
3
4
  from orionis.container.exceptions.type_error_exception import OrionisContainerTypeError
4
5
  from orionis.services.introspection.abstract.reflection_abstract import ReflectionAbstract
6
+ from orionis.services.introspection.concretes.reflection_concrete import ReflectionConcrete
5
7
 
6
8
 
7
9
  class Container:
8
10
 
9
- def transient(self, abstract: Callable[..., Any], concrete: Callable[..., Any]) -> None:
11
+ def bind(self, abstract: Callable[..., Any] = None, concrete: Callable[..., Any] = None, lifetime: str = Lifetime.TRANSIENT) -> None:
12
+ """
13
+ Binds an abstract type to a concrete implementation with a specified lifetime.
14
+
15
+ Parameters
16
+ ----------
17
+ abstract : Callable[..., Any]
18
+ The abstract base type or alias to be bound.
19
+ concrete : Callable[..., Any]
20
+ The concrete implementation to associate with the abstract type.
21
+ lifetime : str, optional
22
+ The lifetime of the service (default is 'transient').
23
+ """
24
+ pass
25
+
26
+ def transient(self, abstract: Callable[..., Any], concrete: Callable[..., Any]) -> bool:
10
27
  """
11
28
  Registers a service with a transient lifetime.
12
29
 
@@ -17,8 +34,90 @@ class Container:
17
34
  concrete : Callable[..., Any]
18
35
  The concrete implementation to associate with the abstract type.
19
36
  """
37
+ # Ensure that abstract is an abstract class and concrete is a concrete class
38
+ try:
39
+ ReflectionAbstract.ensureIsAbstractClass(abstract)
40
+ ReflectionConcrete.ensureIsConcreteClass(concrete)
41
+ except Exception as e:
42
+ raise OrionisContainerTypeError(
43
+ f"Unexpected error registering transient service: {e}"
44
+ ) from e
45
+
46
+ # Ensure that concrete does NOT inherit from abstract
47
+ if issubclass(concrete, abstract):
48
+ raise OrionisContainerException(
49
+ "Cannot register a concrete class that is a subclass of the provided abstract class. "
50
+ "Please ensure that the concrete class does not inherit from the specified abstract class."
51
+ )
52
+
53
+ # Register the service with transient lifetime
54
+ self.bind(abstract, concrete, Lifetime.TRANSIENT)
55
+
56
+ # Return True to indicate successful registration
57
+ return True
58
+
59
+ def singleton(self, abstract: Callable[..., Any], concrete: Callable[..., Any]) -> bool:
60
+ """
61
+ Registers a service with a singleton lifetime.
62
+
63
+ Parameters
64
+ ----------
65
+ abstract : Callable[..., Any]
66
+ The abstract base type or alias to be bound.
67
+ concrete : Callable[..., Any]
68
+ The concrete implementation to associate with the abstract type.
69
+ """
70
+ # Ensure that abstract is an abstract class and concrete is a concrete class
71
+ try:
72
+ ReflectionAbstract.ensureIsAbstractClass(abstract)
73
+ ReflectionConcrete.ensureIsConcreteClass(concrete)
74
+ except Exception as e:
75
+ raise OrionisContainerTypeError(
76
+ f"Unexpected error registering singleton service: {e}"
77
+ ) from e
78
+
79
+ # Ensure that concrete does NOT inherit from abstract
80
+ if issubclass(concrete, abstract):
81
+ raise OrionisContainerException(
82
+ "Cannot register a concrete class that is a subclass of the provided abstract class. "
83
+ "Please ensure that the concrete class does not inherit from the specified abstract class."
84
+ )
85
+
86
+ # Register the service with singleton lifetime
87
+ self.bind(abstract, concrete, Lifetime.SINGLETON)
88
+
89
+ # Return True to indicate successful registration
90
+ return True
91
+
92
+ def scoped(self, abstract: Callable[..., Any], concrete: Callable[..., Any]) -> bool:
93
+ """
94
+ Registers a service with a scoped lifetime.
20
95
 
96
+ Parameters
97
+ ----------
98
+ abstract : Callable[..., Any]
99
+ The abstract base type or alias to be bound.
100
+ concrete : Callable[..., Any]
101
+ The concrete implementation to associate with the abstract type.
102
+ """
103
+ # Ensure that abstract is an abstract class and concrete is a concrete class
21
104
  try:
22
105
  ReflectionAbstract.ensureIsAbstractClass(abstract)
106
+ ReflectionConcrete.ensureIsConcreteClass(concrete)
23
107
  except Exception as e:
24
- raise OrionisContainerTypeError(f"Type error while registering service: {e}")
108
+ raise OrionisContainerTypeError(
109
+ f"Unexpected error registering scoped service: {e}"
110
+ ) from e
111
+
112
+ # Ensure that concrete does NOT inherit from abstract
113
+ if issubclass(concrete, abstract):
114
+ raise OrionisContainerException(
115
+ "Cannot register a concrete class that is a subclass of the provided abstract class. "
116
+ "Please ensure that the concrete class does not inherit from the specified abstract class."
117
+ )
118
+
119
+ # Register the service with scoped lifetime
120
+ self.bind(abstract, concrete, Lifetime.SCOPED)
121
+
122
+ # Return True to indicate successful registration
123
+ return True
@@ -1,17 +1,19 @@
1
1
  class OrionisContainerException(Exception):
2
- """
3
- Excepción personalizada para errores relacionados con el contenedor de inyección de dependencias Orionis.
4
- """
5
2
 
6
- def __init__(self, message: str) -> None:
3
+ def __init__(self, msg: str):
7
4
  """
8
- Inicializa la excepción con un mensaje de error.
9
-
10
- Args:
11
- message (str): Mensaje descriptivo del error.
5
+ Parameters
6
+ ----------
7
+ msg : str
8
+ Descriptive error message explaining the cause of the exception.
12
9
  """
13
- super().__init__(message)
10
+ super().__init__(msg)
14
11
 
15
12
  def __str__(self) -> str:
16
- """Retorna una representación en cadena de la excepción."""
17
- return f"[OrionisContainerException] {self.args[0]}"
13
+ """
14
+ Returns
15
+ -------
16
+ str
17
+ Formatted string describing the exception.
18
+ """
19
+ return str(self.args[0])
@@ -14,6 +14,6 @@ class OrionisContainerTypeError(TypeError):
14
14
  Returns
15
15
  -------
16
16
  str
17
- Formatted string describing the exception, including the exception name and error message.
17
+ Formatted string describing the exception.
18
18
  """
19
- return f"{self.__class__.__name__}: {self.args[0]}"
19
+ return str(self.args[0])
@@ -1,17 +1,19 @@
1
1
  class OrionisContainerValueError(ValueError):
2
- """
3
- Excepción personalizada para errores de tipo ValueError en el contenedor Orionis.
4
- """
5
2
 
6
- def __init__(self, message: str) -> None:
3
+ def __init__(self, msg: str):
7
4
  """
8
- Inicializa la excepción con un mensaje de error.
9
-
10
- Args:
11
- message (str): Mensaje descriptivo del error.
5
+ Parameters
6
+ ----------
7
+ msg : str
8
+ Descriptive error message explaining the cause of the exception.
12
9
  """
13
- super().__init__(message)
10
+ super().__init__(msg)
14
11
 
15
12
  def __str__(self) -> str:
16
- """Retorna una representación en cadena de la excepción."""
17
- return f"[OrionisContainerValueError] {self.args[0]}"
13
+ """
14
+ Returns
15
+ -------
16
+ str
17
+ Formatted string describing the exception.
18
+ """
19
+ return str(self.args[0])
@@ -5,7 +5,7 @@
5
5
  NAME = "orionis"
6
6
 
7
7
  # Current version of the framework
8
- VERSION = "0.311.0"
8
+ VERSION = "0.313.0"
9
9
 
10
10
  # Full name of the author or maintainer of the project
11
11
  AUTHOR = "Raul Mauricio Uñate Castro"
@@ -13,7 +13,24 @@ from orionis.services.introspection.exceptions.reflection_value_error import Ref
13
13
  class ReflectionAbstract(IReflectionAbstract):
14
14
 
15
15
  @staticmethod
16
- def ensureIsAbstractClass(abstract: Type):
16
+ def isAbstractClass(abstract: Type) -> bool:
17
+ """
18
+ Checks if the provided object is an abstract base class (interface).
19
+
20
+ Parameters
21
+ ----------
22
+ abstract : Type
23
+ The class to check.
24
+
25
+ Returns
26
+ -------
27
+ bool
28
+ True if 'abstract' is an abstract base class, False otherwise.
29
+ """
30
+ return isinstance(abstract, type) and bool(getattr(abstract, '__abstractmethods__', False)) and ABC in abstract.__bases__
31
+
32
+ @staticmethod
33
+ def ensureIsAbstractClass(abstract: Type) -> bool:
17
34
  """
18
35
  Ensures that the provided object is an abstract base class (interface) and directly inherits from ABC.
19
36
 
@@ -27,7 +44,6 @@ class ReflectionAbstract(IReflectionAbstract):
27
44
  ReflectionTypeError
28
45
  If 'abstract' is not a class type, not an abstract base class, or does not directly inherit from ABC.
29
46
  """
30
-
31
47
  if not isinstance(abstract, type):
32
48
  raise ReflectionTypeError(f"Expected a class type for 'abstract', got {type(abstract).__name__!r}")
33
49
  if not bool(getattr(abstract, '__abstractmethods__', False)):
@@ -14,14 +14,35 @@ from orionis.services.introspection.instances.reflection_instance import Reflect
14
14
 
15
15
  class ReflectionConcrete(IReflectionConcrete):
16
16
 
17
- def __init__(self, concrete: Type) -> None:
17
+ @staticmethod
18
+ def isConcreteClass(concrete: Type) -> bool:
18
19
  """
19
- Initialize the ReflectionConcrete with the provided class type.
20
+ Checks if the provided concrete type is a valid ReflectionConcrete type.
20
21
 
21
22
  Parameters
22
23
  ----------
23
24
  concrete : Type
24
- The class type to be reflected upon.
25
+ The class type to be validated.
26
+
27
+ Returns
28
+ -------
29
+ bool
30
+ True if the class is a valid ReflectionConcrete type, False otherwise.
31
+ """
32
+ try:
33
+ return ReflectionConcrete.ensureIsConcreteClass(concrete)
34
+ except (ReflectionTypeError, ReflectionValueError):
35
+ return False
36
+
37
+ @staticmethod
38
+ def ensureIsConcreteClass(concrete: Type) -> bool:
39
+ """
40
+ Ensures that the provided concrete type is a valid ReflectionConcrete type.
41
+
42
+ Parameters
43
+ ----------
44
+ concrete : Type
45
+ The class type to be validated.
25
46
 
26
47
  Raises
27
48
  ------
@@ -29,35 +50,57 @@ class ReflectionConcrete(IReflectionConcrete):
29
50
  If the provided argument is not a class type or is already an instance.
30
51
  ReflectionValueError
31
52
  If the provided class is a built-in/primitive type, abstract class, or interface.
32
-
33
- Notes
34
- -----
35
- - Built-in and primitive types (e.g., int, str, list) are not allowed.
36
- - Abstract classes and interfaces (classes with abstract methods) are not allowed.
37
53
  """
54
+ # Check if the concrete is a class type
38
55
  if not isinstance(concrete, type):
39
56
  raise ReflectionTypeError(f"Expected a class, got {type(concrete)}")
40
57
 
58
+ # Define a set of built-in and primitive types
41
59
  builtin_types = {
42
60
  int, float, str, bool, bytes, type(None), complex,
43
61
  list, tuple, dict, set, frozenset
44
62
  }
45
63
 
64
+ # Check if the concrete class is a built-in or primitive type
46
65
  if concrete in builtin_types:
47
66
  raise ReflectionValueError(f"Class '{concrete.__name__}' is a built-in or primitive type and cannot be used.")
48
67
 
49
- # Check for abstract classes (including interfaces)
50
- if hasattr(concrete, '__abstractmethods__') and len(concrete.__abstractmethods__) > 0:
51
- raise ReflectionValueError(f"Class '{concrete.__name__}' is abstract or an interface and cannot be used.")
52
-
53
68
  # Prevent instantiating if it's already an instance
54
69
  if not isinstance(concrete, type):
55
70
  raise ReflectionTypeError(f"Expected a class type, got instance of '{type(concrete).__name__}'.")
56
71
 
57
72
  # Optionally, check for ABCMeta to catch interfaces
58
- if isinstance(concrete, abc.ABCMeta) and getattr(concrete, '__abstractmethods__', False):
73
+ if abc.ABC in concrete.__bases__:
59
74
  raise ReflectionValueError(f"Class '{concrete.__name__}' is an interface and cannot be used.")
60
75
 
76
+ return True
77
+
78
+ def __init__(self, concrete: Type) -> None:
79
+ """
80
+ Initialize the ReflectionConcrete with the provided class type.
81
+
82
+ Parameters
83
+ ----------
84
+ concrete : Type
85
+ The class type to be reflected upon.
86
+
87
+ Raises
88
+ ------
89
+ ReflectionTypeError
90
+ If the provided argument is not a class type or is already an instance.
91
+ ReflectionValueError
92
+ If the provided class is a built-in/primitive type, abstract class, or interface.
93
+
94
+ Notes
95
+ -----
96
+ - Built-in and primitive types (e.g., int, str, list) are not allowed.
97
+ - Abstract classes and interfaces (classes with abstract methods) are not allowed.
98
+ """
99
+
100
+ # Ensure the provided concrete type is a valid ReflectionConcrete class
101
+ ReflectionConcrete.ensureIsConcreteClass(concrete)
102
+
103
+ # Set the concrete class in the instance
61
104
  self._concrete = concrete
62
105
  self.__instance = None
63
106
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: orionis
3
- Version: 0.311.0
3
+ Version: 0.313.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
@@ -135,11 +135,11 @@ orionis/console/output/console.py,sha256=TE_Hl720ADd82dbERFSWhkoQRukDQZmETSw4nkw
135
135
  orionis/console/output/executor.py,sha256=bdvkzW2-buy0BPpy2r5qUGrRFW2Ay6k-5rSeHb0gQ3o,3352
136
136
  orionis/console/output/progress_bar.py,sha256=vFy582z6VJS46LV6tuyrmr9qvdVeTEtw3hyNcEHezeg,3088
137
137
  orionis/console/output/styles.py,sha256=6a4oQCOBOKMh2ARdeq5GlIskJ3wjiylYmh66tUKKmpQ,4053
138
- orionis/container/container.py,sha256=eP2YEf2UdllDFbfPPB4ILcdVQBd5kgHyWZkdttfsp1s,928
138
+ orionis/container/container.py,sha256=3hqFY--3QFqrvI4M7WhA64qjjmKb4O58Sn6CEZIf0Oc,5331
139
139
  orionis/container/enums/lifetimes.py,sha256=RqQmugMIB1Ev_j_vFLcWorndm-to7xg4stQ7yKFDdDw,190
140
- orionis/container/exceptions/container_exception.py,sha256=cmoiDR2LvQ4AnxxZL-F3JdeI18ux7CzKmsCki98DAEk,585
141
- orionis/container/exceptions/type_error_exception.py,sha256=M7I64T5wBtHzLRyvrdP4dEzF2N3UzbOAnQmpyKy9aWo,547
142
- orionis/container/exceptions/value_exception.py,sha256=FSFsoG_piErEs-OOCtDrdDY02bPIOdNy4-rbJ8qPNHg,565
140
+ orionis/container/exceptions/container_exception.py,sha256=goTDEwC70xTMD2qppN8KV-xyR0Nps218OD4D1LZ2-3s,470
141
+ orionis/container/exceptions/type_error_exception.py,sha256=cYuvoXVOgRYj3tZPfK341aUERkf33-buOiI2eXxcrAw,470
142
+ orionis/container/exceptions/value_exception.py,sha256=hjY0YEusoL3DurME1ornxvIv1wyGaf6tBggLFlGHblo,472
143
143
  orionis/foundation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
144
144
  orionis/foundation/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
145
145
  orionis/foundation/config/startup.py,sha256=JKAH2ZRhlAZgkD2w11LR1-TVktfjSH9cHo3PsZXOLrg,8275
@@ -231,7 +231,7 @@ orionis/foundation/contracts/config.py,sha256=Rpz6U6t8OXHO9JJKSTnCimytXE-tfCB-1i
231
231
  orionis/foundation/exceptions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
232
232
  orionis/foundation/exceptions/integrity.py,sha256=mc4pL1UMoYRHEmphnpW2oGk5URhu7DJRREyzHaV-cs8,472
233
233
  orionis/metadata/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
234
- orionis/metadata/framework.py,sha256=2-mgLndqtv-5-2fDten35PL3JDhkLT2ezQwNXIxGo4I,4960
234
+ orionis/metadata/framework.py,sha256=4RVjxtYl_4p4lR7ykv4FV8Vzv54BgGrbes_DHokj2C8,4960
235
235
  orionis/metadata/package.py,sha256=tqLfBRo-w1j_GN4xvzUNFyweWYFS-qhSgAEc-AmCH1M,5452
236
236
  orionis/patterns/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
237
237
  orionis/patterns/singleton/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -256,9 +256,9 @@ orionis/services/environment/exceptions/environment_value_exception.py,sha256=Nn
256
256
  orionis/services/introspection/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
257
257
  orionis/services/introspection/reflection.py,sha256=AI5ZMv9kHCLOQe9lL_G7wAeY3cPLKZ1FMYqIhU0yS-M,2972
258
258
  orionis/services/introspection/abstract/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
259
- orionis/services/introspection/abstract/reflection_abstract.py,sha256=O8fK2a7X82VOK4Pt2Zv6Mt0wsxezLFTyb1JVu9ApCVc,43327
259
+ orionis/services/introspection/abstract/reflection_abstract.py,sha256=SPK2X11VvGORxxPOYloaD6hPAvky--obRU4CO1DE4zM,43865
260
260
  orionis/services/introspection/concretes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
261
- orionis/services/introspection/concretes/reflection_concrete.py,sha256=dhZHzMcGNXzxinWOf8gdeD1h2bUgqrLgw00qdAcor2U,49755
261
+ orionis/services/introspection/concretes/reflection_concrete.py,sha256=1GxD-y8LPGL6kI4Y3XbeLcFjR5Y8cOqbVEPCtPnsuYA,50982
262
262
  orionis/services/introspection/contracts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
263
263
  orionis/services/introspection/contracts/reflect_dependencies.py,sha256=5fdImZarC1ixoFM-1JSBx28RvYbY3GGZhDGjar7cvHc,1771
264
264
  orionis/services/introspection/contracts/reflection_abstract.py,sha256=-ugpFcAkGTlk0Md5ft8NrvupnlfVji8QZjGYqWBxqeY,22370
@@ -338,63 +338,63 @@ orionis/test/suite/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuF
338
338
  orionis/test/suite/test_unit.py,sha256=5UTdCYmD_Yz8asaBF54RHOx0kjwjLjEhkyPDoDIxk-k,57049
339
339
  orionis/test/view/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
340
340
  orionis/test/view/render.py,sha256=jXZkbITBknbUwm_mD8bcTiwLDvsFkrO9qrf0ZgPwqxc,4903
341
- orionis-0.311.0.dist-info/licenses/LICENCE,sha256=-_4cF2EBKuYVS_SQpy1uapq0oJPUU1vl_RUWSy2jJTo,1111
341
+ orionis-0.313.0.dist-info/licenses/LICENCE,sha256=-_4cF2EBKuYVS_SQpy1uapq0oJPUU1vl_RUWSy2jJTo,1111
342
342
  tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
343
343
  tests/example/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
344
344
  tests/example/test_example.py,sha256=kvWgiW3ADEZf718dGsMPtDh_rmOSx1ypEInKm7_6ZPQ,601
345
345
  tests/foundation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
346
346
  tests/foundation/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
347
347
  tests/foundation/config/app/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
348
- tests/foundation/config/app/test_foundation_config_app.py,sha256=Ox1maeA-raoVySOm6MIxJ5u6g-u2op88Z-mN5cEccMs,5565
348
+ tests/foundation/config/app/test_foundation_config_app.py,sha256=01xLICgVxEvOCp70tPK-kvLqXKwPWxHnPgJ3YtgjJ_Q,5558
349
349
  tests/foundation/config/auth/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
350
350
  tests/foundation/config/auth/test_foundation_config_auth.py,sha256=fCla7tvlCPcDMVBQmsuHs8vmFoW-zv5SQipE2Nnvchw,1026
351
351
  tests/foundation/config/cache/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
352
- tests/foundation/config/cache/test_foundation_config_cache.py,sha256=Skf2DYQBIzBZTBpIoQ4ZnaGzuobh1wGw78-rf2StUQA,4638
353
- tests/foundation/config/cache/test_foundation_config_cache_file.py,sha256=QdX1Ox2I8ESlpzfqjnbcboyk4QoYH_w4BKTTAAATrtA,3659
354
- tests/foundation/config/cache/test_foundation_config_cache_stores.py,sha256=xQK2uByPxivrim-68p4jzzFi8u-syvr6S3VHnUYWLKM,4569
352
+ tests/foundation/config/cache/test_foundation_config_cache.py,sha256=gwaMhw_wdW_FtZ7hm7lfxAf8SBY4tWhrYz2lPolI80k,4631
353
+ tests/foundation/config/cache/test_foundation_config_cache_file.py,sha256=xR4LxngE0x4yP-sUy3khwBNBnu9VxDYdWdCpLYB9RsU,3652
354
+ tests/foundation/config/cache/test_foundation_config_cache_stores.py,sha256=JQyy2sr4DeXDO9N_ENA8Q11hkKbJ9w4VeQVlfqEPbFI,4562
355
355
  tests/foundation/config/cors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
356
- tests/foundation/config/cors/test_foundation_config_cors.py,sha256=8_R6jhBzLPDbF4X74wYg0jODDSqPgz9QZpKLAZsZdqg,6706
356
+ tests/foundation/config/cors/test_foundation_config_cors.py,sha256=h9G7HVjwnnPfsgDOlX9SQ74t-sRb3IlsKeI_8ikX9zU,6699
357
357
  tests/foundation/config/database/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
358
- tests/foundation/config/database/test_foundation_config_database.py,sha256=fHBOwSUAPgGQRfXuNkO5Bzl3ELVoDHGeF10OSJI-pg8,4831
359
- tests/foundation/config/database/test_foundation_config_database_connections.py,sha256=YiMPTgfDN0Z1y9qv2o5ZQSSVi0uysC7c_LCnw4jnwWg,6962
360
- tests/foundation/config/database/test_foundation_config_database_mysql.py,sha256=GzW1MFtNVSFBEp4Ykgircy77WdTCIA3XrzAa4pku7jw,12417
361
- tests/foundation/config/database/test_foundation_config_database_oracle.py,sha256=-aS6b0p7sxEvHuAXKJhI_gpBEUb0iJBtp54pbLMdExQ,10398
362
- tests/foundation/config/database/test_foundation_config_database_pgsql.py,sha256=92QWIbP0Q63dJXLn9bu3ZRS1gG5sgX1SDMisfVTGkq0,8516
363
- tests/foundation/config/database/test_foundation_config_database_sqlite.py,sha256=G0fPV-Gxq2oRBqg96kitzP1mlAgU4ASLypqqQPTLGrY,7347
364
- tests/foundation/config/exceptions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
365
- tests/foundation/config/exceptions/test_foundation_config_exceptions.py,sha256=c5XI-r6Uem5V_8ggU5xHoYw3-7WIHGy9tJsPzfrmPio,4263
358
+ tests/foundation/config/database/test_foundation_config_database.py,sha256=8jnlqV_TSEQ7LWbkjaeGzjX0pYf1JezYE0oEV8mxRpE,4824
359
+ tests/foundation/config/database/test_foundation_config_database_connections.py,sha256=UTVqE4oiZe7PqREMJBg4imYAahhJL2eNxME8F-6jOgA,6955
360
+ tests/foundation/config/database/test_foundation_config_database_mysql.py,sha256=9NjR_SPb6cKHg204OMsaNNfKeLlnQsx4bXXbbuTrW4M,12410
361
+ tests/foundation/config/database/test_foundation_config_database_oracle.py,sha256=p8myr2pkRHT9CI0f9nWrXUFhD4mfWnP5dQJKV_O-gEo,10391
362
+ tests/foundation/config/database/test_foundation_config_database_pgsql.py,sha256=sk7HsYebi8rMoyAkkLz9CHLOHVSXYJx190yOvELQLNg,8509
363
+ tests/foundation/config/database/test_foundation_config_database_sqlite.py,sha256=yv5Ont0aaApye5y7X0oPpM_KO1qBsHoXUOzQpCYG5tA,7340
366
364
  tests/foundation/config/filesystems/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
367
- tests/foundation/config/filesystems/test_foundation_config_filesystems.py,sha256=8-nI1vHp8ihRedoL4dFtwYwgGaLmsM7v4FtzS-I8BoQ,5263
368
- tests/foundation/config/filesystems/test_foundation_config_filesystems_aws.py,sha256=_8LhJR-kEx6gOV-7dKvPiwzNiomP_5mTsEpQI2JCtCA,5882
369
- tests/foundation/config/filesystems/test_foundation_config_filesystems_disks.py,sha256=S_iTIODAOgdy9BTL3q7_6iLvxKP69J8dX5WJivTRMvc,6459
370
- tests/foundation/config/filesystems/test_foundation_config_filesystems_local.py,sha256=NuOUWdHA7L0zMwGsxmdAXBDJDWtHr2H1C_AYFHQZvN0,4281
371
- tests/foundation/config/filesystems/test_foundation_config_filesystems_public.py,sha256=GJlVOKzAmoiDAfh2QjwAUYOJD1iiBaU3UmK0se0ESLU,5885
365
+ tests/foundation/config/filesystems/test_foundation_config_filesystems.py,sha256=Dw5LjxJ9SIdDkO2vZKo_v5-hhtzfLLiw970q4DNdvt8,5256
366
+ tests/foundation/config/filesystems/test_foundation_config_filesystems_aws.py,sha256=sDjNTEt6pTMNpQ2zvTy-Sq4Gt0iqgIK85-_xv12h5HM,5875
367
+ tests/foundation/config/filesystems/test_foundation_config_filesystems_disks.py,sha256=eAzTB-2eAB9u88FIKUJrn_uJemAxtrDV9IdcUMJabfo,6452
368
+ tests/foundation/config/filesystems/test_foundation_config_filesystems_local.py,sha256=a1-ugIrIsct-kXgjoYeczO7FBApQ-qSjOD9qBgcH1WM,4274
369
+ tests/foundation/config/filesystems/test_foundation_config_filesystems_public.py,sha256=X_y71RfaQvs61Zv1e8XsnHtNkDcTd4yLdBJszHBWhus,5878
372
370
  tests/foundation/config/logging/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
373
- tests/foundation/config/logging/test_foundation_config_logging.py,sha256=KXNiUR19ALMuS2parSICNZ4BAw2sbswOzJdPrX8Deqw,3168
374
- tests/foundation/config/logging/test_foundation_config_logging_channels.py,sha256=1S438g7MlQs9_CgPoFvHOvIpFKPZXE5cZXpmEwZYLvA,8975
375
- tests/foundation/config/logging/test_foundation_config_logging_chunked.py,sha256=2oooHUObfp93WeHmtCyo8go8y_O8U_dMOzbtX8kIfqY,7823
376
- tests/foundation/config/logging/test_foundation_config_logging_daily.py,sha256=1SNqXhDzioYTDLp8M6Rc91MNnxLRgSoHLezt-FA-aw8,7101
377
- tests/foundation/config/logging/test_foundation_config_logging_hourly.py,sha256=cMgsq6Vfyw6JFOw5aD_arat5rXTf8-lT1qC9Q88tf6M,6814
378
- tests/foundation/config/logging/test_foundation_config_logging_monthly.py,sha256=AoD72XYU4QG2sDbSjju8_CGOYWxFvNKnED3dKivnSdg,6424
379
- tests/foundation/config/logging/test_foundation_config_logging_stack.py,sha256=IX90bMtTqqqjRbSbhKyuhrxEhUaCTbFwbv9TE5grX4U,5492
380
- tests/foundation/config/logging/test_foundation_config_logging_weekly.py,sha256=Gzq9iJ1HJsPijOtFMayh90JD-mlbde94b5skEF3tGEc,7620
371
+ tests/foundation/config/logging/test_foundation_config_logging.py,sha256=Z4VZqMLdBlr08KbRf8IEqzpZpO3T1oJG7l3PncfLbLM,3161
372
+ tests/foundation/config/logging/test_foundation_config_logging_channels.py,sha256=U7CKvPZt3TSqazq596ECmp7ChMywMNFHLGoH27z7YR8,8968
373
+ tests/foundation/config/logging/test_foundation_config_logging_chunked.py,sha256=MCTY72rq1_DSpvQOCmR33ORG6kRKhhCG2CxEFj9JLUU,7816
374
+ tests/foundation/config/logging/test_foundation_config_logging_daily.py,sha256=LyVPMjZEDIQ0JH-OhGxpbcliz5asAdIoycvzaDkZzqY,7094
375
+ tests/foundation/config/logging/test_foundation_config_logging_hourly.py,sha256=CVTzaE7xM9VS-JL_n-kmAQic4QoZ7fC_k0miuMzH_Sc,6807
376
+ tests/foundation/config/logging/test_foundation_config_logging_monthly.py,sha256=nMgIGnjSllVKSdXxae8RwfxhxYw_BWrQDw_ehBoQcKQ,6417
377
+ tests/foundation/config/logging/test_foundation_config_logging_stack.py,sha256=UBNKZm2edXuN0v2I4GhkafHfVgpqEQ2EBq4bMwQbKPM,5485
378
+ tests/foundation/config/logging/test_foundation_config_logging_weekly.py,sha256=nvc54uh5vNK4-c2Mqk_gOHj9v5gSye-ByUCoq2zpMKE,7613
381
379
  tests/foundation/config/mail/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
382
- tests/foundation/config/mail/test_foundation_config_mail.py,sha256=j4bLQ1GoAf49PG2yBMytPXBcZq8Q70Ncq48bi2PXZ6A,4194
383
- tests/foundation/config/mail/test_foundation_config_mail_file.py,sha256=XF0elaHm92p-nKZjlkyn9bFCL39Xkcg173U6mBoEhTc,3008
384
- tests/foundation/config/mail/test_foundation_config_mail_mailers.py,sha256=UwrBvrum8XKyZY2iCW80eGZu8uqXozTocMyOzbCFw5w,3412
385
- tests/foundation/config/mail/test_foundation_config_mail_smtp.py,sha256=ZLezMnDcNmQsryc20t_Fj-ARhh1jmTUax8zilRs7uDg,4868
380
+ tests/foundation/config/mail/test_foundation_config_mail.py,sha256=di9tcR_jcbWB3AnoX-LG7CV5jQxVOzkbqmBBxIUcscQ,4187
381
+ tests/foundation/config/mail/test_foundation_config_mail_file.py,sha256=AyWV83ZZ-KO-ZJvgbJJqTPqTqAgSZcaClfyBdAErawg,3001
382
+ tests/foundation/config/mail/test_foundation_config_mail_mailers.py,sha256=j2IrZyMHCh7qrxprXUubqnUyWUBktH0e6uNMXMH30x4,3405
383
+ tests/foundation/config/mail/test_foundation_config_mail_smtp.py,sha256=xZTA8WhxjQSZhc8dBidkMw4jZ-YVyK0UMdEBgrwBFd4,4861
386
384
  tests/foundation/config/queue/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
387
- tests/foundation/config/queue/test_foundation_config_queue.py,sha256=5TJ5HGL2BkV2-nEinrfnNl-0lOmduJuuXoyAcI7ZLB4,3456
388
- tests/foundation/config/queue/test_foundation_config_queue_brokers.py,sha256=-Goaw-ClfuctV7q_vQnG0lO4wdQ5r1zhFi5Hclp2Lcg,3036
389
- tests/foundation/config/queue/test_foundation_config_queue_database.py,sha256=XbKEOr0D8oGb54wY_a4WtYEseJ8XS92L2JrhFZ77OwM,4813
385
+ tests/foundation/config/queue/test_foundation_config_queue.py,sha256=QP2N9537rdL1r58pZlES0hr-ooV9Diy0CT6WceevfE8,3449
386
+ tests/foundation/config/queue/test_foundation_config_queue_brokers.py,sha256=IKRSZx0BCbKv_zYrXXLJWw9QFe_VuN8J-WvIbHlvCkw,3029
387
+ tests/foundation/config/queue/test_foundation_config_queue_database.py,sha256=vEyZ9Y3Q5-QtwqpfVnSqwSuUUOakqZQ2HR7OYL4pbqk,4806
390
388
  tests/foundation/config/root/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
391
- tests/foundation/config/root/test_foundation_config_root_paths.py,sha256=tukqa_PlUoeVLiQ_imTjXWuogbrjyDgPJmt5Q9WZHO8,7097
389
+ tests/foundation/config/root/test_foundation_config_root_paths.py,sha256=n2g0vj8YR-uiYxthNFAx3Nict6qnUnDnaWu4VkCzIrk,7090
392
390
  tests/foundation/config/session/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
393
- tests/foundation/config/session/test_foundation_config_session.py,sha256=oQTF22QW39jEqVtO7L83fCu-bClRN79crUoUTNa6-mE,6385
391
+ tests/foundation/config/session/test_foundation_config_session.py,sha256=rha4p_-2Qljold0VniEEFhyeh-SZcfvbFqluCbWm4ME,6378
394
392
  tests/foundation/config/startup/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
395
- tests/foundation/config/startup/test_foundation_config_startup.py,sha256=xD5wuPAFsQMAuRACgK_O5wowPLZY-uftXNgxtFjnP7o,6776
393
+ tests/foundation/config/startup/test_foundation_config_startup.py,sha256=yKlXr1ICUfFw9arg4kE0yWVuZyoN1s-3fQMJtx6nXlg,6769
396
394
  tests/foundation/config/testing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
397
- tests/foundation/config/testing/test_foundation_config_testing.py,sha256=AuR-h2974Hkdpo4iCkYOJyr8kydmDGN6G2wbVOYcqGM,8216
395
+ tests/foundation/config/testing/test_foundation_config_testing.py,sha256=hQFHvkxtSFGb_CvH_D1Zxd_vS0Af46NrxY2NNHLN58Q,8209
396
+ tests/foundation/exceptions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
397
+ tests/foundation/exceptions/test_foundation_config_exceptions.py,sha256=ESxCIIting2ZEDDz0xfN83Gl7KAOrjmfHM6M8mkuG8M,4079
398
398
  tests/metadata/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
399
399
  tests/metadata/test_metadata_framework.py,sha256=V-GXnReHepHLGFvY9hQTYWrzVGgC-P7SinKHCmElXDA,3266
400
400
  tests/metadata/test_metadata_package.py,sha256=mLn3G6IlT1lENlONrOLUkmt1j4DD2BymDcGZ7D7t5mw,2822
@@ -437,8 +437,8 @@ tests/support/wrapper/test_services_wrapper_docdict.py,sha256=yeVwl-VcwkWSQYyxZu
437
437
  tests/testing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
438
438
  tests/testing/test_testing_result.py,sha256=MrGK3ZimedL0b5Ydu69Dg8Iul017AzLTm7VPxpXlpfU,4315
439
439
  tests/testing/test_testing_unit.py,sha256=A6QkiOkP7GPC1Szh_GqsrV7GxjWjK8cIwFez6YfrzmM,7683
440
- orionis-0.311.0.dist-info/METADATA,sha256=jTRdx-g_PiHtFRyNVO6mtfnlhBH6XnwXninZMKmxv4I,4772
441
- orionis-0.311.0.dist-info/WHEEL,sha256=Nw36Djuh_5VDukK0H78QzOX-_FQEo6V37m3nkm96gtU,91
442
- orionis-0.311.0.dist-info/top_level.txt,sha256=2bdoHgyGZhOtLAXS6Om8OCTmL24dUMC_L1quMe_ETbk,14
443
- orionis-0.311.0.dist-info/zip-safe,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
444
- orionis-0.311.0.dist-info/RECORD,,
440
+ orionis-0.313.0.dist-info/METADATA,sha256=CbEMrV-XG3fZ9FB_7ZXl1Mw1xhwQcNeGfcWZ_buHyjI,4772
441
+ orionis-0.313.0.dist-info/WHEEL,sha256=Nw36Djuh_5VDukK0H78QzOX-_FQEo6V37m3nkm96gtU,91
442
+ orionis-0.313.0.dist-info/top_level.txt,sha256=2bdoHgyGZhOtLAXS6Om8OCTmL24dUMC_L1quMe_ETbk,14
443
+ orionis-0.313.0.dist-info/zip-safe,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
444
+ orionis-0.313.0.dist-info/RECORD,,
@@ -1,7 +1,7 @@
1
1
  from orionis.foundation.config.app.entities.app import App
2
2
  from orionis.foundation.config.app.enums.ciphers import Cipher
3
3
  from orionis.foundation.config.app.enums.environments import Environments
4
- from orionis.foundation.config.exceptions.integrity import OrionisIntegrityException
4
+ from orionis.foundation.exceptions.integrity import OrionisIntegrityException
5
5
  from orionis.unittesting import TestCase
6
6
 
7
7
  class TestFoundationConfigApp(TestCase):
@@ -1,7 +1,7 @@
1
1
  from orionis.unittesting import TestCase
2
2
  from orionis.foundation.config.cache.entities.cache import Cache
3
3
  from orionis.foundation.config.cache.enums.drivers import Drivers
4
- from orionis.foundation.config.exceptions.integrity import OrionisIntegrityException
4
+ from orionis.foundation.exceptions.integrity import OrionisIntegrityException
5
5
  from orionis.foundation.config.cache.entities.stores import Stores
6
6
 
7
7
  class TestFoundationConfigCache(TestCase):
@@ -1,5 +1,5 @@
1
1
  from orionis.foundation.config.cache.entities.file import File
2
- from orionis.foundation.config.exceptions.integrity import OrionisIntegrityException
2
+ from orionis.foundation.exceptions.integrity import OrionisIntegrityException
3
3
  from orionis.unittesting import TestCase
4
4
 
5
5
  class TestFoundationConfigCacheFile(TestCase):
@@ -1,6 +1,6 @@
1
1
  from orionis.foundation.config.cache.entities.stores import Stores
2
2
  from orionis.foundation.config.cache.entities.file import File
3
- from orionis.foundation.config.exceptions.integrity import OrionisIntegrityException
3
+ from orionis.foundation.exceptions.integrity import OrionisIntegrityException
4
4
  from orionis.unittesting import TestCase
5
5
 
6
6
  class TestFoundationConfigCacheStores(TestCase):
@@ -1,5 +1,5 @@
1
1
  from orionis.foundation.config.cors.entities.cors import Cors
2
- from orionis.foundation.config.exceptions.integrity import OrionisIntegrityException
2
+ from orionis.foundation.exceptions.integrity import OrionisIntegrityException
3
3
  from orionis.unittesting import TestCase
4
4
 
5
5
  class TestFoundationConfigCors(TestCase):
@@ -1,6 +1,6 @@
1
1
  from orionis.foundation.config.database.entities.database import Database
2
2
  from orionis.foundation.config.database.entities.connections import Connections
3
- from orionis.foundation.config.exceptions.integrity import OrionisIntegrityException
3
+ from orionis.foundation.exceptions.integrity import OrionisIntegrityException
4
4
  from orionis.unittesting import TestCase
5
5
 
6
6
  class TestFoundationConfigDatabase(TestCase):
@@ -3,7 +3,7 @@ from orionis.foundation.config.database.entities.mysql import MySQL
3
3
  from orionis.foundation.config.database.entities.oracle import Oracle
4
4
  from orionis.foundation.config.database.entities.pgsql import PGSQL
5
5
  from orionis.foundation.config.database.entities.sqlite import SQLite
6
- from orionis.foundation.config.exceptions.integrity import OrionisIntegrityException
6
+ from orionis.foundation.exceptions.integrity import OrionisIntegrityException
7
7
  from orionis.unittesting import TestCase
8
8
 
9
9
  class TestFoundationConfigDatabaseConnections(TestCase):
@@ -2,7 +2,7 @@ from orionis.foundation.config.database.entities.mysql import MySQL
2
2
  from orionis.foundation.config.database.enums.mysql_charsets import MySQLCharset
3
3
  from orionis.foundation.config.database.enums.mysql_collations import MySQLCollation
4
4
  from orionis.foundation.config.database.enums.mysql_engine import MySQLEngine
5
- from orionis.foundation.config.exceptions.integrity import OrionisIntegrityException
5
+ from orionis.foundation.exceptions.integrity import OrionisIntegrityException
6
6
  from orionis.unittesting import TestCase
7
7
 
8
8
  class TestFoundationConfigDatabaseMysql(TestCase):
@@ -1,7 +1,7 @@
1
1
  from orionis.foundation.config.database.entities.oracle import Oracle
2
2
  from orionis.foundation.config.database.enums.oracle_encoding import OracleEncoding
3
3
  from orionis.foundation.config.database.enums.oracle_nencoding import OracleNencoding
4
- from orionis.foundation.config.exceptions.integrity import OrionisIntegrityException
4
+ from orionis.foundation.exceptions.integrity import OrionisIntegrityException
5
5
  from orionis.unittesting import TestCase
6
6
 
7
7
  class TestFoundationConfigDatabaseOracle(TestCase):
@@ -1,7 +1,7 @@
1
1
  from orionis.foundation.config.database.entities.pgsql import PGSQL
2
2
  from orionis.foundation.config.database.enums.pgsql_charsets import PGSQLCharset
3
3
  from orionis.foundation.config.database.enums.pgsql_mode import PGSQLSSLMode
4
- from orionis.foundation.config.exceptions.integrity import OrionisIntegrityException
4
+ from orionis.foundation.exceptions.integrity import OrionisIntegrityException
5
5
  from orionis.unittesting import TestCase
6
6
 
7
7
  class TestFoundationConfigDatabasePgsql(TestCase):
@@ -2,7 +2,7 @@ from orionis.foundation.config.database.entities.sqlite import SQLite
2
2
  from orionis.foundation.config.database.enums.sqlite_foreign_key import SQLiteForeignKey
3
3
  from orionis.foundation.config.database.enums.sqlite_journal import SQLiteJournalMode
4
4
  from orionis.foundation.config.database.enums.sqlite_synchronous import SQLiteSynchronous
5
- from orionis.foundation.config.exceptions.integrity import OrionisIntegrityException
5
+ from orionis.foundation.exceptions.integrity import OrionisIntegrityException
6
6
  from orionis.unittesting import TestCase
7
7
 
8
8
  class TestFoundationConfigDatabaseSqlite(TestCase):
@@ -1,6 +1,6 @@
1
1
  from orionis.foundation.config.filesystems.entitites.disks import Disks
2
2
  from orionis.foundation.config.filesystems.entitites.filesystems import Filesystems
3
- from orionis.foundation.config.exceptions.integrity import OrionisIntegrityException
3
+ from orionis.foundation.exceptions.integrity import OrionisIntegrityException
4
4
  from orionis.unittesting import TestCase
5
5
 
6
6
  class TestFoundationConfigFilesystems(TestCase):
@@ -1,4 +1,4 @@
1
- from orionis.foundation.config.exceptions.integrity import OrionisIntegrityException
1
+ from orionis.foundation.exceptions.integrity import OrionisIntegrityException
2
2
  from orionis.foundation.config.filesystems.entitites.aws import S3
3
3
  from orionis.unittesting import TestCase
4
4
 
@@ -2,7 +2,7 @@ from orionis.foundation.config.filesystems.entitites.aws import S3
2
2
  from orionis.foundation.config.filesystems.entitites.disks import Disks
3
3
  from orionis.foundation.config.filesystems.entitites.local import Local
4
4
  from orionis.foundation.config.filesystems.entitites.public import Public
5
- from orionis.foundation.config.exceptions.integrity import OrionisIntegrityException
5
+ from orionis.foundation.exceptions.integrity import OrionisIntegrityException
6
6
  from orionis.unittesting import TestCase
7
7
 
8
8
  class TestFoundationConfigFilesystemsDisks(TestCase):
@@ -1,5 +1,5 @@
1
1
  from orionis.foundation.config.filesystems.entitites.local import Local
2
- from orionis.foundation.config.exceptions.integrity import OrionisIntegrityException
2
+ from orionis.foundation.exceptions.integrity import OrionisIntegrityException
3
3
  from orionis.unittesting import TestCase
4
4
 
5
5
  class TestFoundationConfigFilesystemsLocal(TestCase):
@@ -1,4 +1,4 @@
1
- from orionis.foundation.config.exceptions.integrity import OrionisIntegrityException
1
+ from orionis.foundation.exceptions.integrity import OrionisIntegrityException
2
2
  from orionis.foundation.config.filesystems.entitites.public import Public
3
3
  from orionis.unittesting import TestCase
4
4
 
@@ -1,6 +1,6 @@
1
1
  from orionis.foundation.config.logging.entities.logging import Logging
2
2
  from orionis.foundation.config.logging.entities.channels import Channels
3
- from orionis.foundation.config.exceptions.integrity import OrionisIntegrityException
3
+ from orionis.foundation.exceptions.integrity import OrionisIntegrityException
4
4
  from orionis.unittesting import TestCase
5
5
 
6
6
  class TestFoundationConfigLogging(TestCase):
@@ -5,7 +5,7 @@ from orionis.foundation.config.logging.entities.daily import Daily
5
5
  from orionis.foundation.config.logging.entities.weekly import Weekly
6
6
  from orionis.foundation.config.logging.entities.monthly import Monthly
7
7
  from orionis.foundation.config.logging.entities.chunked import Chunked
8
- from orionis.foundation.config.exceptions.integrity import OrionisIntegrityException
8
+ from orionis.foundation.exceptions.integrity import OrionisIntegrityException
9
9
  from orionis.unittesting import TestCase
10
10
 
11
11
  class TestFoundationConfigLoggingChannels(TestCase):
@@ -1,6 +1,6 @@
1
1
  from orionis.foundation.config.logging.entities.chunked import Chunked
2
2
  from orionis.foundation.config.logging.enums.levels import Level
3
- from orionis.foundation.config.exceptions.integrity import OrionisIntegrityException
3
+ from orionis.foundation.exceptions.integrity import OrionisIntegrityException
4
4
  from orionis.unittesting import TestCase
5
5
 
6
6
  class TestFoundationConfigLoggingChunked(TestCase):
@@ -1,7 +1,7 @@
1
1
  from datetime import time
2
2
  from orionis.foundation.config.logging.entities.daily import Daily
3
3
  from orionis.foundation.config.logging.enums.levels import Level
4
- from orionis.foundation.config.exceptions.integrity import OrionisIntegrityException
4
+ from orionis.foundation.exceptions.integrity import OrionisIntegrityException
5
5
  from orionis.unittesting import TestCase
6
6
 
7
7
  class TestFoundationConfigLoggingDaily(TestCase):
@@ -1,6 +1,6 @@
1
1
  from orionis.foundation.config.logging.entities.hourly import Hourly
2
2
  from orionis.foundation.config.logging.enums.levels import Level
3
- from orionis.foundation.config.exceptions.integrity import OrionisIntegrityException
3
+ from orionis.foundation.exceptions.integrity import OrionisIntegrityException
4
4
  from orionis.unittesting import TestCase
5
5
 
6
6
  class TestFoundationConfigLoggingHourly(TestCase):
@@ -1,6 +1,6 @@
1
1
  from orionis.foundation.config.logging.entities.monthly import Monthly
2
2
  from orionis.foundation.config.logging.enums.levels import Level
3
- from orionis.foundation.config.exceptions.integrity import OrionisIntegrityException
3
+ from orionis.foundation.exceptions.integrity import OrionisIntegrityException
4
4
  from orionis.unittesting import TestCase
5
5
 
6
6
  class TestFoundationConfigLoggingMonthly(TestCase):
@@ -1,6 +1,6 @@
1
1
  from orionis.foundation.config.logging.entities.stack import Stack
2
2
  from orionis.foundation.config.logging.enums.levels import Level
3
- from orionis.foundation.config.exceptions.integrity import OrionisIntegrityException
3
+ from orionis.foundation.exceptions.integrity import OrionisIntegrityException
4
4
  from orionis.unittesting import TestCase
5
5
 
6
6
  class TestFoundationConfigLoggingStack(TestCase):
@@ -1,6 +1,6 @@
1
1
  from orionis.foundation.config.logging.entities.weekly import Weekly
2
2
  from orionis.foundation.config.logging.enums.levels import Level
3
- from orionis.foundation.config.exceptions.integrity import OrionisIntegrityException
3
+ from orionis.foundation.exceptions.integrity import OrionisIntegrityException
4
4
  from orionis.unittesting import TestCase
5
5
 
6
6
  class TestFoundationConfigLoggingWeekly(TestCase):
@@ -1,6 +1,6 @@
1
1
  from orionis.foundation.config.mail.entities.mail import Mail
2
2
  from orionis.foundation.config.mail.entities.mailers import Mailers
3
- from orionis.foundation.config.exceptions.integrity import OrionisIntegrityException
3
+ from orionis.foundation.exceptions.integrity import OrionisIntegrityException
4
4
  from orionis.unittesting import TestCase
5
5
 
6
6
  class TestFoundationConfigMail(TestCase):
@@ -1,5 +1,5 @@
1
1
  from orionis.foundation.config.mail.entities.file import File
2
- from orionis.foundation.config.exceptions.integrity import OrionisIntegrityException
2
+ from orionis.foundation.exceptions.integrity import OrionisIntegrityException
3
3
  from orionis.unittesting import TestCase
4
4
 
5
5
  class TestFoundationConfigMailFile(TestCase):
@@ -1,7 +1,7 @@
1
1
  from orionis.foundation.config.mail.entities.mailers import Mailers
2
2
  from orionis.foundation.config.mail.entities.smtp import Smtp
3
3
  from orionis.foundation.config.mail.entities.file import File
4
- from orionis.foundation.config.exceptions.integrity import OrionisIntegrityException
4
+ from orionis.foundation.exceptions.integrity import OrionisIntegrityException
5
5
  from orionis.unittesting import TestCase
6
6
 
7
7
  class TestFoundationConfigMailMailers(TestCase):
@@ -1,5 +1,5 @@
1
1
  from orionis.foundation.config.mail.entities.smtp import Smtp
2
- from orionis.foundation.config.exceptions.integrity import OrionisIntegrityException
2
+ from orionis.foundation.exceptions.integrity import OrionisIntegrityException
3
3
  from orionis.unittesting import TestCase
4
4
 
5
5
  class TestFoundationConfigMailSmtp(TestCase):
@@ -1,6 +1,6 @@
1
1
  from orionis.foundation.config.queue.entities.queue import Queue
2
2
  from orionis.foundation.config.queue.entities.brokers import Brokers
3
- from orionis.foundation.config.exceptions.integrity import OrionisIntegrityException
3
+ from orionis.foundation.exceptions.integrity import OrionisIntegrityException
4
4
  from orionis.unittesting import TestCase
5
5
 
6
6
  class TestFoundationConfigQueue(TestCase):
@@ -1,6 +1,6 @@
1
1
  from orionis.foundation.config.queue.entities.brokers import Brokers
2
2
  from orionis.foundation.config.queue.entities.database import Database
3
- from orionis.foundation.config.exceptions.integrity import OrionisIntegrityException
3
+ from orionis.foundation.exceptions.integrity import OrionisIntegrityException
4
4
  from orionis.unittesting import TestCase
5
5
 
6
6
  class TestFoundationConfigQueueBrokers(TestCase):
@@ -1,6 +1,6 @@
1
1
  from orionis.foundation.config.queue.entities.database import Database
2
2
  from orionis.foundation.config.queue.enums.strategy import Strategy
3
- from orionis.foundation.config.exceptions.integrity import OrionisIntegrityException
3
+ from orionis.foundation.exceptions.integrity import OrionisIntegrityException
4
4
  from orionis.unittesting import TestCase
5
5
 
6
6
  class TestFoundationConfigQueueDatabase(TestCase):
@@ -1,5 +1,5 @@
1
1
  from pathlib import Path
2
- from orionis.foundation.config.exceptions.integrity import OrionisIntegrityException
2
+ from orionis.foundation.exceptions.integrity import OrionisIntegrityException
3
3
  from orionis.foundation.config.roots.paths import Paths
4
4
  from orionis.unittesting import TestCase
5
5
 
@@ -1,6 +1,6 @@
1
1
  from orionis.foundation.config.session.entities.session import Session
2
2
  from orionis.foundation.config.session.enums.same_site_policy import SameSitePolicy
3
- from orionis.foundation.config.exceptions.integrity import OrionisIntegrityException
3
+ from orionis.foundation.exceptions.integrity import OrionisIntegrityException
4
4
  from orionis.unittesting import TestCase
5
5
 
6
6
  class TestFoundationConfigSession(TestCase):
@@ -1,5 +1,5 @@
1
1
  from dataclasses import is_dataclass
2
- from orionis.foundation.config.exceptions.integrity import OrionisIntegrityException
2
+ from orionis.foundation.exceptions.integrity import OrionisIntegrityException
3
3
  from orionis.foundation.config.startup import Configuration
4
4
  from orionis.unittesting import TestCase, Mock
5
5
 
@@ -1,5 +1,5 @@
1
1
  from orionis.foundation.config.testing.entities.testing import Testing
2
- from orionis.foundation.config.exceptions.integrity import OrionisIntegrityException
2
+ from orionis.foundation.exceptions.integrity import OrionisIntegrityException
3
3
  from orionis.test.enums.test_mode import ExecutionMode
4
4
  from orionis.unittesting import TestCase
5
5
 
@@ -1,4 +1,4 @@
1
- from orionis.foundation.config.exceptions.integrity import OrionisIntegrityException
1
+ from orionis.foundation.exceptions.integrity import OrionisIntegrityException
2
2
  from orionis.unittesting import TestCase
3
3
 
4
4
  class TestFoundationConfigExceptions(TestCase):
@@ -22,7 +22,7 @@ class TestFoundationConfigExceptions(TestCase):
22
22
  """
23
23
  test_msg = "Test integrity violation message"
24
24
  exception = OrionisIntegrityException(test_msg)
25
- self.assertEqual(str(exception), f"OrionisIntegrityException: {test_msg}")
25
+ self.assertEqual(str(exception), test_msg)
26
26
  self.assertEqual(exception.args[0], test_msg)
27
27
 
28
28
  async def testExceptionInheritance(self):
@@ -48,7 +48,7 @@ class TestFoundationConfigExceptions(TestCase):
48
48
  """
49
49
  test_msg = "Configuration validation failed"
50
50
  exception = OrionisIntegrityException(test_msg)
51
- self.assertEqual(str(exception), f"OrionisIntegrityException: {test_msg}")
51
+ self.assertEqual(str(exception), test_msg)
52
52
 
53
53
  async def testExceptionWithEmptyMessage(self):
54
54
  """
@@ -59,7 +59,7 @@ class TestFoundationConfigExceptions(TestCase):
59
59
  - The exception handles empty messages correctly.
60
60
  """
61
61
  exception = OrionisIntegrityException("")
62
- self.assertEqual(str(exception), "OrionisIntegrityException: ")
62
+ self.assertEqual(str(exception), "")
63
63
 
64
64
  async def testExceptionWithNonStringMessage(self):
65
65
  """
@@ -76,11 +76,11 @@ class TestFoundationConfigExceptions(TestCase):
76
76
  """
77
77
  # Test with integer
78
78
  exception = OrionisIntegrityException(123)
79
- self.assertEqual(str(exception), "OrionisIntegrityException: 123")
79
+ self.assertEqual(str(exception), "123")
80
80
 
81
81
  # Test with list
82
82
  exception = OrionisIntegrityException(["error1", "error2"])
83
- self.assertEqual(str(exception), "OrionisIntegrityException: ['error1', 'error2']")
83
+ self.assertEqual(str(exception), "['error1', 'error2']")
84
84
 
85
85
  async def testExceptionRaiseAndCatch(self):
86
86
  """
@@ -94,7 +94,7 @@ class TestFoundationConfigExceptions(TestCase):
94
94
  try:
95
95
  raise OrionisIntegrityException(test_msg)
96
96
  except OrionisIntegrityException as e:
97
- self.assertEqual(str(e), f"OrionisIntegrityException: {test_msg}")
97
+ self.assertEqual(str(e), test_msg)
98
98
  except Exception:
99
99
  self.fail("OrionisIntegrityException should be caught by its specific handler")
100
100