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.
@@ -1,4 +1,4 @@
1
- __version__ = '0.5.0'
1
+ __version__ = '0.6.1'
2
2
 
3
3
  from .decorators import process, validation
4
4
  from .models import EnumerationValueObject, ValueObject
@@ -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,7 @@
1
+ from .none_value_object import NoneValueObject
2
+ from .not_none_value_object import NotNoneValueObject
3
+
4
+ __all__ = (
5
+ 'NoneValueObject',
6
+ 'NotNoneValueObject',
7
+ )
@@ -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.5.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=-eQ-LpAiKLoF5jLg7DGL_FL-k-ZO3Jlp7XBdn616kCI,220
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=LsHh5uSECizrDXPogZC3zRMzcBIBPyiWXpqSrG2qHrg,1483
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=j4AatSdlRIUyQlwZuKMtGhtzgTI4F3lQXw1cC38--2w,1304
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.5.0.dist-info/METADATA,sha256=0BdI5ht5bc2zuT_53nZAyC565OA99ZP5ccRUnR7Izm4,4018
69
- value_object_pattern-0.5.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
70
- value_object_pattern-0.5.0.dist-info/licenses/LICENSE.md,sha256=6E0wpVdiB-k3oJ9cvVG9BPZ07yIevD3IuOECHKveFkM,1076
71
- value_object_pattern-0.5.0.dist-info/RECORD,,
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,,