stripe: Add SearchableAPIResource, SearchResultObject (#8696)

This commit is contained in:
yejia-stripe
2022-09-13 11:29:56 -04:00
committed by GitHub
parent a6c174cc7b
commit 42c044eb67
12 changed files with 64 additions and 7 deletions

View File

@@ -1,3 +1,5 @@
# The following methods have custom classmethod decorators
stripe\..*\.delete
stripe\..*PaymentIntent\.confirm
stripe\.api_resources\..*\.SearchableAPIResource\.search # Not defined on the actual class in v3, but expected to exist.
stripe\.api_resources\..*\.SearchableAPIResource\.search_auto_paging_iter # Not defined on the actual class in v3, but expected to exist.

View File

@@ -58,6 +58,7 @@ from stripe.api_resources.recipient_transfer import RecipientTransfer as Recipie
from stripe.api_resources.refund import Refund as Refund
from stripe.api_resources.reversal import Reversal as Reversal
from stripe.api_resources.review import Review as Review
from stripe.api_resources.search_result_object import SearchResultObject as SearchResultObject
from stripe.api_resources.setup_attempt import SetupAttempt as SetupAttempt
from stripe.api_resources.setup_intent import SetupIntent as SetupIntent
from stripe.api_resources.sku import SKU as SKU

View File

@@ -6,6 +6,7 @@ from stripe.api_resources.abstract.listable_api_resource import ListableAPIResou
from stripe.api_resources.abstract.nested_resource_class_methods import (
nested_resource_class_methods as nested_resource_class_methods,
)
from stripe.api_resources.abstract.searchable_api_resource import SearchableAPIResource as SearchableAPIResource
from stripe.api_resources.abstract.singleton_api_resource import SingletonAPIResource as SingletonAPIResource
from stripe.api_resources.abstract.updateable_api_resource import UpdateableAPIResource as UpdateableAPIResource
from stripe.api_resources.abstract.verify_mixin import VerifyMixin as VerifyMixin

View File

@@ -0,0 +1,11 @@
from _typeshed import Self
from collections.abc import Iterator
from stripe.api_resources.abstract.api_resource import APIResource as APIResource
from stripe.api_resources.search_result_object import SearchResultObject
class SearchableAPIResource(APIResource):
@classmethod
def search(cls: type[Self], *args: str | None, **kwargs) -> SearchResultObject[Self]: ...
@classmethod
def search_auto_paging_iter(cls: type[Self], *args: str | None, **kwargs) -> Iterator[Self]: ...

View File

@@ -2,11 +2,12 @@ from stripe import api_requestor as api_requestor
from stripe.api_resources.abstract import (
CreateableAPIResource as CreateableAPIResource,
ListableAPIResource as ListableAPIResource,
SearchableAPIResource as SearchableAPIResource,
UpdateableAPIResource as UpdateableAPIResource,
custom_method as custom_method,
)
class Charge(CreateableAPIResource, ListableAPIResource, UpdateableAPIResource):
class Charge(CreateableAPIResource, ListableAPIResource, SearchableAPIResource, UpdateableAPIResource):
OBJECT_NAME: str
def capture(self, idempotency_key: str | None = ..., **params): ...
def refund(self, idempotency_key: str | None = ..., **params): ...

View File

@@ -3,12 +3,13 @@ from stripe.api_resources.abstract import (
CreateableAPIResource as CreateableAPIResource,
DeletableAPIResource as DeletableAPIResource,
ListableAPIResource as ListableAPIResource,
SearchableAPIResource as SearchableAPIResource,
UpdateableAPIResource as UpdateableAPIResource,
custom_method as custom_method,
nested_resource_class_methods as nested_resource_class_methods,
)
class Customer(CreateableAPIResource, DeletableAPIResource, ListableAPIResource, UpdateableAPIResource):
class Customer(CreateableAPIResource, DeletableAPIResource, ListableAPIResource, SearchableAPIResource, UpdateableAPIResource):
OBJECT_NAME: str
def delete_discount(self, **params) -> None: ...
@classmethod

View File

@@ -6,11 +6,12 @@ from stripe.api_resources.abstract import (
CreateableAPIResource as CreateableAPIResource,
DeletableAPIResource as DeletableAPIResource,
ListableAPIResource as ListableAPIResource,
SearchableAPIResource as SearchableAPIResource,
UpdateableAPIResource as UpdateableAPIResource,
custom_method as custom_method,
)
class Invoice(CreateableAPIResource, DeletableAPIResource, ListableAPIResource, UpdateableAPIResource):
class Invoice(CreateableAPIResource, DeletableAPIResource, ListableAPIResource, SearchableAPIResource, UpdateableAPIResource):
OBJECT_NAME: str
def finalize_invoice(self: Self, idempotency_key: str | None = ..., **params) -> Self: ...
def mark_uncollectible(self: Self, idempotency_key: str | None = ..., **params) -> Self: ...

View File

@@ -3,11 +3,12 @@ from typing import overload
from stripe.api_resources.abstract import (
CreateableAPIResource as CreateableAPIResource,
ListableAPIResource as ListableAPIResource,
SearchableAPIResource as SearchableAPIResource,
UpdateableAPIResource as UpdateableAPIResource,
custom_method as custom_method,
)
class PaymentIntent(CreateableAPIResource, ListableAPIResource, UpdateableAPIResource):
class PaymentIntent(CreateableAPIResource, ListableAPIResource, SearchableAPIResource, UpdateableAPIResource):
OBJECT_NAME: str
def cancel(self, idempotency_key: str | None = ..., **params): ...
def capture(self, idempotency_key: str | None = ..., **params): ...

View File

@@ -1,8 +1,9 @@
from stripe.api_resources.abstract import (
CreateableAPIResource as CreateableAPIResource,
ListableAPIResource as ListableAPIResource,
SearchableAPIResource as SearchableAPIResource,
UpdateableAPIResource as UpdateableAPIResource,
)
class Price(CreateableAPIResource, ListableAPIResource, UpdateableAPIResource):
class Price(CreateableAPIResource, ListableAPIResource, SearchableAPIResource, UpdateableAPIResource):
OBJECT_NAME: str

View File

@@ -2,8 +2,9 @@ from stripe.api_resources.abstract import (
CreateableAPIResource as CreateableAPIResource,
DeletableAPIResource as DeletableAPIResource,
ListableAPIResource as ListableAPIResource,
SearchableAPIResource as SearchableAPIResource,
UpdateableAPIResource as UpdateableAPIResource,
)
class Product(CreateableAPIResource, DeletableAPIResource, ListableAPIResource, UpdateableAPIResource):
class Product(CreateableAPIResource, DeletableAPIResource, ListableAPIResource, SearchableAPIResource, UpdateableAPIResource):
OBJECT_NAME: str

View File

@@ -0,0 +1,33 @@
from _typeshed import Self
from collections.abc import Iterator
from typing import Any, ClassVar, Generic, TypeVar
from typing_extensions import Literal
from stripe.stripe_object import StripeObject
_T = TypeVar("_T")
class SearchResultObject(StripeObject, Generic[_T]):
OBJECT_NAME: ClassVar[Literal["search_result"]]
url: str
has_more: bool
data: list[_T]
next_page: str
total_count: int
def search(
self: Self, api_key: str | None = ..., stripe_version: str | None = ..., stripe_account: str | None = ..., **params
) -> Self: ...
def __getitem__(self, k: str) -> Any: ...
def __iter__(self) -> Iterator[_T]: ...
def __len__(self) -> int: ...
def auto_paging_iter(self) -> Iterator[_T]: ...
@classmethod
def empty_search_result(
cls: type[Self], api_key: str | None = ..., stripe_version: str | None = ..., stripe_account: str | None = ...
) -> Self: ...
@property
def is_empty(self) -> bool: ...
def next_search_result_page(
self: Self, api_key: str | None = ..., stripe_version: str | None = ..., stripe_account: str | None = ..., **params
) -> Self: ...

View File

@@ -3,10 +3,13 @@ from stripe.api_resources.abstract import (
CreateableAPIResource as CreateableAPIResource,
DeletableAPIResource as DeletableAPIResource,
ListableAPIResource as ListableAPIResource,
SearchableAPIResource as SearchableAPIResource,
UpdateableAPIResource as UpdateableAPIResource,
custom_method as custom_method,
)
class Subscription(CreateableAPIResource, DeletableAPIResource, ListableAPIResource, UpdateableAPIResource):
class Subscription(
CreateableAPIResource, DeletableAPIResource, ListableAPIResource, SearchableAPIResource, UpdateableAPIResource
):
OBJECT_NAME: str
def delete_discount(self, **params) -> None: ...