checkout-intents 0.3.3__tar.gz → 0.4.0__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 (91) hide show
  1. checkout_intents-0.4.0/.release-please-manifest.json +3 -0
  2. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/CHANGELOG.md +13 -0
  3. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/PKG-INFO +1 -1
  4. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/pyproject.toml +1 -1
  5. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/src/checkout_intents/_base_client.py +1 -1
  6. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/src/checkout_intents/_version.py +1 -1
  7. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/src/checkout_intents/resources/checkout_intents.py +4 -0
  8. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/src/checkout_intents/types/base_checkout_intent.py +2 -0
  9. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/src/checkout_intents/types/brand_retrieve_response.py +1 -1
  10. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/src/checkout_intents/types/checkout_intent.py +9 -0
  11. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/src/checkout_intents/types/checkout_intent_create_params.py +3 -0
  12. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/src/checkout_intents/types/offer.py +4 -0
  13. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/tests/api_resources/test_checkout_intents.py +2 -0
  14. checkout_intents-0.3.3/.release-please-manifest.json +0 -3
  15. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/.gitignore +0 -0
  16. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/CONTRIBUTING.md +0 -0
  17. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/LICENSE +0 -0
  18. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/README.md +0 -0
  19. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/SECURITY.md +0 -0
  20. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/api.md +0 -0
  21. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/bin/check-release-environment +0 -0
  22. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/bin/publish-pypi +0 -0
  23. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/examples/.keep +0 -0
  24. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/examples/complete-checkout-intent.py +0 -0
  25. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/examples/error-handling.py +0 -0
  26. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/noxfile.py +0 -0
  27. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/release-please-config.json +0 -0
  28. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/requirements-dev.lock +0 -0
  29. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/requirements.lock +0 -0
  30. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/src/checkout_intents/__init__.py +0 -0
  31. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/src/checkout_intents/_client.py +0 -0
  32. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/src/checkout_intents/_compat.py +0 -0
  33. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/src/checkout_intents/_constants.py +0 -0
  34. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/src/checkout_intents/_exceptions.py +0 -0
  35. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/src/checkout_intents/_files.py +0 -0
  36. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/src/checkout_intents/_models.py +0 -0
  37. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/src/checkout_intents/_qs.py +0 -0
  38. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/src/checkout_intents/_resource.py +0 -0
  39. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/src/checkout_intents/_response.py +0 -0
  40. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/src/checkout_intents/_streaming.py +0 -0
  41. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/src/checkout_intents/_types.py +0 -0
  42. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/src/checkout_intents/_utils/__init__.py +0 -0
  43. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/src/checkout_intents/_utils/_compat.py +0 -0
  44. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/src/checkout_intents/_utils/_datetime_parse.py +0 -0
  45. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/src/checkout_intents/_utils/_logs.py +0 -0
  46. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/src/checkout_intents/_utils/_proxy.py +0 -0
  47. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/src/checkout_intents/_utils/_reflection.py +0 -0
  48. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/src/checkout_intents/_utils/_resources_proxy.py +0 -0
  49. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/src/checkout_intents/_utils/_streams.py +0 -0
  50. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/src/checkout_intents/_utils/_sync.py +0 -0
  51. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/src/checkout_intents/_utils/_transform.py +0 -0
  52. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/src/checkout_intents/_utils/_typing.py +0 -0
  53. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/src/checkout_intents/_utils/_utils.py +0 -0
  54. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/src/checkout_intents/lib/.keep +0 -0
  55. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/src/checkout_intents/pagination.py +0 -0
  56. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/src/checkout_intents/py.typed +0 -0
  57. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/src/checkout_intents/resources/__init__.py +0 -0
  58. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/src/checkout_intents/resources/brands.py +0 -0
  59. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/src/checkout_intents/types/__init__.py +0 -0
  60. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/src/checkout_intents/types/buyer.py +0 -0
  61. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/src/checkout_intents/types/buyer_param.py +0 -0
  62. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/src/checkout_intents/types/checkout_intent_add_payment_params.py +0 -0
  63. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/src/checkout_intents/types/checkout_intent_confirm_params.py +0 -0
  64. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/src/checkout_intents/types/checkout_intent_list_params.py +0 -0
  65. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/src/checkout_intents/types/money.py +0 -0
  66. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/src/checkout_intents/types/payment_method.py +0 -0
  67. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/src/checkout_intents/types/payment_method_param.py +0 -0
  68. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/src/checkout_intents/types/variant_selection.py +0 -0
  69. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/src/checkout_intents/types/variant_selection_param.py +0 -0
  70. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/tests/__init__.py +0 -0
  71. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/tests/api_resources/__init__.py +0 -0
  72. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/tests/api_resources/test_brands.py +0 -0
  73. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/tests/conftest.py +0 -0
  74. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/tests/sample_file.txt +0 -0
  75. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/tests/test_client.py +0 -0
  76. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/tests/test_deepcopy.py +0 -0
  77. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/tests/test_environment_inference.py +0 -0
  78. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/tests/test_extract_files.py +0 -0
  79. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/tests/test_files.py +0 -0
  80. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/tests/test_models.py +0 -0
  81. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/tests/test_polling.py +0 -0
  82. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/tests/test_qs.py +0 -0
  83. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/tests/test_required_args.py +0 -0
  84. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/tests/test_response.py +0 -0
  85. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/tests/test_streaming.py +0 -0
  86. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/tests/test_transform.py +0 -0
  87. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/tests/test_utils/test_datetime_parse.py +0 -0
  88. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/tests/test_utils/test_proxy.py +0 -0
  89. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/tests/test_utils/test_typing.py +0 -0
  90. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/tests/utils.py +0 -0
  91. {checkout_intents-0.3.3 → checkout_intents-0.4.0}/uv.lock +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.4.0"
3
+ }
@@ -1,5 +1,18 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.4.0 (2025-12-18)
4
+
5
+ Full Changelog: [v0.3.3...v0.4.0](https://github.com/rye-com/checkout-intents-python/compare/v0.3.3...v0.4.0)
6
+
7
+ ### Features
8
+
9
+ * Adds support for promo codes
10
+ * Add durable purchase workflow and supporting infrastructure ([9db3309](https://github.com/rye-com/checkout-intents-python/commit/9db33093a5825e56e0c900cde20c74c22fb3f932))
11
+
12
+ ### Bug Fixes
13
+
14
+ * use async_to_httpx_files in patch method ([66f7a30](https://github.com/rye-com/checkout-intents-python/commit/66f7a30af6fcadd97c651ec3d911d74f4699360f))
15
+
3
16
  ## 0.3.3 (2025-12-17)
4
17
 
5
18
  Full Changelog: [v0.3.2...v0.3.3](https://github.com/rye-com/checkout-intents-python/compare/v0.3.2...v0.3.3)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: checkout-intents
3
- Version: 0.3.3
3
+ Version: 0.4.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
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "checkout-intents"
3
- version = "0.3.3"
3
+ version = "0.4.0"
4
4
  description = "The official Python library for the Checkout Intents API"
5
5
  dynamic = ["readme"]
6
6
  license = "MIT"
@@ -1774,7 +1774,7 @@ class AsyncAPIClient(BaseClient[httpx.AsyncClient, AsyncStream[Any]]):
1774
1774
  options: RequestOptions = {},
1775
1775
  ) -> ResponseT:
1776
1776
  opts = FinalRequestOptions.construct(
1777
- method="patch", url=path, json_data=body, files=to_httpx_files(files), **options
1777
+ method="patch", url=path, json_data=body, files=await async_to_httpx_files(files), **options
1778
1778
  )
1779
1779
  return await self.request(cast_to, opts)
1780
1780
 
@@ -1,4 +1,4 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  __title__ = "checkout_intents"
4
- __version__ = "0.3.3" # x-release-please-version
4
+ __version__ = "0.4.0" # x-release-please-version
@@ -70,6 +70,7 @@ class CheckoutIntentsResource(SyncAPIResource):
70
70
  buyer: BuyerParam,
71
71
  product_url: str,
72
72
  quantity: float,
73
+ promo_codes: SequenceNotStr[str] | Omit = omit,
73
74
  variant_selections: Iterable[VariantSelectionParam] | Omit = omit,
74
75
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
75
76
  # The extra values given here take precedence over values defined on the client or passed to this method.
@@ -99,6 +100,7 @@ class CheckoutIntentsResource(SyncAPIResource):
99
100
  "buyer": buyer,
100
101
  "product_url": product_url,
101
102
  "quantity": quantity,
103
+ "promo_codes": promo_codes,
102
104
  "variant_selections": variant_selections,
103
105
  },
104
106
  checkout_intent_create_params.CheckoutIntentCreateParams,
@@ -671,6 +673,7 @@ class AsyncCheckoutIntentsResource(AsyncAPIResource):
671
673
  buyer: BuyerParam,
672
674
  product_url: str,
673
675
  quantity: float,
676
+ promo_codes: SequenceNotStr[str] | Omit = omit,
674
677
  variant_selections: Iterable[VariantSelectionParam] | Omit = omit,
675
678
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
676
679
  # The extra values given here take precedence over values defined on the client or passed to this method.
@@ -700,6 +703,7 @@ class AsyncCheckoutIntentsResource(AsyncAPIResource):
700
703
  "buyer": buyer,
701
704
  "product_url": product_url,
702
705
  "quantity": quantity,
706
+ "promo_codes": promo_codes,
703
707
  "variant_selections": variant_selections,
704
708
  },
705
709
  checkout_intent_create_params.CheckoutIntentCreateParams,
@@ -23,4 +23,6 @@ class BaseCheckoutIntent(BaseModel):
23
23
 
24
24
  quantity: float
25
25
 
26
+ promo_codes: Optional[List[str]] = FieldInfo(alias="promoCodes", default=None)
27
+
26
28
  variant_selections: Optional[List[VariantSelection]] = FieldInfo(alias="variantSelections", default=None)
@@ -11,7 +11,7 @@ class BrandRetrieveResponse(BaseModel):
11
11
  id: str
12
12
  """A unique identifier for the brand."""
13
13
 
14
- marketplace: Literal["AMAZON", "SHOPIFY", "UNKNOWN"]
14
+ marketplace: Literal["AMAZON", "SHOPIFY", "BESTBUY", "UNKNOWN"]
15
15
  """Indicates what ecommerce platform the brand uses."""
16
16
 
17
17
  supported: bool
@@ -63,8 +63,17 @@ class FailedCheckoutIntentFailureReason(BaseModel):
63
63
  "missing_shipping_method",
64
64
  "unsupported_currency",
65
65
  "invalid_input",
66
+ "incorrect_cost_breakdown",
66
67
  "unsupported_store_no_guest_checkout",
68
+ "workflow_invocation_failed",
69
+ "variant_selections_invalid",
70
+ "variant_selections_required",
71
+ "form_validation_error",
72
+ "captcha_blocked",
73
+ "bot_protection_blocked",
74
+ "unknown",
67
75
  ]
76
+ """Type derived from runtime array - always in sync"""
68
77
 
69
78
  message: str
70
79
 
@@ -5,6 +5,7 @@ from __future__ import annotations
5
5
  from typing import Iterable
6
6
  from typing_extensions import Required, Annotated, TypedDict
7
7
 
8
+ from .._types import SequenceNotStr
8
9
  from .._utils import PropertyInfo
9
10
  from .buyer_param import BuyerParam
10
11
  from .variant_selection_param import VariantSelectionParam
@@ -19,4 +20,6 @@ class CheckoutIntentCreateParams(TypedDict, total=False):
19
20
 
20
21
  quantity: Required[float]
21
22
 
23
+ promo_codes: Annotated[SequenceNotStr[str], PropertyInfo(alias="promoCodes")]
24
+
22
25
  variant_selections: Annotated[Iterable[VariantSelectionParam], PropertyInfo(alias="variantSelections")]
@@ -19,6 +19,8 @@ class Cost(BaseModel):
19
19
 
20
20
  shipping: Optional[Money] = None
21
21
 
22
+ surcharge: Optional[Money] = None
23
+
22
24
  tax: Optional[Money] = None
23
25
 
24
26
 
@@ -27,6 +29,8 @@ class ShippingAvailableOption(BaseModel):
27
29
 
28
30
  cost: Money
29
31
 
32
+ discount: Optional[Money] = None
33
+
30
34
 
31
35
  class Shipping(BaseModel):
32
36
  available_options: List[ShippingAvailableOption] = FieldInfo(alias="availableOptions")
@@ -58,6 +58,7 @@ class TestCheckoutIntents:
58
58
  },
59
59
  product_url="productUrl",
60
60
  quantity=1,
61
+ promo_codes=["string"],
61
62
  variant_selections=[
62
63
  {
63
64
  "label": "Size, Color, etc.",
@@ -383,6 +384,7 @@ class TestAsyncCheckoutIntents:
383
384
  },
384
385
  product_url="productUrl",
385
386
  quantity=1,
387
+ promo_codes=["string"],
386
388
  variant_selections=[
387
389
  {
388
390
  "label": "Size, Color, etc.",
@@ -1,3 +0,0 @@
1
- {
2
- ".": "0.3.3"
3
- }