8000 `stripe`: Add `SearchableAPIResource`, `SearchResultObject` (#8696) · python/typeshed@42c044e · GitHub
[go: up one dir, main page]

Skip to content

Commit 42c044e

Browse files
authored
stripe: Add SearchableAPIResource, SearchResultObject (#8696)
1 parent a6c174c commit 42c044e

File tree

12 files changed

+64
-7
lines changed

12 files changed

+64
-7
lines changed
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
# The following methods have custom classmethod decorators
22
stripe\..*\.delete
33
stripe\..*PaymentIntent\.confirm
4+
stripe\.api_resources\..*\.SearchableAPIResource\.search # Not defined on the actual class in v3, but expected to exist.
5+
stripe\.api_resources\..*\.SearchableAPIResource\.search_auto_paging_iter # Not defined on the actual class in v3, but expected to exist.

stubs/stripe/stripe/api_resources/__init__.pyi

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ from stripe.api_resources.recipient_transfer import RecipientTransfer as Recipie
5858
from stripe.api_resources.refund import Refund as Refund
5959
from stripe.api_resources.reversal import Reversal as Reversal
6060
from stripe.api_resources.review import Review as Review
61+
from stripe.api_resources.search_result_object import SearchResultObject as SearchResultObject
6162
from stripe.api_resources.setup_attempt import SetupAttempt as SetupAttempt
6263
from stripe.api_resources.setup_intent import SetupIntent as SetupIntent
6364
from stripe.api_resources.sku import SKU as SKU

stubs/stripe/stripe/api_resources/abstract/__init__.pyi

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ from stripe.api_resources.abstract.listable_api_resource import ListableAPIResou
66
from stripe.api_resources.abstract.nested_resource_class_methods import (
77
nested_resource_class_methods as nested_resource_class_methods,
88
)
9+
from stripe.api_resources.abstract.searchable_api_resource import SearchableAPIResource as SearchableAPIResource
910
from stripe.api_resources.abstract.singleton_api_resource import SingletonAPIResource as SingletonAPIResource
1011
from stripe.api_resources.abstract.updateable_api_resource import UpdateableAPIResource as UpdateableAPIResource
1112
from stripe.api_resources.abstract.verify_mixin import VerifyMixin as VerifyMixin
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
from _typeshed import Self
2+
from collections.abc import Iterator
3+
4+
from stripe.api_resources.abstract.api_resource import APIResource as APIResource
5+
from stripe.api_resources.search_result_object import SearchResultObject
6+
7+
class SearchableAPIResource(APIResource):
8+
@classmethod
9+
def search(cls: type[Self], *args: str | None, **kwargs) -> SearchResultObject[Self]: ...
10+
@classmethod
11+
def search_auto_paging_iter(cls: type[Self], *args: str | None, **kwargs) -> Iterator[Self]: ...

stubs/stripe/stripe/api_resources/charge.pyi

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,12 @@ from stripe import api_requestor as api_requestor
22
from stripe.api_resources.abstract import (
33
CreateableAPIResource as CreateableAPIResource,
44
ListableAPIResource as ListableAPIResource,
5+
SearchableAPIResource as SearchableAPIResource,
56
UpdateableAPIResource as UpdateableAPIResource,
67
custom_method as custom_method,
78
)
89

9-
class Charge(CreateableAPIResource, ListableAPIResource, UpdateableAPIResource):
10+
class Charge(CreateableAPIResource, ListableAPIResource, SearchableAPIResource, UpdateableAPIResource):
1011
OBJECT_NAME: str
1112
def capture(self, idempotency_key: str | None = ..., **params): ...
1213
def refund(self, idempotency_key: str | None = ..., **params): ...

stubs/stripe/stripe/api_resources/customer.pyi

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,13 @@ from stripe.api_resources.abstract import (
33
CreateableAPIResource as CreateableAPIResource,
44
DeletableAPIResource as DeletableAPIResource,
55
ListableAPIResource as ListableAPIResource,
6+
SearchableAPIResource as SearchableAPIResource,
67
UpdateableAPIResource as UpdateableAPIResource,
78
custom_method as custom_method,
89
nested_resource_class_methods as nested_resource_class_methods,
910
)
1011

11-
class Customer(CreateableAPIResource, DeletableAPIResource, ListableAPIResource, UpdateableAPIResource):
12+
class Customer(CreateableAPIResource, DeletableAPIResource, ListableAPIResource, SearchableAPIResource, UpdateableAPIResource):
1213
OBJECT_NAME: str
1314
def delete_discount(self, **params) -> None: ...
1415
@classmethod

stubs/stripe/stripe/api_resources/invoice.pyi

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,12 @@ from stripe.api_resources.abstract import (
66
CreateableAPIResource as CreateableAPIResource,
77
DeletableAPIResource as DeletableAPIResource,
88
ListableAPIResource as ListableAPIResource,
9+
SearchableAPIResource as SearchableAPIResource,
910
UpdateableAPIResource as UpdateableAPIResource,
1011
custom_method as custom_method,
1112
)
1213

13-
class Invoice(CreateableAPIResource, DeletableAPIResource, ListableAPIResource, UpdateableAPIResource):
14+
class Invoice(CreateableAPIResource, DeletableAPIResource, ListableAPIResource, SearchableAPIResource, UpdateableAPIResource):
1415
OBJECT_NAME: str
1516
def finalize_invoice(self: Self, idempotency_key: str | None = ..., **params) -> Self: ...
1617
def mark_uncollectible(self: Self, idempotency_key: str | None = ..., **params) -> Self: ...

stubs/stripe/stripe/api_resources/payment_intent.pyi

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,12 @@ from typing import overload
33
from stripe.api_resources.abstract import (
44
CreateableAPIResource as CreateableAPIResource,
55
ListableAPIResource as ListableAPIResource,
6+
SearchableAPIResource as SearchableAPIResource,
67
UpdateableAPIResource as UpdateableAPIResource,
78
custom_method as custom_method,
89
)
910

10-
class PaymentIntent(CreateableAPIResource, ListableAPIResource, UpdateableAPIResource):
11+
class PaymentIntent(CreateableAPIResource, ListableAPIResource, SearchableAPIResource, UpdateableAPIResource):
1112
OBJECT_NAME: str
1213
def cancel(self, idempotency_key: str | None = ..., **params): ...
1314
def capture(self, idempotency_key: str | None = ..., **params): ...
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
from stripe.api_resources.abstract import (
22
CreateableAPIResource as CreateableAPIResource,
33
ListableAPIResource as ListableAPIResource,
4+
SearchableAPIResource as SearchableAPIResource,
45
UpdateableAPIResource as UpdateableAPIResource,
56
)
67

7-
class Price(CreateableAPIResource, ListableAPIResource, UpdateableAPIResource):
8+
class Price(CreateableAPIResource, ListableAPIResource, SearchableAPIResource, UpdateableAPIResource):
89
OBJECT_NAME: str

stubs/stripe/stripe/api_resources/product.pyi

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,9 @@ from stripe.api_resources.abstract import (
22
CreateableAPIResource as CreateableAPIResource,
33
DeletableAPIResource as DeletableAPIResource,
44
ListableAPIResource as ListableAPIResource,
5+
SearchableAPIResource as SearchableAPIResource,
56
UpdateableAPIResource as UpdateableAPIResource,
67
)
78

8-
class Product(CreateableAPIResource, DeletableAPIResource, ListableAPIResource, UpdateableAPIResource):
9+
class Product(CreateableAPIResource, DeletableAPIResource, ListableAPIResource, SearchableAPIResource, UpdateableAPIResource):
910
OBJECT_NAME: str
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
from _typeshed import Self
2+
from collections.abc import Iterator
3+
from typing import Any, ClassVar, Generic, TypeVar
4+
from typing_extensions import Literal
5+
6+
from stripe.stripe_object import StripeObject
7+
8+
_T = TypeVar("_T")
9+
10+
class SearchResultObject(StripeObject, Generic[_T]):
11+
OBJECT_NAME: ClassVar[Literal["search_result"]]
12+
url: str
13+
has_more: bool
14+
data: list[_T]
15+
next_page: str
16+
total_count: int
17+
18+
def search(
19+
self: Self, api_key: str | None = ..., stripe_version: str | None = ..., stripe_account: str | None = ..., **params
20+
) -> Self: ...
21+
def __getitem__(self, k: str) -> Any: ...
22+
def __iter__(self) -> Iterator[_T]: ...
23+
def __len__(self) -> int: ...
24+
def auto_paging_iter(self) -> Iterator[_T]: ...
25+
@classmethod
26+
def empty_search_result(
27+
cls: type[Self], api_key: str | None = ..., stripe_version: str | None = ..., stripe_account: str | None = ...
28+
) -> Self: ...
29+
@property
30+
def is_empty(self) -> bool: ...
31+
def next_search_result_page(
32+
self: Self, api_key: str | None = ..., stripe_version: str | None = ..., stripe_account: str | None = ..., **params
33+
) -> Self: ...

stubs/stripe/stripe/api_resources/subscription.pyi

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,13 @@ from stripe.api_resources.abstract import (
33
CreateableAPIResource as CreateableAPIResource,
44
DeletableAPIResource as DeletableAPIResource,
55
ListableAPIResource as ListableAPIResource,
6+
SearchableAPIResource as SearchableAPIResource,
67
UpdateableAPIResource as UpdateableAPIResource,
78
custom_method as custom_method,
89
)
910

10-
class Subscription(CreateableAPIResource, DeletableAPIResource, ListableAPIResource, UpdateableAPIResource):
11+
class Subscription(
12+
CreateableAPIResource, DeletableAPIResource, ListableAPIResource, SearchableAPIResource, UpdateableAPIResource
13+
):
1114
OBJECT_NAME: str
1215
def delete_discount(self, **params) -> None: ...

0 commit comments

Comments
 (0)
0