diff --git a/cuenca/__init__.py b/cuenca/__init__.py index 97bfdc5f..32bce1f4 100644 --- a/cuenca/__init__.py +++ b/cuenca/__init__.py @@ -44,8 +44,6 @@ 'get_balance', ] -from typing import cast - from . import http from .resources import ( Account, @@ -96,5 +94,5 @@ def get_balance(session: http.Session = session) -> int: - balance_entry = cast('BalanceEntry', BalanceEntry.first(session=session)) + balance_entry = BalanceEntry.first(session=session) return balance_entry.rolling_balance if balance_entry else 0 diff --git a/cuenca/resources/base.py b/cuenca/resources/base.py index 94745986..1d300fd2 100644 --- a/cuenca/resources/base.py +++ b/cuenca/resources/base.py @@ -2,7 +2,7 @@ import datetime as dt import json from io import BytesIO -from typing import ClassVar, Generator, Optional, Type, TypeVar, cast +from typing import Any, ClassVar, Generator, Optional, Type, TypeVar, cast from urllib.parse import urlencode from cuenca_validations.types import ( @@ -35,7 +35,10 @@ def to_dict(self): class Retrievable(Resource): @classmethod def retrieve( - cls: Type[R_co], id: str, *, session: Session = global_session + cls: Type[R_co], + id: str, + *, + session: Session = global_session, ) -> R_co: resp = session.get(f'/{cls._resource}/{id}') return cls(**resp) @@ -49,7 +52,10 @@ def refresh(self, *, session: Session = global_session) -> None: class Creatable(Resource): @classmethod def _create( - cls: Type[R_co], *, session: Session = global_session, **data + cls: Type[R_co], + *, + session: Session = global_session, + **data: Any, ) -> R_co: resp = session.post(cls._resource, data) return cls(**resp) @@ -61,7 +67,11 @@ class Updateable(Resource): @classmethod def _update( - cls: Type[R_co], id: str, *, session: Session = global_session, **data + cls: Type[R_co], + id: str, + *, + session: Session = global_session, + **data: Any, ) -> R_co: resp = session.patch(f'/{cls._resource}/{id}', data) return cls(**resp) @@ -72,7 +82,11 @@ class Deactivable(Resource): @classmethod def deactivate( - cls: Type[R_co], id: str, *, session: Session = global_session, **data + cls: Type[R_co], + id: str, + *, + session: Session = global_session, + **data: Any, ) -> R_co: resp = session.delete(f'/{cls._resource}/{id}', data) return cls(**resp) @@ -115,7 +129,7 @@ def _upload( user_id: str, *, session: Session = global_session, - **data, + **data: Any, ) -> R_co: encoded_file = base64.b64encode(file) resp = session.request( @@ -137,7 +151,10 @@ class Queryable(Resource): @classmethod def one( - cls: Type[R_co], *, session: Session = global_session, **query_params + cls: Type[R_co], + *, + session: Session = global_session, + **query_params: Any, ) -> R_co: q = cast(Queryable, cls)._query_params(limit=2, **query_params) resp = session.get(cls._resource, q.dict()) @@ -151,7 +168,10 @@ def one( @classmethod def first( - cls: Type[R_co], *, session: Session = global_session, **query_params + cls: Type[R_co], + *, + session: Session = global_session, + **query_params: Any, ) -> Optional[R_co]: q = cast(Queryable, cls)._query_params(limit=1, **query_params) resp = session.get(cls._resource, q.dict()) @@ -165,7 +185,10 @@ def first( @classmethod def count( - cls: Type[R_co], *, session: Session = global_session, **query_params + cls: Type[R_co], + *, + session: Session = global_session, + **query_params: Any, ) -> int: q = cast(Queryable, cls)._query_params(count=True, **query_params) resp = session.get(cls._resource, q.dict()) @@ -173,7 +196,10 @@ def count( @classmethod def all( - cls: Type[R_co], *, session: Session = global_session, **query_params + cls: Type[R_co], + *, + session: Session = global_session, + **query_params: Any, ) -> Generator[R_co, None, None]: session = session or global_session q = cast(Queryable, cls)._query_params(**query_params) diff --git a/cuenca/resources/card_validations.py b/cuenca/resources/card_validations.py index 858febd9..0bcd3770 100644 --- a/cuenca/resources/card_validations.py +++ b/cuenca/resources/card_validations.py @@ -51,9 +51,7 @@ def create( pin_block=pin_block, pin_attempts_exceeded=pin_attempts_exceeded, ) - return cast( - 'CardValidation', cls._create(session=session, **req.dict()) - ) + return cls._create(session=session, **req.dict()) @property def card(self) -> Card: diff --git a/cuenca/resources/endpoints.py b/cuenca/resources/endpoints.py index 51776abe..79aa4750 100644 --- a/cuenca/resources/endpoints.py +++ b/cuenca/resources/endpoints.py @@ -89,6 +89,7 @@ def update( like url and is_active. :param endpoint_id: existing endpoint_id :param url + :param events: Optional list of enabled events to update :param is_enable :param session :return: Updated endpoint object diff --git a/cuenca/resources/otps.py b/cuenca/resources/otps.py index 03450c1b..b3534131 100644 --- a/cuenca/resources/otps.py +++ b/cuenca/resources/otps.py @@ -1,4 +1,4 @@ -from typing import ClassVar, cast +from typing import ClassVar from ..http import Session, session as global_session from .base import Creatable @@ -21,4 +21,4 @@ def create(cls, session: Session = global_session) -> 'Otp': """ Use this method to create a OTP seed """ - return cast('Otp', cls._create(session=session)) + return cls._create(session=session) diff --git a/cuenca/resources/savings.py b/cuenca/resources/savings.py index 97860d51..d5722ea9 100644 --- a/cuenca/resources/savings.py +++ b/cuenca/resources/savings.py @@ -27,7 +27,7 @@ def create( category: SavingCategory, goal_amount: Optional[int] = None, goal_date: Optional[dt.datetime] = None, - ): + ) -> 'Saving': request = SavingRequest( name=name, category=category, diff --git a/cuenca/resources/transfers.py b/cuenca/resources/transfers.py index 651162a4..6cdf5fde 100644 --- a/cuenca/resources/transfers.py +++ b/cuenca/resources/transfers.py @@ -80,7 +80,7 @@ def create_many(cls, requests: List[TransferRequest]) -> DictStrAny: except (CuencaException, HTTPError) as e: transfers['errors'].append(dict(request=req, error=e)) else: - transfers['submitted'].append(cast('Transfer', transfer)) + transfers['submitted'].append(transfer) return transfers @staticmethod diff --git a/cuenca/resources/users.py b/cuenca/resources/users.py index e68303eb..ffed5c3a 100644 --- a/cuenca/resources/users.py +++ b/cuenca/resources/users.py @@ -157,7 +157,7 @@ def update( curp_document: Optional[HttpUrl] = None, *, session: Session = global_session, - ): + ) -> 'User': request = UserUpdateRequest( phone_number=phone_number, email_address=email_address, diff --git a/cuenca/resources/wallet_transactions.py b/cuenca/resources/wallet_transactions.py index 773c46d2..5204383d 100644 --- a/cuenca/resources/wallet_transactions.py +++ b/cuenca/resources/wallet_transactions.py @@ -29,7 +29,7 @@ def create( wallet_uri: str, transaction_type: WalletTransactionType, amount: int, - ): + ) -> 'WalletTransaction': request = WalletTransactionRequest( wallet_uri=wallet_uri, transaction_type=transaction_type,