cuenca-validations 2.1.5.dev5__py3-none-any.whl → 2.1.6.dev0__py3-none-any.whl

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.
@@ -45,8 +45,8 @@ __all__ = [
45
45
  'JSONEncoder',
46
46
  'KYCFile',
47
47
  'KYCFileType',
48
- 'KYCValidationFlow',
49
48
  'KYCValidationRequest',
49
+ 'KYCVerificationUpdateRequest',
50
50
  'Language',
51
51
  'LimitedWalletRequest',
52
52
  'PartnerRequest',
@@ -130,7 +130,6 @@ from .enums import (
130
130
  Gender,
131
131
  IssuerNetwork,
132
132
  KYCFileType,
133
- KYCValidationFlow,
134
133
  Language,
135
134
  PlatformType,
136
135
  PosCapability,
@@ -202,6 +201,7 @@ from .requests import (
202
201
  FileRequest,
203
202
  FileUploadRequest,
204
203
  KYCValidationRequest,
204
+ KYCVerificationUpdateRequest,
205
205
  LimitedWalletRequest,
206
206
  PartnerRequest,
207
207
  PartnerUpdateRequest,
@@ -248,11 +248,7 @@ class KYCFileType(str, Enum):
248
248
  proof_of_address = 'proof_of_address'
249
249
  curp = 'curp'
250
250
  signature = 'signature'
251
-
252
-
253
- class KYCValidationFlow(str, Enum):
254
- client = 'client'
255
- server = 'server'
251
+ tos = 'tos'
256
252
 
257
253
 
258
254
  class Gender(str, Enum):
@@ -654,6 +650,7 @@ class FileExtension(str, Enum):
654
650
  jpeg = 'jpeg'
655
651
  png = 'png'
656
652
  pdf = 'pdf'
653
+ html = 'html'
657
654
 
658
655
 
659
656
  class BankAccountStatus(str, Enum):
@@ -12,6 +12,7 @@ from pydantic import (
12
12
  field_validator,
13
13
  model_validator,
14
14
  )
15
+ from pydantic_extra_types.coordinate import Coordinate
15
16
 
16
17
  from ..types.enums import (
17
18
  AuthorizerTransaction,
@@ -28,7 +29,6 @@ from ..types.enums import (
28
29
  Gender,
29
30
  IssuerNetwork,
30
31
  KYCFileType,
31
- KYCValidationFlow,
32
32
  PlatformType,
33
33
  PosCapability,
34
34
  SavingCategory,
@@ -403,6 +403,12 @@ class TOSRequest(BaseModel):
403
403
  ip: Optional[SerializableIPvAnyAddress] = None
404
404
 
405
405
 
406
+ class UserTOSAgreementRequest(BaseModel):
407
+ user_id: str
408
+ tos_id: str
409
+ location: Coordinate
410
+
411
+
406
412
  class UserRequest(BaseModel):
407
413
  id: Optional[str] = Field(
408
414
  None, description='if you want to create with specific `id`'
@@ -423,7 +429,7 @@ class UserRequest(BaseModel):
423
429
  description='Status that the user will have when created. '
424
430
  'Defined by platform',
425
431
  )
426
- required_level: Optional[Annotated[int, Field(ge=1, le=3)]] = Field(
432
+ required_level: Optional[Annotated[int, Field(ge=-1, le=4)]] = Field(
427
433
  None,
428
434
  description='Maximum level a User can reach. ' 'Defined by platform',
429
435
  )
@@ -598,6 +604,10 @@ class LimitedWalletRequest(BaseRequest):
598
604
  allowed_rfc: Optional[Rfc] = None
599
605
 
600
606
 
607
+ class KYCVerificationUpdateRequest(BaseRequest):
608
+ curp: Curp
609
+
610
+
601
611
  class PlatformRequest(BaseModel):
602
612
  name: str
603
613
  rfc: Optional[str] = None
@@ -619,8 +629,8 @@ class WebhookRequest(BaseModel):
619
629
 
620
630
  class KYCValidationRequest(BaseRequest):
621
631
  user_id: str
622
- validation_flow: KYCValidationFlow
623
632
  force: bool = False
633
+ documents: list[KYCFile] = []
624
634
 
625
635
 
626
636
  class BankAccountValidationRequest(BaseModel):
@@ -1 +1 @@
1
- __version__ = '2.1.5.dev5'
1
+ __version__ = '2.1.6.dev0'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cuenca_validations
3
- Version: 2.1.5.dev5
3
+ Version: 2.1.6.dev0
4
4
  Summary: Cuenca common validations
5
5
  Home-page: https://github.com/cuenca-mx/cuenca-validations
6
6
  Author: Cuenca
@@ -4,25 +4,25 @@ cuenca_validations/errors.py,sha256=OtM8EgiKqYdz9Hn66AbBO96orL1or7efkyt0vh0Zxbs,
4
4
  cuenca_validations/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
5
  cuenca_validations/typing.py,sha256=1QCu81IbVZZpyInjyeAuO-nF36gpT5Gi4o6V9PozuOU,204
6
6
  cuenca_validations/validators.py,sha256=wzwLnJ4wHggZvqp3mearbFkzvDERGeTNvJkuofQnuMc,1484
7
- cuenca_validations/version.py,sha256=PwqKGR2kGVKTNb5b5F7mfpMY-XGpc5jzNQ449qnq4L0,27
8
- cuenca_validations/types/__init__.py,sha256=89muaIBhVyU6Euv3j88fqLFOdDzgLeNsXireL4z_tBU,4761
7
+ cuenca_validations/version.py,sha256=Q3jHcfX8y_KY0o5TyAxGlQa4Hah5tMbAFYguIn0-78M,27
8
+ cuenca_validations/types/__init__.py,sha256=8fiuz26oYQT2DriQ7sbD740yFJergVhB1OYoUGETB5A,4783
9
9
  cuenca_validations/types/card.py,sha256=UGzz8NTFAverUmdUKAK1oGHnOnjSNTpIRUm93vKSSGY,1295
10
- cuenca_validations/types/enums.py,sha256=Vs381tZXM3EpyTnYRpdFAArvkaD0sV-lFbP6-RO0IXc,18961
10
+ cuenca_validations/types/enums.py,sha256=wH0jCyWyOwMEAzstpXVgPwefT76GI9qY5GFlxkOaPuo,18913
11
11
  cuenca_validations/types/files.py,sha256=2CszbwF9ytXV9suFFwyDjYG4XxY8UhCjRw3HttVXXNw,269
12
12
  cuenca_validations/types/general.py,sha256=vJmQBD_Iv_hsxD8x3_Bip-NlYAiE2rmXSPQKj4kTtto,2621
13
13
  cuenca_validations/types/helpers.py,sha256=6rHUhwoQ7jJZtGcW3LX-W5ZDl42PWE1RoBpGme7KCkk,610
14
14
  cuenca_validations/types/identities.py,sha256=-TWRDRpmIaCI4nE4hVy1FQtQtlxuErtmEtzJW1FBzec,4956
15
15
  cuenca_validations/types/morals.py,sha256=m8kAedevmwfSPTA9GYe03l7pkgipynwYgKfejyVtnuI,1813
16
16
  cuenca_validations/types/queries.py,sha256=KCRx0sPzWDtDDbZysmFGVgANgfqil17EITWaG7tGQ-A,4700
17
- cuenca_validations/types/requests.py,sha256=t0rF5goEpoOOXwPbsxvdaER2XuXKTAdMzdGuuMHQE_8,21203
18
- cuenca_validations-2.1.5.dev5.dist-info/licenses/LICENSE,sha256=wR76FmxBbfnQpwELkkE5iMF8sFIafEMgXLTE4N4WPTc,1063
17
+ cuenca_validations/types/requests.py,sha256=HhPzPWiSjiJWTutMY60IsGZOcqsgWb9y9fgCvVDyVqY,21399
18
+ cuenca_validations-2.1.6.dev0.dist-info/licenses/LICENSE,sha256=wR76FmxBbfnQpwELkkE5iMF8sFIafEMgXLTE4N4WPTc,1063
19
19
  tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
20
  tests/test_card.py,sha256=QAfRz7e11gWICPnFJZ2tiYgUsFV3C9TwzJXrDnDNXFw,1202
21
21
  tests/test_errors.py,sha256=ixiIgEuBuzfsL5p4uCFdF32XqFRtTPF6EVhGJ0keOrI,930
22
22
  tests/test_helpers.py,sha256=ubzpi1UXCryLQdgsT_Zm2IX-XE_4L0dnHnhLwH06xK8,748
23
23
  tests/test_statement.py,sha256=IOE0rRRBgBZSJv_FLaETEyn5NzzXKMNTqgjv99GX-68,1436
24
- tests/test_types.py,sha256=K_YNFz0Kac3k8fJNeXuYGkL1hjXDQu084jCX6xEMEE4,19348
25
- cuenca_validations-2.1.5.dev5.dist-info/METADATA,sha256=rlV52PSIbYijRBNL-e81TUwSMUiqNz7TuYo4dEEE19Y,1599
26
- cuenca_validations-2.1.5.dev5.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
27
- cuenca_validations-2.1.5.dev5.dist-info/top_level.txt,sha256=4233xdOs2HtuT-GFRjcDcwK0IwdwvWdczOtk0fPB6Gw,25
28
- cuenca_validations-2.1.5.dev5.dist-info/RECORD,,
24
+ tests/test_types.py,sha256=RuXMqdgOs8USWvX89xxajphACi3-GgA0nmnJ43cjyjU,19810
25
+ cuenca_validations-2.1.6.dev0.dist-info/METADATA,sha256=6qhxCA2i5h7S6BLUgVTTBebcbgecRksAepZ8p195jmU,1599
26
+ cuenca_validations-2.1.6.dev0.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
27
+ cuenca_validations-2.1.6.dev0.dist-info/top_level.txt,sha256=4233xdOs2HtuT-GFRjcDcwK0IwdwvWdczOtk0fPB6Gw,25
28
+ cuenca_validations-2.1.6.dev0.dist-info/RECORD,,
tests/test_types.py CHANGED
@@ -43,6 +43,7 @@ from cuenca_validations.types.requests import (
43
43
  UserCredentialUpdateRequest,
44
44
  UserListsRequest,
45
45
  UserRequest,
46
+ UserTOSAgreementRequest,
46
47
  UserUpdateRequest,
47
48
  VerificationAttemptRequest,
48
49
  VerificationRequest,
@@ -707,3 +708,24 @@ def test_log_config(
707
708
  def test_get_log_config_no_log_config():
708
709
  field = FieldInfo(default=None)
709
710
  assert get_log_config(field) is None
711
+
712
+
713
+ @pytest.mark.parametrize(
714
+ 'location',
715
+ [
716
+ (1500, -99.139584),
717
+ (-91, 45.1),
718
+ (45, 181),
719
+ (45, -181),
720
+ ('abc', 45),
721
+ (45, 'abc'),
722
+ (45, 45, 45),
723
+ ],
724
+ )
725
+ def test_location_validation_invalid_format(location):
726
+ with pytest.raises(ValueError):
727
+ UserTOSAgreementRequest(
728
+ user_id='US123',
729
+ tos_id='TS123',
730
+ location=location,
731
+ )