cuenca-validations 2.1.10.dev4__tar.gz → 2.1.11.dev1__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 (35) hide show
  1. {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/PKG-INFO +1 -1
  2. {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/cuenca_validations/types/queries.py +0 -1
  3. {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/cuenca_validations/types/requests.py +23 -2
  4. cuenca_validations-2.1.11.dev1/cuenca_validations/version.py +1 -0
  5. {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/cuenca_validations.egg-info/PKG-INFO +1 -1
  6. {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/cuenca_validations.egg-info/SOURCES.txt +1 -0
  7. cuenca_validations-2.1.11.dev1/tests/test_requests.py +31 -0
  8. cuenca_validations-2.1.10.dev4/cuenca_validations/version.py +0 -1
  9. {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/LICENSE +0 -0
  10. {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/README.md +0 -0
  11. {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/cuenca_validations/__init__.py +0 -0
  12. {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/cuenca_validations/card_bins.py +0 -0
  13. {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/cuenca_validations/errors.py +0 -0
  14. {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/cuenca_validations/py.typed +0 -0
  15. {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/cuenca_validations/types/__init__.py +0 -0
  16. {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/cuenca_validations/types/card.py +0 -0
  17. {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/cuenca_validations/types/enums.py +0 -0
  18. {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/cuenca_validations/types/files.py +0 -0
  19. {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/cuenca_validations/types/general.py +0 -0
  20. {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/cuenca_validations/types/helpers.py +0 -0
  21. {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/cuenca_validations/types/identities.py +0 -0
  22. {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/cuenca_validations/types/morals.py +0 -0
  23. {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/cuenca_validations/typing.py +0 -0
  24. {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/cuenca_validations/validators.py +0 -0
  25. {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/cuenca_validations.egg-info/dependency_links.txt +0 -0
  26. {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/cuenca_validations.egg-info/requires.txt +0 -0
  27. {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/cuenca_validations.egg-info/top_level.txt +0 -0
  28. {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/setup.cfg +0 -0
  29. {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/setup.py +0 -0
  30. {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/tests/__init__.py +0 -0
  31. {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/tests/test_card.py +0 -0
  32. {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/tests/test_errors.py +0 -0
  33. {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/tests/test_helpers.py +0 -0
  34. {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/tests/test_statement.py +0 -0
  35. {cuenca_validations-2.1.10.dev4 → cuenca_validations-2.1.11.dev1}/tests/test_types.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cuenca_validations
3
- Version: 2.1.10.dev4
3
+ Version: 2.1.11.dev1
4
4
  Summary: Cuenca common validations
5
5
  Home-page: https://github.com/cuenca-mx/cuenca-validations
6
6
  Author: Cuenca
@@ -176,7 +176,6 @@ class SessionQuery(QueryParams):
176
176
  class FileQuery(QueryParams):
177
177
  type: Optional[KYCFileType] = None
178
178
  id: Optional[str] = None
179
- user_id: Optional[str] = None
180
179
 
181
180
 
182
181
  class BankAccountValidationQuery(QueryParams):
@@ -1,5 +1,5 @@
1
1
  import datetime as dt
2
- from typing import Annotated, Optional, Union
2
+ from typing import Annotated, Any, Optional, Union
3
3
 
4
4
  from clabe import Clabe
5
5
  from pydantic import (
@@ -7,11 +7,13 @@ from pydantic import (
7
7
  ConfigDict,
8
8
  EmailStr,
9
9
  Field,
10
+ GetCoreSchemaHandler,
10
11
  StrictStr,
11
12
  StringConstraints,
12
13
  field_validator,
13
14
  model_validator,
14
15
  )
16
+ from pydantic_core import core_schema
15
17
  from pydantic_extra_types.coordinate import Coordinate
16
18
 
17
19
  from ..types.enums import (
@@ -82,6 +84,10 @@ from .morals import (
82
84
  VulnerableActivityDetails,
83
85
  )
84
86
 
87
+ CUENCA_FILE_URL = (
88
+ r'^https:\/\/(?:stage|sandbox|api)\.cuenca\.com\/files\/([a-zA-Z0-9\-]+)$'
89
+ )
90
+
85
91
 
86
92
  class BaseRequest(BaseModel):
87
93
  model_config = ConfigDict(extra="forbid")
@@ -403,10 +409,25 @@ class TOSRequest(BaseModel):
403
409
  ip: Optional[SerializableIPvAnyAddress] = None
404
410
 
405
411
 
412
+ class FileCuencaUrl(str):
413
+
414
+ @property
415
+ def file_id(self) -> str:
416
+ return self.split('/')[-1]
417
+
418
+ @classmethod
419
+ def __get_pydantic_core_schema__(
420
+ cls, _source_type: Any, _handler: GetCoreSchemaHandler
421
+ ) -> core_schema.CoreSchema:
422
+ return core_schema.no_info_after_validator_function(
423
+ cls, core_schema.str_schema(pattern=CUENCA_FILE_URL)
424
+ )
425
+
426
+
406
427
  class UserTOSAgreementRequest(BaseModel):
407
428
  tos_id: str
408
429
  location: Coordinate
409
- signature_image_url: Optional[SerializableHttpUrl] = None
430
+ signature_image_url: Optional[FileCuencaUrl] = None
410
431
 
411
432
 
412
433
  class UserRequest(BaseModel):
@@ -0,0 +1 @@
1
+ __version__ = '2.1.11.dev1'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cuenca_validations
3
- Version: 2.1.10.dev4
3
+ Version: 2.1.11.dev1
4
4
  Summary: Cuenca common validations
5
5
  Home-page: https://github.com/cuenca-mx/cuenca-validations
6
6
  Author: Cuenca
@@ -28,5 +28,6 @@ tests/__init__.py
28
28
  tests/test_card.py
29
29
  tests/test_errors.py
30
30
  tests/test_helpers.py
31
+ tests/test_requests.py
31
32
  tests/test_statement.py
32
33
  tests/test_types.py
@@ -0,0 +1,31 @@
1
+ import pytest
2
+ from pydantic import ValidationError
3
+
4
+ from cuenca_validations.types.requests import UserTOSAgreementRequest
5
+ from cuenca_validations.typing import DictStrAny
6
+
7
+
8
+ @pytest.mark.parametrize('environment', ['stage', 'sandbox', 'api'])
9
+ def test_file_cuenca_url(environment: str) -> None:
10
+ request_data: DictStrAny = dict(
11
+ tos_id='TS67dcae8e74e81bba5a77bf47',
12
+ location=(19.432607, -99.133209),
13
+ signature_image_url=(
14
+ f'https://{environment}.cuenca.com/files/EFQL87ohvoRp-PkOTYgvQYFA'
15
+ ),
16
+ )
17
+ utos = UserTOSAgreementRequest(**request_data)
18
+ assert utos.signature_image_url is not None
19
+ assert utos.signature_image_url.file_id == 'EFQL87ohvoRp-PkOTYgvQYFA'
20
+
21
+
22
+ def test_file_cuenca_url_invalid() -> None:
23
+ request_data: DictStrAny = dict(
24
+ tos_id='TS67dcae8e74e81bba5a77bf47',
25
+ location=(19.432607, -99.133209),
26
+ signature_image_url=(
27
+ 'https://cuenca.com/files/EFQL87ohvoRp-PkOTYgvQYFA/invalid'
28
+ ),
29
+ )
30
+ with pytest.raises(ValidationError):
31
+ UserTOSAgreementRequest(**request_data)
@@ -1 +0,0 @@
1
- __version__ = '2.1.10.dev4'