etsy-python 1.1.1__tar.gz → 1.1.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 (75) hide show
  1. {etsy_python-1.1.1/etsy_python.egg-info → etsy_python-1.1.2}/PKG-INFO +1 -1
  2. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/_version.py +1 -1
  3. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/enums/HolidayPreferences.py +3 -0
  4. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/enums/Listing.py +2 -1
  5. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/models/Listing.py +26 -1
  6. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/resources/Listing.py +10 -3
  7. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/resources/ReceiptTransactions.py +6 -4
  8. {etsy_python-1.1.1 → etsy_python-1.1.2/etsy_python.egg-info}/PKG-INFO +1 -1
  9. {etsy_python-1.1.1 → etsy_python-1.1.2}/LICENSE +0 -0
  10. {etsy_python-1.1.1 → etsy_python-1.1.2}/MANIFEST.in +0 -0
  11. {etsy_python-1.1.1 → etsy_python-1.1.2}/README.md +0 -0
  12. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/__init__.py +0 -0
  13. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/__init__.py +0 -0
  14. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/auth/OAuth.py +0 -0
  15. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/auth/__init__.py +0 -0
  16. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/common/Env.py +0 -0
  17. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/common/Request.py +0 -0
  18. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/common/Utils.py +0 -0
  19. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/common/__init__.py +0 -0
  20. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/enums/Language.py +0 -0
  21. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/enums/ListingInventory.py +0 -0
  22. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/enums/ProcessingProfile.py +0 -0
  23. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/enums/ShippingProfile.py +0 -0
  24. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/enums/ShopReceipt.py +0 -0
  25. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/enums/__init__.py +0 -0
  26. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/exceptions/BaseAPIException.py +0 -0
  27. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/exceptions/RequestException.py +0 -0
  28. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/exceptions/__init__.py +0 -0
  29. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/models/FileRequest.py +0 -0
  30. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/models/HolidayPreferences.py +0 -0
  31. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/models/Miscellaneous.py +0 -0
  32. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/models/ProcessingProfile.py +0 -0
  33. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/models/Product.py +0 -0
  34. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/models/Receipt.py +0 -0
  35. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/models/Request.py +0 -0
  36. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/models/ShippingProfile.py +0 -0
  37. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/models/Shop.py +0 -0
  38. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/models/ShopReturnPolicy.py +0 -0
  39. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/models/Utils.py +0 -0
  40. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/models/__init__.py +0 -0
  41. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/resources/HolidayPreferences.py +0 -0
  42. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/resources/ListingFile.py +0 -0
  43. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/resources/ListingImage.py +0 -0
  44. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/resources/ListingInventory.py +0 -0
  45. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/resources/ListingOffering.py +0 -0
  46. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/resources/ListingProduct.py +0 -0
  47. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/resources/ListingTranslation.py +0 -0
  48. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/resources/ListingVariationImages.py +0 -0
  49. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/resources/ListingVideo.py +0 -0
  50. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/resources/Miscellaneous.py +0 -0
  51. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/resources/Payment.py +0 -0
  52. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/resources/PaymentLedgerEntry.py +0 -0
  53. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/resources/ProcessingProfile.py +0 -0
  54. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/resources/Receipt.py +0 -0
  55. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/resources/Response.py +0 -0
  56. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/resources/Review.py +0 -0
  57. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/resources/Session.py +0 -0
  58. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/resources/ShippingProfile.py +0 -0
  59. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/resources/Shop.py +0 -0
  60. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/resources/ShopProductionPartner.py +0 -0
  61. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/resources/ShopReturnPolicy.py +0 -0
  62. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/resources/ShopSection.py +0 -0
  63. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/resources/Taxonomy.py +0 -0
  64. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/resources/User.py +0 -0
  65. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/resources/UserAddress.py +0 -0
  66. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/resources/__init__.py +0 -0
  67. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/resources/enums/RateLimit.py +0 -0
  68. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/resources/enums/Request.py +0 -0
  69. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python/v3/resources/enums/__init__.py +0 -0
  70. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python.egg-info/SOURCES.txt +0 -0
  71. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python.egg-info/dependency_links.txt +0 -0
  72. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python.egg-info/requires.txt +0 -0
  73. {etsy_python-1.1.1 → etsy_python-1.1.2}/etsy_python.egg-info/top_level.txt +0 -0
  74. {etsy_python-1.1.1 → etsy_python-1.1.2}/setup.cfg +0 -0
  75. {etsy_python-1.1.1 → etsy_python-1.1.2}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: etsy-python
3
- Version: 1.1.1
3
+ Version: 1.1.2
4
4
  Summary: Etsy API Client Library for Python
5
5
  Author: Amit Ray
6
6
  Author-email: mail@amitray.dev
@@ -1,3 +1,3 @@
1
1
  """Version information for etsy-python package."""
2
2
 
3
- __version__ = "1.1.1"
3
+ __version__ = "1.1.2"
@@ -15,6 +15,7 @@ class HOLIDAYS(Enum):
15
15
  pass
16
16
 
17
17
  class US_HOLIDAYS(Enum):
18
+ """US holidays (IDs 1-11)."""
18
19
  NEW_YEARS_DAY = 1
19
20
  MARTIN_LUTHER_KING_JR_DAY = 2
20
21
  PRESIDENTS_DAY = 3
@@ -28,6 +29,8 @@ class US_HOLIDAYS(Enum):
28
29
  CHRISTMAS_DAY = 11
29
30
 
30
31
  class CA_HOLIDAYS(Enum):
32
+ """Canadian holidays (IDs 12-23). For other regions (IDs 24-105),
33
+ pass the integer ID directly to update_holiday_preferences()."""
31
34
  GOOD_FRIDAY = 12
32
35
  EASTER = 13
33
36
  VICTORIA_DAY = 14
@@ -58,7 +58,7 @@ class State(Enum):
58
58
  SOLD_OUT = "sold_out"
59
59
  DRAFT = "draft"
60
60
  EXPIRED = "expired"
61
- REMOVED = "removed"
61
+ REMOVED = "removed" # Not in OAS spec; kept for backward compatibility, may be removed in next major version
62
62
 
63
63
 
64
64
  class VideoState(Enum):
@@ -92,6 +92,7 @@ class Includes(Enum):
92
92
  TRANSLATIONS = "Translations"
93
93
  INVENTORY = "Inventory"
94
94
  VIDEOS = "Videos"
95
+ PERSONALIZATION = "Personalization"
95
96
 
96
97
 
97
98
  class InventoryIncludes(Enum):
@@ -1,3 +1,4 @@
1
+ import warnings
1
2
  from typing import List, Optional, Dict, Any
2
3
 
3
4
  from etsy_python.v3.enums.Listing import (
@@ -104,6 +105,18 @@ class CreateDraftListingRequest(Request):
104
105
  self.personalization_is_required = personalization_is_required
105
106
  self.personalization_char_count_max = personalization_char_count_max
106
107
  self.personalization_instructions = personalization_instructions
108
+ if any(v is not None for v in [
109
+ personalization_is_required, personalization_char_count_max,
110
+ personalization_instructions,
111
+ ]):
112
+ warnings.warn(
113
+ "personalization_is_required, personalization_char_count_max, and "
114
+ "personalization_instructions are deprecated and will be removed "
115
+ "from the Etsy API on April 9, 2026. Use the personalization "
116
+ "endpoint (update_listing_personalization) instead.",
117
+ DeprecationWarning,
118
+ stacklevel=2,
119
+ )
107
120
  self.production_partner_ids = production_partner_ids
108
121
  self.image_ids = image_ids
109
122
  self.is_supply = is_supply
@@ -133,7 +146,7 @@ class UpdateListingRequest(Request):
133
146
  "tags",
134
147
  "featured_rank",
135
148
  "production_partner_ids",
136
- "type",
149
+ "_type",
137
150
  ]
138
151
 
139
152
  mandatory: List[str] = []
@@ -193,6 +206,18 @@ class UpdateListingRequest(Request):
193
206
  self.personalization_is_required = personalization_is_required
194
207
  self.personalization_char_count_max = personalization_char_count_max
195
208
  self.personalization_instructions = personalization_instructions
209
+ if any(v is not None for v in [
210
+ personalization_is_required, personalization_char_count_max,
211
+ personalization_instructions,
212
+ ]):
213
+ warnings.warn(
214
+ "personalization_is_required, personalization_char_count_max, and "
215
+ "personalization_instructions are deprecated and will be removed "
216
+ "from the Etsy API on April 9, 2026. Use the personalization "
217
+ "endpoint (update_listing_personalization) instead.",
218
+ DeprecationWarning,
219
+ stacklevel=2,
220
+ )
196
221
  self.state = state
197
222
  self.is_supply = is_supply
198
223
  self.production_partner_ids = production_partner_ids
@@ -129,7 +129,10 @@ class ListingResource:
129
129
  return self.session.make_request(endpoint, query_params=query_params)
130
130
 
131
131
  def get_listings_by_listing_ids(
132
- self, listing_ids: List[int], includes: Optional[List[Includes]] = None
132
+ self,
133
+ listing_ids: List[int],
134
+ includes: Optional[List[Includes]] = None,
135
+ legacy: Optional[bool] = None,
133
136
  ) -> Union[Response, RequestException]:
134
137
  endpoint = "/listings/batch"
135
138
  query_params: Dict[str, Any] = {
@@ -137,11 +140,15 @@ class ListingResource:
137
140
  "includes": ",".join(list(map(lambda inc: inc.value, includes)))
138
141
  if includes is not None
139
142
  else None,
143
+ "legacy": legacy,
140
144
  }
141
145
  return self.session.make_request(endpoint, query_params=query_params)
142
146
 
143
147
  def get_listings_by_listings_ids(
144
- self, listing_ids: List[int], includes: Optional[List[Includes]] = None
148
+ self,
149
+ listing_ids: List[int],
150
+ includes: Optional[List[Includes]] = None,
151
+ legacy: Optional[bool] = None,
145
152
  ) -> Union[Response, RequestException]:
146
153
  """Deprecated: use get_listings_by_listing_ids instead."""
147
154
  warnings.warn(
@@ -149,7 +156,7 @@ class ListingResource:
149
156
  DeprecationWarning,
150
157
  stacklevel=2,
151
158
  )
152
- return self.get_listings_by_listing_ids(listing_ids, includes)
159
+ return self.get_listings_by_listing_ids(listing_ids, includes, legacy)
153
160
 
154
161
  def get_featured_listings_by_shop(
155
162
  self, shop_id: int, limit: int = 25, offset: int = 0,
@@ -34,14 +34,16 @@ class ReceiptTransactionsResource:
34
34
  return self.session.make_request(endpoint)
35
35
 
36
36
  def get_shop_receipt_transactions_by_shop(
37
- self, shop_id: int, limit: int = 25, offset: int = 0
37
+ self, shop_id: int, limit: int = 25, offset: int = 0,
38
+ legacy: Optional[bool] = None,
38
39
  ) -> Union[Response, RequestException]:
39
40
  endpoint = f"/shops/{shop_id}/transactions"
40
- query_params: Dict[str, Any] = {"limit": limit, "offset": offset}
41
+ query_params: Dict[str, Any] = {"limit": limit, "offset": offset, "legacy": legacy}
41
42
  return self.session.make_request(endpoint, query_params=query_params)
42
43
 
43
44
  def get_shop_receipt_transaction_by_shop(
44
- self, shop_id: int, limit: int = 25, offset: int = 0
45
+ self, shop_id: int, limit: int = 25, offset: int = 0,
46
+ legacy: Optional[bool] = None,
45
47
  ) -> Union[Response, RequestException]:
46
48
  """Deprecated: use get_shop_receipt_transactions_by_shop instead."""
47
49
  warnings.warn(
@@ -49,4 +51,4 @@ class ReceiptTransactionsResource:
49
51
  DeprecationWarning,
50
52
  stacklevel=2,
51
53
  )
52
- return self.get_shop_receipt_transactions_by_shop(shop_id, limit, offset)
54
+ return self.get_shop_receipt_transactions_by_shop(shop_id, limit, offset, legacy)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: etsy-python
3
- Version: 1.1.1
3
+ Version: 1.1.2
4
4
  Summary: Etsy API Client Library for Python
5
5
  Author: Amit Ray
6
6
  Author-email: mail@amitray.dev
File without changes
File without changes
File without changes
File without changes
File without changes