recharge-api 2.0.1__tar.gz → 2.0.2__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 (100) hide show
  1. {recharge_api-2.0.1/recharge_api.egg-info → recharge_api-2.0.2}/PKG-INFO +1 -1
  2. {recharge_api-2.0.1 → recharge_api-2.0.2}/pyproject.toml +1 -1
  3. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/model/v2/charge.py +25 -4
  4. {recharge_api-2.0.1 → recharge_api-2.0.2/recharge_api.egg-info}/PKG-INFO +1 -1
  5. {recharge_api-2.0.1 → recharge_api-2.0.2}/LICENSE +0 -0
  6. {recharge_api-2.0.1 → recharge_api-2.0.2}/README.md +0 -0
  7. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/__init__.py +0 -0
  8. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/api/__init__.py +0 -0
  9. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/api/v1/__init__.py +0 -0
  10. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/api/v1/addresses.py +0 -0
  11. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/api/v1/async_batches.py +0 -0
  12. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/api/v1/charges.py +0 -0
  13. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/api/v1/checkouts.py +0 -0
  14. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/api/v1/customers.py +0 -0
  15. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/api/v1/discounts.py +0 -0
  16. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/api/v1/metafields.py +0 -0
  17. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/api/v1/notifications.py +0 -0
  18. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/api/v1/onetimes.py +0 -0
  19. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/api/v1/orders.py +0 -0
  20. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/api/v1/products.py +0 -0
  21. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/api/v1/shop.py +0 -0
  22. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/api/v1/subscriptions.py +0 -0
  23. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/api/v1/tokens.py +0 -0
  24. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/api/v1/webhooks.py +0 -0
  25. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/api/v2/__init__.py +0 -0
  26. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/api/v2/accounts.py +0 -0
  27. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/api/v2/addresses.py +0 -0
  28. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/api/v2/async_batches.py +0 -0
  29. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/api/v2/bundle_selections.py +0 -0
  30. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/api/v2/charges.py +0 -0
  31. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/api/v2/checkouts.py +0 -0
  32. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/api/v2/collections.py +0 -0
  33. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/api/v2/customers.py +0 -0
  34. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/api/v2/discounts.py +0 -0
  35. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/api/v2/events.py +0 -0
  36. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/api/v2/metafields.py +0 -0
  37. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/api/v2/notifications.py +0 -0
  38. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/api/v2/onetimes.py +0 -0
  39. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/api/v2/orders.py +0 -0
  40. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/api/v2/payment_methods.py +0 -0
  41. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/api/v2/plans.py +0 -0
  42. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/api/v2/products.py +0 -0
  43. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/api/v2/retention_strategies.py +0 -0
  44. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/api/v2/store.py +0 -0
  45. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/api/v2/subscriptions.py +0 -0
  46. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/api/v2/tokens.py +0 -0
  47. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/api/v2/webhooks.py +0 -0
  48. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/client.py +0 -0
  49. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/exceptions.py +0 -0
  50. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/model/__init__.py +0 -0
  51. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/model/v1/__init__.py +0 -0
  52. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/model/v1/address.py +0 -0
  53. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/model/v1/async_batch.py +0 -0
  54. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/model/v1/charge.py +0 -0
  55. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/model/v1/checkout.py +0 -0
  56. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/model/v1/customer.py +0 -0
  57. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/model/v1/discount.py +0 -0
  58. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/model/v1/metafield.py +0 -0
  59. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/model/v1/notification.py +0 -0
  60. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/model/v1/onetime.py +0 -0
  61. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/model/v1/order.py +0 -0
  62. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/model/v1/product.py +0 -0
  63. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/model/v1/shop.py +0 -0
  64. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/model/v1/subscription.py +0 -0
  65. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/model/v1/token.py +0 -0
  66. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/model/v1/webhook.py +0 -0
  67. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/model/v2/__init__.py +0 -0
  68. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/model/v2/account.py +0 -0
  69. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/model/v2/address.py +0 -0
  70. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/model/v2/async_batch.py +0 -0
  71. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/model/v2/bundle_selection.py +0 -0
  72. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/model/v2/checkout.py +0 -0
  73. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/model/v2/collection.py +0 -0
  74. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/model/v2/customer.py +0 -0
  75. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/model/v2/discount.py +0 -0
  76. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/model/v2/event.py +0 -0
  77. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/model/v2/metafield.py +0 -0
  78. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/model/v2/notification.py +0 -0
  79. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/model/v2/onetime.py +0 -0
  80. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/model/v2/order.py +0 -0
  81. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/model/v2/payment_method.py +0 -0
  82. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/model/v2/plan.py +0 -0
  83. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/model/v2/product.py +0 -0
  84. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/model/v2/retention_strategy.py +0 -0
  85. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/model/v2/store.py +0 -0
  86. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/model/v2/subscription.py +0 -0
  87. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/model/v2/token.py +0 -0
  88. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/model/v2/webhook.py +0 -0
  89. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/pagination.py +0 -0
  90. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/retry.py +0 -0
  91. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/transport.py +0 -0
  92. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge/types.py +0 -0
  93. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge_api.egg-info/SOURCES.txt +0 -0
  94. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge_api.egg-info/dependency_links.txt +0 -0
  95. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge_api.egg-info/requires.txt +0 -0
  96. {recharge_api-2.0.1 → recharge_api-2.0.2}/recharge_api.egg-info/top_level.txt +0 -0
  97. {recharge_api-2.0.1 → recharge_api-2.0.2}/setup.cfg +0 -0
  98. {recharge_api-2.0.1 → recharge_api-2.0.2}/tests/test_client.py +0 -0
  99. {recharge_api-2.0.1 → recharge_api-2.0.2}/tests/test_pagination.py +0 -0
  100. {recharge_api-2.0.1 → recharge_api-2.0.2}/tests/test_retry.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: recharge-api
3
- Version: 2.0.1
3
+ Version: 2.0.2
4
4
  Summary: Python API Client for Recharge
5
5
  Author-email: ChemicalLuck <j.tebbett@outlook.com>
6
6
  Project-URL: Homepage, http://github.com/ChemicalLuck/recharge-api
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "recharge-api"
3
- version = "2.0.1"
3
+ version = "2.0.2"
4
4
  authors = [
5
5
  { name="ChemicalLuck", email="j.tebbett@outlook.com" }
6
6
  ]
@@ -1,6 +1,6 @@
1
- from typing import Literal, Optional
1
+ from typing import Any, Literal, Optional, Union
2
2
 
3
- from pydantic import BaseModel, ConfigDict
3
+ from pydantic import BaseModel, ConfigDict, field_validator
4
4
 
5
5
  ChargeStatus = Literal[
6
6
  "SUCCESS", "QUEUED", "ERROR", "REFUNDED", "PARTIALLY_REFUNDED", "SKIPPED"
@@ -26,6 +26,13 @@ class ChargeAnalyticsData(BaseModel):
26
26
 
27
27
  utm_params: Optional[ChargeAnalyticsDataUtmParams] = None
28
28
 
29
+ @field_validator("utm_params", mode="before")
30
+ @classmethod
31
+ def coerce_utm_params(cls, v: Any) -> Any:
32
+ if isinstance(v, list):
33
+ return None
34
+ return v
35
+
29
36
 
30
37
  class ChargeBillingAddress(BaseModel):
31
38
  model_config = ConfigDict(extra="allow", populate_by_name=True)
@@ -153,7 +160,7 @@ class ChargeOrderAttribute(BaseModel):
153
160
  model_config = ConfigDict(extra="allow", populate_by_name=True)
154
161
 
155
162
  name: str
156
- value: str
163
+ value: Optional[str] = None
157
164
 
158
165
 
159
166
  class ChargeShippingAddress(BaseModel):
@@ -178,13 +185,27 @@ class ChargeShippingLine(BaseModel):
178
185
  price: Optional[str] = None
179
186
  source: Optional[str] = None
180
187
  title: Optional[str] = None
181
- taxable: Optional[str] = None
188
+ taxable: Optional[Union[str, bool]] = None
182
189
  tax_lines: list[ChargeTaxLine] = []
183
190
 
184
191
 
185
192
  class Charge(BaseModel):
186
193
  model_config = ConfigDict(extra="allow", populate_by_name=True)
187
194
 
195
+ @field_validator("status", "type", mode="before")
196
+ @classmethod
197
+ def uppercase_literals(cls, v: Any) -> Any:
198
+ if isinstance(v, str):
199
+ return v.upper()
200
+ return v
201
+
202
+ @field_validator("tags", mode="before")
203
+ @classmethod
204
+ def coerce_tags(cls, v: Any) -> Any:
205
+ if isinstance(v, str):
206
+ return [t.strip() for t in v.split(",") if t.strip()]
207
+ return v
208
+
188
209
  id: int
189
210
  address_id: Optional[int] = None
190
211
  analytics_data: Optional[ChargeAnalyticsData] = None
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: recharge-api
3
- Version: 2.0.1
3
+ Version: 2.0.2
4
4
  Summary: Python API Client for Recharge
5
5
  Author-email: ChemicalLuck <j.tebbett@outlook.com>
6
6
  Project-URL: Homepage, http://github.com/ChemicalLuck/recharge-api
File without changes
File without changes
File without changes