cuenca-validations 2.0.0.dev11__tar.gz → 2.0.0.dev13__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.
- {cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/PKG-INFO +11 -2
- {cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/cuenca_validations/types/__init__.py +0 -2
- {cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/cuenca_validations/types/general.py +0 -3
- {cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/cuenca_validations/types/queries.py +3 -1
- {cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/cuenca_validations/validators.py +3 -0
- cuenca_validations-2.0.0.dev13/cuenca_validations/version.py +1 -0
- {cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/cuenca_validations.egg-info/PKG-INFO +11 -2
- {cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/tests/test_types.py +5 -22
- cuenca_validations-2.0.0.dev11/cuenca_validations/version.py +0 -1
- {cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/LICENSE +0 -0
- {cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/README.md +0 -0
- {cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/cuenca_validations/__init__.py +0 -0
- {cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/cuenca_validations/card_bins.py +0 -0
- {cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/cuenca_validations/errors.py +0 -0
- {cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/cuenca_validations/py.typed +0 -0
- {cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/cuenca_validations/types/card.py +0 -0
- {cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/cuenca_validations/types/enums.py +0 -0
- {cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/cuenca_validations/types/files.py +0 -0
- {cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/cuenca_validations/types/identities.py +0 -0
- {cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/cuenca_validations/types/morals.py +0 -0
- {cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/cuenca_validations/types/requests.py +0 -0
- {cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/cuenca_validations/typing.py +0 -0
- {cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/cuenca_validations.egg-info/SOURCES.txt +0 -0
- {cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/cuenca_validations.egg-info/dependency_links.txt +0 -0
- {cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/cuenca_validations.egg-info/requires.txt +0 -0
- {cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/cuenca_validations.egg-info/top_level.txt +0 -0
- {cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/setup.cfg +0 -0
- {cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/setup.py +0 -0
- {cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/tests/__init__.py +0 -0
- {cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/tests/test_card.py +0 -0
- {cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/tests/test_errors.py +0 -0
- {cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/tests/test_statement.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
2
|
Name: cuenca_validations
|
|
3
|
-
Version: 2.0.0.
|
|
3
|
+
Version: 2.0.0.dev13
|
|
4
4
|
Summary: Cuenca common validations
|
|
5
5
|
Home-page: https://github.com/cuenca-mx/cuenca-validations
|
|
6
6
|
Author: Cuenca
|
|
@@ -20,6 +20,15 @@ Requires-Dist: clabe>=2.0.0
|
|
|
20
20
|
Requires-Dist: pydantic[email]>=2.10.0
|
|
21
21
|
Requires-Dist: pydantic-extra-types>=2.10.0
|
|
22
22
|
Requires-Dist: python-dateutil>=2.9.0
|
|
23
|
+
Dynamic: author
|
|
24
|
+
Dynamic: author-email
|
|
25
|
+
Dynamic: classifier
|
|
26
|
+
Dynamic: description
|
|
27
|
+
Dynamic: description-content-type
|
|
28
|
+
Dynamic: home-page
|
|
29
|
+
Dynamic: requires-dist
|
|
30
|
+
Dynamic: requires-python
|
|
31
|
+
Dynamic: summary
|
|
23
32
|
|
|
24
33
|
# Cuenca - validations
|
|
25
34
|
|
|
@@ -71,7 +71,6 @@ __all__ = [
|
|
|
71
71
|
'StatementQuery',
|
|
72
72
|
'StrictPaymentCardNumber',
|
|
73
73
|
'StrictPositiveInt',
|
|
74
|
-
'StrictPositiveFloat',
|
|
75
74
|
'StrictTransferRequest',
|
|
76
75
|
'TermsOfService',
|
|
77
76
|
'TOSAgreement',
|
|
@@ -158,7 +157,6 @@ from .general import (
|
|
|
158
157
|
HttpUrlString,
|
|
159
158
|
JSONEncoder,
|
|
160
159
|
SantizedDict,
|
|
161
|
-
StrictPositiveFloat,
|
|
162
160
|
StrictPositiveInt,
|
|
163
161
|
get_state_name,
|
|
164
162
|
)
|
|
@@ -31,7 +31,9 @@ MAX_PAGE_SIZE = 100
|
|
|
31
31
|
|
|
32
32
|
class QueryParams(BaseModel):
|
|
33
33
|
count: bool = False
|
|
34
|
-
page_size:
|
|
34
|
+
page_size: Annotated[
|
|
35
|
+
int, Field(gt=0, le=MAX_PAGE_SIZE, default=MAX_PAGE_SIZE)
|
|
36
|
+
]
|
|
35
37
|
limit: Optional[PositiveInt] = None
|
|
36
38
|
user_id: Optional[str] = None
|
|
37
39
|
created_before: Optional[dt.datetime] = None
|
{cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/cuenca_validations/validators.py
RENAMED
|
@@ -4,6 +4,7 @@ from enum import Enum
|
|
|
4
4
|
from typing import Any, Callable, Optional, Union
|
|
5
5
|
|
|
6
6
|
from dateutil.relativedelta import relativedelta
|
|
7
|
+
from pydantic import SecretStr
|
|
7
8
|
|
|
8
9
|
|
|
9
10
|
def sanitize_dict(d: dict) -> dict:
|
|
@@ -35,6 +36,8 @@ def sanitize_item(
|
|
|
35
36
|
rv = base64.b64encode(item).decode('utf-8')
|
|
36
37
|
elif isinstance(item, Enum):
|
|
37
38
|
rv = item.value
|
|
39
|
+
elif isinstance(item, SecretStr):
|
|
40
|
+
rv = item.get_secret_value()
|
|
38
41
|
elif hasattr(item, 'to_dict'):
|
|
39
42
|
rv = item.to_dict()
|
|
40
43
|
elif default:
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = '2.0.0.dev13'
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
2
|
Name: cuenca_validations
|
|
3
|
-
Version: 2.0.0.
|
|
3
|
+
Version: 2.0.0.dev13
|
|
4
4
|
Summary: Cuenca common validations
|
|
5
5
|
Home-page: https://github.com/cuenca-mx/cuenca-validations
|
|
6
6
|
Author: Cuenca
|
|
@@ -20,6 +20,15 @@ Requires-Dist: clabe>=2.0.0
|
|
|
20
20
|
Requires-Dist: pydantic[email]>=2.10.0
|
|
21
21
|
Requires-Dist: pydantic-extra-types>=2.10.0
|
|
22
22
|
Requires-Dist: python-dateutil>=2.9.0
|
|
23
|
+
Dynamic: author
|
|
24
|
+
Dynamic: author-email
|
|
25
|
+
Dynamic: classifier
|
|
26
|
+
Dynamic: description
|
|
27
|
+
Dynamic: description-content-type
|
|
28
|
+
Dynamic: home-page
|
|
29
|
+
Dynamic: requires-dist
|
|
30
|
+
Dynamic: requires-python
|
|
31
|
+
Dynamic: summary
|
|
23
32
|
|
|
24
33
|
# Cuenca - validations
|
|
25
34
|
|
|
@@ -5,7 +5,7 @@ from enum import Enum
|
|
|
5
5
|
|
|
6
6
|
import pytest
|
|
7
7
|
from freezegun import freeze_time
|
|
8
|
-
from pydantic import BaseModel, ValidationError
|
|
8
|
+
from pydantic import BaseModel, SecretStr, ValidationError
|
|
9
9
|
|
|
10
10
|
from cuenca_validations.types import (
|
|
11
11
|
Address,
|
|
@@ -25,10 +25,7 @@ from cuenca_validations.types.enums import (
|
|
|
25
25
|
SessionType,
|
|
26
26
|
State,
|
|
27
27
|
)
|
|
28
|
-
from cuenca_validations.types.general import
|
|
29
|
-
StrictPositiveFloat,
|
|
30
|
-
StrictPositiveInt,
|
|
31
|
-
)
|
|
28
|
+
from cuenca_validations.types.general import StrictPositiveInt
|
|
32
29
|
from cuenca_validations.types.requests import (
|
|
33
30
|
ApiKeyUpdateRequest,
|
|
34
31
|
BankAccountValidationRequest,
|
|
@@ -80,7 +77,7 @@ def test_dict_with_exclude():
|
|
|
80
77
|
|
|
81
78
|
|
|
82
79
|
def test_dict_with_exclude_unset():
|
|
83
|
-
model = QueryParams(count=1, created_before=now
|
|
80
|
+
model = QueryParams(count=1, created_before=now)
|
|
84
81
|
assert model.model_dump(exclude_unset=False) == dict(
|
|
85
82
|
count=1, created_before=utcnow.isoformat(), page_size=100
|
|
86
83
|
)
|
|
@@ -92,11 +89,13 @@ def test_sanitized_dict():
|
|
|
92
89
|
time=now,
|
|
93
90
|
hello='there',
|
|
94
91
|
dates=[now],
|
|
92
|
+
secret=SecretStr('secret'),
|
|
95
93
|
) == dict(
|
|
96
94
|
status='succeeded',
|
|
97
95
|
time=utcnow.isoformat(),
|
|
98
96
|
hello='there',
|
|
99
97
|
dates=[utcnow.isoformat()],
|
|
98
|
+
secret='secret',
|
|
100
99
|
)
|
|
101
100
|
|
|
102
101
|
|
|
@@ -580,22 +579,6 @@ def test_user_lists_request():
|
|
|
580
579
|
UserListsRequest()
|
|
581
580
|
|
|
582
581
|
|
|
583
|
-
class TestFloatModel(BaseModel):
|
|
584
|
-
value: StrictPositiveFloat
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
@pytest.mark.parametrize("value", [10.5, 0.000001])
|
|
588
|
-
def test_strict_positive_float_valid(value):
|
|
589
|
-
model = TestFloatModel(value=value)
|
|
590
|
-
assert model.value == value
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
@pytest.mark.parametrize("value", [0.0, -1.5])
|
|
594
|
-
def test_strict_positive_float_invalid(value):
|
|
595
|
-
with pytest.raises(ValueError, match="Input should be greater than 0"):
|
|
596
|
-
TestFloatModel(value=value)
|
|
597
|
-
|
|
598
|
-
|
|
599
582
|
class TestIntModel(BaseModel):
|
|
600
583
|
value: StrictPositiveInt
|
|
601
584
|
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = '2.0.0.dev11'
|
|
File without changes
|
|
File without changes
|
{cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/cuenca_validations/__init__.py
RENAMED
|
File without changes
|
{cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/cuenca_validations/card_bins.py
RENAMED
|
File without changes
|
{cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/cuenca_validations/errors.py
RENAMED
|
File without changes
|
{cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/cuenca_validations/py.typed
RENAMED
|
File without changes
|
{cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/cuenca_validations/types/card.py
RENAMED
|
File without changes
|
{cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/cuenca_validations/types/enums.py
RENAMED
|
File without changes
|
{cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/cuenca_validations/types/files.py
RENAMED
|
File without changes
|
|
File without changes
|
{cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/cuenca_validations/types/morals.py
RENAMED
|
File without changes
|
|
File without changes
|
{cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/cuenca_validations/typing.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
|