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.
Files changed (32) hide show
  1. {cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/PKG-INFO +11 -2
  2. {cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/cuenca_validations/types/__init__.py +0 -2
  3. {cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/cuenca_validations/types/general.py +0 -3
  4. {cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/cuenca_validations/types/queries.py +3 -1
  5. {cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/cuenca_validations/validators.py +3 -0
  6. cuenca_validations-2.0.0.dev13/cuenca_validations/version.py +1 -0
  7. {cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/cuenca_validations.egg-info/PKG-INFO +11 -2
  8. {cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/tests/test_types.py +5 -22
  9. cuenca_validations-2.0.0.dev11/cuenca_validations/version.py +0 -1
  10. {cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/LICENSE +0 -0
  11. {cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/README.md +0 -0
  12. {cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/cuenca_validations/__init__.py +0 -0
  13. {cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/cuenca_validations/card_bins.py +0 -0
  14. {cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/cuenca_validations/errors.py +0 -0
  15. {cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/cuenca_validations/py.typed +0 -0
  16. {cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/cuenca_validations/types/card.py +0 -0
  17. {cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/cuenca_validations/types/enums.py +0 -0
  18. {cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/cuenca_validations/types/files.py +0 -0
  19. {cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/cuenca_validations/types/identities.py +0 -0
  20. {cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/cuenca_validations/types/morals.py +0 -0
  21. {cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/cuenca_validations/types/requests.py +0 -0
  22. {cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/cuenca_validations/typing.py +0 -0
  23. {cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/cuenca_validations.egg-info/SOURCES.txt +0 -0
  24. {cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/cuenca_validations.egg-info/dependency_links.txt +0 -0
  25. {cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/cuenca_validations.egg-info/requires.txt +0 -0
  26. {cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/cuenca_validations.egg-info/top_level.txt +0 -0
  27. {cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/setup.cfg +0 -0
  28. {cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/setup.py +0 -0
  29. {cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/tests/__init__.py +0 -0
  30. {cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/tests/test_card.py +0 -0
  31. {cuenca_validations-2.0.0.dev11 → cuenca_validations-2.0.0.dev13}/tests/test_errors.py +0 -0
  32. {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
1
+ Metadata-Version: 2.2
2
2
  Name: cuenca_validations
3
- Version: 2.0.0.dev11
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
  )
@@ -34,9 +34,6 @@ StrictPositiveInt = Annotated[
34
34
  ]
35
35
 
36
36
 
37
- StrictPositiveFloat = Annotated[float, Field(strict=True, gt=0)]
38
-
39
-
40
37
  def validate_only_digits(value: Any) -> str:
41
38
  v_str = str(value)
42
39
  if not v_str.isdigit():
@@ -31,7 +31,9 @@ MAX_PAGE_SIZE = 100
31
31
 
32
32
  class QueryParams(BaseModel):
33
33
  count: bool = False
34
- page_size: Optional[Annotated[int, Field(gt=0, le=MAX_PAGE_SIZE)]] = None
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
@@ -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
1
+ Metadata-Version: 2.2
2
2
  Name: cuenca_validations
3
- Version: 2.0.0.dev11
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, page_size=100)
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'