cuenca-validations 2.1.7.dev1__tar.gz → 2.1.7.dev4__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.dev1 → cuenca_validations-2.1.7.dev4}/PKG-INFO +1 -1
  2. {cuenca_validations-2.1.7.dev1 → cuenca_validations-2.1.7.dev4}/cuenca_validations/types/__init__.py +2 -0
  3. {cuenca_validations-2.1.7.dev1 → cuenca_validations-2.1.7.dev4}/cuenca_validations/types/enums.py +16 -0
  4. {cuenca_validations-2.1.7.dev1 → cuenca_validations-2.1.7.dev4}/cuenca_validations/types/identities.py +2 -9
  5. {cuenca_validations-2.1.7.dev1 → cuenca_validations-2.1.7.dev4}/cuenca_validations/types/requests.py +17 -31
  6. cuenca_validations-2.1.7.dev4/cuenca_validations/version.py +1 -0
  7. {cuenca_validations-2.1.7.dev1 → cuenca_validations-2.1.7.dev4}/cuenca_validations.egg-info/PKG-INFO +1 -1
  8. {cuenca_validations-2.1.7.dev1 → cuenca_validations-2.1.7.dev4}/tests/test_types.py +12 -4
  9. cuenca_validations-2.1.7.dev1/cuenca_validations/version.py +0 -1
  10. {cuenca_validations-2.1.7.dev1 → cuenca_validations-2.1.7.dev4}/LICENSE +0 -0
  11. {cuenca_validations-2.1.7.dev1 → cuenca_validations-2.1.7.dev4}/README.md +0 -0
  12. {cuenca_validations-2.1.7.dev1 → cuenca_validations-2.1.7.dev4}/cuenca_validations/__init__.py +0 -0
  13. {cuenca_validations-2.1.7.dev1 → cuenca_validations-2.1.7.dev4}/cuenca_validations/card_bins.py +0 -0
  14. {cuenca_validations-2.1.7.dev1 → cuenca_validations-2.1.7.dev4}/cuenca_validations/errors.py +0 -0
  15. {cuenca_validations-2.1.7.dev1 → cuenca_validations-2.1.7.dev4}/cuenca_validations/py.typed +0 -0
  16. {cuenca_validations-2.1.7.dev1 → cuenca_validations-2.1.7.dev4}/cuenca_validations/types/card.py +0 -0
  17. {cuenca_validations-2.1.7.dev1 → cuenca_validations-2.1.7.dev4}/cuenca_validations/types/files.py +0 -0
  18. {cuenca_validations-2.1.7.dev1 → cuenca_validations-2.1.7.dev4}/cuenca_validations/types/general.py +0 -0
  19. {cuenca_validations-2.1.7.dev1 → cuenca_validations-2.1.7.dev4}/cuenca_validations/types/helpers.py +0 -0
  20. {cuenca_validations-2.1.7.dev1 → cuenca_validations-2.1.7.dev4}/cuenca_validations/types/morals.py +0 -0
  21. {cuenca_validations-2.1.7.dev1 → cuenca_validations-2.1.7.dev4}/cuenca_validations/types/queries.py +0 -0
  22. {cuenca_validations-2.1.7.dev1 → cuenca_validations-2.1.7.dev4}/cuenca_validations/typing.py +0 -0
  23. {cuenca_validations-2.1.7.dev1 → cuenca_validations-2.1.7.dev4}/cuenca_validations/validators.py +0 -0
  24. {cuenca_validations-2.1.7.dev1 → cuenca_validations-2.1.7.dev4}/cuenca_validations.egg-info/SOURCES.txt +0 -0
  25. {cuenca_validations-2.1.7.dev1 → cuenca_validations-2.1.7.dev4}/cuenca_validations.egg-info/dependency_links.txt +0 -0
  26. {cuenca_validations-2.1.7.dev1 → cuenca_validations-2.1.7.dev4}/cuenca_validations.egg-info/requires.txt +0 -0
  27. {cuenca_validations-2.1.7.dev1 → cuenca_validations-2.1.7.dev4}/cuenca_validations.egg-info/top_level.txt +0 -0
  28. {cuenca_validations-2.1.7.dev1 → cuenca_validations-2.1.7.dev4}/setup.cfg +0 -0
  29. {cuenca_validations-2.1.7.dev1 → cuenca_validations-2.1.7.dev4}/setup.py +0 -0
  30. {cuenca_validations-2.1.7.dev1 → cuenca_validations-2.1.7.dev4}/tests/__init__.py +0 -0
  31. {cuenca_validations-2.1.7.dev1 → cuenca_validations-2.1.7.dev4}/tests/test_card.py +0 -0
  32. {cuenca_validations-2.1.7.dev1 → cuenca_validations-2.1.7.dev4}/tests/test_errors.py +0 -0
  33. {cuenca_validations-2.1.7.dev1 → cuenca_validations-2.1.7.dev4}/tests/test_helpers.py +0 -0
  34. {cuenca_validations-2.1.7.dev1 → cuenca_validations-2.1.7.dev4}/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.dev1
3
+ Version: 2.1.7.dev4
4
4
  Summary: Cuenca common validations
5
5
  Home-page: https://github.com/cuenca-mx/cuenca-validations
6
6
  Author: Cuenca
@@ -55,6 +55,7 @@ __all__ = [
55
55
  'PlatformRequest',
56
56
  'PlatformType',
57
57
  'PosCapability',
58
+ 'Profession',
58
59
  'QueryParams',
59
60
  'Rfc',
60
61
  'QuestionnairesRequest',
@@ -134,6 +135,7 @@ from .enums import (
134
135
  Language,
135
136
  PlatformType,
136
137
  PosCapability,
138
+ Profession,
137
139
  SATRegimeCode,
138
140
  SavingCategory,
139
141
  ServiceProviderCategory,
@@ -688,3 +688,19 @@ class SATRegimeCode(str, Enum):
688
688
  ING_PREM = "615" # Régimen de los ingresos por obtención de premios
689
689
  AE_PLAT_TEC = "625" # Régimen de las Actividades Empresariales con ingresos a través de Plataformas Tecnológicas # noqa: E501
690
690
  RS_CONF = "626" # Régimen Simplificado de Confianza
691
+
692
+
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'
@@ -1,14 +1,7 @@
1
1
  import datetime as dt
2
- from typing import Annotated, Any, Optional
2
+ from typing import Annotated, Optional
3
3
 
4
- from pydantic import (
5
- BaseModel,
6
- ConfigDict,
7
- Field,
8
- SecretStr,
9
- StringConstraints,
10
- model_validator,
11
- )
4
+ from pydantic import BaseModel, ConfigDict, Field, SecretStr, StringConstraints
12
5
  from pydantic_extra_types.phone_numbers import PhoneNumber
13
6
 
14
7
  from .enums import Country, KYCFileType, State, VerificationStatus
@@ -32,6 +32,7 @@ from ..types.enums import (
32
32
  KYCValidationSource,
33
33
  PlatformType,
34
34
  PosCapability,
35
+ Profession,
35
36
  SavingCategory,
36
37
  SessionType,
37
38
  State,
@@ -411,38 +412,28 @@ class UserTOSAgreementRequest(BaseModel):
411
412
 
412
413
  class UserRequest(BaseModel):
413
414
  curp: Curp = Field(
414
- description='Previously validated in `curp_validations`'
415
+ description=(
416
+ 'Mexican government ID (18 characters). ' 'Must be pre-validated.'
417
+ )
418
+ )
419
+
420
+ profession: Profession = Field(description='User profession or occupation')
421
+ address: Address = Field(
422
+ description='User residential address information'
415
423
  )
416
- # curp_verification_id: str = Field(
417
- # ...,
418
- # description='Previously validated in `curp_validations`',
419
- # )
420
-
421
- profession: str = None
422
- address: Address = None
423
- # status: Optional[UserStatus] = Field(
424
- # None,
425
- # description='Status that the user will have when created. '
426
- # 'Defined by platform',
427
- # )
428
- # required_level: Optional[int] = Field(
429
- # None,
430
- # ge=1,
431
- # le=3,
432
- # description='Maximum level a User can reach. Defined by platform',
433
- # )
434
424
  phone_verification_id: str = Field(
435
425
  ...,
436
- description='Only if you validated it previously with the '
437
- 'resource `verifications`',
426
+ description='ID of previously validated phone verification',
438
427
  )
439
428
  email_verification_id: str = Field(
440
429
  ...,
441
- description='Only if you validated it previously with the '
442
- 'resource `verifications`',
430
+ description='ID of previously validated email verification',
431
+ )
432
+ tos_agreement: UserTOSAgreementRequest = Field(
433
+ ...,
434
+ description='TOS agreement for the user'
443
435
  )
444
- # terms_of_service: Optional[TOSRequest] = None
445
- # signature: Optional[KYCFile] = None
436
+
446
437
  model_config = ConfigDict(
447
438
  json_schema_extra={
448
439
  'example': {
@@ -475,9 +466,7 @@ class UserRequest(BaseModel):
475
466
 
476
467
 
477
468
  class UserUpdateRequest(BaseModel):
478
- phone_number: Optional[PhoneNumber] = None
479
- email_address: Optional[EmailStr] = None
480
- profession: Optional[str] = None
469
+ profession: Optional[Profession] = None
481
470
  verification_id: Optional[str] = None
482
471
  email_verification_id: Optional[str] = None
483
472
  phone_verification_id: Optional[str] = None
@@ -487,9 +476,6 @@ class UserUpdateRequest(BaseModel):
487
476
  proof_of_address: Optional[KYCFile] = None
488
477
  proof_of_life: Optional[KYCFile] = None
489
478
  signature: Optional[KYCFile] = None
490
- status: Optional[UserStatus] = None
491
- terms_of_service: Optional[TOSRequest] = None
492
- platform_terms_of_service: Optional[TOSAgreement] = None
493
479
  curp_document_uri: Optional[SerializableHttpUrl] = None
494
480
 
495
481
  @field_validator('beneficiaries')
@@ -0,0 +1 @@
1
+ __version__ = '2.1.7.dev4'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cuenca_validations
3
- Version: 2.1.7.dev1
3
+ Version: 2.1.7.dev4
4
4
  Summary: Cuenca common validations
5
5
  Home-page: https://github.com/cuenca-mx/cuenca-validations
6
6
  Author: Cuenca
@@ -10,7 +10,6 @@ from pydantic import AfterValidator, BaseModel, SecretStr, ValidationError
10
10
  from pydantic.fields import FieldInfo
11
11
 
12
12
  from cuenca_validations.types import (
13
- Address,
14
13
  CardQuery,
15
14
  JSONEncoder,
16
15
  QueryParams,
@@ -23,6 +22,7 @@ from cuenca_validations.types import (
23
22
  from cuenca_validations.types.enums import (
24
23
  Country,
25
24
  EcommerceIndicator,
25
+ Profession,
26
26
  SessionType,
27
27
  State,
28
28
  )
@@ -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='worker',
310
+ profession=Profession.employee,
311
311
  address=dict(
312
312
  street='calle 1',
313
313
  ext_number='2',
@@ -439,12 +439,20 @@ def test_user_update_request():
439
439
  birth_date=dt.date(2020, 1, 1).isoformat(),
440
440
  phone_number='+525555555555',
441
441
  user_relationship='brother',
442
- percentage=101,
442
+ percentage=50,
443
+ ),
444
+ dict(
445
+ name='José Pérez',
446
+ birth_date=dt.date(2020, 1, 2).isoformat(),
447
+ phone_number='+525544444444',
448
+ user_relationship='brother',
449
+ percentage=51,
443
450
  ),
444
451
  ]
445
452
  with pytest.raises(ValueError) as v:
446
453
  UserUpdateRequest(**request)
447
- assert 'The total percentage is more than 100.' in str(v)
454
+
455
+ assert 'The total percentage is more than 100.' in str(v)
448
456
 
449
457
  tos_request = dict(
450
458
  terms_of_service=dict(
@@ -1 +0,0 @@
1
- __version__ = '2.1.7.dev1'