datavalue 0.1.9__py3-none-any.whl → 0.1.10__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.
- datavalue/classes/primitive_data.py +20 -2
- {datavalue-0.1.9.dist-info → datavalue-0.1.10.dist-info}/METADATA +1 -1
- datavalue-0.1.10.dist-info/RECORD +9 -0
- datavalue-0.1.9.dist-info/RECORD +0 -9
- {datavalue-0.1.9.dist-info → datavalue-0.1.10.dist-info}/WHEEL +0 -0
- {datavalue-0.1.9.dist-info → datavalue-0.1.10.dist-info}/top_level.txt +0 -0
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import re
|
|
3
3
|
from typing import Type, Optional, Any, Iterable, Union
|
|
4
4
|
from .. import exceptions
|
|
5
|
+
from .complex_data import ComplexData
|
|
5
6
|
import json
|
|
6
7
|
|
|
7
8
|
# Classes definition
|
|
@@ -29,6 +30,21 @@ class PrimitiveData:
|
|
|
29
30
|
self.validate()
|
|
30
31
|
|
|
31
32
|
# Private methods
|
|
33
|
+
def _is_match(self, element: Any, schema: Any) -> bool:
|
|
34
|
+
if isinstance(schema, (PrimitiveData, ComplexData)):
|
|
35
|
+
try:
|
|
36
|
+
# Si el validador hijo no lanza excepción, el match es exitoso
|
|
37
|
+
return schema.validate(element)
|
|
38
|
+
except (exceptions.DataValueException, ValueError, TypeError):
|
|
39
|
+
return False
|
|
40
|
+
|
|
41
|
+
# 2. Caso: El esquema es un tipo de dato (clase como str, int)
|
|
42
|
+
if isinstance(schema, type):
|
|
43
|
+
return isinstance(element, schema)
|
|
44
|
+
|
|
45
|
+
# 3. Caso: El esquema es un valor literal
|
|
46
|
+
return element == schema
|
|
47
|
+
|
|
32
48
|
def __get_length(self, data: Optional[Any] = None) -> Optional[int]:
|
|
33
49
|
if data is None:
|
|
34
50
|
data_objective = self.value
|
|
@@ -150,10 +166,12 @@ class PrimitiveData:
|
|
|
150
166
|
raise exceptions.PossibleValueException(
|
|
151
167
|
f"The boolean value has to be True or False: {data_objective} != True/False"
|
|
152
168
|
)
|
|
169
|
+
|
|
153
170
|
if self.possible_values is not None:
|
|
154
|
-
|
|
171
|
+
# Implementación de any() con _is_match para soportar la composición de tipos
|
|
172
|
+
if not any(self._is_match(data_objective, validator) for validator in self.possible_values):
|
|
155
173
|
raise exceptions.PossibleValueException(
|
|
156
|
-
f"
|
|
174
|
+
f"Value '{data_objective}' is not allowed by any of the provided validators."
|
|
157
175
|
)
|
|
158
176
|
|
|
159
177
|
# Validacion de expresion regular
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
datavalue/__init__.py,sha256=-JBKpLEehjnezX3sTbpnB2px3izjHxZ_IEL_40iRHMM,112
|
|
2
|
+
datavalue/classes/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
3
|
+
datavalue/classes/complex_data.py,sha256=fYBl-whK1MUivzoDI0aCXD1yfRPIMK-Pu9jlxQTtxiQ,10951
|
|
4
|
+
datavalue/classes/primitive_data.py,sha256=J2HXHNG6ZyKGrrX4P-MWjzhK9_8SFOh7a8Yrp7cPGts,8103
|
|
5
|
+
datavalue/exceptions/__init__.py,sha256=T9X1N0kAv6RNTuTNQR7aTAxxvF25ihMsrtZGD-QZrBI,361
|
|
6
|
+
datavalue-0.1.10.dist-info/METADATA,sha256=9vFokPOq2w53wOFvcK6WJ34ATOvusBXwAtFcs1utX8E,1598
|
|
7
|
+
datavalue-0.1.10.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
8
|
+
datavalue-0.1.10.dist-info/top_level.txt,sha256=tVZ_--yYzvlZ2XTCkdORn4KKL7BwXPZUOVpL6PBJaRY,10
|
|
9
|
+
datavalue-0.1.10.dist-info/RECORD,,
|
datavalue-0.1.9.dist-info/RECORD
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
datavalue/__init__.py,sha256=-JBKpLEehjnezX3sTbpnB2px3izjHxZ_IEL_40iRHMM,112
|
|
2
|
-
datavalue/classes/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
3
|
-
datavalue/classes/complex_data.py,sha256=fYBl-whK1MUivzoDI0aCXD1yfRPIMK-Pu9jlxQTtxiQ,10951
|
|
4
|
-
datavalue/classes/primitive_data.py,sha256=YBr0i2FRonCwK4XQsNmoWtcIjd4VxQErTmzXVIIq_qg,7304
|
|
5
|
-
datavalue/exceptions/__init__.py,sha256=T9X1N0kAv6RNTuTNQR7aTAxxvF25ihMsrtZGD-QZrBI,361
|
|
6
|
-
datavalue-0.1.9.dist-info/METADATA,sha256=Qf_VhSYaW5JD2MA1IAeQB6XiEqp3I_vQwMB7nFc5Lao,1597
|
|
7
|
-
datavalue-0.1.9.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
8
|
-
datavalue-0.1.9.dist-info/top_level.txt,sha256=tVZ_--yYzvlZ2XTCkdORn4KKL7BwXPZUOVpL6PBJaRY,10
|
|
9
|
-
datavalue-0.1.9.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|