cuenca-validations 0.11.23.dev3__tar.gz → 0.11.25__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 (30) hide show
  1. {cuenca_validations-0.11.23.dev3 → cuenca_validations-0.11.25}/PKG-INFO +1 -1
  2. {cuenca_validations-0.11.23.dev3 → cuenca_validations-0.11.25}/cuenca_validations/types/enums.py +5 -0
  3. {cuenca_validations-0.11.23.dev3 → cuenca_validations-0.11.25}/cuenca_validations/types/requests.py +13 -10
  4. {cuenca_validations-0.11.23.dev3 → cuenca_validations-0.11.25}/cuenca_validations/validators.py +3 -0
  5. cuenca_validations-0.11.25/cuenca_validations/version.py +1 -0
  6. {cuenca_validations-0.11.23.dev3 → cuenca_validations-0.11.25}/cuenca_validations.egg-info/PKG-INFO +1 -1
  7. {cuenca_validations-0.11.23.dev3 → cuenca_validations-0.11.25}/tests/test_types.py +4 -4
  8. cuenca_validations-0.11.23.dev3/cuenca_validations/version.py +0 -1
  9. {cuenca_validations-0.11.23.dev3 → cuenca_validations-0.11.25}/LICENSE +0 -0
  10. {cuenca_validations-0.11.23.dev3 → cuenca_validations-0.11.25}/README.md +0 -0
  11. {cuenca_validations-0.11.23.dev3 → cuenca_validations-0.11.25}/cuenca_validations/__init__.py +0 -0
  12. {cuenca_validations-0.11.23.dev3 → cuenca_validations-0.11.25}/cuenca_validations/card_bins.py +0 -0
  13. {cuenca_validations-0.11.23.dev3 → cuenca_validations-0.11.25}/cuenca_validations/errors.py +0 -0
  14. {cuenca_validations-0.11.23.dev3 → cuenca_validations-0.11.25}/cuenca_validations/py.typed +0 -0
  15. {cuenca_validations-0.11.23.dev3 → cuenca_validations-0.11.25}/cuenca_validations/types/__init__.py +0 -0
  16. {cuenca_validations-0.11.23.dev3 → cuenca_validations-0.11.25}/cuenca_validations/types/card.py +0 -0
  17. {cuenca_validations-0.11.23.dev3 → cuenca_validations-0.11.25}/cuenca_validations/types/files.py +0 -0
  18. {cuenca_validations-0.11.23.dev3 → cuenca_validations-0.11.25}/cuenca_validations/types/general.py +0 -0
  19. {cuenca_validations-0.11.23.dev3 → cuenca_validations-0.11.25}/cuenca_validations/types/identities.py +0 -0
  20. {cuenca_validations-0.11.23.dev3 → cuenca_validations-0.11.25}/cuenca_validations/types/queries.py +0 -0
  21. {cuenca_validations-0.11.23.dev3 → cuenca_validations-0.11.25}/cuenca_validations/typing.py +0 -0
  22. {cuenca_validations-0.11.23.dev3 → cuenca_validations-0.11.25}/cuenca_validations.egg-info/SOURCES.txt +0 -0
  23. {cuenca_validations-0.11.23.dev3 → cuenca_validations-0.11.25}/cuenca_validations.egg-info/dependency_links.txt +0 -0
  24. {cuenca_validations-0.11.23.dev3 → cuenca_validations-0.11.25}/cuenca_validations.egg-info/requires.txt +0 -0
  25. {cuenca_validations-0.11.23.dev3 → cuenca_validations-0.11.25}/cuenca_validations.egg-info/top_level.txt +0 -0
  26. {cuenca_validations-0.11.23.dev3 → cuenca_validations-0.11.25}/setup.cfg +0 -0
  27. {cuenca_validations-0.11.23.dev3 → cuenca_validations-0.11.25}/setup.py +0 -0
  28. {cuenca_validations-0.11.23.dev3 → cuenca_validations-0.11.25}/tests/__init__.py +0 -0
  29. {cuenca_validations-0.11.23.dev3 → cuenca_validations-0.11.25}/tests/test_card.py +0 -0
  30. {cuenca_validations-0.11.23.dev3 → cuenca_validations-0.11.25}/tests/test_statement.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cuenca_validations
3
- Version: 0.11.23.dev3
3
+ Version: 0.11.25
4
4
  Summary: Cuenca common validations
5
5
  Home-page: https://github.com/cuenca-mx/cuenca-validations
6
6
  Author: Cuenca
@@ -89,6 +89,7 @@ class CommissionType(str, Enum):
89
89
  cash_deposit = 'cash_deposit'
90
90
  outgoing_spei = 'outgoing_spei'
91
91
  card_shipping = 'card_shipping'
92
+ account_fee = 'account_fee'
92
93
 
93
94
 
94
95
  class EntryType(str, Enum):
@@ -597,6 +598,10 @@ class WebhookEvent(str, Enum):
597
598
  user_delete = 'user.delete'
598
599
  transaction_create = 'transaction.create'
599
600
  transaction_update = 'transaction.update'
601
+ deposit_create = 'deposit.create'
602
+ deposit_update = 'deposit.update'
603
+ withdrawal_create = 'withdrawal.create'
604
+ withdrawal_update = 'withdrawal.update'
600
605
  cash_deposit_create = 'cash_deposit.create'
601
606
  cash_deposit_update = 'cash_deposit.update'
602
607
  bank_account_create = 'bank_account.create'
@@ -659,11 +659,19 @@ class BankAccountValidationRequest(BaseModel):
659
659
 
660
660
 
661
661
  class UserListsRequest(BaseModel):
662
- curp: Optional[CurpField]
663
- account_number: Optional[Union[Clabe, PaymentCardNumber]]
664
- names: Optional[str]
665
- first_surname: Optional[str]
666
- second_surname: Optional[str]
662
+ curp: Optional[CurpField] = None
663
+ account_number: Optional[Union[Clabe, PaymentCardNumber]] = None
664
+ names: Optional[str] = None
665
+ first_surname: Optional[str] = None
666
+ second_surname: Optional[str] = None
667
+
668
+ @root_validator()
669
+ def check_request(cls, values):
670
+ has_name = all(values.get(f) for f in ['names', 'first_surname'])
671
+ curp, account = values.get('curp'), values.get('account_number')
672
+ if not any([curp, account, has_name]):
673
+ raise ValueError("At least 1 param is required")
674
+ return values
667
675
 
668
676
  class Config:
669
677
  anystr_strip_whitespace = True
@@ -690,11 +698,6 @@ class UserListsRequest(BaseModel):
690
698
  }
691
699
  }
692
700
 
693
- def has_names(self) -> bool:
694
- if self.names and self.first_surname:
695
- return True
696
- return False
697
-
698
701
 
699
702
  class QuestionnairesRequest(BaseModel):
700
703
  user_id: str
@@ -1,3 +1,4 @@
1
+ import base64
1
2
  import datetime as dt
2
3
  from enum import Enum
3
4
  from typing import Any, Callable, List, Union
@@ -30,6 +31,8 @@ def sanitize_item(item: Any, default: Callable = None) -> Any:
30
31
  sanitize_dict(e) if isinstance(e, dict) else sanitize_item(e)
31
32
  for e in item
32
33
  ]
34
+ elif isinstance(item, bytes):
35
+ rv = base64.b64encode(item).decode('utf-8')
33
36
  elif isinstance(item, Enum):
34
37
  rv = item.value
35
38
  elif hasattr(item, 'to_dict'):
@@ -0,0 +1 @@
1
+ __version__ = '0.11.25'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cuenca_validations
3
- Version: 0.11.23.dev3
3
+ Version: 0.11.25
4
4
  Summary: Cuenca common validations
5
5
  Home-page: https://github.com/cuenca-mx/cuenca-validations
6
6
  Author: Cuenca
@@ -117,6 +117,7 @@ def test_count(count, truth):
117
117
  (today, today.isoformat()),
118
118
  (now, utcnow.isoformat()),
119
119
  (TestClass(uno='uno'), dict(uno='uno', dos='dos')),
120
+ (b'test', 'dGVzdA=='), # b64 encode
120
121
  ],
121
122
  )
122
123
  def test_json_encoder(value, result):
@@ -549,7 +550,6 @@ def test_rfc_field():
549
550
 
550
551
 
551
552
  def test_user_lists_request():
552
- request = UserListsRequest(names='Pedro', first_surname='Paramo')
553
- assert request.has_names()
554
- request = UserListsRequest()
555
- assert not request.has_names()
553
+ UserListsRequest(names='Pedro', first_surname='Paramo')
554
+ with pytest.raises(ValueError):
555
+ UserListsRequest()
@@ -1 +0,0 @@
1
- __version__ = '0.11.23.dev3'