value-object-pattern 0.5.0__py3-none-any.whl → 0.6.1__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.
- value_object_pattern/__init__.py +1 -1
- value_object_pattern/usables/__init__.py +4 -0
- value_object_pattern/usables/primitives/__init__.py +3 -0
- value_object_pattern/usables/primitives/none/__init__.py +7 -0
- value_object_pattern/usables/primitives/none/none_value_object.py +50 -0
- value_object_pattern/usables/primitives/none/not_none_value_object.py +50 -0
- {value_object_pattern-0.5.0.dist-info → value_object_pattern-0.6.1.dist-info}/METADATA +1 -1
- {value_object_pattern-0.5.0.dist-info → value_object_pattern-0.6.1.dist-info}/RECORD +10 -7
- {value_object_pattern-0.5.0.dist-info → value_object_pattern-0.6.1.dist-info}/WHEEL +0 -0
- {value_object_pattern-0.5.0.dist-info → value_object_pattern-0.6.1.dist-info}/licenses/LICENSE.md +0 -0
value_object_pattern/__init__.py
CHANGED
@@ -11,7 +11,9 @@ from .primitives import (
|
|
11
11
|
LowercaseStringValueObject,
|
12
12
|
NegativeFloatValueObject,
|
13
13
|
NegativeIntegerValueObject,
|
14
|
+
NoneValueObject,
|
14
15
|
NotEmptyStringValueObject,
|
16
|
+
NotNoneValueObject,
|
15
17
|
OddIntegerValueObject,
|
16
18
|
PositiveFloatValueObject,
|
17
19
|
PositiveIntegerValueObject,
|
@@ -37,8 +39,10 @@ __all__ = (
|
|
37
39
|
'LowercaseStringValueObject',
|
38
40
|
'NegativeFloatValueObject',
|
39
41
|
'NegativeIntegerValueObject',
|
42
|
+
'NoneValueObject',
|
40
43
|
'NotEmptyStringValueObject',
|
41
44
|
'NotEmptyStringValueObject',
|
45
|
+
'NotNoneValueObject',
|
42
46
|
'OddIntegerValueObject',
|
43
47
|
'PositiveFloatValueObject',
|
44
48
|
'PositiveIntegerValueObject',
|
@@ -8,6 +8,7 @@ from .integer import (
|
|
8
8
|
OddIntegerValueObject,
|
9
9
|
PositiveIntegerValueObject,
|
10
10
|
)
|
11
|
+
from .none import NoneValueObject, NotNoneValueObject
|
11
12
|
from .string import (
|
12
13
|
AlphaStringValueObject,
|
13
14
|
AlphanumericStringValueObject,
|
@@ -33,7 +34,9 @@ __all__ = (
|
|
33
34
|
'LowercaseStringValueObject',
|
34
35
|
'NegativeFloatValueObject',
|
35
36
|
'NegativeIntegerValueObject',
|
37
|
+
'NoneValueObject',
|
36
38
|
'NotEmptyStringValueObject',
|
39
|
+
'NotNoneValueObject',
|
37
40
|
'OddIntegerValueObject',
|
38
41
|
'PositiveFloatValueObject',
|
39
42
|
'PositiveIntegerValueObject',
|
@@ -0,0 +1,50 @@
|
|
1
|
+
"""
|
2
|
+
NoneValueObject value object.
|
3
|
+
"""
|
4
|
+
|
5
|
+
from typing import Any, NoReturn
|
6
|
+
|
7
|
+
from value_object_pattern.decorators import validation
|
8
|
+
from value_object_pattern.models import ValueObject
|
9
|
+
|
10
|
+
|
11
|
+
class NoneValueObject(ValueObject[None]):
|
12
|
+
"""
|
13
|
+
NoneValueObject value object ensures the provided value is None.
|
14
|
+
|
15
|
+
Example:
|
16
|
+
```python
|
17
|
+
from value_object_pattern.usables import NoneValueObject
|
18
|
+
|
19
|
+
none = NoneValueObject(value=None)
|
20
|
+
|
21
|
+
print(repr(none))
|
22
|
+
# >>> NoneValueObject(value=None)
|
23
|
+
```
|
24
|
+
"""
|
25
|
+
|
26
|
+
@validation(order=0)
|
27
|
+
def _ensure_value_is_none(self, value: None) -> None:
|
28
|
+
"""
|
29
|
+
Ensures the value object `value` is None.
|
30
|
+
|
31
|
+
Args:
|
32
|
+
value (None): The provided value.
|
33
|
+
|
34
|
+
Raises:
|
35
|
+
TypeError: If the `value` is not None.
|
36
|
+
"""
|
37
|
+
if value is not None:
|
38
|
+
self._raise_value_is_not_none(value=value)
|
39
|
+
|
40
|
+
def _raise_value_is_not_none(self, value: Any) -> NoReturn:
|
41
|
+
"""
|
42
|
+
Raises a TypeError if the value object `value` is not None.
|
43
|
+
|
44
|
+
Args:
|
45
|
+
value (Any): The provided value.
|
46
|
+
|
47
|
+
Raises:
|
48
|
+
TypeError: If the `value` is not None.
|
49
|
+
"""
|
50
|
+
raise TypeError(f'NoneValueObject value <<<{value}>>> must be None. Got <<<{type(value).__name__}>>> type.') # noqa: E501 # fmt: skip
|
@@ -0,0 +1,50 @@
|
|
1
|
+
"""
|
2
|
+
NotNoneValueObject value object.
|
3
|
+
"""
|
4
|
+
|
5
|
+
from typing import Any, NoReturn
|
6
|
+
|
7
|
+
from value_object_pattern.decorators import validation
|
8
|
+
from value_object_pattern.models import ValueObject
|
9
|
+
|
10
|
+
|
11
|
+
class NotNoneValueObject(ValueObject[Any]):
|
12
|
+
"""
|
13
|
+
NotNoneValueObject value object ensures the provided value is not None.
|
14
|
+
|
15
|
+
Example:
|
16
|
+
```python
|
17
|
+
from value_object_pattern.usables import NotNoneValueObject
|
18
|
+
|
19
|
+
none = NotNoneValueObject(value='test')
|
20
|
+
|
21
|
+
print(repr(none))
|
22
|
+
# >>> NotNoneValueObject(value=test)
|
23
|
+
```
|
24
|
+
"""
|
25
|
+
|
26
|
+
@validation(order=0)
|
27
|
+
def _ensure_value_is_not_none(self, value: Any) -> None:
|
28
|
+
"""
|
29
|
+
Ensures the value object `value` is not None.
|
30
|
+
|
31
|
+
Args:
|
32
|
+
value (Any): The provided value.
|
33
|
+
|
34
|
+
Raises:
|
35
|
+
TypeError: If the `value` is None.
|
36
|
+
"""
|
37
|
+
if value is None:
|
38
|
+
self._raise_value_is_not_none(value=value)
|
39
|
+
|
40
|
+
def _raise_value_is_not_none(self, value: Any) -> NoReturn:
|
41
|
+
"""
|
42
|
+
Raises a TypeError if the value object `value` is None.
|
43
|
+
|
44
|
+
Args:
|
45
|
+
value (Any): The provided value.
|
46
|
+
|
47
|
+
Raises:
|
48
|
+
TypeError: If the `value` is None.
|
49
|
+
"""
|
50
|
+
raise TypeError(f'NotNoneValueObject value <<<{value}>>> must be not None.')
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: value-object-pattern
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.6.1
|
4
4
|
Summary: The Value Object Pattern is a Python package that streamlines the creation and management of value objects in your projects.
|
5
5
|
Project-URL: Homepage, https://github.com/adriamontoto/value-object-pattern
|
6
6
|
Project-URL: Repository, https://github.com/adriamontoto/value-object-pattern
|
@@ -1,4 +1,4 @@
|
|
1
|
-
value_object_pattern/__init__.py,sha256
|
1
|
+
value_object_pattern/__init__.py,sha256=Bp3AFvKPZftaFpFvFlNy9HsSuLiKjbTi8AfM2-b5lFs,220
|
2
2
|
value_object_pattern/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
3
3
|
value_object_pattern/decorators/__init__.py,sha256=Ze0c0z3x5sdmV-KB7nljPsybpoTXAgjJDGfR8FCIxUQ,138
|
4
4
|
value_object_pattern/decorators/value_object_process.py,sha256=Q_0w26XolcfZOE6avveA5OGs1yIMNAVC_AxsBV8F5D0,2621
|
@@ -6,7 +6,7 @@ value_object_pattern/decorators/value_object_validation.py,sha256=ENAQuOLalc-dDz
|
|
6
6
|
value_object_pattern/models/__init__.py,sha256=1BsXKFnX_0EufuHurfgdpbMUvnrjF8HLz46saTcmNr4,163
|
7
7
|
value_object_pattern/models/enumeration_value_object.py,sha256=6ih7GlohDcA3Lknk6SaIsve2Udaco8iHTPkRCrhvYJo,4886
|
8
8
|
value_object_pattern/models/value_object.py,sha256=-xXCk_qwCj_VBIzNJfUflM4vD7M0bicJdlprFYh2_Uw,13627
|
9
|
-
value_object_pattern/usables/__init__.py,sha256
|
9
|
+
value_object_pattern/usables/__init__.py,sha256=-VuuKrTyD8X0ImNexe3S6zcrf24o17_p1ghdb9bEyqs,1577
|
10
10
|
value_object_pattern/usables/dates/__init__.py,sha256=fGcL0u-dpxruMAWP-As1-ZUr-982SK1vb3sjnYyJh5g,382
|
11
11
|
value_object_pattern/usables/dates/date/__init__.py,sha256=rSifr41n8gmqW80e0Ygzoj221dpVsZy7m4TecC_VJus,174
|
12
12
|
value_object_pattern/usables/dates/date/date_value_object.py,sha256=f2JuxEJlZaMRMPq53qtDnFLxNC-uJLZJwt31_lVetqo,5054
|
@@ -38,7 +38,7 @@ value_object_pattern/usables/internet/uri/http_https_url_value_object.py,sha256=
|
|
38
38
|
value_object_pattern/usables/internet/uri/http_url_value_object.py,sha256=nU1IjKRmYAV2JWe-Fvji_PGti5qM540OWHf_qtDLiGw,1033
|
39
39
|
value_object_pattern/usables/internet/uri/https_url_value_object.py,sha256=SpbIvKHn2kgXVSsxpa7dk5FEr7RwDsgjpSGqPfxl7rU,1048
|
40
40
|
value_object_pattern/usables/internet/uri/url_value_object.py,sha256=03jHtGBCPjqhbGkSXtb8qoIv5QUF3ze-cC27-kEIWqA,12419
|
41
|
-
value_object_pattern/usables/primitives/__init__.py,sha256=
|
41
|
+
value_object_pattern/usables/primitives/__init__.py,sha256=qA0M7r8cFRbe-eX756KYmHKp8OAaGVBqdDVAQeWYKzo,1407
|
42
42
|
value_object_pattern/usables/primitives/boolean/__init__.py,sha256=WhOVH2JAoQnhevx9pW1OsJh-nUF9qKpB4ZGybfSI0U4,237
|
43
43
|
value_object_pattern/usables/primitives/boolean/boolean_value_object.py,sha256=CV8UWwQwxcMXOPfuWouePA2ce17_t0S6YxE3gH8mVj8,1380
|
44
44
|
value_object_pattern/usables/primitives/boolean/false_value_object.py,sha256=bQRyyjYrjcAXTlStiJSC2aKpTUFWG3foASOfkMk3Kwo,1264
|
@@ -55,6 +55,9 @@ value_object_pattern/usables/primitives/integer/integer_value_object.py,sha256=J
|
|
55
55
|
value_object_pattern/usables/primitives/integer/negative_integer_value_object.py,sha256=2dYhMs421Oxmt73Hmd8wa2_Er9fNTlGdiuLtf3JasNM,1410
|
56
56
|
value_object_pattern/usables/primitives/integer/odd_integer_value_object.py,sha256=fiFJlPJf4aG9CDfyUpxkGqsBPMQuRQuKA7bAZUDz8Fo,1345
|
57
57
|
value_object_pattern/usables/primitives/integer/positive_integer_value_object.py,sha256=PDaGwCnGWnARbrYfCIHcLFKJAqSQ90A_8q-6HG91L0I,1432
|
58
|
+
value_object_pattern/usables/primitives/none/__init__.py,sha256=2dTbYS2HgP5AO6ps3HzzYmpM2zteLl0wzrmtpA0mxcw,165
|
59
|
+
value_object_pattern/usables/primitives/none/none_value_object.py,sha256=Wjg8rojYjoYL30fZVGzFA1E68fuDA0n5v-rCUFWDXqQ,1308
|
60
|
+
value_object_pattern/usables/primitives/none/not_none_value_object.py,sha256=8DC8ezGrm9K1aPbhXzjsbb90dzYoOA3mkqvYYorlzSQ,1262
|
58
61
|
value_object_pattern/usables/primitives/string/__init__.py,sha256=exdLDLKtfF4QNl5XdA916JqJd-5whAVDQfQcrRrDTzc,879
|
59
62
|
value_object_pattern/usables/primitives/string/alpha_value_object.py,sha256=-wB24ZG3LlZjKmlVZt3tfkTeDeFqdlV9cGmYpVkYgKc,1383
|
60
63
|
value_object_pattern/usables/primitives/string/alphanumeric_value_object.py,sha256=rXDAgezOC57hPcIcZWmsleIuWPh5XNvjjr7vi02kwUw,1503
|
@@ -65,7 +68,7 @@ value_object_pattern/usables/primitives/string/printable_string_value_object.py,
|
|
65
68
|
value_object_pattern/usables/primitives/string/string_value_object.py,sha256=6u98oMzz5qsVNEWna-UpziDmzFhaLFW7J5NBoJnbKWk,1370
|
66
69
|
value_object_pattern/usables/primitives/string/trimmed_string_value_object.py,sha256=WMp4IBA74cEli-N_9Q7qU_oMszHtk5tgCr6o2y99HMs,1435
|
67
70
|
value_object_pattern/usables/primitives/string/uppercase_string_value_object.py,sha256=yZajkdq09zb56_UHs4nc0sIeTV4K74ek26JcoHYhM64,1457
|
68
|
-
value_object_pattern-0.
|
69
|
-
value_object_pattern-0.
|
70
|
-
value_object_pattern-0.
|
71
|
-
value_object_pattern-0.
|
71
|
+
value_object_pattern-0.6.1.dist-info/METADATA,sha256=uv6h4WL2OfJLCw9QwC1aJv4jXds6UAA1hDEEfHYADF0,4018
|
72
|
+
value_object_pattern-0.6.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
73
|
+
value_object_pattern-0.6.1.dist-info/licenses/LICENSE.md,sha256=6E0wpVdiB-k3oJ9cvVG9BPZ07yIevD3IuOECHKveFkM,1076
|
74
|
+
value_object_pattern-0.6.1.dist-info/RECORD,,
|
File without changes
|
{value_object_pattern-0.5.0.dist-info → value_object_pattern-0.6.1.dist-info}/licenses/LICENSE.md
RENAMED
File without changes
|