cuenca-validations 2.1.7.dev5__tar.gz → 2.1.7.dev7__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.7.dev5 → cuenca_validations-2.1.7.dev7}/PKG-INFO +1 -1
- {cuenca_validations-2.1.7.dev5 → cuenca_validations-2.1.7.dev7}/cuenca_validations/types/enums.py +13 -13
- {cuenca_validations-2.1.7.dev5 → cuenca_validations-2.1.7.dev7}/cuenca_validations/types/identities.py +33 -0
- {cuenca_validations-2.1.7.dev5 → cuenca_validations-2.1.7.dev7}/cuenca_validations/types/requests.py +6 -9
- cuenca_validations-2.1.7.dev7/cuenca_validations/version.py +1 -0
- {cuenca_validations-2.1.7.dev5 → cuenca_validations-2.1.7.dev7}/cuenca_validations.egg-info/PKG-INFO +1 -1
- {cuenca_validations-2.1.7.dev5 → cuenca_validations-2.1.7.dev7}/tests/test_types.py +1 -5
- cuenca_validations-2.1.7.dev5/cuenca_validations/version.py +0 -1
- {cuenca_validations-2.1.7.dev5 → cuenca_validations-2.1.7.dev7}/LICENSE +0 -0
- {cuenca_validations-2.1.7.dev5 → cuenca_validations-2.1.7.dev7}/README.md +0 -0
- {cuenca_validations-2.1.7.dev5 → cuenca_validations-2.1.7.dev7}/cuenca_validations/__init__.py +0 -0
- {cuenca_validations-2.1.7.dev5 → cuenca_validations-2.1.7.dev7}/cuenca_validations/card_bins.py +0 -0
- {cuenca_validations-2.1.7.dev5 → cuenca_validations-2.1.7.dev7}/cuenca_validations/errors.py +0 -0
- {cuenca_validations-2.1.7.dev5 → cuenca_validations-2.1.7.dev7}/cuenca_validations/py.typed +0 -0
- {cuenca_validations-2.1.7.dev5 → cuenca_validations-2.1.7.dev7}/cuenca_validations/types/__init__.py +0 -0
- {cuenca_validations-2.1.7.dev5 → cuenca_validations-2.1.7.dev7}/cuenca_validations/types/card.py +0 -0
- {cuenca_validations-2.1.7.dev5 → cuenca_validations-2.1.7.dev7}/cuenca_validations/types/files.py +0 -0
- {cuenca_validations-2.1.7.dev5 → cuenca_validations-2.1.7.dev7}/cuenca_validations/types/general.py +0 -0
- {cuenca_validations-2.1.7.dev5 → cuenca_validations-2.1.7.dev7}/cuenca_validations/types/helpers.py +0 -0
- {cuenca_validations-2.1.7.dev5 → cuenca_validations-2.1.7.dev7}/cuenca_validations/types/morals.py +0 -0
- {cuenca_validations-2.1.7.dev5 → cuenca_validations-2.1.7.dev7}/cuenca_validations/types/queries.py +0 -0
- {cuenca_validations-2.1.7.dev5 → cuenca_validations-2.1.7.dev7}/cuenca_validations/typing.py +0 -0
- {cuenca_validations-2.1.7.dev5 → cuenca_validations-2.1.7.dev7}/cuenca_validations/validators.py +0 -0
- {cuenca_validations-2.1.7.dev5 → cuenca_validations-2.1.7.dev7}/cuenca_validations.egg-info/SOURCES.txt +0 -0
- {cuenca_validations-2.1.7.dev5 → cuenca_validations-2.1.7.dev7}/cuenca_validations.egg-info/dependency_links.txt +0 -0
- {cuenca_validations-2.1.7.dev5 → cuenca_validations-2.1.7.dev7}/cuenca_validations.egg-info/requires.txt +0 -0
- {cuenca_validations-2.1.7.dev5 → cuenca_validations-2.1.7.dev7}/cuenca_validations.egg-info/top_level.txt +0 -0
- {cuenca_validations-2.1.7.dev5 → cuenca_validations-2.1.7.dev7}/setup.cfg +0 -0
- {cuenca_validations-2.1.7.dev5 → cuenca_validations-2.1.7.dev7}/setup.py +0 -0
- {cuenca_validations-2.1.7.dev5 → cuenca_validations-2.1.7.dev7}/tests/__init__.py +0 -0
- {cuenca_validations-2.1.7.dev5 → cuenca_validations-2.1.7.dev7}/tests/test_card.py +0 -0
- {cuenca_validations-2.1.7.dev5 → cuenca_validations-2.1.7.dev7}/tests/test_errors.py +0 -0
- {cuenca_validations-2.1.7.dev5 → cuenca_validations-2.1.7.dev7}/tests/test_helpers.py +0 -0
- {cuenca_validations-2.1.7.dev5 → cuenca_validations-2.1.7.dev7}/tests/test_statement.py +0 -0
{cuenca_validations-2.1.7.dev5 → cuenca_validations-2.1.7.dev7}/cuenca_validations/types/enums.py
RENAMED
|
@@ -691,16 +691,16 @@ class SATRegimeCode(str, Enum):
|
|
|
691
691
|
|
|
692
692
|
|
|
693
693
|
class Profession(str, Enum):
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
694
|
+
artisticas = 'Actividades Artísticas'
|
|
695
|
+
agropecuario = 'Agricultura, Ganadería o Pesca'
|
|
696
|
+
comercio = 'Comercio'
|
|
697
|
+
estudiante = 'Estudiante'
|
|
698
|
+
empleado = 'Empleado(a/e)'
|
|
699
|
+
emprendimiento = 'Emprendimiento'
|
|
700
|
+
hogar = 'Hogar'
|
|
701
|
+
profesor = 'Profesor(a/e)'
|
|
702
|
+
profesionista = 'Profesionista'
|
|
703
|
+
servidor_publico = 'Servidor(a/e) Público'
|
|
704
|
+
sistemas = 'Sistemas y Comunicaciones'
|
|
705
|
+
independiente = 'Trabajador(a/e) Independiente'
|
|
706
|
+
oficios = 'Oficios Varios'
|
|
@@ -36,8 +36,41 @@ Rfc = Annotated[
|
|
|
36
36
|
),
|
|
37
37
|
]
|
|
38
38
|
|
|
39
|
+
# NOTE:
|
|
40
|
+
# The Address model is kept for compatibility with legacy models and data
|
|
41
|
+
# that expect all address fields to be optional. This allows older systems
|
|
42
|
+
# or stored data using Address to continue working without breaking changes.
|
|
43
|
+
# For new request validation, use AddressRequest, which enforces required
|
|
44
|
+
# fields and is intended for validating incoming data.
|
|
39
45
|
|
|
40
46
|
class Address(BaseModel):
|
|
47
|
+
street: Optional[str] = None
|
|
48
|
+
ext_number: Optional[str] = None
|
|
49
|
+
int_number: Optional[str] = None
|
|
50
|
+
colonia: Optional[str] = None
|
|
51
|
+
postal_code: Optional[str] = None
|
|
52
|
+
state: Optional[State] = None
|
|
53
|
+
country: Optional[Country] = None
|
|
54
|
+
city: Optional[str] = None
|
|
55
|
+
full_name: Optional[str] = None
|
|
56
|
+
model_config = ConfigDict(
|
|
57
|
+
json_schema_extra={
|
|
58
|
+
"example": {
|
|
59
|
+
"street": "Reforma",
|
|
60
|
+
"ext_number": "265",
|
|
61
|
+
"int_number": "5",
|
|
62
|
+
"colonia": "Cuauhtémoc",
|
|
63
|
+
"postal_code": "06500",
|
|
64
|
+
"state": "DF",
|
|
65
|
+
"country": "MX",
|
|
66
|
+
"city": "Cuauhtémoc",
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
)
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
class AddressRequest(BaseModel):
|
|
73
|
+
# This model is mainly for request validation, enforcing required fields.
|
|
41
74
|
street: NonEmptyStr
|
|
42
75
|
ext_number: NonEmptyStr
|
|
43
76
|
int_number: Optional[NonEmptyStr] = None
|
{cuenca_validations-2.1.7.dev5 → cuenca_validations-2.1.7.dev7}/cuenca_validations/types/requests.py
RENAMED
|
@@ -64,7 +64,7 @@ from .general import (
|
|
|
64
64
|
StrictPositiveInt,
|
|
65
65
|
)
|
|
66
66
|
from .identities import (
|
|
67
|
-
|
|
67
|
+
AddressRequest,
|
|
68
68
|
Beneficiary,
|
|
69
69
|
Curp,
|
|
70
70
|
KYCFile,
|
|
@@ -416,7 +416,7 @@ class UserRequest(BaseModel):
|
|
|
416
416
|
)
|
|
417
417
|
|
|
418
418
|
profession: Profession = Field(description='User profession or occupation')
|
|
419
|
-
address:
|
|
419
|
+
address: AddressRequest = Field(
|
|
420
420
|
description='User residential address information'
|
|
421
421
|
)
|
|
422
422
|
phone_verification_id: str = Field(
|
|
@@ -427,9 +427,6 @@ class UserRequest(BaseModel):
|
|
|
427
427
|
...,
|
|
428
428
|
description='ID of previously validated email verification',
|
|
429
429
|
)
|
|
430
|
-
tos_agreement: UserTOSAgreementRequest = Field(
|
|
431
|
-
..., description='TOS agreement for the user'
|
|
432
|
-
)
|
|
433
430
|
|
|
434
431
|
model_config = ConfigDict(
|
|
435
432
|
json_schema_extra={
|
|
@@ -438,7 +435,7 @@ class UserRequest(BaseModel):
|
|
|
438
435
|
'phone_number': '+525511223344',
|
|
439
436
|
'email_address': 'user@example.com',
|
|
440
437
|
'profession': 'engineer',
|
|
441
|
-
'address':
|
|
438
|
+
'address': AddressRequest.model_json_schema().get('example'),
|
|
442
439
|
}
|
|
443
440
|
},
|
|
444
441
|
)
|
|
@@ -467,7 +464,7 @@ class UserUpdateRequest(BaseModel):
|
|
|
467
464
|
verification_id: Optional[str] = None
|
|
468
465
|
email_verification_id: Optional[str] = None
|
|
469
466
|
phone_verification_id: Optional[str] = None
|
|
470
|
-
address: Optional[
|
|
467
|
+
address: Optional[AddressRequest] = None
|
|
471
468
|
beneficiaries: Optional[list[Beneficiary]] = None
|
|
472
469
|
govt_id: Optional[KYCFile] = None
|
|
473
470
|
proof_of_address: Optional[KYCFile] = None
|
|
@@ -688,7 +685,7 @@ class PartnerRequest(BaseRequest):
|
|
|
688
685
|
web_site: str
|
|
689
686
|
phone_number: PhoneNumber
|
|
690
687
|
email_address: EmailStr
|
|
691
|
-
address:
|
|
688
|
+
address: AddressRequest
|
|
692
689
|
|
|
693
690
|
|
|
694
691
|
class PartnerUpdateRequest(BaseRequest):
|
|
@@ -702,7 +699,7 @@ class PartnerUpdateRequest(BaseRequest):
|
|
|
702
699
|
web_site: Optional[str] = None
|
|
703
700
|
phone_number: Optional[PhoneNumber] = None
|
|
704
701
|
email_address: Optional[EmailStr] = None
|
|
705
|
-
address: Optional[
|
|
702
|
+
address: Optional[AddressRequest] = None
|
|
706
703
|
business_details: Optional[BusinessDetails] = None
|
|
707
704
|
transactional_profile: Optional[TransactionalProfile] = None
|
|
708
705
|
external_account: Optional[Clabe] = None
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = '2.1.7.dev7'
|
|
@@ -307,7 +307,7 @@ def test_saving_update_request():
|
|
|
307
307
|
def test_user_request():
|
|
308
308
|
request = dict(
|
|
309
309
|
curp='ABCD920604HDFSRN03',
|
|
310
|
-
profession=Profession.
|
|
310
|
+
profession=Profession.empleado,
|
|
311
311
|
address=dict(
|
|
312
312
|
street='calle 1',
|
|
313
313
|
ext_number='2',
|
|
@@ -320,10 +320,6 @@ def test_user_request():
|
|
|
320
320
|
),
|
|
321
321
|
phone_verification_id='VE12345678',
|
|
322
322
|
email_verification_id='VE0987654321',
|
|
323
|
-
tos_agreement=dict(
|
|
324
|
-
tos_id='TOS123',
|
|
325
|
-
location=dict(latitude=19.4326, longitude=-99.1332),
|
|
326
|
-
),
|
|
327
323
|
)
|
|
328
324
|
assert UserRequest(**request).model_dump() == request
|
|
329
325
|
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = '2.1.7.dev5'
|
|
File without changes
|
|
File without changes
|
{cuenca_validations-2.1.7.dev5 → cuenca_validations-2.1.7.dev7}/cuenca_validations/__init__.py
RENAMED
|
File without changes
|
{cuenca_validations-2.1.7.dev5 → cuenca_validations-2.1.7.dev7}/cuenca_validations/card_bins.py
RENAMED
|
File without changes
|
{cuenca_validations-2.1.7.dev5 → cuenca_validations-2.1.7.dev7}/cuenca_validations/errors.py
RENAMED
|
File without changes
|
|
File without changes
|
{cuenca_validations-2.1.7.dev5 → cuenca_validations-2.1.7.dev7}/cuenca_validations/types/__init__.py
RENAMED
|
File without changes
|
{cuenca_validations-2.1.7.dev5 → cuenca_validations-2.1.7.dev7}/cuenca_validations/types/card.py
RENAMED
|
File without changes
|
{cuenca_validations-2.1.7.dev5 → cuenca_validations-2.1.7.dev7}/cuenca_validations/types/files.py
RENAMED
|
File without changes
|
{cuenca_validations-2.1.7.dev5 → cuenca_validations-2.1.7.dev7}/cuenca_validations/types/general.py
RENAMED
|
File without changes
|
{cuenca_validations-2.1.7.dev5 → cuenca_validations-2.1.7.dev7}/cuenca_validations/types/helpers.py
RENAMED
|
File without changes
|
{cuenca_validations-2.1.7.dev5 → cuenca_validations-2.1.7.dev7}/cuenca_validations/types/morals.py
RENAMED
|
File without changes
|
{cuenca_validations-2.1.7.dev5 → cuenca_validations-2.1.7.dev7}/cuenca_validations/types/queries.py
RENAMED
|
File without changes
|
{cuenca_validations-2.1.7.dev5 → cuenca_validations-2.1.7.dev7}/cuenca_validations/typing.py
RENAMED
|
File without changes
|
{cuenca_validations-2.1.7.dev5 → cuenca_validations-2.1.7.dev7}/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
|