cuenca-validations 2.0.4.dev1__tar.gz → 2.0.4.dev2__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.0.4.dev1 → cuenca_validations-2.0.4.dev2}/PKG-INFO +1 -1
  2. {cuenca_validations-2.0.4.dev1 → cuenca_validations-2.0.4.dev2}/cuenca_validations/types/__init__.py +0 -2
  3. {cuenca_validations-2.0.4.dev1 → cuenca_validations-2.0.4.dev2}/cuenca_validations/types/files.py +3 -2
  4. {cuenca_validations-2.0.4.dev1 → cuenca_validations-2.0.4.dev2}/cuenca_validations/types/general.py +9 -7
  5. {cuenca_validations-2.0.4.dev1 → cuenca_validations-2.0.4.dev2}/cuenca_validations/types/requests.py +7 -9
  6. cuenca_validations-2.0.4.dev2/cuenca_validations/version.py +1 -0
  7. {cuenca_validations-2.0.4.dev1 → cuenca_validations-2.0.4.dev2}/cuenca_validations.egg-info/PKG-INFO +1 -1
  8. {cuenca_validations-2.0.4.dev1 → cuenca_validations-2.0.4.dev2}/tests/test_types.py +1 -23
  9. cuenca_validations-2.0.4.dev1/cuenca_validations/version.py +0 -1
  10. {cuenca_validations-2.0.4.dev1 → cuenca_validations-2.0.4.dev2}/LICENSE +0 -0
  11. {cuenca_validations-2.0.4.dev1 → cuenca_validations-2.0.4.dev2}/README.md +0 -0
  12. {cuenca_validations-2.0.4.dev1 → cuenca_validations-2.0.4.dev2}/cuenca_validations/__init__.py +0 -0
  13. {cuenca_validations-2.0.4.dev1 → cuenca_validations-2.0.4.dev2}/cuenca_validations/card_bins.py +0 -0
  14. {cuenca_validations-2.0.4.dev1 → cuenca_validations-2.0.4.dev2}/cuenca_validations/errors.py +0 -0
  15. {cuenca_validations-2.0.4.dev1 → cuenca_validations-2.0.4.dev2}/cuenca_validations/py.typed +0 -0
  16. {cuenca_validations-2.0.4.dev1 → cuenca_validations-2.0.4.dev2}/cuenca_validations/types/card.py +0 -0
  17. {cuenca_validations-2.0.4.dev1 → cuenca_validations-2.0.4.dev2}/cuenca_validations/types/enums.py +0 -0
  18. {cuenca_validations-2.0.4.dev1 → cuenca_validations-2.0.4.dev2}/cuenca_validations/types/helpers.py +0 -0
  19. {cuenca_validations-2.0.4.dev1 → cuenca_validations-2.0.4.dev2}/cuenca_validations/types/identities.py +0 -0
  20. {cuenca_validations-2.0.4.dev1 → cuenca_validations-2.0.4.dev2}/cuenca_validations/types/morals.py +0 -0
  21. {cuenca_validations-2.0.4.dev1 → cuenca_validations-2.0.4.dev2}/cuenca_validations/types/queries.py +0 -0
  22. {cuenca_validations-2.0.4.dev1 → cuenca_validations-2.0.4.dev2}/cuenca_validations/typing.py +0 -0
  23. {cuenca_validations-2.0.4.dev1 → cuenca_validations-2.0.4.dev2}/cuenca_validations/validators.py +0 -0
  24. {cuenca_validations-2.0.4.dev1 → cuenca_validations-2.0.4.dev2}/cuenca_validations.egg-info/SOURCES.txt +0 -0
  25. {cuenca_validations-2.0.4.dev1 → cuenca_validations-2.0.4.dev2}/cuenca_validations.egg-info/dependency_links.txt +0 -0
  26. {cuenca_validations-2.0.4.dev1 → cuenca_validations-2.0.4.dev2}/cuenca_validations.egg-info/requires.txt +0 -0
  27. {cuenca_validations-2.0.4.dev1 → cuenca_validations-2.0.4.dev2}/cuenca_validations.egg-info/top_level.txt +0 -0
  28. {cuenca_validations-2.0.4.dev1 → cuenca_validations-2.0.4.dev2}/setup.cfg +0 -0
  29. {cuenca_validations-2.0.4.dev1 → cuenca_validations-2.0.4.dev2}/setup.py +0 -0
  30. {cuenca_validations-2.0.4.dev1 → cuenca_validations-2.0.4.dev2}/tests/__init__.py +0 -0
  31. {cuenca_validations-2.0.4.dev1 → cuenca_validations-2.0.4.dev2}/tests/test_card.py +0 -0
  32. {cuenca_validations-2.0.4.dev1 → cuenca_validations-2.0.4.dev2}/tests/test_errors.py +0 -0
  33. {cuenca_validations-2.0.4.dev1 → cuenca_validations-2.0.4.dev2}/tests/test_helpers.py +0 -0
  34. {cuenca_validations-2.0.4.dev1 → cuenca_validations-2.0.4.dev2}/tests/test_statement.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: cuenca_validations
3
- Version: 2.0.4.dev1
3
+ Version: 2.0.4.dev2
4
4
  Summary: Cuenca common validations
5
5
  Home-page: https://github.com/cuenca-mx/cuenca-validations
6
6
  Author: Cuenca
@@ -104,7 +104,6 @@ __all__ = [
104
104
  'digits',
105
105
  'get_state_name',
106
106
  'uuid_field',
107
- 'Metadata',
108
107
  ]
109
108
 
110
109
  from .card import StrictPaymentCardNumber
@@ -153,7 +152,6 @@ from .enums import (
153
152
  from .files import BatchFileMetadata
154
153
  from .general import (
155
154
  JSONEncoder,
156
- Metadata,
157
155
  SantizedDict,
158
156
  StrictPositiveInt,
159
157
  digits,
@@ -1,12 +1,13 @@
1
1
  from typing import Optional
2
2
 
3
- from pydantic import BaseModel, HttpUrl
3
+ from pydantic import BaseModel
4
4
 
5
5
  from .enums import KYCFileType
6
+ from .general import HttpUrlString
6
7
 
7
8
 
8
9
  class BatchFileMetadata(BaseModel):
9
10
  id: Optional[str] = None
10
11
  is_back: bool
11
12
  type: KYCFileType
12
- url: HttpUrl
13
+ url: HttpUrlString
@@ -1,11 +1,19 @@
1
1
  import json
2
2
  from typing import Annotated, Any, Optional
3
3
 
4
- from pydantic import Field, StringConstraints
4
+ from pydantic import AnyUrl, Field, HttpUrl, PlainSerializer, StringConstraints
5
5
 
6
6
  from ..validators import sanitize_dict, sanitize_item
7
7
  from .enums import State
8
8
 
9
+ HttpUrlString = Annotated[
10
+ HttpUrl, PlainSerializer(lambda x: x.unicode_string(), return_type=str)
11
+ ]
12
+
13
+ AnyUrlString = Annotated[
14
+ AnyUrl, PlainSerializer(lambda x: x.unicode_string(), return_type=str)
15
+ ]
16
+
9
17
 
10
18
  class SantizedDict(dict):
11
19
  def __init__(self, *args, **kwargs):
@@ -78,9 +86,3 @@ names_state = {
78
86
 
79
87
  def get_state_name(state: State):
80
88
  return names_state[state]
81
-
82
-
83
- class Metadata:
84
- def __init__(self, sensitive: bool, log_chars: int = 0):
85
- self.sensitive = sensitive
86
- self.log_chars = log_chars
@@ -3,12 +3,10 @@ from typing import Annotated, Optional, Union
3
3
 
4
4
  from clabe import Clabe
5
5
  from pydantic import (
6
- AnyUrl,
7
6
  BaseModel,
8
7
  ConfigDict,
9
8
  EmailStr,
10
9
  Field,
11
- HttpUrl,
12
10
  StrictStr,
13
11
  StringConstraints,
14
12
  field_validator,
@@ -56,7 +54,7 @@ from .card import (
56
54
  PaymentCardNumber,
57
55
  StrictPaymentCardNumber,
58
56
  )
59
- from .general import StrictPositiveInt
57
+ from .general import AnyUrlString, HttpUrlString, StrictPositiveInt
60
58
  from .identities import (
61
59
  Address,
62
60
  Beneficiary,
@@ -479,7 +477,7 @@ class UserUpdateRequest(BaseModel):
479
477
  status: Optional[UserStatus] = None
480
478
  terms_of_service: Optional[TOSRequest] = None
481
479
  platform_terms_of_service: Optional[TOSAgreement] = None
482
- curp_document_uri: Optional[HttpUrl] = None
480
+ curp_document_uri: Optional[HttpUrlString] = None
483
481
 
484
482
  @field_validator('beneficiaries')
485
483
  @classmethod
@@ -502,8 +500,8 @@ class UserLoginRequest(BaseRequest):
502
500
  class SessionRequest(BaseRequest):
503
501
  user_id: str
504
502
  type: SessionType
505
- success_url: Optional[AnyUrl] = None
506
- failure_url: Optional[AnyUrl] = None
503
+ success_url: Optional[AnyUrlString] = None
504
+ failure_url: Optional[AnyUrlString] = None
507
505
  model_config = ConfigDict(
508
506
  json_schema_extra={
509
507
  'example': {
@@ -517,13 +515,13 @@ class SessionRequest(BaseRequest):
517
515
 
518
516
 
519
517
  class EndpointRequest(BaseRequest):
520
- url: HttpUrl
518
+ url: HttpUrlString
521
519
  events: Optional[list[WebhookEvent]] = None
522
520
  user_id: Optional[str] = None
523
521
 
524
522
 
525
523
  class EndpointUpdateRequest(BaseRequest):
526
- url: Optional[HttpUrl] = None
524
+ url: Optional[HttpUrlString] = None
527
525
  is_enable: Optional[bool] = None
528
526
  events: Optional[list[WebhookEvent]] = None
529
527
 
@@ -538,7 +536,7 @@ class FileUploadRequest(BaseRequest):
538
536
 
539
537
  class FileRequest(BaseModel):
540
538
  is_back: Optional[bool] = False
541
- url: HttpUrl
539
+ url: HttpUrlString
542
540
  type: KYCFileType
543
541
 
544
542
 
@@ -0,0 +1 @@
1
+ __version__ = '2.0.4.dev02'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: cuenca_validations
3
- Version: 2.0.4.dev1
3
+ Version: 2.0.4.dev2
4
4
  Summary: Cuenca common validations
5
5
  Home-page: https://github.com/cuenca-mx/cuenca-validations
6
6
  Author: Cuenca
@@ -2,7 +2,6 @@ import datetime as dt
2
2
  import json
3
3
  from dataclasses import dataclass
4
4
  from enum import Enum
5
- from typing import Annotated
6
5
 
7
6
  import pytest
8
7
  from freezegun import freeze_time
@@ -25,7 +24,7 @@ from cuenca_validations.types.enums import (
25
24
  SessionType,
26
25
  State,
27
26
  )
28
- from cuenca_validations.types.general import Metadata, StrictPositiveInt
27
+ from cuenca_validations.types.general import StrictPositiveInt
29
28
  from cuenca_validations.types.requests import (
30
29
  ApiKeyUpdateRequest,
31
30
  BankAccountValidationRequest,
@@ -587,24 +586,3 @@ class IntModel(BaseModel):
587
586
  def test_strict_positive_int_invalid(value, expected_error, expected_message):
588
587
  with pytest.raises(expected_error, match=expected_message):
589
588
  IntModel(value=value)
590
-
591
-
592
- class MetadataModel(BaseModel):
593
- secret: Annotated[str, Metadata(sensitive=True)]
594
- partial_secret: Annotated[str, Metadata(sensitive=True, log_chars=4)]
595
-
596
-
597
- def test_metadata():
598
- model = MetadataModel(secret="super-secret", partial_secret="1234567890")
599
-
600
- secret_field = MetadataModel.model_fields["secret"]
601
- partial_field = MetadataModel.model_fields["partial_secret"]
602
-
603
- assert secret_field.metadata[0].sensitive is True
604
- assert secret_field.metadata[0].log_chars == 0
605
-
606
- assert partial_field.metadata[0].sensitive is True
607
- assert partial_field.metadata[0].log_chars == 4
608
-
609
- assert model.secret == "super-secret"
610
- assert model.partial_secret == "1234567890"
@@ -1 +0,0 @@
1
- __version__ = '2.0.4.dev01'