value-object-pattern 0.7.2__tar.gz → 0.7.3__tar.gz
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-0.7.2 → value_object_pattern-0.7.3}/PKG-INFO +1 -1
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/__init__.py +1 -1
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/models/enumeration_value_object.py +52 -12
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/.gitignore +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/LICENSE.md +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/README.md +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/pyproject.toml +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/decorators/__init__.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/decorators/value_object_process.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/decorators/value_object_validation.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/models/__init__.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/models/base_model.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/models/value_object.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/py.typed +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/__init__.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/dates/__init__.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/dates/date/__init__.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/dates/date/date_value_object.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/dates/date/string_date_value_object.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/dates/datetime/__init__.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/dates/datetime/datetime_value_object.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/dates/datetime/string_datetime_value_object.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/dates/timezone/__init__.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/dates/timezone/string_timezone_value_object.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/dates/timezone/timezone_value_object.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/identifiers/__init__.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/identifiers/countries/__init__.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/identifiers/countries/spain/__init__.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/identifiers/countries/spain/dni_value_object.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/identifiers/string_uuid_value_object.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/identifiers/uuid_value_object.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/internet/__init__.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/internet/aws_cloud_region_value_object.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/internet/domain_value_object.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/internet/host_value_object.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/internet/ipv4_address_value_object.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/internet/ipv4_network_value_object.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/internet/ipv6_address_value_object.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/internet/ipv6_network_value_object.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/internet/mac_address_value_object.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/internet/port_value_object.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/internet/uri/__init__.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/internet/uri/http_https_url_value_object.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/internet/uri/http_url_value_object.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/internet/uri/https_url_value_object.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/internet/uri/url_value_object.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/primitives/__init__.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/primitives/boolean/__init__.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/primitives/boolean/boolean_value_object.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/primitives/boolean/false_value_object.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/primitives/boolean/true_value_object.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/primitives/bytes/__init__.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/primitives/bytes/bytes_value_object.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/primitives/float/__init__.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/primitives/float/float_value_object.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/primitives/float/negative_float_value_object.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/primitives/float/positive_float_value_object.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/primitives/integer/__init__.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/primitives/integer/even_integer_value_object.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/primitives/integer/integer_value_object.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/primitives/integer/negative_integer_value_object.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/primitives/integer/odd_integer_value_object.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/primitives/integer/positive_integer_value_object.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/primitives/none/__init__.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/primitives/none/none_value_object.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/primitives/none/not_none_value_object.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/primitives/string/__init__.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/primitives/string/alpha_value_object.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/primitives/string/alphanumeric_value_object.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/primitives/string/digit_value_object.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/primitives/string/lowercase_string_value_object.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/primitives/string/non_empty_string_value_object.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/primitives/string/printable_string_value_object.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/primitives/string/string_value_object.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/primitives/string/trimmed_string_value_object.py +0 -0
- {value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/primitives/string/uppercase_string_value_object.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: value-object-pattern
|
|
3
|
-
Version: 0.7.
|
|
3
|
+
Version: 0.7.3
|
|
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
|
|
@@ -19,7 +19,7 @@ from value_object_pattern.models.value_object import ValueObject
|
|
|
19
19
|
E = TypeVar('E', bound=Enum)
|
|
20
20
|
|
|
21
21
|
|
|
22
|
-
class EnumerationValueObject(ValueObject[
|
|
22
|
+
class EnumerationValueObject(ValueObject[Any | E], Generic[E]): # noqa: UP046
|
|
23
23
|
"""
|
|
24
24
|
EnumerationValueObject is a value object that ensures the provided value is from an enumeration.
|
|
25
25
|
|
|
@@ -109,31 +109,71 @@ class EnumerationValueObject(ValueObject[str | E], Generic[E]): # noqa: UP046
|
|
|
109
109
|
# >>> ColorValueObject(value=ColorEnumeration.RED)
|
|
110
110
|
```
|
|
111
111
|
"""
|
|
112
|
-
return f'{self.__class__.__name__}(value={self.value
|
|
112
|
+
return f'{self.__class__.__name__}(value={self.value!r})'
|
|
113
|
+
|
|
114
|
+
@override
|
|
115
|
+
def __str__(self) -> str:
|
|
116
|
+
"""
|
|
117
|
+
Returns a simple string representation of the value object.
|
|
118
|
+
|
|
119
|
+
Returns:
|
|
120
|
+
str: The string representation of the value object value.
|
|
121
|
+
|
|
122
|
+
Example:
|
|
123
|
+
```python
|
|
124
|
+
from enum import Enum, unique
|
|
125
|
+
|
|
126
|
+
from value_object_pattern import EnumerationValueObject
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
@unique
|
|
130
|
+
class ColorEnumeration(Enum):
|
|
131
|
+
RED = 1
|
|
132
|
+
GREEN = 2
|
|
133
|
+
BLUE = 3
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
class ColorValueObject(EnumerationValueObject[ColorEnumeration]):
|
|
137
|
+
pass
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
red = ColorValueObject(value=ColorEnumeration.RED)
|
|
141
|
+
print(str(red))
|
|
142
|
+
# >>> 1
|
|
143
|
+
```
|
|
144
|
+
"""
|
|
145
|
+
return str(object=self._value.value)
|
|
113
146
|
|
|
114
147
|
@process(order=0)
|
|
115
|
-
def _ensure_value_is_stored_as_enumeration(self, value:
|
|
148
|
+
def _ensure_value_is_stored_as_enumeration(self, value: Any | E) -> E:
|
|
116
149
|
"""
|
|
117
150
|
Ensures the value object `value` is stored as an enumeration.
|
|
118
151
|
|
|
119
152
|
Args:
|
|
120
|
-
value (
|
|
153
|
+
value (Any | E): The provided value. It can be the name of the member or the member itself.
|
|
154
|
+
|
|
155
|
+
Raises:
|
|
156
|
+
TypeError: If the `value` is not from the enumeration.
|
|
121
157
|
|
|
122
158
|
Returns:
|
|
123
159
|
E: The processed value.
|
|
124
160
|
"""
|
|
125
|
-
if
|
|
126
|
-
return
|
|
161
|
+
if isinstance(value, self._enumeration):
|
|
162
|
+
return value
|
|
163
|
+
|
|
164
|
+
for member in self._enumeration:
|
|
165
|
+
if member.value == value:
|
|
166
|
+
return member
|
|
127
167
|
|
|
128
|
-
|
|
168
|
+
raise TypeError(f'EnumerationValueObject value <<<{value}>>> must be from the enumeration <<<{self._title}>>>.')
|
|
129
169
|
|
|
130
170
|
@validation(order=0)
|
|
131
|
-
def _ensure_value_is_from_enumeration(self, value:
|
|
171
|
+
def _ensure_value_is_from_enumeration(self, value: Any | E) -> None:
|
|
132
172
|
"""
|
|
133
173
|
Ensures the value object `value` is from the enumeration.
|
|
134
174
|
|
|
135
175
|
Args:
|
|
136
|
-
value (
|
|
176
|
+
value (Any | E): The provided value. It can be the name of the member or the member itself.
|
|
137
177
|
|
|
138
178
|
Raises:
|
|
139
179
|
TypeError: If the `value` is not from the enumeration.
|
|
@@ -141,10 +181,10 @@ class EnumerationValueObject(ValueObject[str | E], Generic[E]): # noqa: UP046
|
|
|
141
181
|
if isinstance(value, self._enumeration):
|
|
142
182
|
return
|
|
143
183
|
|
|
144
|
-
if
|
|
184
|
+
if any(value == member.value for member in self._enumeration):
|
|
145
185
|
return
|
|
146
186
|
|
|
147
|
-
raise TypeError(f'EnumerationValueObject value <<<{value}>>> must be from the enumeration <<<{self._title}>>>.')
|
|
187
|
+
raise TypeError(f'EnumerationValueObject value <<<{value}>>> must be from the enumeration <<<{self._title}>>>.')
|
|
148
188
|
|
|
149
189
|
@override
|
|
150
190
|
@property
|
|
@@ -169,4 +209,4 @@ class EnumerationValueObject(ValueObject[str | E], Generic[E]): # noqa: UP046
|
|
|
169
209
|
# >>> 10
|
|
170
210
|
```
|
|
171
211
|
"""
|
|
172
|
-
return self._value
|
|
212
|
+
return self._value
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/models/__init__.py
RENAMED
|
File without changes
|
{value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/models/base_model.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{value_object_pattern-0.7.2 → value_object_pattern-0.7.3}/value_object_pattern/usables/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|