checkout-intents 0.9.0__py3-none-any.whl → 0.11.0__py3-none-any.whl
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.
- checkout_intents/_base_client.py +134 -11
- checkout_intents/_client.py +38 -1
- checkout_intents/_models.py +16 -1
- checkout_intents/_types.py +9 -0
- checkout_intents/_version.py +1 -1
- checkout_intents/resources/__init__.py +14 -0
- checkout_intents/resources/betas/__init__.py +33 -0
- checkout_intents/resources/betas/betas.py +102 -0
- checkout_intents/resources/betas/checkout_sessions.py +208 -0
- checkout_intents/resources/checkout_intents.py +6 -6
- checkout_intents/types/__init__.py +1 -0
- checkout_intents/types/base_checkout_intent.py +1 -1
- checkout_intents/types/betas/__init__.py +5 -0
- checkout_intents/types/betas/checkout_session_create_params.py +62 -0
- checkout_intents/types/checkout_intent_create_params.py +1 -1
- checkout_intents/types/checkout_intent_purchase_params.py +1 -1
- checkout_intents/types/checkout_session.py +16 -0
- {checkout_intents-0.9.0.dist-info → checkout_intents-0.11.0.dist-info}/METADATA +10 -30
- {checkout_intents-0.9.0.dist-info → checkout_intents-0.11.0.dist-info}/RECORD +21 -15
- {checkout_intents-0.9.0.dist-info → checkout_intents-0.11.0.dist-info}/licenses/LICENSE +1 -1
- {checkout_intents-0.9.0.dist-info → checkout_intents-0.11.0.dist-info}/WHEEL +0 -0
checkout_intents/_base_client.py
CHANGED
|
@@ -9,6 +9,7 @@ import asyncio
|
|
|
9
9
|
import inspect
|
|
10
10
|
import logging
|
|
11
11
|
import platform
|
|
12
|
+
import warnings
|
|
12
13
|
import email.utils
|
|
13
14
|
from types import TracebackType
|
|
14
15
|
from random import random
|
|
@@ -51,9 +52,11 @@ from ._types import (
|
|
|
51
52
|
ResponseT,
|
|
52
53
|
AnyMapping,
|
|
53
54
|
PostParser,
|
|
55
|
+
BinaryTypes,
|
|
54
56
|
RequestFiles,
|
|
55
57
|
HttpxSendArgs,
|
|
56
58
|
RequestOptions,
|
|
59
|
+
AsyncBinaryTypes,
|
|
57
60
|
HttpxRequestFiles,
|
|
58
61
|
ModelBuilderProtocol,
|
|
59
62
|
not_given,
|
|
@@ -477,8 +480,19 @@ class BaseClient(Generic[_HttpxClientT, _DefaultStreamT]):
|
|
|
477
480
|
retries_taken: int = 0,
|
|
478
481
|
) -> httpx.Request:
|
|
479
482
|
if log.isEnabledFor(logging.DEBUG):
|
|
480
|
-
log.debug(
|
|
481
|
-
|
|
483
|
+
log.debug(
|
|
484
|
+
"Request options: %s",
|
|
485
|
+
model_dump(
|
|
486
|
+
options,
|
|
487
|
+
exclude_unset=True,
|
|
488
|
+
# Pydantic v1 can't dump every type we support in content, so we exclude it for now.
|
|
489
|
+
exclude={
|
|
490
|
+
"content",
|
|
491
|
+
}
|
|
492
|
+
if PYDANTIC_V1
|
|
493
|
+
else {},
|
|
494
|
+
),
|
|
495
|
+
)
|
|
482
496
|
kwargs: dict[str, Any] = {}
|
|
483
497
|
|
|
484
498
|
json_data = options.json_data
|
|
@@ -532,7 +546,13 @@ class BaseClient(Generic[_HttpxClientT, _DefaultStreamT]):
|
|
|
532
546
|
is_body_allowed = options.method.lower() != "get"
|
|
533
547
|
|
|
534
548
|
if is_body_allowed:
|
|
535
|
-
if
|
|
549
|
+
if options.content is not None and json_data is not None:
|
|
550
|
+
raise TypeError("Passing both `content` and `json_data` is not supported")
|
|
551
|
+
if options.content is not None and files is not None:
|
|
552
|
+
raise TypeError("Passing both `content` and `files` is not supported")
|
|
553
|
+
if options.content is not None:
|
|
554
|
+
kwargs["content"] = options.content
|
|
555
|
+
elif isinstance(json_data, bytes):
|
|
536
556
|
kwargs["content"] = json_data
|
|
537
557
|
else:
|
|
538
558
|
kwargs["json"] = json_data if is_given(json_data) else None
|
|
@@ -1194,6 +1214,7 @@ class SyncAPIClient(BaseClient[httpx.Client, Stream[Any]]):
|
|
|
1194
1214
|
*,
|
|
1195
1215
|
cast_to: Type[ResponseT],
|
|
1196
1216
|
body: Body | None = None,
|
|
1217
|
+
content: BinaryTypes | None = None,
|
|
1197
1218
|
options: RequestOptions = {},
|
|
1198
1219
|
files: RequestFiles | None = None,
|
|
1199
1220
|
stream: Literal[False] = False,
|
|
@@ -1206,6 +1227,7 @@ class SyncAPIClient(BaseClient[httpx.Client, Stream[Any]]):
|
|
|
1206
1227
|
*,
|
|
1207
1228
|
cast_to: Type[ResponseT],
|
|
1208
1229
|
body: Body | None = None,
|
|
1230
|
+
content: BinaryTypes | None = None,
|
|
1209
1231
|
options: RequestOptions = {},
|
|
1210
1232
|
files: RequestFiles | None = None,
|
|
1211
1233
|
stream: Literal[True],
|
|
@@ -1219,6 +1241,7 @@ class SyncAPIClient(BaseClient[httpx.Client, Stream[Any]]):
|
|
|
1219
1241
|
*,
|
|
1220
1242
|
cast_to: Type[ResponseT],
|
|
1221
1243
|
body: Body | None = None,
|
|
1244
|
+
content: BinaryTypes | None = None,
|
|
1222
1245
|
options: RequestOptions = {},
|
|
1223
1246
|
files: RequestFiles | None = None,
|
|
1224
1247
|
stream: bool,
|
|
@@ -1231,13 +1254,25 @@ class SyncAPIClient(BaseClient[httpx.Client, Stream[Any]]):
|
|
|
1231
1254
|
*,
|
|
1232
1255
|
cast_to: Type[ResponseT],
|
|
1233
1256
|
body: Body | None = None,
|
|
1257
|
+
content: BinaryTypes | None = None,
|
|
1234
1258
|
options: RequestOptions = {},
|
|
1235
1259
|
files: RequestFiles | None = None,
|
|
1236
1260
|
stream: bool = False,
|
|
1237
1261
|
stream_cls: type[_StreamT] | None = None,
|
|
1238
1262
|
) -> ResponseT | _StreamT:
|
|
1263
|
+
if body is not None and content is not None:
|
|
1264
|
+
raise TypeError("Passing both `body` and `content` is not supported")
|
|
1265
|
+
if files is not None and content is not None:
|
|
1266
|
+
raise TypeError("Passing both `files` and `content` is not supported")
|
|
1267
|
+
if isinstance(body, bytes):
|
|
1268
|
+
warnings.warn(
|
|
1269
|
+
"Passing raw bytes as `body` is deprecated and will be removed in a future version. "
|
|
1270
|
+
"Please pass raw bytes via the `content` parameter instead.",
|
|
1271
|
+
DeprecationWarning,
|
|
1272
|
+
stacklevel=2,
|
|
1273
|
+
)
|
|
1239
1274
|
opts = FinalRequestOptions.construct(
|
|
1240
|
-
method="post", url=path, json_data=body, files=to_httpx_files(files), **options
|
|
1275
|
+
method="post", url=path, json_data=body, content=content, files=to_httpx_files(files), **options
|
|
1241
1276
|
)
|
|
1242
1277
|
return cast(ResponseT, self.request(cast_to, opts, stream=stream, stream_cls=stream_cls))
|
|
1243
1278
|
|
|
@@ -1247,11 +1282,23 @@ class SyncAPIClient(BaseClient[httpx.Client, Stream[Any]]):
|
|
|
1247
1282
|
*,
|
|
1248
1283
|
cast_to: Type[ResponseT],
|
|
1249
1284
|
body: Body | None = None,
|
|
1285
|
+
content: BinaryTypes | None = None,
|
|
1250
1286
|
files: RequestFiles | None = None,
|
|
1251
1287
|
options: RequestOptions = {},
|
|
1252
1288
|
) -> ResponseT:
|
|
1289
|
+
if body is not None and content is not None:
|
|
1290
|
+
raise TypeError("Passing both `body` and `content` is not supported")
|
|
1291
|
+
if files is not None and content is not None:
|
|
1292
|
+
raise TypeError("Passing both `files` and `content` is not supported")
|
|
1293
|
+
if isinstance(body, bytes):
|
|
1294
|
+
warnings.warn(
|
|
1295
|
+
"Passing raw bytes as `body` is deprecated and will be removed in a future version. "
|
|
1296
|
+
"Please pass raw bytes via the `content` parameter instead.",
|
|
1297
|
+
DeprecationWarning,
|
|
1298
|
+
stacklevel=2,
|
|
1299
|
+
)
|
|
1253
1300
|
opts = FinalRequestOptions.construct(
|
|
1254
|
-
method="patch", url=path, json_data=body, files=to_httpx_files(files), **options
|
|
1301
|
+
method="patch", url=path, json_data=body, content=content, files=to_httpx_files(files), **options
|
|
1255
1302
|
)
|
|
1256
1303
|
return self.request(cast_to, opts)
|
|
1257
1304
|
|
|
@@ -1261,11 +1308,23 @@ class SyncAPIClient(BaseClient[httpx.Client, Stream[Any]]):
|
|
|
1261
1308
|
*,
|
|
1262
1309
|
cast_to: Type[ResponseT],
|
|
1263
1310
|
body: Body | None = None,
|
|
1311
|
+
content: BinaryTypes | None = None,
|
|
1264
1312
|
files: RequestFiles | None = None,
|
|
1265
1313
|
options: RequestOptions = {},
|
|
1266
1314
|
) -> ResponseT:
|
|
1315
|
+
if body is not None and content is not None:
|
|
1316
|
+
raise TypeError("Passing both `body` and `content` is not supported")
|
|
1317
|
+
if files is not None and content is not None:
|
|
1318
|
+
raise TypeError("Passing both `files` and `content` is not supported")
|
|
1319
|
+
if isinstance(body, bytes):
|
|
1320
|
+
warnings.warn(
|
|
1321
|
+
"Passing raw bytes as `body` is deprecated and will be removed in a future version. "
|
|
1322
|
+
"Please pass raw bytes via the `content` parameter instead.",
|
|
1323
|
+
DeprecationWarning,
|
|
1324
|
+
stacklevel=2,
|
|
1325
|
+
)
|
|
1267
1326
|
opts = FinalRequestOptions.construct(
|
|
1268
|
-
method="put", url=path, json_data=body, files=to_httpx_files(files), **options
|
|
1327
|
+
method="put", url=path, json_data=body, content=content, files=to_httpx_files(files), **options
|
|
1269
1328
|
)
|
|
1270
1329
|
return self.request(cast_to, opts)
|
|
1271
1330
|
|
|
@@ -1275,9 +1334,19 @@ class SyncAPIClient(BaseClient[httpx.Client, Stream[Any]]):
|
|
|
1275
1334
|
*,
|
|
1276
1335
|
cast_to: Type[ResponseT],
|
|
1277
1336
|
body: Body | None = None,
|
|
1337
|
+
content: BinaryTypes | None = None,
|
|
1278
1338
|
options: RequestOptions = {},
|
|
1279
1339
|
) -> ResponseT:
|
|
1280
|
-
|
|
1340
|
+
if body is not None and content is not None:
|
|
1341
|
+
raise TypeError("Passing both `body` and `content` is not supported")
|
|
1342
|
+
if isinstance(body, bytes):
|
|
1343
|
+
warnings.warn(
|
|
1344
|
+
"Passing raw bytes as `body` is deprecated and will be removed in a future version. "
|
|
1345
|
+
"Please pass raw bytes via the `content` parameter instead.",
|
|
1346
|
+
DeprecationWarning,
|
|
1347
|
+
stacklevel=2,
|
|
1348
|
+
)
|
|
1349
|
+
opts = FinalRequestOptions.construct(method="delete", url=path, json_data=body, content=content, **options)
|
|
1281
1350
|
return self.request(cast_to, opts)
|
|
1282
1351
|
|
|
1283
1352
|
def get_api_list(
|
|
@@ -1717,6 +1786,7 @@ class AsyncAPIClient(BaseClient[httpx.AsyncClient, AsyncStream[Any]]):
|
|
|
1717
1786
|
*,
|
|
1718
1787
|
cast_to: Type[ResponseT],
|
|
1719
1788
|
body: Body | None = None,
|
|
1789
|
+
content: AsyncBinaryTypes | None = None,
|
|
1720
1790
|
files: RequestFiles | None = None,
|
|
1721
1791
|
options: RequestOptions = {},
|
|
1722
1792
|
stream: Literal[False] = False,
|
|
@@ -1729,6 +1799,7 @@ class AsyncAPIClient(BaseClient[httpx.AsyncClient, AsyncStream[Any]]):
|
|
|
1729
1799
|
*,
|
|
1730
1800
|
cast_to: Type[ResponseT],
|
|
1731
1801
|
body: Body | None = None,
|
|
1802
|
+
content: AsyncBinaryTypes | None = None,
|
|
1732
1803
|
files: RequestFiles | None = None,
|
|
1733
1804
|
options: RequestOptions = {},
|
|
1734
1805
|
stream: Literal[True],
|
|
@@ -1742,6 +1813,7 @@ class AsyncAPIClient(BaseClient[httpx.AsyncClient, AsyncStream[Any]]):
|
|
|
1742
1813
|
*,
|
|
1743
1814
|
cast_to: Type[ResponseT],
|
|
1744
1815
|
body: Body | None = None,
|
|
1816
|
+
content: AsyncBinaryTypes | None = None,
|
|
1745
1817
|
files: RequestFiles | None = None,
|
|
1746
1818
|
options: RequestOptions = {},
|
|
1747
1819
|
stream: bool,
|
|
@@ -1754,13 +1826,25 @@ class AsyncAPIClient(BaseClient[httpx.AsyncClient, AsyncStream[Any]]):
|
|
|
1754
1826
|
*,
|
|
1755
1827
|
cast_to: Type[ResponseT],
|
|
1756
1828
|
body: Body | None = None,
|
|
1829
|
+
content: AsyncBinaryTypes | None = None,
|
|
1757
1830
|
files: RequestFiles | None = None,
|
|
1758
1831
|
options: RequestOptions = {},
|
|
1759
1832
|
stream: bool = False,
|
|
1760
1833
|
stream_cls: type[_AsyncStreamT] | None = None,
|
|
1761
1834
|
) -> ResponseT | _AsyncStreamT:
|
|
1835
|
+
if body is not None and content is not None:
|
|
1836
|
+
raise TypeError("Passing both `body` and `content` is not supported")
|
|
1837
|
+
if files is not None and content is not None:
|
|
1838
|
+
raise TypeError("Passing both `files` and `content` is not supported")
|
|
1839
|
+
if isinstance(body, bytes):
|
|
1840
|
+
warnings.warn(
|
|
1841
|
+
"Passing raw bytes as `body` is deprecated and will be removed in a future version. "
|
|
1842
|
+
"Please pass raw bytes via the `content` parameter instead.",
|
|
1843
|
+
DeprecationWarning,
|
|
1844
|
+
stacklevel=2,
|
|
1845
|
+
)
|
|
1762
1846
|
opts = FinalRequestOptions.construct(
|
|
1763
|
-
method="post", url=path, json_data=body, files=await async_to_httpx_files(files), **options
|
|
1847
|
+
method="post", url=path, json_data=body, content=content, files=await async_to_httpx_files(files), **options
|
|
1764
1848
|
)
|
|
1765
1849
|
return await self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)
|
|
1766
1850
|
|
|
@@ -1770,11 +1854,28 @@ class AsyncAPIClient(BaseClient[httpx.AsyncClient, AsyncStream[Any]]):
|
|
|
1770
1854
|
*,
|
|
1771
1855
|
cast_to: Type[ResponseT],
|
|
1772
1856
|
body: Body | None = None,
|
|
1857
|
+
content: AsyncBinaryTypes | None = None,
|
|
1773
1858
|
files: RequestFiles | None = None,
|
|
1774
1859
|
options: RequestOptions = {},
|
|
1775
1860
|
) -> ResponseT:
|
|
1861
|
+
if body is not None and content is not None:
|
|
1862
|
+
raise TypeError("Passing both `body` and `content` is not supported")
|
|
1863
|
+
if files is not None and content is not None:
|
|
1864
|
+
raise TypeError("Passing both `files` and `content` is not supported")
|
|
1865
|
+
if isinstance(body, bytes):
|
|
1866
|
+
warnings.warn(
|
|
1867
|
+
"Passing raw bytes as `body` is deprecated and will be removed in a future version. "
|
|
1868
|
+
"Please pass raw bytes via the `content` parameter instead.",
|
|
1869
|
+
DeprecationWarning,
|
|
1870
|
+
stacklevel=2,
|
|
1871
|
+
)
|
|
1776
1872
|
opts = FinalRequestOptions.construct(
|
|
1777
|
-
method="patch",
|
|
1873
|
+
method="patch",
|
|
1874
|
+
url=path,
|
|
1875
|
+
json_data=body,
|
|
1876
|
+
content=content,
|
|
1877
|
+
files=await async_to_httpx_files(files),
|
|
1878
|
+
**options,
|
|
1778
1879
|
)
|
|
1779
1880
|
return await self.request(cast_to, opts)
|
|
1780
1881
|
|
|
@@ -1784,11 +1885,23 @@ class AsyncAPIClient(BaseClient[httpx.AsyncClient, AsyncStream[Any]]):
|
|
|
1784
1885
|
*,
|
|
1785
1886
|
cast_to: Type[ResponseT],
|
|
1786
1887
|
body: Body | None = None,
|
|
1888
|
+
content: AsyncBinaryTypes | None = None,
|
|
1787
1889
|
files: RequestFiles | None = None,
|
|
1788
1890
|
options: RequestOptions = {},
|
|
1789
1891
|
) -> ResponseT:
|
|
1892
|
+
if body is not None and content is not None:
|
|
1893
|
+
raise TypeError("Passing both `body` and `content` is not supported")
|
|
1894
|
+
if files is not None and content is not None:
|
|
1895
|
+
raise TypeError("Passing both `files` and `content` is not supported")
|
|
1896
|
+
if isinstance(body, bytes):
|
|
1897
|
+
warnings.warn(
|
|
1898
|
+
"Passing raw bytes as `body` is deprecated and will be removed in a future version. "
|
|
1899
|
+
"Please pass raw bytes via the `content` parameter instead.",
|
|
1900
|
+
DeprecationWarning,
|
|
1901
|
+
stacklevel=2,
|
|
1902
|
+
)
|
|
1790
1903
|
opts = FinalRequestOptions.construct(
|
|
1791
|
-
method="put", url=path, json_data=body, files=await async_to_httpx_files(files), **options
|
|
1904
|
+
method="put", url=path, json_data=body, content=content, files=await async_to_httpx_files(files), **options
|
|
1792
1905
|
)
|
|
1793
1906
|
return await self.request(cast_to, opts)
|
|
1794
1907
|
|
|
@@ -1798,9 +1911,19 @@ class AsyncAPIClient(BaseClient[httpx.AsyncClient, AsyncStream[Any]]):
|
|
|
1798
1911
|
*,
|
|
1799
1912
|
cast_to: Type[ResponseT],
|
|
1800
1913
|
body: Body | None = None,
|
|
1914
|
+
content: AsyncBinaryTypes | None = None,
|
|
1801
1915
|
options: RequestOptions = {},
|
|
1802
1916
|
) -> ResponseT:
|
|
1803
|
-
|
|
1917
|
+
if body is not None and content is not None:
|
|
1918
|
+
raise TypeError("Passing both `body` and `content` is not supported")
|
|
1919
|
+
if isinstance(body, bytes):
|
|
1920
|
+
warnings.warn(
|
|
1921
|
+
"Passing raw bytes as `body` is deprecated and will be removed in a future version. "
|
|
1922
|
+
"Please pass raw bytes via the `content` parameter instead.",
|
|
1923
|
+
DeprecationWarning,
|
|
1924
|
+
stacklevel=2,
|
|
1925
|
+
)
|
|
1926
|
+
opts = FinalRequestOptions.construct(method="delete", url=path, json_data=body, content=content, **options)
|
|
1804
1927
|
return await self.request(cast_to, opts)
|
|
1805
1928
|
|
|
1806
1929
|
def get_api_list(
|
checkout_intents/_client.py
CHANGED
|
@@ -31,8 +31,9 @@ from ._base_client import (
|
|
|
31
31
|
)
|
|
32
32
|
|
|
33
33
|
if TYPE_CHECKING:
|
|
34
|
-
from .resources import brands, checkout_intents
|
|
34
|
+
from .resources import betas, brands, checkout_intents
|
|
35
35
|
from .resources.brands import BrandsResource, AsyncBrandsResource
|
|
36
|
+
from .resources.betas.betas import BetasResource, AsyncBetasResource
|
|
36
37
|
from .resources.checkout_intents import CheckoutIntentsResource, AsyncCheckoutIntentsResource
|
|
37
38
|
|
|
38
39
|
__all__ = [
|
|
@@ -172,6 +173,12 @@ class CheckoutIntents(SyncAPIClient):
|
|
|
172
173
|
|
|
173
174
|
return CheckoutIntentsResource(self)
|
|
174
175
|
|
|
176
|
+
@cached_property
|
|
177
|
+
def betas(self) -> BetasResource:
|
|
178
|
+
from .resources.betas import BetasResource
|
|
179
|
+
|
|
180
|
+
return BetasResource(self)
|
|
181
|
+
|
|
175
182
|
@cached_property
|
|
176
183
|
def brands(self) -> BrandsResource:
|
|
177
184
|
from .resources.brands import BrandsResource
|
|
@@ -395,6 +402,12 @@ class AsyncCheckoutIntents(AsyncAPIClient):
|
|
|
395
402
|
|
|
396
403
|
return AsyncCheckoutIntentsResource(self)
|
|
397
404
|
|
|
405
|
+
@cached_property
|
|
406
|
+
def betas(self) -> AsyncBetasResource:
|
|
407
|
+
from .resources.betas import AsyncBetasResource
|
|
408
|
+
|
|
409
|
+
return AsyncBetasResource(self)
|
|
410
|
+
|
|
398
411
|
@cached_property
|
|
399
412
|
def brands(self) -> AsyncBrandsResource:
|
|
400
413
|
from .resources.brands import AsyncBrandsResource
|
|
@@ -528,6 +541,12 @@ class CheckoutIntentsWithRawResponse:
|
|
|
528
541
|
|
|
529
542
|
return CheckoutIntentsResourceWithRawResponse(self._client.checkout_intents)
|
|
530
543
|
|
|
544
|
+
@cached_property
|
|
545
|
+
def betas(self) -> betas.BetasResourceWithRawResponse:
|
|
546
|
+
from .resources.betas import BetasResourceWithRawResponse
|
|
547
|
+
|
|
548
|
+
return BetasResourceWithRawResponse(self._client.betas)
|
|
549
|
+
|
|
531
550
|
@cached_property
|
|
532
551
|
def brands(self) -> brands.BrandsResourceWithRawResponse:
|
|
533
552
|
from .resources.brands import BrandsResourceWithRawResponse
|
|
@@ -547,6 +566,12 @@ class AsyncCheckoutIntentsWithRawResponse:
|
|
|
547
566
|
|
|
548
567
|
return AsyncCheckoutIntentsResourceWithRawResponse(self._client.checkout_intents)
|
|
549
568
|
|
|
569
|
+
@cached_property
|
|
570
|
+
def betas(self) -> betas.AsyncBetasResourceWithRawResponse:
|
|
571
|
+
from .resources.betas import AsyncBetasResourceWithRawResponse
|
|
572
|
+
|
|
573
|
+
return AsyncBetasResourceWithRawResponse(self._client.betas)
|
|
574
|
+
|
|
550
575
|
@cached_property
|
|
551
576
|
def brands(self) -> brands.AsyncBrandsResourceWithRawResponse:
|
|
552
577
|
from .resources.brands import AsyncBrandsResourceWithRawResponse
|
|
@@ -566,6 +591,12 @@ class CheckoutIntentsWithStreamedResponse:
|
|
|
566
591
|
|
|
567
592
|
return CheckoutIntentsResourceWithStreamingResponse(self._client.checkout_intents)
|
|
568
593
|
|
|
594
|
+
@cached_property
|
|
595
|
+
def betas(self) -> betas.BetasResourceWithStreamingResponse:
|
|
596
|
+
from .resources.betas import BetasResourceWithStreamingResponse
|
|
597
|
+
|
|
598
|
+
return BetasResourceWithStreamingResponse(self._client.betas)
|
|
599
|
+
|
|
569
600
|
@cached_property
|
|
570
601
|
def brands(self) -> brands.BrandsResourceWithStreamingResponse:
|
|
571
602
|
from .resources.brands import BrandsResourceWithStreamingResponse
|
|
@@ -585,6 +616,12 @@ class AsyncCheckoutIntentsWithStreamedResponse:
|
|
|
585
616
|
|
|
586
617
|
return AsyncCheckoutIntentsResourceWithStreamingResponse(self._client.checkout_intents)
|
|
587
618
|
|
|
619
|
+
@cached_property
|
|
620
|
+
def betas(self) -> betas.AsyncBetasResourceWithStreamingResponse:
|
|
621
|
+
from .resources.betas import AsyncBetasResourceWithStreamingResponse
|
|
622
|
+
|
|
623
|
+
return AsyncBetasResourceWithStreamingResponse(self._client.betas)
|
|
624
|
+
|
|
588
625
|
@cached_property
|
|
589
626
|
def brands(self) -> brands.AsyncBrandsResourceWithStreamingResponse:
|
|
590
627
|
from .resources.brands import AsyncBrandsResourceWithStreamingResponse
|
checkout_intents/_models.py
CHANGED
|
@@ -3,7 +3,20 @@ from __future__ import annotations
|
|
|
3
3
|
import os
|
|
4
4
|
import inspect
|
|
5
5
|
import weakref
|
|
6
|
-
from typing import
|
|
6
|
+
from typing import (
|
|
7
|
+
IO,
|
|
8
|
+
TYPE_CHECKING,
|
|
9
|
+
Any,
|
|
10
|
+
Type,
|
|
11
|
+
Union,
|
|
12
|
+
Generic,
|
|
13
|
+
TypeVar,
|
|
14
|
+
Callable,
|
|
15
|
+
Iterable,
|
|
16
|
+
Optional,
|
|
17
|
+
AsyncIterable,
|
|
18
|
+
cast,
|
|
19
|
+
)
|
|
7
20
|
from datetime import date, datetime
|
|
8
21
|
from typing_extensions import (
|
|
9
22
|
List,
|
|
@@ -787,6 +800,7 @@ class FinalRequestOptionsInput(TypedDict, total=False):
|
|
|
787
800
|
timeout: float | Timeout | None
|
|
788
801
|
files: HttpxRequestFiles | None
|
|
789
802
|
idempotency_key: str
|
|
803
|
+
content: Union[bytes, bytearray, IO[bytes], Iterable[bytes], AsyncIterable[bytes], None]
|
|
790
804
|
json_data: Body
|
|
791
805
|
extra_json: AnyMapping
|
|
792
806
|
follow_redirects: bool
|
|
@@ -805,6 +819,7 @@ class FinalRequestOptions(pydantic.BaseModel):
|
|
|
805
819
|
post_parser: Union[Callable[[Any], Any], NotGiven] = NotGiven()
|
|
806
820
|
follow_redirects: Union[bool, None] = None
|
|
807
821
|
|
|
822
|
+
content: Union[bytes, bytearray, IO[bytes], Iterable[bytes], AsyncIterable[bytes], None] = None
|
|
808
823
|
# It should be noted that we cannot use `json` here as that would override
|
|
809
824
|
# a BaseModel method in an incompatible fashion.
|
|
810
825
|
json_data: Union[Body, None] = None
|
checkout_intents/_types.py
CHANGED
|
@@ -13,9 +13,11 @@ from typing import (
|
|
|
13
13
|
Mapping,
|
|
14
14
|
TypeVar,
|
|
15
15
|
Callable,
|
|
16
|
+
Iterable,
|
|
16
17
|
Iterator,
|
|
17
18
|
Optional,
|
|
18
19
|
Sequence,
|
|
20
|
+
AsyncIterable,
|
|
19
21
|
)
|
|
20
22
|
from typing_extensions import (
|
|
21
23
|
Set,
|
|
@@ -56,6 +58,13 @@ if TYPE_CHECKING:
|
|
|
56
58
|
else:
|
|
57
59
|
Base64FileInput = Union[IO[bytes], PathLike]
|
|
58
60
|
FileContent = Union[IO[bytes], bytes, PathLike] # PathLike is not subscriptable in Python 3.8.
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
# Used for sending raw binary data / streaming data in request bodies
|
|
64
|
+
# e.g. for file uploads without multipart encoding
|
|
65
|
+
BinaryTypes = Union[bytes, bytearray, IO[bytes], Iterable[bytes]]
|
|
66
|
+
AsyncBinaryTypes = Union[bytes, bytearray, IO[bytes], AsyncIterable[bytes]]
|
|
67
|
+
|
|
59
68
|
FileTypes = Union[
|
|
60
69
|
# file (or bytes)
|
|
61
70
|
FileContent,
|
checkout_intents/_version.py
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
2
|
|
|
3
|
+
from .betas import (
|
|
4
|
+
BetasResource,
|
|
5
|
+
AsyncBetasResource,
|
|
6
|
+
BetasResourceWithRawResponse,
|
|
7
|
+
AsyncBetasResourceWithRawResponse,
|
|
8
|
+
BetasResourceWithStreamingResponse,
|
|
9
|
+
AsyncBetasResourceWithStreamingResponse,
|
|
10
|
+
)
|
|
3
11
|
from .brands import (
|
|
4
12
|
BrandsResource,
|
|
5
13
|
AsyncBrandsResource,
|
|
@@ -24,6 +32,12 @@ __all__ = [
|
|
|
24
32
|
"AsyncCheckoutIntentsResourceWithRawResponse",
|
|
25
33
|
"CheckoutIntentsResourceWithStreamingResponse",
|
|
26
34
|
"AsyncCheckoutIntentsResourceWithStreamingResponse",
|
|
35
|
+
"BetasResource",
|
|
36
|
+
"AsyncBetasResource",
|
|
37
|
+
"BetasResourceWithRawResponse",
|
|
38
|
+
"AsyncBetasResourceWithRawResponse",
|
|
39
|
+
"BetasResourceWithStreamingResponse",
|
|
40
|
+
"AsyncBetasResourceWithStreamingResponse",
|
|
27
41
|
"BrandsResource",
|
|
28
42
|
"AsyncBrandsResource",
|
|
29
43
|
"BrandsResourceWithRawResponse",
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from .betas import (
|
|
4
|
+
BetasResource,
|
|
5
|
+
AsyncBetasResource,
|
|
6
|
+
BetasResourceWithRawResponse,
|
|
7
|
+
AsyncBetasResourceWithRawResponse,
|
|
8
|
+
BetasResourceWithStreamingResponse,
|
|
9
|
+
AsyncBetasResourceWithStreamingResponse,
|
|
10
|
+
)
|
|
11
|
+
from .checkout_sessions import (
|
|
12
|
+
CheckoutSessionsResource,
|
|
13
|
+
AsyncCheckoutSessionsResource,
|
|
14
|
+
CheckoutSessionsResourceWithRawResponse,
|
|
15
|
+
AsyncCheckoutSessionsResourceWithRawResponse,
|
|
16
|
+
CheckoutSessionsResourceWithStreamingResponse,
|
|
17
|
+
AsyncCheckoutSessionsResourceWithStreamingResponse,
|
|
18
|
+
)
|
|
19
|
+
|
|
20
|
+
__all__ = [
|
|
21
|
+
"CheckoutSessionsResource",
|
|
22
|
+
"AsyncCheckoutSessionsResource",
|
|
23
|
+
"CheckoutSessionsResourceWithRawResponse",
|
|
24
|
+
"AsyncCheckoutSessionsResourceWithRawResponse",
|
|
25
|
+
"CheckoutSessionsResourceWithStreamingResponse",
|
|
26
|
+
"AsyncCheckoutSessionsResourceWithStreamingResponse",
|
|
27
|
+
"BetasResource",
|
|
28
|
+
"AsyncBetasResource",
|
|
29
|
+
"BetasResourceWithRawResponse",
|
|
30
|
+
"AsyncBetasResourceWithRawResponse",
|
|
31
|
+
"BetasResourceWithStreamingResponse",
|
|
32
|
+
"AsyncBetasResourceWithStreamingResponse",
|
|
33
|
+
]
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from ..._compat import cached_property
|
|
6
|
+
from ..._resource import SyncAPIResource, AsyncAPIResource
|
|
7
|
+
from .checkout_sessions import (
|
|
8
|
+
CheckoutSessionsResource,
|
|
9
|
+
AsyncCheckoutSessionsResource,
|
|
10
|
+
CheckoutSessionsResourceWithRawResponse,
|
|
11
|
+
AsyncCheckoutSessionsResourceWithRawResponse,
|
|
12
|
+
CheckoutSessionsResourceWithStreamingResponse,
|
|
13
|
+
AsyncCheckoutSessionsResourceWithStreamingResponse,
|
|
14
|
+
)
|
|
15
|
+
|
|
16
|
+
__all__ = ["BetasResource", "AsyncBetasResource"]
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class BetasResource(SyncAPIResource):
|
|
20
|
+
@cached_property
|
|
21
|
+
def checkout_sessions(self) -> CheckoutSessionsResource:
|
|
22
|
+
return CheckoutSessionsResource(self._client)
|
|
23
|
+
|
|
24
|
+
@cached_property
|
|
25
|
+
def with_raw_response(self) -> BetasResourceWithRawResponse:
|
|
26
|
+
"""
|
|
27
|
+
This property can be used as a prefix for any HTTP method call to return
|
|
28
|
+
the raw response object instead of the parsed content.
|
|
29
|
+
|
|
30
|
+
For more information, see https://www.github.com/rye-com/checkout-intents-python#accessing-raw-response-data-eg-headers
|
|
31
|
+
"""
|
|
32
|
+
return BetasResourceWithRawResponse(self)
|
|
33
|
+
|
|
34
|
+
@cached_property
|
|
35
|
+
def with_streaming_response(self) -> BetasResourceWithStreamingResponse:
|
|
36
|
+
"""
|
|
37
|
+
An alternative to `.with_raw_response` that doesn't eagerly read the response body.
|
|
38
|
+
|
|
39
|
+
For more information, see https://www.github.com/rye-com/checkout-intents-python#with_streaming_response
|
|
40
|
+
"""
|
|
41
|
+
return BetasResourceWithStreamingResponse(self)
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
class AsyncBetasResource(AsyncAPIResource):
|
|
45
|
+
@cached_property
|
|
46
|
+
def checkout_sessions(self) -> AsyncCheckoutSessionsResource:
|
|
47
|
+
return AsyncCheckoutSessionsResource(self._client)
|
|
48
|
+
|
|
49
|
+
@cached_property
|
|
50
|
+
def with_raw_response(self) -> AsyncBetasResourceWithRawResponse:
|
|
51
|
+
"""
|
|
52
|
+
This property can be used as a prefix for any HTTP method call to return
|
|
53
|
+
the raw response object instead of the parsed content.
|
|
54
|
+
|
|
55
|
+
For more information, see https://www.github.com/rye-com/checkout-intents-python#accessing-raw-response-data-eg-headers
|
|
56
|
+
"""
|
|
57
|
+
return AsyncBetasResourceWithRawResponse(self)
|
|
58
|
+
|
|
59
|
+
@cached_property
|
|
60
|
+
def with_streaming_response(self) -> AsyncBetasResourceWithStreamingResponse:
|
|
61
|
+
"""
|
|
62
|
+
An alternative to `.with_raw_response` that doesn't eagerly read the response body.
|
|
63
|
+
|
|
64
|
+
For more information, see https://www.github.com/rye-com/checkout-intents-python#with_streaming_response
|
|
65
|
+
"""
|
|
66
|
+
return AsyncBetasResourceWithStreamingResponse(self)
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
class BetasResourceWithRawResponse:
|
|
70
|
+
def __init__(self, betas: BetasResource) -> None:
|
|
71
|
+
self._betas = betas
|
|
72
|
+
|
|
73
|
+
@cached_property
|
|
74
|
+
def checkout_sessions(self) -> CheckoutSessionsResourceWithRawResponse:
|
|
75
|
+
return CheckoutSessionsResourceWithRawResponse(self._betas.checkout_sessions)
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
class AsyncBetasResourceWithRawResponse:
|
|
79
|
+
def __init__(self, betas: AsyncBetasResource) -> None:
|
|
80
|
+
self._betas = betas
|
|
81
|
+
|
|
82
|
+
@cached_property
|
|
83
|
+
def checkout_sessions(self) -> AsyncCheckoutSessionsResourceWithRawResponse:
|
|
84
|
+
return AsyncCheckoutSessionsResourceWithRawResponse(self._betas.checkout_sessions)
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
class BetasResourceWithStreamingResponse:
|
|
88
|
+
def __init__(self, betas: BetasResource) -> None:
|
|
89
|
+
self._betas = betas
|
|
90
|
+
|
|
91
|
+
@cached_property
|
|
92
|
+
def checkout_sessions(self) -> CheckoutSessionsResourceWithStreamingResponse:
|
|
93
|
+
return CheckoutSessionsResourceWithStreamingResponse(self._betas.checkout_sessions)
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
class AsyncBetasResourceWithStreamingResponse:
|
|
97
|
+
def __init__(self, betas: AsyncBetasResource) -> None:
|
|
98
|
+
self._betas = betas
|
|
99
|
+
|
|
100
|
+
@cached_property
|
|
101
|
+
def checkout_sessions(self) -> AsyncCheckoutSessionsResourceWithStreamingResponse:
|
|
102
|
+
return AsyncCheckoutSessionsResourceWithStreamingResponse(self._betas.checkout_sessions)
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Iterable
|
|
6
|
+
|
|
7
|
+
import httpx
|
|
8
|
+
|
|
9
|
+
from ..._types import Body, Omit, Query, Headers, NotGiven, SequenceNotStr, omit, not_given
|
|
10
|
+
from ..._utils import maybe_transform, async_maybe_transform
|
|
11
|
+
from ..._compat import cached_property
|
|
12
|
+
from ..._resource import SyncAPIResource, AsyncAPIResource
|
|
13
|
+
from ..._response import (
|
|
14
|
+
to_raw_response_wrapper,
|
|
15
|
+
to_streamed_response_wrapper,
|
|
16
|
+
async_to_raw_response_wrapper,
|
|
17
|
+
async_to_streamed_response_wrapper,
|
|
18
|
+
)
|
|
19
|
+
from ...types.betas import checkout_session_create_params
|
|
20
|
+
from ..._base_client import make_request_options
|
|
21
|
+
from ...types.checkout_session import CheckoutSession
|
|
22
|
+
from ...types.variant_selection_param import VariantSelectionParam
|
|
23
|
+
|
|
24
|
+
__all__ = ["CheckoutSessionsResource", "AsyncCheckoutSessionsResource"]
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class CheckoutSessionsResource(SyncAPIResource):
|
|
28
|
+
@cached_property
|
|
29
|
+
def with_raw_response(self) -> CheckoutSessionsResourceWithRawResponse:
|
|
30
|
+
"""
|
|
31
|
+
This property can be used as a prefix for any HTTP method call to return
|
|
32
|
+
the raw response object instead of the parsed content.
|
|
33
|
+
|
|
34
|
+
For more information, see https://www.github.com/rye-com/checkout-intents-python#accessing-raw-response-data-eg-headers
|
|
35
|
+
"""
|
|
36
|
+
return CheckoutSessionsResourceWithRawResponse(self)
|
|
37
|
+
|
|
38
|
+
@cached_property
|
|
39
|
+
def with_streaming_response(self) -> CheckoutSessionsResourceWithStreamingResponse:
|
|
40
|
+
"""
|
|
41
|
+
An alternative to `.with_raw_response` that doesn't eagerly read the response body.
|
|
42
|
+
|
|
43
|
+
For more information, see https://www.github.com/rye-com/checkout-intents-python#with_streaming_response
|
|
44
|
+
"""
|
|
45
|
+
return CheckoutSessionsResourceWithStreamingResponse(self)
|
|
46
|
+
|
|
47
|
+
def create(
|
|
48
|
+
self,
|
|
49
|
+
*,
|
|
50
|
+
product_url: str,
|
|
51
|
+
quantity: int,
|
|
52
|
+
buyer: checkout_session_create_params.Buyer | Omit = omit,
|
|
53
|
+
constraints: checkout_session_create_params.Constraints | Omit = omit,
|
|
54
|
+
promo_codes: SequenceNotStr[str] | Omit = omit,
|
|
55
|
+
variant_selections: Iterable[VariantSelectionParam] | Omit = omit,
|
|
56
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
57
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
58
|
+
extra_headers: Headers | None = None,
|
|
59
|
+
extra_query: Query | None = None,
|
|
60
|
+
extra_body: Body | None = None,
|
|
61
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
62
|
+
) -> CheckoutSession:
|
|
63
|
+
"""
|
|
64
|
+
Create a new checkout session.
|
|
65
|
+
|
|
66
|
+
Checkout sessions are hosted checkout forms your shoppers can use to complete
|
|
67
|
+
their purchases.
|
|
68
|
+
|
|
69
|
+
Args:
|
|
70
|
+
buyer: Optional buyer information, used to pre-fill the checkout form with the buyer's
|
|
71
|
+
information.
|
|
72
|
+
|
|
73
|
+
extra_headers: Send extra headers
|
|
74
|
+
|
|
75
|
+
extra_query: Add additional query parameters to the request
|
|
76
|
+
|
|
77
|
+
extra_body: Add additional JSON properties to the request
|
|
78
|
+
|
|
79
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
80
|
+
"""
|
|
81
|
+
return self._post(
|
|
82
|
+
"/api/v1/betas/checkout-sessions",
|
|
83
|
+
body=maybe_transform(
|
|
84
|
+
{
|
|
85
|
+
"product_url": product_url,
|
|
86
|
+
"quantity": quantity,
|
|
87
|
+
"buyer": buyer,
|
|
88
|
+
"constraints": constraints,
|
|
89
|
+
"promo_codes": promo_codes,
|
|
90
|
+
"variant_selections": variant_selections,
|
|
91
|
+
},
|
|
92
|
+
checkout_session_create_params.CheckoutSessionCreateParams,
|
|
93
|
+
),
|
|
94
|
+
options=make_request_options(
|
|
95
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
96
|
+
),
|
|
97
|
+
cast_to=CheckoutSession,
|
|
98
|
+
)
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
class AsyncCheckoutSessionsResource(AsyncAPIResource):
|
|
102
|
+
@cached_property
|
|
103
|
+
def with_raw_response(self) -> AsyncCheckoutSessionsResourceWithRawResponse:
|
|
104
|
+
"""
|
|
105
|
+
This property can be used as a prefix for any HTTP method call to return
|
|
106
|
+
the raw response object instead of the parsed content.
|
|
107
|
+
|
|
108
|
+
For more information, see https://www.github.com/rye-com/checkout-intents-python#accessing-raw-response-data-eg-headers
|
|
109
|
+
"""
|
|
110
|
+
return AsyncCheckoutSessionsResourceWithRawResponse(self)
|
|
111
|
+
|
|
112
|
+
@cached_property
|
|
113
|
+
def with_streaming_response(self) -> AsyncCheckoutSessionsResourceWithStreamingResponse:
|
|
114
|
+
"""
|
|
115
|
+
An alternative to `.with_raw_response` that doesn't eagerly read the response body.
|
|
116
|
+
|
|
117
|
+
For more information, see https://www.github.com/rye-com/checkout-intents-python#with_streaming_response
|
|
118
|
+
"""
|
|
119
|
+
return AsyncCheckoutSessionsResourceWithStreamingResponse(self)
|
|
120
|
+
|
|
121
|
+
async def create(
|
|
122
|
+
self,
|
|
123
|
+
*,
|
|
124
|
+
product_url: str,
|
|
125
|
+
quantity: int,
|
|
126
|
+
buyer: checkout_session_create_params.Buyer | Omit = omit,
|
|
127
|
+
constraints: checkout_session_create_params.Constraints | Omit = omit,
|
|
128
|
+
promo_codes: SequenceNotStr[str] | Omit = omit,
|
|
129
|
+
variant_selections: Iterable[VariantSelectionParam] | Omit = omit,
|
|
130
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
131
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
132
|
+
extra_headers: Headers | None = None,
|
|
133
|
+
extra_query: Query | None = None,
|
|
134
|
+
extra_body: Body | None = None,
|
|
135
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
136
|
+
) -> CheckoutSession:
|
|
137
|
+
"""
|
|
138
|
+
Create a new checkout session.
|
|
139
|
+
|
|
140
|
+
Checkout sessions are hosted checkout forms your shoppers can use to complete
|
|
141
|
+
their purchases.
|
|
142
|
+
|
|
143
|
+
Args:
|
|
144
|
+
buyer: Optional buyer information, used to pre-fill the checkout form with the buyer's
|
|
145
|
+
information.
|
|
146
|
+
|
|
147
|
+
extra_headers: Send extra headers
|
|
148
|
+
|
|
149
|
+
extra_query: Add additional query parameters to the request
|
|
150
|
+
|
|
151
|
+
extra_body: Add additional JSON properties to the request
|
|
152
|
+
|
|
153
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
154
|
+
"""
|
|
155
|
+
return await self._post(
|
|
156
|
+
"/api/v1/betas/checkout-sessions",
|
|
157
|
+
body=await async_maybe_transform(
|
|
158
|
+
{
|
|
159
|
+
"product_url": product_url,
|
|
160
|
+
"quantity": quantity,
|
|
161
|
+
"buyer": buyer,
|
|
162
|
+
"constraints": constraints,
|
|
163
|
+
"promo_codes": promo_codes,
|
|
164
|
+
"variant_selections": variant_selections,
|
|
165
|
+
},
|
|
166
|
+
checkout_session_create_params.CheckoutSessionCreateParams,
|
|
167
|
+
),
|
|
168
|
+
options=make_request_options(
|
|
169
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
170
|
+
),
|
|
171
|
+
cast_to=CheckoutSession,
|
|
172
|
+
)
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
class CheckoutSessionsResourceWithRawResponse:
|
|
176
|
+
def __init__(self, checkout_sessions: CheckoutSessionsResource) -> None:
|
|
177
|
+
self._checkout_sessions = checkout_sessions
|
|
178
|
+
|
|
179
|
+
self.create = to_raw_response_wrapper(
|
|
180
|
+
checkout_sessions.create,
|
|
181
|
+
)
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
class AsyncCheckoutSessionsResourceWithRawResponse:
|
|
185
|
+
def __init__(self, checkout_sessions: AsyncCheckoutSessionsResource) -> None:
|
|
186
|
+
self._checkout_sessions = checkout_sessions
|
|
187
|
+
|
|
188
|
+
self.create = async_to_raw_response_wrapper(
|
|
189
|
+
checkout_sessions.create,
|
|
190
|
+
)
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
class CheckoutSessionsResourceWithStreamingResponse:
|
|
194
|
+
def __init__(self, checkout_sessions: CheckoutSessionsResource) -> None:
|
|
195
|
+
self._checkout_sessions = checkout_sessions
|
|
196
|
+
|
|
197
|
+
self.create = to_streamed_response_wrapper(
|
|
198
|
+
checkout_sessions.create,
|
|
199
|
+
)
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
class AsyncCheckoutSessionsResourceWithStreamingResponse:
|
|
203
|
+
def __init__(self, checkout_sessions: AsyncCheckoutSessionsResource) -> None:
|
|
204
|
+
self._checkout_sessions = checkout_sessions
|
|
205
|
+
|
|
206
|
+
self.create = async_to_streamed_response_wrapper(
|
|
207
|
+
checkout_sessions.create,
|
|
208
|
+
)
|
|
@@ -70,7 +70,7 @@ class CheckoutIntentsResource(SyncAPIResource):
|
|
|
70
70
|
*,
|
|
71
71
|
buyer: BuyerParam,
|
|
72
72
|
product_url: str,
|
|
73
|
-
quantity:
|
|
73
|
+
quantity: int,
|
|
74
74
|
constraints: checkout_intent_create_params.Constraints | Omit = omit,
|
|
75
75
|
promo_codes: SequenceNotStr[str] | Omit = omit,
|
|
76
76
|
variant_selections: Iterable[VariantSelectionParam] | Omit = omit,
|
|
@@ -295,7 +295,7 @@ class CheckoutIntentsResource(SyncAPIResource):
|
|
|
295
295
|
*,
|
|
296
296
|
buyer: BuyerParam,
|
|
297
297
|
product_url: str,
|
|
298
|
-
quantity:
|
|
298
|
+
quantity: int,
|
|
299
299
|
constraints: checkout_intent_purchase_params.Constraints | Omit = omit,
|
|
300
300
|
promo_codes: SequenceNotStr[str] | Omit = omit,
|
|
301
301
|
variant_selections: Iterable[VariantSelectionParam] | Omit = omit,
|
|
@@ -563,7 +563,7 @@ class CheckoutIntentsResource(SyncAPIResource):
|
|
|
563
563
|
*,
|
|
564
564
|
buyer: BuyerParam,
|
|
565
565
|
product_url: str,
|
|
566
|
-
quantity:
|
|
566
|
+
quantity: int,
|
|
567
567
|
variant_selections: Iterable[VariantSelectionParam] | Omit = omit,
|
|
568
568
|
poll_interval: float = 5.0,
|
|
569
569
|
max_attempts: int = 120,
|
|
@@ -731,7 +731,7 @@ class AsyncCheckoutIntentsResource(AsyncAPIResource):
|
|
|
731
731
|
*,
|
|
732
732
|
buyer: BuyerParam,
|
|
733
733
|
product_url: str,
|
|
734
|
-
quantity:
|
|
734
|
+
quantity: int,
|
|
735
735
|
constraints: checkout_intent_create_params.Constraints | Omit = omit,
|
|
736
736
|
promo_codes: SequenceNotStr[str] | Omit = omit,
|
|
737
737
|
variant_selections: Iterable[VariantSelectionParam] | Omit = omit,
|
|
@@ -956,7 +956,7 @@ class AsyncCheckoutIntentsResource(AsyncAPIResource):
|
|
|
956
956
|
*,
|
|
957
957
|
buyer: BuyerParam,
|
|
958
958
|
product_url: str,
|
|
959
|
-
quantity:
|
|
959
|
+
quantity: int,
|
|
960
960
|
constraints: checkout_intent_purchase_params.Constraints | Omit = omit,
|
|
961
961
|
promo_codes: SequenceNotStr[str] | Omit = omit,
|
|
962
962
|
variant_selections: Iterable[VariantSelectionParam] | Omit = omit,
|
|
@@ -1224,7 +1224,7 @@ class AsyncCheckoutIntentsResource(AsyncAPIResource):
|
|
|
1224
1224
|
*,
|
|
1225
1225
|
buyer: BuyerParam,
|
|
1226
1226
|
product_url: str,
|
|
1227
|
-
quantity:
|
|
1227
|
+
quantity: int,
|
|
1228
1228
|
variant_selections: Iterable[VariantSelectionParam] | Omit = omit,
|
|
1229
1229
|
poll_interval: float = 5.0,
|
|
1230
1230
|
max_attempts: int = 120,
|
|
@@ -8,6 +8,7 @@ from .offer import Offer as Offer
|
|
|
8
8
|
from .buyer_param import BuyerParam as BuyerParam
|
|
9
9
|
from .payment_method import PaymentMethod as PaymentMethod
|
|
10
10
|
from .checkout_intent import CheckoutIntent as CheckoutIntent
|
|
11
|
+
from .checkout_session import CheckoutSession as CheckoutSession
|
|
11
12
|
from .variant_selection import VariantSelection as VariantSelection
|
|
12
13
|
from .base_checkout_intent import BaseCheckoutIntent as BaseCheckoutIntent
|
|
13
14
|
from .payment_method_param import PaymentMethodParam as PaymentMethodParam
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Iterable
|
|
6
|
+
from typing_extensions import Required, Annotated, TypedDict
|
|
7
|
+
|
|
8
|
+
from ..._types import SequenceNotStr
|
|
9
|
+
from ..._utils import PropertyInfo
|
|
10
|
+
from ..variant_selection_param import VariantSelectionParam
|
|
11
|
+
|
|
12
|
+
__all__ = ["CheckoutSessionCreateParams", "Buyer", "Constraints"]
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class CheckoutSessionCreateParams(TypedDict, total=False):
|
|
16
|
+
product_url: Required[Annotated[str, PropertyInfo(alias="productUrl")]]
|
|
17
|
+
|
|
18
|
+
quantity: Required[int]
|
|
19
|
+
|
|
20
|
+
buyer: Buyer
|
|
21
|
+
"""
|
|
22
|
+
Optional buyer information, used to pre-fill the checkout form with the buyer's
|
|
23
|
+
information.
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
constraints: Constraints
|
|
27
|
+
|
|
28
|
+
promo_codes: Annotated[SequenceNotStr[str], PropertyInfo(alias="promoCodes")]
|
|
29
|
+
|
|
30
|
+
variant_selections: Annotated[Iterable[VariantSelectionParam], PropertyInfo(alias="variantSelections")]
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
class Buyer(TypedDict, total=False):
|
|
34
|
+
"""
|
|
35
|
+
Optional buyer information, used to pre-fill the checkout form with the buyer's information.
|
|
36
|
+
"""
|
|
37
|
+
|
|
38
|
+
address1: str
|
|
39
|
+
|
|
40
|
+
address2: str
|
|
41
|
+
|
|
42
|
+
city: str
|
|
43
|
+
|
|
44
|
+
country: str
|
|
45
|
+
|
|
46
|
+
email: str
|
|
47
|
+
|
|
48
|
+
first_name: Annotated[str, PropertyInfo(alias="firstName")]
|
|
49
|
+
|
|
50
|
+
last_name: Annotated[str, PropertyInfo(alias="lastName")]
|
|
51
|
+
|
|
52
|
+
phone: str
|
|
53
|
+
|
|
54
|
+
postal_code: Annotated[str, PropertyInfo(alias="postalCode")]
|
|
55
|
+
|
|
56
|
+
province: str
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
class Constraints(TypedDict, total=False):
|
|
60
|
+
max_shipping_price: Annotated[int, PropertyInfo(alias="maxShippingPrice")]
|
|
61
|
+
|
|
62
|
+
max_total_price: Annotated[int, PropertyInfo(alias="maxTotalPrice")]
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from .._models import BaseModel
|
|
4
|
+
|
|
5
|
+
__all__ = ["CheckoutSession"]
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class CheckoutSession(BaseModel):
|
|
9
|
+
"""
|
|
10
|
+
A checkout session represents a hosted checkout form that shoppers can use to complete their purchases.
|
|
11
|
+
|
|
12
|
+
Checkout sessions provide a pre-built UI for collecting payment and shipping information, allowing you to quickly integrate checkout functionality without building your own forms.
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
url: str
|
|
16
|
+
"""URL to send your user to for checkout. This URL is valid for 4 hours."""
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: checkout-intents
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.11.0
|
|
4
4
|
Summary: The official Python library for the Checkout Intents API
|
|
5
5
|
Project-URL: Homepage, https://github.com/rye-com/checkout-intents-python
|
|
6
6
|
Project-URL: Repository, https://github.com/rye-com/checkout-intents-python
|
|
@@ -82,7 +82,7 @@ checkout_intent = client.checkout_intents.purchase(
|
|
|
82
82
|
"province": "NY",
|
|
83
83
|
},
|
|
84
84
|
payment_method={
|
|
85
|
-
"stripe_token": "
|
|
85
|
+
"stripe_token": "tok_1RkrWWHGDlstla3f1Fc7ZrhH",
|
|
86
86
|
"type": "stripe_token",
|
|
87
87
|
},
|
|
88
88
|
product_url="https://rye-protocol.myshopify.com/products/rye-sticker",
|
|
@@ -217,7 +217,7 @@ async def main() -> None:
|
|
|
217
217
|
"province": "NY",
|
|
218
218
|
},
|
|
219
219
|
payment_method={
|
|
220
|
-
"stripe_token": "
|
|
220
|
+
"stripe_token": "tok_1RkrWWHGDlstla3f1Fc7ZrhH",
|
|
221
221
|
"type": "stripe_token",
|
|
222
222
|
},
|
|
223
223
|
product_url="https://rye-protocol.myshopify.com/products/rye-sticker",
|
|
@@ -270,7 +270,7 @@ async def main() -> None:
|
|
|
270
270
|
"province": "NY",
|
|
271
271
|
},
|
|
272
272
|
payment_method={
|
|
273
|
-
"stripe_token": "
|
|
273
|
+
"stripe_token": "tok_1RkrWWHGDlstla3f1Fc7ZrhH",
|
|
274
274
|
"type": "stripe_token",
|
|
275
275
|
},
|
|
276
276
|
product_url="https://rye-protocol.myshopify.com/products/rye-sticker",
|
|
@@ -408,7 +408,7 @@ from checkout_intents import CheckoutIntents
|
|
|
408
408
|
client = CheckoutIntents()
|
|
409
409
|
|
|
410
410
|
try:
|
|
411
|
-
client.checkout_intents.
|
|
411
|
+
client.checkout_intents.create(
|
|
412
412
|
buyer={
|
|
413
413
|
"address1": "123 Main St",
|
|
414
414
|
"city": "New York",
|
|
@@ -420,10 +420,6 @@ try:
|
|
|
420
420
|
"postal_code": "10001",
|
|
421
421
|
"province": "NY",
|
|
422
422
|
},
|
|
423
|
-
payment_method={
|
|
424
|
-
"stripe_token": "tok_visa",
|
|
425
|
-
"type": "stripe_token",
|
|
426
|
-
},
|
|
427
423
|
product_url="https://rye-protocol.myshopify.com/products/rye-sticker",
|
|
428
424
|
quantity=1,
|
|
429
425
|
)
|
|
@@ -489,7 +485,7 @@ client = CheckoutIntents(
|
|
|
489
485
|
)
|
|
490
486
|
|
|
491
487
|
# Or, configure per-request:
|
|
492
|
-
client.with_options(max_retries=5).checkout_intents.
|
|
488
|
+
client.with_options(max_retries=5).checkout_intents.create(
|
|
493
489
|
buyer={
|
|
494
490
|
"address1": "123 Main St",
|
|
495
491
|
"city": "New York",
|
|
@@ -501,10 +497,6 @@ client.with_options(max_retries=5).checkout_intents.purchase(
|
|
|
501
497
|
"postal_code": "10001",
|
|
502
498
|
"province": "NY",
|
|
503
499
|
},
|
|
504
|
-
payment_method={
|
|
505
|
-
"stripe_token": "tok_visa",
|
|
506
|
-
"type": "stripe_token",
|
|
507
|
-
},
|
|
508
500
|
product_url="https://rye-protocol.myshopify.com/products/rye-sticker",
|
|
509
501
|
quantity=1,
|
|
510
502
|
)
|
|
@@ -530,7 +522,7 @@ client = CheckoutIntents(
|
|
|
530
522
|
)
|
|
531
523
|
|
|
532
524
|
# Override per-request:
|
|
533
|
-
client.with_options(timeout=5.0).checkout_intents.
|
|
525
|
+
client.with_options(timeout=5.0).checkout_intents.create(
|
|
534
526
|
buyer={
|
|
535
527
|
"address1": "123 Main St",
|
|
536
528
|
"city": "New York",
|
|
@@ -542,10 +534,6 @@ client.with_options(timeout=5.0).checkout_intents.purchase(
|
|
|
542
534
|
"postal_code": "10001",
|
|
543
535
|
"province": "NY",
|
|
544
536
|
},
|
|
545
|
-
payment_method={
|
|
546
|
-
"stripe_token": "tok_visa",
|
|
547
|
-
"type": "stripe_token",
|
|
548
|
-
},
|
|
549
537
|
product_url="https://rye-protocol.myshopify.com/products/rye-sticker",
|
|
550
538
|
quantity=1,
|
|
551
539
|
)
|
|
@@ -589,7 +577,7 @@ The "raw" Response object can be accessed by prefixing `.with_raw_response.` to
|
|
|
589
577
|
from checkout_intents import CheckoutIntents
|
|
590
578
|
|
|
591
579
|
client = CheckoutIntents()
|
|
592
|
-
response = client.checkout_intents.with_raw_response.
|
|
580
|
+
response = client.checkout_intents.with_raw_response.create(
|
|
593
581
|
buyer={
|
|
594
582
|
"address1": "123 Main St",
|
|
595
583
|
"city": "New York",
|
|
@@ -601,16 +589,12 @@ response = client.checkout_intents.with_raw_response.purchase(
|
|
|
601
589
|
"postal_code": "10001",
|
|
602
590
|
"province": "NY",
|
|
603
591
|
},
|
|
604
|
-
payment_method={
|
|
605
|
-
"stripe_token": "tok_visa",
|
|
606
|
-
"type": "stripe_token",
|
|
607
|
-
},
|
|
608
592
|
product_url="https://rye-protocol.myshopify.com/products/rye-sticker",
|
|
609
593
|
quantity=1,
|
|
610
594
|
)
|
|
611
595
|
print(response.headers.get('X-My-Header'))
|
|
612
596
|
|
|
613
|
-
checkout_intent = response.parse() # get the object that `checkout_intents.
|
|
597
|
+
checkout_intent = response.parse() # get the object that `checkout_intents.create()` would have returned
|
|
614
598
|
print(checkout_intent)
|
|
615
599
|
```
|
|
616
600
|
|
|
@@ -625,7 +609,7 @@ The above interface eagerly reads the full response body when you make the reque
|
|
|
625
609
|
To stream the response body, use `.with_streaming_response` instead, which requires a context manager and only reads the response body once you call `.read()`, `.text()`, `.json()`, `.iter_bytes()`, `.iter_text()`, `.iter_lines()` or `.parse()`. In the async client, these are async methods.
|
|
626
610
|
|
|
627
611
|
```python
|
|
628
|
-
with client.checkout_intents.with_streaming_response.
|
|
612
|
+
with client.checkout_intents.with_streaming_response.create(
|
|
629
613
|
buyer={
|
|
630
614
|
"address1": "123 Main St",
|
|
631
615
|
"city": "New York",
|
|
@@ -637,10 +621,6 @@ with client.checkout_intents.with_streaming_response.purchase(
|
|
|
637
621
|
"postal_code": "10001",
|
|
638
622
|
"province": "NY",
|
|
639
623
|
},
|
|
640
|
-
payment_method={
|
|
641
|
-
"stripe_token": "tok_visa",
|
|
642
|
-
"type": "stripe_token",
|
|
643
|
-
},
|
|
644
624
|
product_url="https://rye-protocol.myshopify.com/products/rye-sticker",
|
|
645
625
|
quantity=1,
|
|
646
626
|
) as response:
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
checkout_intents/__init__.py,sha256=5m0_Ktnyya4CJ0vdWZbAv7qZMeR1VnXqN_MJtH3RJTM,2833
|
|
2
|
-
checkout_intents/_base_client.py,sha256=
|
|
3
|
-
checkout_intents/_client.py,sha256=
|
|
2
|
+
checkout_intents/_base_client.py,sha256=Y7hFug5-aMslho0bjwHHlk_gCxYhwuceCHEib1ByJxU,73419
|
|
3
|
+
checkout_intents/_client.py,sha256=tClhspFXBkudspX5xGUhIy8MnG2caIt_5svkHi0qhCk,25244
|
|
4
4
|
checkout_intents/_compat.py,sha256=DQBVORjFb33zch24jzkhM14msvnzY7mmSmgDLaVFUM8,6562
|
|
5
5
|
checkout_intents/_constants.py,sha256=S14PFzyN9-I31wiV7SmIlL5Ga0MLHxdvegInGdXH7tM,462
|
|
6
6
|
checkout_intents/_exceptions.py,sha256=oQn7Y6LzccgRDOtdg20l68bXtgf2tgVNKIrufJPDsuk,4252
|
|
7
7
|
checkout_intents/_files.py,sha256=KnEzGi_O756MvKyJ4fOCW_u3JhOeWPQ4RsmDvqihDQU,3545
|
|
8
|
-
checkout_intents/_models.py,sha256=
|
|
8
|
+
checkout_intents/_models.py,sha256=2mDFEHhVuMWY5cPIhZ9ON1hHDoLVevmuk9P8aezzdAQ,32270
|
|
9
9
|
checkout_intents/_qs.py,sha256=craIKyvPktJ94cvf9zn8j8ekG9dWJzhWv0ob34lIOv4,4828
|
|
10
10
|
checkout_intents/_resource.py,sha256=X-eWffEBAgzTZvakLqNUjwgidMKfBFRmCeeOiuko4lg,1154
|
|
11
11
|
checkout_intents/_response.py,sha256=sLqxWBxzmVqPsdr2x5z6d87h8jb1U-Huvh2YFg-U6nE,28876
|
|
12
12
|
checkout_intents/_streaming.py,sha256=y8SjBVAw2SDdVczQsP1T3dufnx4040C5fQqz-jGSvmg,10257
|
|
13
|
-
checkout_intents/_types.py,sha256=
|
|
14
|
-
checkout_intents/_version.py,sha256=
|
|
13
|
+
checkout_intents/_types.py,sha256=8crq0wrqM8FR-GJ-nXMwjLlp0QEjfJT5H01fve7mjs4,7604
|
|
14
|
+
checkout_intents/_version.py,sha256=oH4MSe6tCtyuBhXFqKM_xSWWc763yD4crOrrZ6szjVc,169
|
|
15
15
|
checkout_intents/pagination.py,sha256=VMe3ftq-qqAku2ERRTOz7iZOoMQ_KKp2HIUl_I8oAXE,2908
|
|
16
16
|
checkout_intents/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
17
17
|
checkout_intents/_utils/__init__.py,sha256=7fch0GT9zpNnErbciSpUNa-SjTxxjY6kxHxKMOM4AGs,2305
|
|
@@ -27,27 +27,33 @@ checkout_intents/_utils/_transform.py,sha256=NjCzmnfqYrsAikUHQig6N9QfuTVbKipuP3u
|
|
|
27
27
|
checkout_intents/_utils/_typing.py,sha256=N_5PPuFNsaygbtA_npZd98SVN1LQQvFTKL6bkWPBZGU,4786
|
|
28
28
|
checkout_intents/_utils/_utils.py,sha256=g9ftElB09kVT6EVfCIlD_nUfANhDX5_vZO61FDWoIQI,12334
|
|
29
29
|
checkout_intents/lib/.keep,sha256=wuNrz-5SXo3jJaJOJgz4vFHM41YH_g20F5cRQo0vLes,224
|
|
30
|
-
checkout_intents/resources/__init__.py,sha256=
|
|
30
|
+
checkout_intents/resources/__init__.py,sha256=zjz0ozirEslXBkOUq4FwPABJaLruYwIXS7HZ-0am5S4,1557
|
|
31
31
|
checkout_intents/resources/brands.py,sha256=jJ5Jn2GG3MPkdKSg6_OG89dSQTaSGM9e7lBtovn-ABE,6389
|
|
32
|
-
checkout_intents/resources/checkout_intents.py,sha256=
|
|
33
|
-
checkout_intents/
|
|
34
|
-
checkout_intents/
|
|
32
|
+
checkout_intents/resources/checkout_intents.py,sha256=gL9bDh0zexqLhDbae4awEHlxYXm0ztQfhBEcXpJH4DU,60268
|
|
33
|
+
checkout_intents/resources/betas/__init__.py,sha256=DQKAlEq_xKd67cDJhihmsFJowbKXwPwZVi6zbGUykfQ,1120
|
|
34
|
+
checkout_intents/resources/betas/betas.py,sha256=48PbcJQb3RFRJ2pbvr7aAR1KYi64bWBQgfxg6KtcqeU,3892
|
|
35
|
+
checkout_intents/resources/betas/checkout_sessions.py,sha256=OT4o41rvVshRjAGY5hUs2E1K7XyvRv4pVEclafgoSCQ,8219
|
|
36
|
+
checkout_intents/types/__init__.py,sha256=VlReDJoTw4Sps0a4Q5Bfm_ePZnfk61wVBNSgDR-rGVc,1363
|
|
37
|
+
checkout_intents/types/base_checkout_intent.py,sha256=CgRzAWjEQXi1G4uCG6nqVXtwdHvT1BMP9UyEAxDZmTE,995
|
|
35
38
|
checkout_intents/types/brand_retrieve_response.py,sha256=c8DCAJvHFHcrIOW6onHj5Y51Yba7zyOrRXZuGfqYkBc,561
|
|
36
39
|
checkout_intents/types/buyer.py,sha256=Ov6mVD-Hjm9A-i9p2dWCXtniLhYpG_6jvy9DReC54YQ,530
|
|
37
40
|
checkout_intents/types/buyer_param.py,sha256=DAtEoK4VSzv2qDBBlC4RRE4FbHd87pieTOlfRntbjqg,695
|
|
38
41
|
checkout_intents/types/checkout_intent.py,sha256=LLTGXwIRdZmxaHRcHAYZ6DPWnZurym2yG0pOfmkQ2eg,2726
|
|
39
42
|
checkout_intents/types/checkout_intent_add_payment_params.py,sha256=s8KKWVM3XainGTLCwdfUjb5vgS80o2_W0wwUwRCFbk0,479
|
|
40
43
|
checkout_intents/types/checkout_intent_confirm_params.py,sha256=v_fcmuH5GoEwUJLbV7N9BDti63dg8z1nmhpcr4-1qcs,473
|
|
41
|
-
checkout_intents/types/checkout_intent_create_params.py,sha256=
|
|
44
|
+
checkout_intents/types/checkout_intent_create_params.py,sha256=rS83w5jDs6_6O4204B-YGXTbpH9rkATKLrgV8KwLnKA,1053
|
|
42
45
|
checkout_intents/types/checkout_intent_list_params.py,sha256=zc8_xwBHChOcl7bTMSjU7ZbHKIyQGYeUy5UrxeloJj0,521
|
|
43
|
-
checkout_intents/types/checkout_intent_purchase_params.py,sha256=
|
|
46
|
+
checkout_intents/types/checkout_intent_purchase_params.py,sha256=TxT3yhTfaJF_vMt6w-oQk3d5fQfN1CtZ18QCiBWY0DU,1208
|
|
47
|
+
checkout_intents/types/checkout_session.py,sha256=e1Ay_2GYO9Ybmz53S0Z0o3R4Et5Gm2kiS5wn1y1Ey3g,589
|
|
44
48
|
checkout_intents/types/money.py,sha256=-AfFFrfnUy6cAaFykF_gWZQxDGlzA1r_dJzJZRxhUto,328
|
|
45
49
|
checkout_intents/types/offer.py,sha256=9nGYAlA3tEiRU9lvsktnVl6EWj5dLNr6K9LB8WprckI,985
|
|
46
50
|
checkout_intents/types/payment_method.py,sha256=-v5-L5RPojm8IDrdAhIMGmhVb89vwqT1jhgb-ZWOG7Q,1069
|
|
47
51
|
checkout_intents/types/payment_method_param.py,sha256=_yzwZ5nw7bStK4U2-1ybtpjdJz5funCOMN7MALtF0xk,1225
|
|
48
52
|
checkout_intents/types/variant_selection.py,sha256=y6mlU-qGwDfE77mU-x1GTXkDsmn6vuPpy5lBYXqXCBw,259
|
|
49
53
|
checkout_intents/types/variant_selection_param.py,sha256=ahwTmDVIUMV8jvpggEo2jDUTIm9xvXbntDxmIZqT2_k,355
|
|
50
|
-
checkout_intents
|
|
51
|
-
checkout_intents
|
|
52
|
-
checkout_intents-0.
|
|
53
|
-
checkout_intents-0.
|
|
54
|
+
checkout_intents/types/betas/__init__.py,sha256=ZeKE1oI6DbXReHgxvn2kIS3G3_k8MH8a-o22ONpi5dc,226
|
|
55
|
+
checkout_intents/types/betas/checkout_session_create_params.py,sha256=tfxZQyVfwqfwihaJDT2y9bl_6x867up072g_rtsjeqs,1602
|
|
56
|
+
checkout_intents-0.11.0.dist-info/METADATA,sha256=Uz6DACSypO-jn15rWeRJeMOghBfFrPsucDYr5DTBDIs,24302
|
|
57
|
+
checkout_intents-0.11.0.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
|
|
58
|
+
checkout_intents-0.11.0.dist-info/licenses/LICENSE,sha256=BnK3I8R5OpT_XsQObbpssF9h8-B0aZaerlZjRgSPNpU,1056
|
|
59
|
+
checkout_intents-0.11.0.dist-info/RECORD,,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
Copyright
|
|
1
|
+
Copyright 2026 Checkout Intents
|
|
2
2
|
|
|
3
3
|
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
4
4
|
|
|
File without changes
|