cuenca-validations 2.1.3.dev1__tar.gz → 2.1.4.dev0__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.1.3.dev1 → cuenca_validations-2.1.4.dev0}/PKG-INFO +1 -1
- {cuenca_validations-2.1.3.dev1 → cuenca_validations-2.1.4.dev0}/cuenca_validations/types/enums.py +3 -0
- {cuenca_validations-2.1.3.dev1 → cuenca_validations-2.1.4.dev0}/cuenca_validations/types/general.py +4 -0
- {cuenca_validations-2.1.3.dev1 → cuenca_validations-2.1.4.dev0}/cuenca_validations/types/requests.py +22 -9
- cuenca_validations-2.1.4.dev0/cuenca_validations/version.py +1 -0
- {cuenca_validations-2.1.3.dev1 → cuenca_validations-2.1.4.dev0}/cuenca_validations.egg-info/PKG-INFO +1 -1
- {cuenca_validations-2.1.3.dev1 → cuenca_validations-2.1.4.dev0}/tests/test_types.py +41 -3
- cuenca_validations-2.1.3.dev1/cuenca_validations/version.py +0 -1
- {cuenca_validations-2.1.3.dev1 → cuenca_validations-2.1.4.dev0}/LICENSE +0 -0
- {cuenca_validations-2.1.3.dev1 → cuenca_validations-2.1.4.dev0}/README.md +0 -0
- {cuenca_validations-2.1.3.dev1 → cuenca_validations-2.1.4.dev0}/cuenca_validations/__init__.py +0 -0
- {cuenca_validations-2.1.3.dev1 → cuenca_validations-2.1.4.dev0}/cuenca_validations/card_bins.py +0 -0
- {cuenca_validations-2.1.3.dev1 → cuenca_validations-2.1.4.dev0}/cuenca_validations/errors.py +0 -0
- {cuenca_validations-2.1.3.dev1 → cuenca_validations-2.1.4.dev0}/cuenca_validations/py.typed +0 -0
- {cuenca_validations-2.1.3.dev1 → cuenca_validations-2.1.4.dev0}/cuenca_validations/types/__init__.py +0 -0
- {cuenca_validations-2.1.3.dev1 → cuenca_validations-2.1.4.dev0}/cuenca_validations/types/card.py +0 -0
- {cuenca_validations-2.1.3.dev1 → cuenca_validations-2.1.4.dev0}/cuenca_validations/types/files.py +0 -0
- {cuenca_validations-2.1.3.dev1 → cuenca_validations-2.1.4.dev0}/cuenca_validations/types/helpers.py +0 -0
- {cuenca_validations-2.1.3.dev1 → cuenca_validations-2.1.4.dev0}/cuenca_validations/types/identities.py +0 -0
- {cuenca_validations-2.1.3.dev1 → cuenca_validations-2.1.4.dev0}/cuenca_validations/types/morals.py +0 -0
- {cuenca_validations-2.1.3.dev1 → cuenca_validations-2.1.4.dev0}/cuenca_validations/types/queries.py +0 -0
- {cuenca_validations-2.1.3.dev1 → cuenca_validations-2.1.4.dev0}/cuenca_validations/typing.py +0 -0
- {cuenca_validations-2.1.3.dev1 → cuenca_validations-2.1.4.dev0}/cuenca_validations/validators.py +0 -0
- {cuenca_validations-2.1.3.dev1 → cuenca_validations-2.1.4.dev0}/cuenca_validations.egg-info/SOURCES.txt +0 -0
- {cuenca_validations-2.1.3.dev1 → cuenca_validations-2.1.4.dev0}/cuenca_validations.egg-info/dependency_links.txt +0 -0
- {cuenca_validations-2.1.3.dev1 → cuenca_validations-2.1.4.dev0}/cuenca_validations.egg-info/requires.txt +0 -0
- {cuenca_validations-2.1.3.dev1 → cuenca_validations-2.1.4.dev0}/cuenca_validations.egg-info/top_level.txt +0 -0
- {cuenca_validations-2.1.3.dev1 → cuenca_validations-2.1.4.dev0}/setup.cfg +0 -0
- {cuenca_validations-2.1.3.dev1 → cuenca_validations-2.1.4.dev0}/setup.py +0 -0
- {cuenca_validations-2.1.3.dev1 → cuenca_validations-2.1.4.dev0}/tests/__init__.py +0 -0
- {cuenca_validations-2.1.3.dev1 → cuenca_validations-2.1.4.dev0}/tests/test_card.py +0 -0
- {cuenca_validations-2.1.3.dev1 → cuenca_validations-2.1.4.dev0}/tests/test_errors.py +0 -0
- {cuenca_validations-2.1.3.dev1 → cuenca_validations-2.1.4.dev0}/tests/test_helpers.py +0 -0
- {cuenca_validations-2.1.3.dev1 → cuenca_validations-2.1.4.dev0}/tests/test_statement.py +0 -0
{cuenca_validations-2.1.3.dev1 → cuenca_validations-2.1.4.dev0}/cuenca_validations/types/general.py
RENAMED
|
@@ -22,6 +22,10 @@ SerializableIPvAnyAddress = Annotated[
|
|
|
22
22
|
IPvAnyAddress, PlainSerializer(str, return_type=str)
|
|
23
23
|
]
|
|
24
24
|
|
|
25
|
+
NonEmptyStr = Annotated[
|
|
26
|
+
str, StringConstraints(strip_whitespace=True, min_length=1)
|
|
27
|
+
]
|
|
28
|
+
|
|
25
29
|
|
|
26
30
|
class SantizedDict(dict):
|
|
27
31
|
def __init__(self, *args, **kwargs):
|
{cuenca_validations-2.1.3.dev1 → cuenca_validations-2.1.4.dev0}/cuenca_validations/types/requests.py
RENAMED
|
@@ -28,6 +28,7 @@ from ..types.enums import (
|
|
|
28
28
|
Gender,
|
|
29
29
|
IssuerNetwork,
|
|
30
30
|
KYCFileType,
|
|
31
|
+
KYCValidationType,
|
|
31
32
|
PlatformType,
|
|
32
33
|
PosCapability,
|
|
33
34
|
SavingCategory,
|
|
@@ -55,6 +56,7 @@ from .card import (
|
|
|
55
56
|
)
|
|
56
57
|
from .general import (
|
|
57
58
|
LogConfig,
|
|
59
|
+
NonEmptyStr,
|
|
58
60
|
SerializableAnyUrl,
|
|
59
61
|
SerializableHttpUrl,
|
|
60
62
|
SerializableIPvAnyAddress,
|
|
@@ -421,7 +423,7 @@ class UserRequest(BaseModel):
|
|
|
421
423
|
description='Status that the user will have when created. '
|
|
422
424
|
'Defined by platform',
|
|
423
425
|
)
|
|
424
|
-
required_level: Optional[Annotated[int, Field(ge=-1, le=
|
|
426
|
+
required_level: Optional[Annotated[int, Field(ge=-1, le=3)]] = Field(
|
|
425
427
|
None,
|
|
426
428
|
description='Maximum level a User can reach. ' 'Defined by platform',
|
|
427
429
|
)
|
|
@@ -596,9 +598,6 @@ class LimitedWalletRequest(BaseRequest):
|
|
|
596
598
|
allowed_rfc: Optional[Rfc] = None
|
|
597
599
|
|
|
598
600
|
|
|
599
|
-
class KYCVerificationUpdateRequest(BaseRequest):
|
|
600
|
-
curp: Curp
|
|
601
|
-
|
|
602
601
|
|
|
603
602
|
class PlatformRequest(BaseModel):
|
|
604
603
|
name: str
|
|
@@ -621,6 +620,7 @@ class WebhookRequest(BaseModel):
|
|
|
621
620
|
|
|
622
621
|
class KYCValidationRequest(BaseRequest):
|
|
623
622
|
user_id: str
|
|
623
|
+
validation_type: KYCValidationType
|
|
624
624
|
force: bool = False
|
|
625
625
|
documents: list[KYCFile] = []
|
|
626
626
|
|
|
@@ -635,19 +635,32 @@ class UserListsRequest(BaseModel):
|
|
|
635
635
|
account_number: Optional[Union[Clabe, PaymentCardNumber]] = Field(
|
|
636
636
|
None, description='Account to review on lists'
|
|
637
637
|
)
|
|
638
|
-
names: Optional[
|
|
638
|
+
names: Optional[NonEmptyStr] = Field(
|
|
639
639
|
None, description='Names of the user to review on lists'
|
|
640
640
|
)
|
|
641
|
-
first_surname: Optional[
|
|
642
|
-
None, description='
|
|
641
|
+
first_surname: Optional[NonEmptyStr] = Field(
|
|
642
|
+
None, description='First surname of the user to review on lists'
|
|
643
643
|
)
|
|
644
|
-
second_surname: Optional[
|
|
645
|
-
None, description='
|
|
644
|
+
second_surname: Optional[NonEmptyStr] = Field(
|
|
645
|
+
None, description='Second surname of the user to review on lists'
|
|
646
646
|
)
|
|
647
647
|
|
|
648
648
|
@model_validator(mode='before')
|
|
649
649
|
@classmethod
|
|
650
650
|
def check_request(cls, values):
|
|
651
|
+
if (
|
|
652
|
+
values.get('first_surname') or values.get('second_surname')
|
|
653
|
+
) and not values.get('names'):
|
|
654
|
+
raise ValueError(
|
|
655
|
+
'names is required when first_surname or second_surname '
|
|
656
|
+
'is provided'
|
|
657
|
+
)
|
|
658
|
+
|
|
659
|
+
if values.get('names') and not values.get('first_surname'):
|
|
660
|
+
raise ValueError(
|
|
661
|
+
'first_surname is required when names is provided'
|
|
662
|
+
)
|
|
663
|
+
|
|
651
664
|
has_name = all(values.get(f) for f in ['names', 'first_surname'])
|
|
652
665
|
curp, account, rfc = (
|
|
653
666
|
values.get('curp'),
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = '2.1.4.dev0'
|
|
@@ -583,9 +583,47 @@ def test_user_lists_request_valid_params(input_data):
|
|
|
583
583
|
UserListsRequest(**input_data)
|
|
584
584
|
|
|
585
585
|
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
586
|
+
@pytest.mark.parametrize(
|
|
587
|
+
'input_data,expected_error',
|
|
588
|
+
[
|
|
589
|
+
(
|
|
590
|
+
{'first_surname': 'Paramo'},
|
|
591
|
+
(
|
|
592
|
+
'names is required when first_surname or second_surname '
|
|
593
|
+
'is provided'
|
|
594
|
+
),
|
|
595
|
+
),
|
|
596
|
+
(
|
|
597
|
+
{'second_surname': 'Paramo'},
|
|
598
|
+
(
|
|
599
|
+
'names is required when first_surname or second_surname '
|
|
600
|
+
'is provided'
|
|
601
|
+
),
|
|
602
|
+
),
|
|
603
|
+
(
|
|
604
|
+
{'first_surname': 'Paramo', 'second_surname': 'Paramo'},
|
|
605
|
+
(
|
|
606
|
+
'names is required when first_surname or second_surname '
|
|
607
|
+
'is provided'
|
|
608
|
+
),
|
|
609
|
+
),
|
|
610
|
+
(
|
|
611
|
+
{'names': 'Juan'},
|
|
612
|
+
'first_surname is required when names is provided',
|
|
613
|
+
),
|
|
614
|
+
(
|
|
615
|
+
{'first_surname': 'Paramo', 'curp': 'GOCG650418HVZNML08'},
|
|
616
|
+
(
|
|
617
|
+
'names is required when first_surname or second_surname '
|
|
618
|
+
'is provided'
|
|
619
|
+
),
|
|
620
|
+
),
|
|
621
|
+
({}, 'At least 1 param is required'),
|
|
622
|
+
],
|
|
623
|
+
)
|
|
624
|
+
def test_user_lists_request_invalid_params(input_data, expected_error):
|
|
625
|
+
with pytest.raises(ValueError, match=expected_error):
|
|
626
|
+
UserListsRequest(**input_data)
|
|
589
627
|
|
|
590
628
|
|
|
591
629
|
class IntModel(BaseModel):
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = '2.1.3.dev1'
|
|
File without changes
|
|
File without changes
|
{cuenca_validations-2.1.3.dev1 → cuenca_validations-2.1.4.dev0}/cuenca_validations/__init__.py
RENAMED
|
File without changes
|
{cuenca_validations-2.1.3.dev1 → cuenca_validations-2.1.4.dev0}/cuenca_validations/card_bins.py
RENAMED
|
File without changes
|
{cuenca_validations-2.1.3.dev1 → cuenca_validations-2.1.4.dev0}/cuenca_validations/errors.py
RENAMED
|
File without changes
|
|
File without changes
|
{cuenca_validations-2.1.3.dev1 → cuenca_validations-2.1.4.dev0}/cuenca_validations/types/__init__.py
RENAMED
|
File without changes
|
{cuenca_validations-2.1.3.dev1 → cuenca_validations-2.1.4.dev0}/cuenca_validations/types/card.py
RENAMED
|
File without changes
|
{cuenca_validations-2.1.3.dev1 → cuenca_validations-2.1.4.dev0}/cuenca_validations/types/files.py
RENAMED
|
File without changes
|
{cuenca_validations-2.1.3.dev1 → cuenca_validations-2.1.4.dev0}/cuenca_validations/types/helpers.py
RENAMED
|
File without changes
|
|
File without changes
|
{cuenca_validations-2.1.3.dev1 → cuenca_validations-2.1.4.dev0}/cuenca_validations/types/morals.py
RENAMED
|
File without changes
|
{cuenca_validations-2.1.3.dev1 → cuenca_validations-2.1.4.dev0}/cuenca_validations/types/queries.py
RENAMED
|
File without changes
|
{cuenca_validations-2.1.3.dev1 → cuenca_validations-2.1.4.dev0}/cuenca_validations/typing.py
RENAMED
|
File without changes
|
{cuenca_validations-2.1.3.dev1 → cuenca_validations-2.1.4.dev0}/cuenca_validations/validators.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
|