cuenca 2.2.0.dev3__tar.gz → 2.2.1__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 (120) hide show
  1. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/PKG-INFO +2 -2
  2. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/password_resets.py +7 -1
  3. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/transfers.py +16 -2
  4. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/version.py +1 -1
  5. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca.egg-info/PKG-INFO +2 -2
  6. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca.egg-info/requires.txt +1 -1
  7. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/setup.py +1 -1
  8. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_transfers.py +30 -0
  9. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/LICENSE +0 -0
  10. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/README.md +0 -0
  11. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/__init__.py +0 -0
  12. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/exc.py +0 -0
  13. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/http/__init__.py +0 -0
  14. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/http/client.py +0 -0
  15. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/jwt.py +0 -0
  16. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/py.typed +0 -0
  17. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/__init__.py +0 -0
  18. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/accounts.py +0 -0
  19. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/api_keys.py +0 -0
  20. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/arpc.py +0 -0
  21. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/balance_entries.py +0 -0
  22. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/base.py +0 -0
  23. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/bill_payments.py +0 -0
  24. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/card_activations.py +0 -0
  25. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/card_transactions.py +0 -0
  26. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/card_validations.py +0 -0
  27. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/cards.py +0 -0
  28. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/cash_references.py +0 -0
  29. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/clabes.py +0 -0
  30. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/commissions.py +0 -0
  31. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/curp_validations.py +0 -0
  32. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/deposits.py +0 -0
  33. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/endpoints.py +0 -0
  34. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/exist_phones.py +0 -0
  35. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/file_batches.py +0 -0
  36. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/files.py +0 -0
  37. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/identities.py +0 -0
  38. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/identity_events.py +0 -0
  39. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/jwt_tokens.py +0 -0
  40. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/kyc_validations.py +0 -0
  41. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/limited_wallets.py +0 -0
  42. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/login_tokens.py +0 -0
  43. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/otps.py +0 -0
  44. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/phone_verification_associations.py +0 -0
  45. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/platforms.py +0 -0
  46. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/postal_codes.py +0 -0
  47. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/questionnaires.py +0 -0
  48. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/resources.py +0 -0
  49. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/savings.py +0 -0
  50. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/service_providers.py +0 -0
  51. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/sessions.py +0 -0
  52. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/statements.py +0 -0
  53. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/terms_of_service.py +0 -0
  54. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/user_credentials.py +0 -0
  55. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/user_events.py +0 -0
  56. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/user_lists_validation.py +0 -0
  57. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/user_logins.py +0 -0
  58. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/users.py +0 -0
  59. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/users_tos_agreements.py +0 -0
  60. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/verifications.py +0 -0
  61. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/wallet_transactions.py +0 -0
  62. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/webhooks.py +0 -0
  63. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca/resources/whatsapp_transfers.py +0 -0
  64. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca.egg-info/SOURCES.txt +0 -0
  65. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca.egg-info/dependency_links.txt +0 -0
  66. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/cuenca.egg-info/top_level.txt +0 -0
  67. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/setup.cfg +0 -0
  68. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/__init__.py +0 -0
  69. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/conftest.py +0 -0
  70. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/http/__init__.py +0 -0
  71. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/http/conftest.py +0 -0
  72. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/http/test_client.py +0 -0
  73. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/__init__.py +0 -0
  74. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_accounts.py +0 -0
  75. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_api_keys.py +0 -0
  76. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_arpc.py +0 -0
  77. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_balance_entries.py +0 -0
  78. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_bill_payments.py +0 -0
  79. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_card_activations.py +0 -0
  80. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_card_transactions.py +0 -0
  81. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_card_validations.py +0 -0
  82. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_cards.py +0 -0
  83. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_cash_references.py +0 -0
  84. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_clabes.py +0 -0
  85. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_commissions.py +0 -0
  86. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_curp_validations.py +0 -0
  87. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_deposits.py +0 -0
  88. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_endpoints.py +0 -0
  89. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_exist_phone.py +0 -0
  90. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_file_batches.py +0 -0
  91. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_files.py +0 -0
  92. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_identities.py +0 -0
  93. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_identity_events.py +0 -0
  94. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_jwt_tokens.py +0 -0
  95. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_kyc_validations.py +0 -0
  96. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_limited_wallets.py +0 -0
  97. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_login_tokens.py +0 -0
  98. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_otps.py +0 -0
  99. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_password_resets.py +0 -0
  100. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_phone_verification_association.py +0 -0
  101. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_platforms.py +0 -0
  102. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_postal_codes.py +0 -0
  103. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_questionnaires.py +0 -0
  104. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_resources.py +0 -0
  105. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_savings.py +0 -0
  106. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_service_providers.py +0 -0
  107. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_sessions.py +0 -0
  108. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_statements.py +0 -0
  109. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_user_credentials.py +0 -0
  110. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_user_events.py +0 -0
  111. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_user_lists_validation.py +0 -0
  112. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_user_logins.py +0 -0
  113. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_users.py +0 -0
  114. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_users_tos_agreements.py +0 -0
  115. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_verifications.py +0 -0
  116. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_wallet_transactions.py +0 -0
  117. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_webhooks.py +0 -0
  118. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/resources/test_whatsapp_transfers.py +0 -0
  119. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/test_cuenca.py +0 -0
  120. {cuenca-2.2.0.dev3 → cuenca-2.2.1}/tests/test_jwt.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cuenca
3
- Version: 2.2.0.dev3
3
+ Version: 2.2.1
4
4
  Summary: Cuenca API Client
5
5
  Home-page: https://github.com/cuenca-mx/cuenca-python
6
6
  Author: Cuenca
@@ -16,7 +16,7 @@ Requires-Python: >=3.9
16
16
  Description-Content-Type: text/markdown
17
17
  License-File: LICENSE
18
18
  Requires-Dist: requests>=2.32.0
19
- Requires-Dist: cuenca-validations>=2.1.27
19
+ Requires-Dist: cuenca-validations>=2.1.34
20
20
  Requires-Dist: pydantic-extra-types>=2.10.0
21
21
  Dynamic: author
22
22
  Dynamic: author-email
@@ -27,8 +27,14 @@ class PasswordReset(Creatable):
27
27
  'id': 'PRNEUInh69SuKXXmK95sROwQ',
28
28
  'platform_id': 'PT-1234567890',
29
29
  'flow_id': '123e4567-e89b-12d3-a456-426614174000',
30
- 'status': 'created',
30
+ 'status': 'succeeded',
31
+ 'provider_url': (
32
+ 'https://dashboard.metamap.com/identity/'
33
+ 'identity-id/verification/verification-id'
34
+ ),
31
35
  'created_at': '2026-05-06T14:15:22Z',
36
+ 'updated_at': '2026-05-06T14:18:22Z',
37
+ 'deactivated_at': '2026-05-06T14:20:22Z',
32
38
  }
33
39
  }
34
40
  )
@@ -2,20 +2,23 @@ import datetime as dt
2
2
  from typing import ClassVar, Optional, cast
3
3
 
4
4
  from cuenca_validations.types import (
5
+ TransactionStatus,
5
6
  TransferNetwork,
6
7
  TransferQuery,
7
8
  TransferRequest,
9
+ UpdateTransferRequest,
8
10
  )
9
11
  from cuenca_validations.typing import DictStrAny
10
12
  from requests import HTTPError
11
13
 
12
14
  from ..exc import CuencaException
15
+ from ..http import Session, session as global_session
13
16
  from .accounts import Account
14
- from .base import Creatable, Transaction
17
+ from .base import Creatable, Transaction, Updateable
15
18
  from .resources import retrieve_uri
16
19
 
17
20
 
18
- class Transfer(Transaction, Creatable):
21
+ class Transfer(Transaction, Creatable, Updateable):
19
22
  _resource: ClassVar = 'transfers'
20
23
  _query_params: ClassVar = TransferQuery
21
24
 
@@ -71,6 +74,17 @@ class Transfer(Transaction, Creatable):
71
74
  )
72
75
  return cls._create(**req.model_dump())
73
76
 
77
+ @classmethod
78
+ def update(
79
+ cls,
80
+ transfer_id: str,
81
+ status: TransactionStatus,
82
+ *,
83
+ session: Session = global_session,
84
+ ) -> 'Transfer':
85
+ req = UpdateTransferRequest(status=status)
86
+ return cls._update(transfer_id, session=session, **req.model_dump())
87
+
74
88
  @classmethod
75
89
  def create_many(cls, requests: list[TransferRequest]) -> DictStrAny:
76
90
  transfers: DictStrAny = dict(submitted=[], errors=[])
@@ -1,3 +1,3 @@
1
- __version__ = '2.2.0.dev3'
1
+ __version__ = '2.2.1'
2
2
  CLIENT_VERSION = __version__
3
3
  API_VERSION = '2020-03-19'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cuenca
3
- Version: 2.2.0.dev3
3
+ Version: 2.2.1
4
4
  Summary: Cuenca API Client
5
5
  Home-page: https://github.com/cuenca-mx/cuenca-python
6
6
  Author: Cuenca
@@ -16,7 +16,7 @@ Requires-Python: >=3.9
16
16
  Description-Content-Type: text/markdown
17
17
  License-File: LICENSE
18
18
  Requires-Dist: requests>=2.32.0
19
- Requires-Dist: cuenca-validations>=2.1.27
19
+ Requires-Dist: cuenca-validations>=2.1.34
20
20
  Requires-Dist: pydantic-extra-types>=2.10.0
21
21
  Dynamic: author
22
22
  Dynamic: author-email
@@ -1,3 +1,3 @@
1
1
  requests>=2.32.0
2
- cuenca-validations>=2.1.27
2
+ cuenca-validations>=2.1.34
3
3
  pydantic-extra-types>=2.10.0
@@ -24,7 +24,7 @@ setup(
24
24
  python_requires='>=3.9',
25
25
  install_requires=[
26
26
  'requests>=2.32.0',
27
- 'cuenca-validations>=2.1.27',
27
+ 'cuenca-validations>=2.1.34',
28
28
  'pydantic-extra-types>=2.10.0',
29
29
  ],
30
30
  classifiers=[
@@ -130,3 +130,33 @@ def test_invalid_params():
130
130
  with pytest.raises(ValidationError) as e:
131
131
  Transfer.one(invalid_param='invalid_param')
132
132
  assert 'Extra inputs are not permitted' in str(e)
133
+
134
+
135
+ @pytest.mark.vcr
136
+ def test_transfers_update_succeeded():
137
+ transfer = Transfer.update('TR01', status=TransactionStatus.succeeded)
138
+ assert transfer.id == 'TR01'
139
+ assert transfer.status == TransactionStatus.succeeded
140
+
141
+
142
+ @pytest.mark.vcr
143
+ def test_transfers_update_failed():
144
+ transfer = Transfer.update('TR02', status=TransactionStatus.failed)
145
+ assert transfer.id == 'TR02'
146
+ assert transfer.status == TransactionStatus.failed
147
+
148
+
149
+ @pytest.mark.parametrize(
150
+ 'invalid_status',
151
+ [
152
+ TransactionStatus.created,
153
+ TransactionStatus.submitted,
154
+ TransactionStatus.in_review,
155
+ 'cancelled',
156
+ 'approve',
157
+ 'reject',
158
+ ],
159
+ )
160
+ def test_transfers_update_rejects_invalid_status(invalid_status):
161
+ with pytest.raises(ValidationError):
162
+ Transfer.update('TR03', status=invalid_status)
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes