cuenca-validations 2.1.7.dev6__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.
Files changed (34) hide show
  1. {cuenca_validations-2.1.7.dev6 → cuenca_validations-2.1.7.dev7}/PKG-INFO +1 -1
  2. {cuenca_validations-2.1.7.dev6 → cuenca_validations-2.1.7.dev7}/cuenca_validations/types/enums.py +13 -13
  3. {cuenca_validations-2.1.7.dev6 → cuenca_validations-2.1.7.dev7}/cuenca_validations/types/identities.py +33 -0
  4. {cuenca_validations-2.1.7.dev6 → cuenca_validations-2.1.7.dev7}/cuenca_validations/types/requests.py +6 -6
  5. cuenca_validations-2.1.7.dev7/cuenca_validations/version.py +1 -0
  6. {cuenca_validations-2.1.7.dev6 → cuenca_validations-2.1.7.dev7}/cuenca_validations.egg-info/PKG-INFO +1 -1
  7. {cuenca_validations-2.1.7.dev6 → cuenca_validations-2.1.7.dev7}/tests/test_types.py +1 -5
  8. cuenca_validations-2.1.7.dev6/cuenca_validations/version.py +0 -1
  9. {cuenca_validations-2.1.7.dev6 → cuenca_validations-2.1.7.dev7}/LICENSE +0 -0
  10. {cuenca_validations-2.1.7.dev6 → cuenca_validations-2.1.7.dev7}/README.md +0 -0
  11. {cuenca_validations-2.1.7.dev6 → cuenca_validations-2.1.7.dev7}/cuenca_validations/__init__.py +0 -0
  12. {cuenca_validations-2.1.7.dev6 → cuenca_validations-2.1.7.dev7}/cuenca_validations/card_bins.py +0 -0
  13. {cuenca_validations-2.1.7.dev6 → cuenca_validations-2.1.7.dev7}/cuenca_validations/errors.py +0 -0
  14. {cuenca_validations-2.1.7.dev6 → cuenca_validations-2.1.7.dev7}/cuenca_validations/py.typed +0 -0
  15. {cuenca_validations-2.1.7.dev6 → cuenca_validations-2.1.7.dev7}/cuenca_validations/types/__init__.py +0 -0
  16. {cuenca_validations-2.1.7.dev6 → cuenca_validations-2.1.7.dev7}/cuenca_validations/types/card.py +0 -0
  17. {cuenca_validations-2.1.7.dev6 → cuenca_validations-2.1.7.dev7}/cuenca_validations/types/files.py +0 -0
  18. {cuenca_validations-2.1.7.dev6 → cuenca_validations-2.1.7.dev7}/cuenca_validations/types/general.py +0 -0
  19. {cuenca_validations-2.1.7.dev6 → cuenca_validations-2.1.7.dev7}/cuenca_validations/types/helpers.py +0 -0
  20. {cuenca_validations-2.1.7.dev6 → cuenca_validations-2.1.7.dev7}/cuenca_validations/types/morals.py +0 -0
  21. {cuenca_validations-2.1.7.dev6 → cuenca_validations-2.1.7.dev7}/cuenca_validations/types/queries.py +0 -0
  22. {cuenca_validations-2.1.7.dev6 → cuenca_validations-2.1.7.dev7}/cuenca_validations/typing.py +0 -0
  23. {cuenca_validations-2.1.7.dev6 → cuenca_validations-2.1.7.dev7}/cuenca_validations/validators.py +0 -0
  24. {cuenca_validations-2.1.7.dev6 → cuenca_validations-2.1.7.dev7}/cuenca_validations.egg-info/SOURCES.txt +0 -0
  25. {cuenca_validations-2.1.7.dev6 → cuenca_validations-2.1.7.dev7}/cuenca_validations.egg-info/dependency_links.txt +0 -0
  26. {cuenca_validations-2.1.7.dev6 → cuenca_validations-2.1.7.dev7}/cuenca_validations.egg-info/requires.txt +0 -0
  27. {cuenca_validations-2.1.7.dev6 → cuenca_validations-2.1.7.dev7}/cuenca_validations.egg-info/top_level.txt +0 -0
  28. {cuenca_validations-2.1.7.dev6 → cuenca_validations-2.1.7.dev7}/setup.cfg +0 -0
  29. {cuenca_validations-2.1.7.dev6 → cuenca_validations-2.1.7.dev7}/setup.py +0 -0
  30. {cuenca_validations-2.1.7.dev6 → cuenca_validations-2.1.7.dev7}/tests/__init__.py +0 -0
  31. {cuenca_validations-2.1.7.dev6 → cuenca_validations-2.1.7.dev7}/tests/test_card.py +0 -0
  32. {cuenca_validations-2.1.7.dev6 → cuenca_validations-2.1.7.dev7}/tests/test_errors.py +0 -0
  33. {cuenca_validations-2.1.7.dev6 → cuenca_validations-2.1.7.dev7}/tests/test_helpers.py +0 -0
  34. {cuenca_validations-2.1.7.dev6 → cuenca_validations-2.1.7.dev7}/tests/test_statement.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cuenca_validations
3
- Version: 2.1.7.dev6
3
+ Version: 2.1.7.dev7
4
4
  Summary: Cuenca common validations
5
5
  Home-page: https://github.com/cuenca-mx/cuenca-validations
6
6
  Author: Cuenca
@@ -691,16 +691,16 @@ class SATRegimeCode(str, Enum):
691
691
 
692
692
 
693
693
  class Profession(str, Enum):
694
- arts = 'arts'
695
- agriculture = 'agriculture'
696
- commerce = 'commerce'
697
- student = 'student'
698
- employee = 'employee'
699
- entrepreneur = 'entrepreneur'
700
- homemaker = 'homemaker'
701
- teacher = 'teacher'
702
- professional = 'professional'
703
- public_servant = 'public_servant'
704
- it_communications = 'it_communications'
705
- freelancer = 'freelancer'
706
- skilled_trades = 'skilled_trades'
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
@@ -64,7 +64,7 @@ from .general import (
64
64
  StrictPositiveInt,
65
65
  )
66
66
  from .identities import (
67
- Address,
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: Address = Field(
419
+ address: AddressRequest = Field(
420
420
  description='User residential address information'
421
421
  )
422
422
  phone_verification_id: str = Field(
@@ -435,7 +435,7 @@ class UserRequest(BaseModel):
435
435
  'phone_number': '+525511223344',
436
436
  'email_address': 'user@example.com',
437
437
  'profession': 'engineer',
438
- 'address': Address.model_json_schema().get('example'),
438
+ 'address': AddressRequest.model_json_schema().get('example'),
439
439
  }
440
440
  },
441
441
  )
@@ -464,7 +464,7 @@ class UserUpdateRequest(BaseModel):
464
464
  verification_id: Optional[str] = None
465
465
  email_verification_id: Optional[str] = None
466
466
  phone_verification_id: Optional[str] = None
467
- address: Optional[Address] = None
467
+ address: Optional[AddressRequest] = None
468
468
  beneficiaries: Optional[list[Beneficiary]] = None
469
469
  govt_id: Optional[KYCFile] = None
470
470
  proof_of_address: Optional[KYCFile] = None
@@ -685,7 +685,7 @@ class PartnerRequest(BaseRequest):
685
685
  web_site: str
686
686
  phone_number: PhoneNumber
687
687
  email_address: EmailStr
688
- address: Address
688
+ address: AddressRequest
689
689
 
690
690
 
691
691
  class PartnerUpdateRequest(BaseRequest):
@@ -699,7 +699,7 @@ class PartnerUpdateRequest(BaseRequest):
699
699
  web_site: Optional[str] = None
700
700
  phone_number: Optional[PhoneNumber] = None
701
701
  email_address: Optional[EmailStr] = None
702
- address: Optional[Address] = None
702
+ address: Optional[AddressRequest] = None
703
703
  business_details: Optional[BusinessDetails] = None
704
704
  transactional_profile: Optional[TransactionalProfile] = None
705
705
  external_account: Optional[Clabe] = None
@@ -0,0 +1 @@
1
+ __version__ = '2.1.7.dev7'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cuenca_validations
3
- Version: 2.1.7.dev6
3
+ Version: 2.1.7.dev7
4
4
  Summary: Cuenca common validations
5
5
  Home-page: https://github.com/cuenca-mx/cuenca-validations
6
6
  Author: Cuenca
@@ -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.employee,
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.dev6'