cuenca 1.0.3.dev0__tar.gz → 1.0.3.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 (109) hide show
  1. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/PKG-INFO +1 -1
  2. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/cuenca/__init__.py +2 -0
  3. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/cuenca/resources/__init__.py +2 -0
  4. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/cuenca/resources/base.py +12 -13
  5. cuenca-1.0.3.dev1/cuenca/resources/otps.py +24 -0
  6. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/cuenca/version.py +1 -1
  7. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/cuenca.egg-info/PKG-INFO +1 -1
  8. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/cuenca.egg-info/SOURCES.txt +2 -0
  9. cuenca-1.0.3.dev1/tests/resources/test_otps.py +28 -0
  10. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/LICENSE +0 -0
  11. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/README.md +0 -0
  12. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/cuenca/exc.py +0 -0
  13. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/cuenca/http/__init__.py +0 -0
  14. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/cuenca/http/client.py +0 -0
  15. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/cuenca/jwt.py +0 -0
  16. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/cuenca/py.typed +0 -0
  17. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/cuenca/resources/accounts.py +0 -0
  18. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/cuenca/resources/api_keys.py +0 -0
  19. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/cuenca/resources/arpc.py +0 -0
  20. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/cuenca/resources/balance_entries.py +0 -0
  21. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/cuenca/resources/bill_payments.py +0 -0
  22. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/cuenca/resources/card_activations.py +0 -0
  23. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/cuenca/resources/card_transactions.py +0 -0
  24. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/cuenca/resources/card_validations.py +0 -0
  25. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/cuenca/resources/cards.py +0 -0
  26. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/cuenca/resources/cash_references.py +0 -0
  27. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/cuenca/resources/clabes.py +0 -0
  28. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/cuenca/resources/commissions.py +0 -0
  29. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/cuenca/resources/curp_validations.py +0 -0
  30. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/cuenca/resources/deposits.py +0 -0
  31. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/cuenca/resources/endpoints.py +0 -0
  32. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/cuenca/resources/file_batches.py +0 -0
  33. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/cuenca/resources/files.py +0 -0
  34. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/cuenca/resources/identities.py +0 -0
  35. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/cuenca/resources/identity_events.py +0 -0
  36. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/cuenca/resources/kyc_validations.py +0 -0
  37. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/cuenca/resources/kyc_verifications.py +0 -0
  38. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/cuenca/resources/limited_wallets.py +0 -0
  39. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/cuenca/resources/login_tokens.py +0 -0
  40. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/cuenca/resources/platforms.py +0 -0
  41. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/cuenca/resources/questionnaires.py +0 -0
  42. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/cuenca/resources/resources.py +0 -0
  43. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/cuenca/resources/savings.py +0 -0
  44. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/cuenca/resources/service_providers.py +0 -0
  45. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/cuenca/resources/sessions.py +0 -0
  46. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/cuenca/resources/statements.py +0 -0
  47. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/cuenca/resources/transfers.py +0 -0
  48. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/cuenca/resources/user_credentials.py +0 -0
  49. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/cuenca/resources/user_events.py +0 -0
  50. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/cuenca/resources/user_lists_validation.py +0 -0
  51. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/cuenca/resources/user_logins.py +0 -0
  52. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/cuenca/resources/users.py +0 -0
  53. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/cuenca/resources/verifications.py +0 -0
  54. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/cuenca/resources/wallet_transactions.py +0 -0
  55. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/cuenca/resources/webhooks.py +0 -0
  56. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/cuenca/resources/whatsapp_transfers.py +0 -0
  57. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/cuenca.egg-info/dependency_links.txt +0 -0
  58. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/cuenca.egg-info/requires.txt +0 -0
  59. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/cuenca.egg-info/top_level.txt +0 -0
  60. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/setup.cfg +0 -0
  61. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/setup.py +0 -0
  62. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/tests/__init__.py +0 -0
  63. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/tests/conftest.py +0 -0
  64. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/tests/http/__init__.py +0 -0
  65. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/tests/http/conftest.py +0 -0
  66. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/tests/http/test_client.py +0 -0
  67. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/tests/resources/__init__.py +0 -0
  68. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/tests/resources/test_accounts.py +0 -0
  69. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/tests/resources/test_api_keys.py +0 -0
  70. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/tests/resources/test_arpc.py +0 -0
  71. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/tests/resources/test_balance_entries.py +0 -0
  72. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/tests/resources/test_bill_payments.py +0 -0
  73. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/tests/resources/test_card_activations.py +0 -0
  74. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/tests/resources/test_card_transactions.py +0 -0
  75. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/tests/resources/test_card_validations.py +0 -0
  76. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/tests/resources/test_cards.py +0 -0
  77. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/tests/resources/test_cash_references.py +0 -0
  78. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/tests/resources/test_clabes.py +0 -0
  79. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/tests/resources/test_commissions.py +0 -0
  80. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/tests/resources/test_curp_validations.py +0 -0
  81. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/tests/resources/test_deposits.py +0 -0
  82. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/tests/resources/test_endpoints.py +0 -0
  83. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/tests/resources/test_file_batches.py +0 -0
  84. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/tests/resources/test_files.py +0 -0
  85. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/tests/resources/test_identities.py +0 -0
  86. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/tests/resources/test_identity_events.py +0 -0
  87. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/tests/resources/test_kyc_validations.py +0 -0
  88. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/tests/resources/test_kyc_verifications.py +0 -0
  89. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/tests/resources/test_limited_wallets.py +0 -0
  90. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/tests/resources/test_login_tokens.py +0 -0
  91. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/tests/resources/test_platforms.py +0 -0
  92. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/tests/resources/test_questionnaires.py +0 -0
  93. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/tests/resources/test_resources.py +0 -0
  94. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/tests/resources/test_savings.py +0 -0
  95. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/tests/resources/test_service_providers.py +0 -0
  96. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/tests/resources/test_sessions.py +0 -0
  97. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/tests/resources/test_statements.py +0 -0
  98. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/tests/resources/test_transfers.py +0 -0
  99. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/tests/resources/test_user_credentials.py +0 -0
  100. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/tests/resources/test_user_events.py +0 -0
  101. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/tests/resources/test_user_lists_validation.py +0 -0
  102. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/tests/resources/test_user_logins.py +0 -0
  103. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/tests/resources/test_users.py +0 -0
  104. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/tests/resources/test_verifications.py +0 -0
  105. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/tests/resources/test_wallet_transactions.py +0 -0
  106. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/tests/resources/test_webhooks.py +0 -0
  107. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/tests/resources/test_whatsapp_transfers.py +0 -0
  108. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/tests/test_cuenca.py +0 -0
  109. {cuenca-1.0.3.dev0 → cuenca-1.0.3.dev1}/tests/test_jwt.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cuenca
3
- Version: 1.0.3.dev0
3
+ Version: 1.0.3.dev1
4
4
  Summary: Cuenca API Client
5
5
  Home-page: https://github.com/cuenca-mx/cuenca-python
6
6
  Author: Cuenca
@@ -23,6 +23,7 @@ __all__ = [
23
23
  'KYCVerification',
24
24
  'LimitedWallet',
25
25
  'LoginToken',
26
+ 'Otp',
26
27
  'Platform',
27
28
  'Questionnaires',
28
29
  'Saving',
@@ -70,6 +71,7 @@ from .resources import (
70
71
  KYCVerification,
71
72
  LimitedWallet,
72
73
  LoginToken,
74
+ Otp,
73
75
  Platform,
74
76
  Questionnaires,
75
77
  Saving,
@@ -22,6 +22,7 @@ __all__ = [
22
22
  'KYCVerification',
23
23
  'LimitedWallet',
24
24
  'LoginToken',
25
+ 'Otp',
25
26
  'Platform',
26
27
  'Questionnaires',
27
28
  'Saving',
@@ -62,6 +63,7 @@ from .kyc_validations import KYCValidation
62
63
  from .kyc_verifications import KYCVerification
63
64
  from .limited_wallets import LimitedWallet
64
65
  from .login_tokens import LoginToken
66
+ from .otps import Otp
65
67
  from .platforms import Platform
66
68
  from .questionnaires import Questionnaires
67
69
  from .resources import RESOURCES
@@ -2,7 +2,7 @@ import base64
2
2
  import datetime as dt
3
3
  import json
4
4
  from io import BytesIO
5
- from typing import ClassVar, Generator, Optional, Type, TypeVar
5
+ from typing import ClassVar, Generator, Optional, Type, TypeVar, cast
6
6
  from urllib.parse import urlencode
7
7
 
8
8
  from cuenca_validations.types import (
@@ -18,7 +18,6 @@ from ..exc import MultipleResultsFound, NoResultFound
18
18
  from ..http import Session, session as global_session
19
19
 
20
20
  R_co = TypeVar('R_co', bound='Resource', covariant=True)
21
- Q_co = TypeVar('Q_co', bound='Queryable', covariant=True)
22
21
 
23
22
 
24
23
  class Resource(BaseModel):
@@ -138,9 +137,9 @@ class Queryable(Resource):
138
137
 
139
138
  @classmethod
140
139
  def one(
141
- cls: Type[Q_co], *, session: Session = global_session, **query_params
142
- ) -> Q_co:
143
- q = cls._query_params(limit=2, **query_params)
140
+ cls: Type[R_co], *, session: Session = global_session, **query_params
141
+ ) -> R_co:
142
+ q = cast(Queryable, cls)._query_params(limit=2, **query_params)
144
143
  resp = session.get(cls._resource, q.dict())
145
144
  items = resp['items']
146
145
  len_items = len(items)
@@ -152,9 +151,9 @@ class Queryable(Resource):
152
151
 
153
152
  @classmethod
154
153
  def first(
155
- cls: Type[Q_co], *, session: Session = global_session, **query_params
156
- ) -> Optional[Q_co]:
157
- q = cls._query_params(limit=1, **query_params)
154
+ cls: Type[R_co], *, session: Session = global_session, **query_params
155
+ ) -> Optional[R_co]:
156
+ q = cast(Queryable, cls)._query_params(limit=1, **query_params)
158
157
  resp = session.get(cls._resource, q.dict())
159
158
  try:
160
159
  item = resp['items'][0]
@@ -166,18 +165,18 @@ class Queryable(Resource):
166
165
 
167
166
  @classmethod
168
167
  def count(
169
- cls: Type[Q_co], *, session: Session = global_session, **query_params
168
+ cls: Type[R_co], *, session: Session = global_session, **query_params
170
169
  ) -> int:
171
- q = cls._query_params(count=True, **query_params)
170
+ q = cast(Queryable, cls)._query_params(count=True, **query_params)
172
171
  resp = session.get(cls._resource, q.dict())
173
172
  return resp['count']
174
173
 
175
174
  @classmethod
176
175
  def all(
177
- cls: Type[Q_co], *, session: Session = global_session, **query_params
178
- ) -> Generator[Q_co, None, None]:
176
+ cls: Type[R_co], *, session: Session = global_session, **query_params
177
+ ) -> Generator[R_co, None, None]:
179
178
  session = session or global_session
180
- q = cls._query_params(**query_params)
179
+ q = cast(Queryable, cls)._query_params(**query_params)
181
180
  next_page_uri = f'{cls._resource}?{urlencode(q.dict())}'
182
181
  while next_page_uri:
183
182
  page = session.get(next_page_uri)
@@ -0,0 +1,24 @@
1
+ from typing import ClassVar, cast
2
+
3
+ from ..http import Session, session as global_session
4
+ from .base import Creatable
5
+
6
+
7
+ class Otp(Creatable):
8
+ _resource: ClassVar = 'otps'
9
+ secret: str
10
+
11
+ class Config:
12
+ schema_extra = {
13
+ 'example': {
14
+ 'id': 'OTNEUInh69SuKXXmK95sROwQ',
15
+ 'secret': 'somesecret',
16
+ }
17
+ }
18
+
19
+ @classmethod
20
+ def create(cls, session: Session = global_session) -> 'Otp':
21
+ """
22
+ Use this method to create a OTP seed
23
+ """
24
+ return cast('Otp', cls._create(session=session))
@@ -1,3 +1,3 @@
1
- __version__ = '1.0.3.dev0'
1
+ __version__ = '1.0.3.dev1'
2
2
  CLIENT_VERSION = __version__
3
3
  API_VERSION = '2020-03-19'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cuenca
3
- Version: 1.0.3.dev0
3
+ Version: 1.0.3.dev1
4
4
  Summary: Cuenca API Client
5
5
  Home-page: https://github.com/cuenca-mx/cuenca-python
6
6
  Author: Cuenca
@@ -39,6 +39,7 @@ cuenca/resources/kyc_validations.py
39
39
  cuenca/resources/kyc_verifications.py
40
40
  cuenca/resources/limited_wallets.py
41
41
  cuenca/resources/login_tokens.py
42
+ cuenca/resources/otps.py
42
43
  cuenca/resources/platforms.py
43
44
  cuenca/resources/questionnaires.py
44
45
  cuenca/resources/resources.py
@@ -87,6 +88,7 @@ tests/resources/test_kyc_validations.py
87
88
  tests/resources/test_kyc_verifications.py
88
89
  tests/resources/test_limited_wallets.py
89
90
  tests/resources/test_login_tokens.py
91
+ tests/resources/test_otps.py
90
92
  tests/resources/test_platforms.py
91
93
  tests/resources/test_questionnaires.py
92
94
  tests/resources/test_resources.py
@@ -0,0 +1,28 @@
1
+ import pytest
2
+
3
+ from cuenca import LoginToken, Otp, UserLogin
4
+ from cuenca.http.client import Session
5
+
6
+
7
+ @pytest.fixture(scope='function')
8
+ def session():
9
+ session = Session()
10
+ session.configure(
11
+ 'api_key',
12
+ 'api_secret',
13
+ sandbox=True,
14
+ )
15
+ return session
16
+
17
+
18
+ @pytest.mark.vcr
19
+ def test_otps(session):
20
+ UserLogin.create('111111', session=session)
21
+ login_token = LoginToken.create(session=session)
22
+ session.headers.pop(
23
+ 'X-Cuenca-LoginId',
24
+ )
25
+ session.configure(login_token=login_token.id)
26
+ otp = Otp.create()
27
+ assert otp
28
+ assert type(otp.secret) == str
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes