python-amazon-paapi 6.3.0__tar.gz → 7.1.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 (351) hide show
  1. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/.agent/rules/code-style-guide.md +2 -2
  2. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/.env.template +0 -6
  3. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/.github/ISSUE_TEMPLATE/---bug-report.md +1 -1
  4. python_amazon_paapi-7.1.0/.github/workflows/check.yml +100 -0
  5. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/.github/workflows/release.yml +11 -11
  6. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/.pre-commit-config.yaml +4 -2
  7. python_amazon_paapi-7.1.0/CHANGELOG.md +192 -0
  8. python_amazon_paapi-7.1.0/CONTRIBUTING.md +89 -0
  9. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/Makefile +1 -1
  10. python_amazon_paapi-7.1.0/PKG-INFO +463 -0
  11. python_amazon_paapi-7.1.0/README.md +429 -0
  12. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/amazon_creatorsapi/__init__.py +3 -3
  13. python_amazon_paapi-7.1.0/amazon_creatorsapi/aio/api.py +829 -0
  14. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/amazon_creatorsapi/aio/auth.py +65 -33
  15. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/amazon_creatorsapi/aio/client.py +14 -7
  16. python_amazon_paapi-7.1.0/amazon_creatorsapi/aio/timeouts.py +49 -0
  17. python_amazon_paapi-7.1.0/amazon_creatorsapi/api.py +710 -0
  18. python_amazon_paapi-7.1.0/amazon_creatorsapi/core/auth.py +155 -0
  19. python_amazon_paapi-7.1.0/amazon_creatorsapi/core/constants.py +35 -0
  20. python_amazon_paapi-7.1.0/amazon_creatorsapi/core/error_handling.py +190 -0
  21. python_amazon_paapi-7.1.0/amazon_creatorsapi/core/items.py +69 -0
  22. python_amazon_paapi-7.1.0/amazon_creatorsapi/core/oauth.py +142 -0
  23. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/amazon_creatorsapi/core/parsers.py +7 -2
  24. python_amazon_paapi-7.1.0/amazon_creatorsapi/core/requests.py +27 -0
  25. python_amazon_paapi-7.1.0/amazon_creatorsapi/core/results.py +36 -0
  26. python_amazon_paapi-7.1.0/amazon_creatorsapi/core/retry.py +102 -0
  27. python_amazon_paapi-7.1.0/amazon_creatorsapi/core/validation.py +187 -0
  28. python_amazon_paapi-7.1.0/amazon_creatorsapi/errors.py +62 -0
  29. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/amazon_creatorsapi/models.py +14 -0
  30. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/__init__.py +2 -0
  31. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/api/default_api.py +6 -7
  32. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/api_client.py +1 -1
  33. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/__init__.py +2 -0
  34. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/feed.py +6 -3
  35. python_amazon_paapi-7.1.0/creatorsapi_python_sdk/models/feed_type.py +44 -0
  36. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/get_feed_request_content.py +6 -3
  37. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/get_report_request_content.py +6 -3
  38. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/report_metadata.py +6 -3
  39. python_amazon_paapi-7.1.0/creatorsapi_python_sdk/models/report_type.py +44 -0
  40. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/search_items_request_content.py +1 -4
  41. python_amazon_paapi-7.1.0/creatorsapi_python_sdk/py.typed +0 -0
  42. python_amazon_paapi-7.1.0/docs/amazon_creatorsapi.aio.rst +42 -0
  43. python_amazon_paapi-7.1.0/docs/amazon_creatorsapi.core.rst +11 -0
  44. python_amazon_paapi-7.1.0/docs/amazon_creatorsapi.errors.rst +12 -0
  45. python_amazon_paapi-7.1.0/docs/amazon_creatorsapi.models.rst +12 -0
  46. python_amazon_paapi-7.1.0/docs/amazon_creatorsapi.rst +11 -0
  47. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/docs/conf.py +9 -6
  48. python_amazon_paapi-7.1.0/docs/index.rst +81 -0
  49. python_amazon_paapi-7.1.0/docs/pages/migration-guide-6.md +158 -0
  50. python_amazon_paapi-7.1.0/docs/pages/migration-guide-7.md +250 -0
  51. python_amazon_paapi-7.1.0/docs/pages/usage-guide.md +444 -0
  52. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/pyproject.toml +13 -27
  53. python_amazon_paapi-7.1.0/tests/__init__.py +1 -0
  54. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/tests/amazon_creatorsapi/aio/api_test.py +1237 -28
  55. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/tests/amazon_creatorsapi/aio/auth_test.py +86 -0
  56. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/tests/amazon_creatorsapi/aio/client_test.py +5 -0
  57. python_amazon_paapi-7.1.0/tests/amazon_creatorsapi/aio/integration_test.py +178 -0
  58. python_amazon_paapi-7.1.0/tests/amazon_creatorsapi/aio/timeouts_test.py +37 -0
  59. python_amazon_paapi-7.1.0/tests/amazon_creatorsapi/api_test.py +2038 -0
  60. python_amazon_paapi-7.1.0/tests/amazon_creatorsapi/core/__init__.py +1 -0
  61. python_amazon_paapi-7.1.0/tests/amazon_creatorsapi/core/auth_test.py +165 -0
  62. python_amazon_paapi-7.1.0/tests/amazon_creatorsapi/core/error_handling_test.py +180 -0
  63. python_amazon_paapi-7.1.0/tests/amazon_creatorsapi/core/items_test.py +70 -0
  64. python_amazon_paapi-7.1.0/tests/amazon_creatorsapi/core/oauth_test.py +111 -0
  65. python_amazon_paapi-7.1.0/tests/amazon_creatorsapi/core/requests_test.py +54 -0
  66. python_amazon_paapi-7.1.0/tests/amazon_creatorsapi/core/results_test.py +31 -0
  67. python_amazon_paapi-7.1.0/tests/amazon_creatorsapi/core/retry_test.py +99 -0
  68. python_amazon_paapi-7.1.0/tests/amazon_creatorsapi/core/sdk_parity_test.py +88 -0
  69. python_amazon_paapi-7.1.0/tests/amazon_creatorsapi/core/validation_test.py +150 -0
  70. python_amazon_paapi-7.1.0/tests/amazon_creatorsapi/errors_test.py +70 -0
  71. python_amazon_paapi-7.1.0/tests/amazon_creatorsapi/integration_test.py +170 -0
  72. python_amazon_paapi-7.1.0/tests/amazon_creatorsapi/signatures_test.py +128 -0
  73. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/tests/amazon_creatorsapi/tools_test.py +6 -0
  74. python_amazon_paapi-7.1.0/tests/integration_support.py +540 -0
  75. python_amazon_paapi-6.3.0/.github/workflows/check.yml +0 -97
  76. python_amazon_paapi-6.3.0/CHANGELOG.md +0 -111
  77. python_amazon_paapi-6.3.0/PKG-INFO +0 -244
  78. python_amazon_paapi-6.3.0/README.md +0 -209
  79. python_amazon_paapi-6.3.0/amazon_creatorsapi/aio/api.py +0 -556
  80. python_amazon_paapi-6.3.0/amazon_creatorsapi/api.py +0 -384
  81. python_amazon_paapi-6.3.0/amazon_creatorsapi/core/constants.py +0 -7
  82. python_amazon_paapi-6.3.0/amazon_creatorsapi/core/error_handling.py +0 -55
  83. python_amazon_paapi-6.3.0/amazon_creatorsapi/core/validation.py +0 -40
  84. python_amazon_paapi-6.3.0/amazon_creatorsapi/errors.py +0 -40
  85. python_amazon_paapi-6.3.0/amazon_paapi/__init__.py +0 -20
  86. python_amazon_paapi-6.3.0/amazon_paapi/api.py +0 -349
  87. python_amazon_paapi-6.3.0/amazon_paapi/errors/__init__.py +0 -25
  88. python_amazon_paapi-6.3.0/amazon_paapi/errors/exceptions.py +0 -46
  89. python_amazon_paapi-6.3.0/amazon_paapi/helpers/__init__.py +0 -1
  90. python_amazon_paapi-6.3.0/amazon_paapi/helpers/arguments.py +0 -93
  91. python_amazon_paapi-6.3.0/amazon_paapi/helpers/generators.py +0 -16
  92. python_amazon_paapi-6.3.0/amazon_paapi/helpers/items.py +0 -21
  93. python_amazon_paapi-6.3.0/amazon_paapi/helpers/requests.py +0 -204
  94. python_amazon_paapi-6.3.0/amazon_paapi/models/__init__.py +0 -22
  95. python_amazon_paapi-6.3.0/amazon_paapi/models/browse_nodes_result.py +0 -30
  96. python_amazon_paapi-6.3.0/amazon_paapi/models/item_result.py +0 -450
  97. python_amazon_paapi-6.3.0/amazon_paapi/models/regions.py +0 -105
  98. python_amazon_paapi-6.3.0/amazon_paapi/models/search_result.py +0 -18
  99. python_amazon_paapi-6.3.0/amazon_paapi/models/variations_result.py +0 -49
  100. python_amazon_paapi-6.3.0/amazon_paapi/sdk/COPYING.txt +0 -202
  101. python_amazon_paapi-6.3.0/amazon_paapi/sdk/LICENSE.txt +0 -202
  102. python_amazon_paapi-6.3.0/amazon_paapi/sdk/NOTICE.txt +0 -2
  103. python_amazon_paapi-6.3.0/amazon_paapi/sdk/__init__.py +0 -145
  104. python_amazon_paapi-6.3.0/amazon_paapi/sdk/api/__init__.py +0 -29
  105. python_amazon_paapi-6.3.0/amazon_paapi/sdk/api/default_api.py +0 -430
  106. python_amazon_paapi-6.3.0/amazon_paapi/sdk/api_client.py +0 -684
  107. python_amazon_paapi-6.3.0/amazon_paapi/sdk/auth/__init__.py +0 -33
  108. python_amazon_paapi-6.3.0/amazon_paapi/sdk/auth/sign_helper.py +0 -152
  109. python_amazon_paapi-6.3.0/amazon_paapi/sdk/configuration.py +0 -232
  110. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/__init__.py +0 -135
  111. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/availability.py +0 -105
  112. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/big_decimal.py +0 -99
  113. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/browse_node.py +0 -286
  114. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/browse_node_ancestor.py +0 -204
  115. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/browse_node_child.py +0 -179
  116. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/browse_node_info.py +0 -156
  117. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/browse_nodes_result.py +0 -129
  118. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/by_line_info.py +0 -182
  119. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/classifications.py +0 -155
  120. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/condition.py +0 -108
  121. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/content_info.py +0 -209
  122. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/content_rating.py +0 -129
  123. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/contributor.py +0 -205
  124. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/customer_reviews.py +0 -155
  125. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/deal_details.py +0 -257
  126. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/delivery_flag.py +0 -107
  127. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/dimension_based_attribute.py +0 -207
  128. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/duration_price.py +0 -156
  129. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/error_data.py +0 -153
  130. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/external_ids.py +0 -181
  131. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/get_browse_nodes_request.py +0 -263
  132. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/get_browse_nodes_resource.py +0 -105
  133. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/get_browse_nodes_response.py +0 -156
  134. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/get_items_request.py +0 -424
  135. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/get_items_resource.py +0 -170
  136. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/get_items_response.py +0 -156
  137. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/get_variations_request.py +0 -449
  138. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/get_variations_resource.py +0 -173
  139. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/get_variations_response.py +0 -156
  140. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/image_size.py +0 -179
  141. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/image_type.py +0 -181
  142. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/images.py +0 -155
  143. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/item.py +0 -422
  144. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/item_id_type.py +0 -104
  145. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/item_info.py +0 -399
  146. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/items_result.py +0 -129
  147. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/language_type.py +0 -153
  148. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/languages.py +0 -181
  149. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/manufacture_info.py +0 -181
  150. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/max_price.py +0 -99
  151. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/merchant.py +0 -105
  152. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/min_price.py +0 -99
  153. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/min_reviews_rating.py +0 -99
  154. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/min_saving_percent.py +0 -99
  155. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/money.py +0 -181
  156. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/multi_valued_attribute.py +0 -179
  157. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/offer_availability.py +0 -205
  158. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/offer_availability_v2.py +0 -205
  159. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/offer_condition.py +0 -260
  160. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/offer_condition_note.py +0 -153
  161. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/offer_condition_v2.py +0 -179
  162. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/offer_count.py +0 -99
  163. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/offer_delivery_info.py +0 -207
  164. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/offer_listing.py +0 -422
  165. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/offer_listing_v2.py +0 -343
  166. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/offer_listings.py +0 -101
  167. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/offer_listings_v2.py +0 -101
  168. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/offer_loyalty_points.py +0 -127
  169. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/offer_loyalty_points_v2.py +0 -127
  170. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/offer_merchant_info.py +0 -231
  171. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/offer_merchant_info_v2.py +0 -153
  172. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/offer_price.py +0 -286
  173. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/offer_price_v2.py +0 -209
  174. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/offer_program_eligibility.py +0 -153
  175. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/offer_promotion.py +0 -257
  176. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/offer_saving_basis.py +0 -182
  177. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/offer_savings.py +0 -231
  178. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/offer_savings_v2.py +0 -155
  179. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/offer_shipping_charge.py +0 -231
  180. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/offer_sub_condition.py +0 -205
  181. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/offer_summary.py +0 -208
  182. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/offer_type.py +0 -105
  183. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/offers.py +0 -156
  184. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/offers_v2.py +0 -129
  185. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/partner_type.py +0 -104
  186. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/price.py +0 -155
  187. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/price_type.py +0 -107
  188. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/product_advertising_api_client_exception.py +0 -129
  189. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/product_advertising_api_service_exception.py +0 -127
  190. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/product_info.py +0 -262
  191. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/properties.py +0 -99
  192. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/rating.py +0 -127
  193. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/refinement.py +0 -181
  194. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/refinement_bin.py +0 -153
  195. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/rental_offer_listing.py +0 -263
  196. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/rental_offers.py +0 -129
  197. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/saving_basis_type.py +0 -107
  198. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/search_index.py +0 -99
  199. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/search_items_request.py +0 -819
  200. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/search_items_resource.py +0 -171
  201. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/search_items_response.py +0 -156
  202. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/search_refinements.py +0 -181
  203. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/search_result.py +0 -208
  204. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/single_boolean_valued_attribute.py +0 -179
  205. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/single_integer_valued_attribute.py +0 -179
  206. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/single_string_valued_attribute.py +0 -179
  207. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/sort_by.py +0 -109
  208. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/technical_info.py +0 -156
  209. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/trade_in_info.py +0 -155
  210. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/trade_in_price.py +0 -179
  211. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/unit_based_attribute.py +0 -205
  212. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/variation_attribute.py +0 -153
  213. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/variation_dimension.py +0 -205
  214. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/variation_summary.py +0 -208
  215. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/variations_result.py +0 -156
  216. python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/website_sales_rank.py +0 -205
  217. python_amazon_paapi-6.3.0/amazon_paapi/sdk/rest.py +0 -335
  218. python_amazon_paapi-6.3.0/amazon_paapi/tools/__init__.py +0 -5
  219. python_amazon_paapi-6.3.0/amazon_paapi/tools/asin.py +0 -19
  220. python_amazon_paapi-6.3.0/docs/amazon_creatorsapi.aio.rst +0 -22
  221. python_amazon_paapi-6.3.0/docs/amazon_creatorsapi.core.rst +0 -7
  222. python_amazon_paapi-6.3.0/docs/amazon_creatorsapi.errors.rst +0 -7
  223. python_amazon_paapi-6.3.0/docs/amazon_creatorsapi.models.rst +0 -7
  224. python_amazon_paapi-6.3.0/docs/amazon_creatorsapi.rst +0 -10
  225. python_amazon_paapi-6.3.0/docs/index.rst +0 -57
  226. python_amazon_paapi-6.3.0/docs/pages/migration-guide-6.md +0 -166
  227. python_amazon_paapi-6.3.0/docs/pages/usage-guide.md +0 -161
  228. python_amazon_paapi-6.3.0/tests/__init__.py +0 -1
  229. python_amazon_paapi-6.3.0/tests/amazon_creatorsapi/aio/integration_test.py +0 -468
  230. python_amazon_paapi-6.3.0/tests/amazon_creatorsapi/api_test.py +0 -831
  231. python_amazon_paapi-6.3.0/tests/amazon_creatorsapi/integration_test.py +0 -473
  232. python_amazon_paapi-6.3.0/tests/api_test.py +0 -67
  233. python_amazon_paapi-6.3.0/tests/errors_test.py +0 -12
  234. python_amazon_paapi-6.3.0/tests/helpers_arguments_test.py +0 -94
  235. python_amazon_paapi-6.3.0/tests/helpers_generators_test.py +0 -19
  236. python_amazon_paapi-6.3.0/tests/helpers_items_test.py +0 -52
  237. python_amazon_paapi-6.3.0/tests/helpers_requests_test.py +0 -183
  238. python_amazon_paapi-6.3.0/tests/integration_test.py +0 -333
  239. python_amazon_paapi-6.3.0/tests/offersv2_test.py +0 -79
  240. python_amazon_paapi-6.3.0/tests/tools_test.py +0 -37
  241. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/.github/ISSUE_TEMPLATE/---feature-request.md +0 -0
  242. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  243. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/.gitignore +0 -0
  244. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/.readthedocs.yml +0 -0
  245. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/LICENSE +0 -0
  246. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/amazon_creatorsapi/aio/__init__.py +0 -0
  247. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/amazon_creatorsapi/core/__init__.py +0 -0
  248. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/amazon_creatorsapi/core/marketplaces.py +0 -0
  249. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/amazon_creatorsapi/core/resources.py +0 -0
  250. {python_amazon_paapi-6.3.0/creatorsapi_python_sdk → python_amazon_paapi-7.1.0/amazon_creatorsapi}/py.typed +0 -0
  251. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/api/__init__.py +0 -0
  252. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/api_response.py +0 -0
  253. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/auth/__init__.py +0 -0
  254. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/auth/oauth2_config.py +0 -0
  255. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/auth/oauth2_token_manager.py +0 -0
  256. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/configuration.py +0 -0
  257. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/exceptions.py +0 -0
  258. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/access_denied_exception_response_content.py +0 -0
  259. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/access_denied_reason.py +0 -0
  260. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/availability.py +0 -0
  261. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/browse_node.py +0 -0
  262. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/browse_node_ancestor.py +0 -0
  263. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/browse_node_child.py +0 -0
  264. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/browse_node_info.py +0 -0
  265. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/browse_nodes_result.py +0 -0
  266. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/by_line_info.py +0 -0
  267. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/classifications.py +0 -0
  268. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/condition.py +0 -0
  269. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/content_info.py +0 -0
  270. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/content_rating.py +0 -0
  271. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/contributor.py +0 -0
  272. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/customer_reviews.py +0 -0
  273. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/deal_details.py +0 -0
  274. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/delivery_flag.py +0 -0
  275. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/dimension_based_attribute.py +0 -0
  276. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/error_data.py +0 -0
  277. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/external_ids.py +0 -0
  278. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/get_browse_nodes_request_content.py +0 -0
  279. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/get_browse_nodes_resource.py +0 -0
  280. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/get_browse_nodes_response_content.py +0 -0
  281. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/get_feed_response_content.py +0 -0
  282. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/get_items_request_content.py +0 -0
  283. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/get_items_resource.py +0 -0
  284. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/get_items_response_content.py +0 -0
  285. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/get_report_response_content.py +0 -0
  286. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/get_variations_request_content.py +0 -0
  287. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/get_variations_resource.py +0 -0
  288. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/get_variations_response_content.py +0 -0
  289. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/image_size.py +0 -0
  290. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/image_type.py +0 -0
  291. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/images.py +0 -0
  292. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/internal_server_exception_response_content.py +0 -0
  293. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/item.py +0 -0
  294. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/item_info.py +0 -0
  295. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/items_result.py +0 -0
  296. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/language_type.py +0 -0
  297. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/languages.py +0 -0
  298. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/list_feeds_response_content.py +0 -0
  299. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/list_reports_response_content.py +0 -0
  300. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/manufacture_info.py +0 -0
  301. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/money.py +0 -0
  302. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/multi_valued_attribute.py +0 -0
  303. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/offer_availability_v2.py +0 -0
  304. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/offer_condition_v2.py +0 -0
  305. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/offer_listing_v2.py +0 -0
  306. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/offer_loyalty_points_v2.py +0 -0
  307. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/offer_merchant_info_v2.py +0 -0
  308. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/offer_price_v2.py +0 -0
  309. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/offer_saving_basis.py +0 -0
  310. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/offer_savings.py +0 -0
  311. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/offer_type.py +0 -0
  312. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/offers_v2.py +0 -0
  313. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/product_info.py +0 -0
  314. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/rating.py +0 -0
  315. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/refinement.py +0 -0
  316. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/refinement_bin.py +0 -0
  317. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/resource_not_found_exception_response_content.py +0 -0
  318. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/saving_basis_type.py +0 -0
  319. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/search_items_resource.py +0 -0
  320. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/search_items_response_content.py +0 -0
  321. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/search_refinements.py +0 -0
  322. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/search_result.py +0 -0
  323. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/single_boolean_valued_attribute.py +0 -0
  324. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/single_integer_valued_attribute.py +0 -0
  325. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/single_string_valued_attribute.py +0 -0
  326. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/sort_by.py +0 -0
  327. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/technical_info.py +0 -0
  328. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/throttle_exception_response_content.py +0 -0
  329. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/trade_in_info.py +0 -0
  330. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/trade_in_price.py +0 -0
  331. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/unauthorized_exception_reason.py +0 -0
  332. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/unauthorized_exception_response_content.py +0 -0
  333. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/unit_based_attribute.py +0 -0
  334. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/validation_exception_field.py +0 -0
  335. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/validation_exception_reason.py +0 -0
  336. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/validation_exception_response_content.py +0 -0
  337. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/variation_attribute.py +0 -0
  338. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/variation_dimension.py +0 -0
  339. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/variation_summary.py +0 -0
  340. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/variation_summary_price.py +0 -0
  341. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/variations_result.py +0 -0
  342. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/models/website_sales_rank.py +0 -0
  343. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/creatorsapi_python_sdk/rest.py +0 -0
  344. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/docs/Makefile +0 -0
  345. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/docs/_static/pa-paapi-icon.ico +0 -0
  346. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/docs/_static/pa-paapi-logo.png +0 -0
  347. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/docs/make.bat +0 -0
  348. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/docs/requirements.txt +0 -0
  349. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/scripts/check_version.py +0 -0
  350. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/tests/amazon_creatorsapi/__init__.py +0 -0
  351. {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.1.0}/tests/amazon_creatorsapi/aio/__init__.py +0 -0
@@ -17,11 +17,11 @@ trigger: always_on
17
17
  # Test
18
18
 
19
19
  - Add tests following TDD practices
20
- - Mirror the amazon_paapi structure in the tests directory
20
+ - Mirror the amazon_creatorsapi structure in the tests directory
21
21
  - Use unittest.TestCase with setUp() and tearDown()
22
22
  - Use unittest assertions, not native assert
23
23
  - Use @patch decorators for mocks (avoid context managers)
24
24
 
25
25
  # References
26
26
 
27
- - Documentation for the Product Advertising API here: https://webservices.amazon.com/paapi5/documentation/operations.html
27
+ - Documentation for the Creators API here: https://webservices.amazon.com/creatorsapi/documentation/
@@ -1,13 +1,7 @@
1
- # Product Advertising API
2
- API_KEY=
3
- API_SECRET=
4
-
5
1
  # Creators API
6
2
  CREDENTIAL_ID=
7
3
  CREDENTIAL_SECRET=
8
4
  API_VERSION=
9
5
  MARKETPLACE=
10
-
11
- # Common
12
6
  AFFILIATE_TAG=
13
7
  COUNTRY_CODE=
@@ -17,7 +17,7 @@ assignees: ''
17
17
  "Add some code that helps understanding the issue"
18
18
  ```
19
19
  **Current behavior**
20
- A clear and concise description of what is currenctly happening.
20
+ A clear and concise description of what is currently happening.
21
21
 
22
22
  **Expected behavior**
23
23
  A clear and concise description of what you expected to happen.
@@ -0,0 +1,100 @@
1
+ name: Run linters and tests
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - master
7
+ pull_request:
8
+
9
+ permissions:
10
+ contents: read
11
+
12
+ concurrency:
13
+ group: ${{ github.workflow }}-${{ github.ref }}
14
+ cancel-in-progress: ${{ github.event_name == 'pull_request' }}
15
+
16
+ jobs:
17
+ check:
18
+ runs-on: ubuntu-latest
19
+ timeout-minutes: 10
20
+
21
+ steps:
22
+ - uses: actions/checkout@v5
23
+ with:
24
+ fetch-depth: 0
25
+
26
+ - name: Check CHANGELOG was updated
27
+ if: github.event_name == 'pull_request'
28
+ run: |
29
+ if git diff --name-only origin/${{ github.base_ref }}...HEAD | grep -q "^CHANGELOG.md$"; then
30
+ echo "✅ CHANGELOG.md was updated"
31
+ else
32
+ echo "❌ ERROR: CHANGELOG.md was not updated"
33
+ echo "Please add your changes to the CHANGELOG.md file"
34
+ exit 1
35
+ fi
36
+
37
+ - name: Set up Python
38
+ uses: actions/setup-python@v6
39
+ with:
40
+ python-version: "3.13"
41
+
42
+ - name: Install UV
43
+ uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
44
+ with:
45
+ enable-cache: true
46
+ cache-dependency-glob: pyproject.toml
47
+
48
+ - name: Cache pre-commit
49
+ uses: actions/cache@v4
50
+ with:
51
+ path: ~/.cache/pre-commit
52
+ key: ${{ runner.os }}-pre-commit-${{ hashFiles('.pre-commit-config.yaml') }}
53
+ restore-keys: |
54
+ ${{ runner.os }}-pre-commit-
55
+
56
+ # Tests are owned by the test job below, so the test hook is skipped here.
57
+ - name: Run all checks
58
+ env:
59
+ SKIP: test
60
+ run: uv run --extra async pre-commit run --all-files --verbose
61
+
62
+ test:
63
+ runs-on: ubuntu-latest
64
+ timeout-minutes: 5
65
+
66
+ strategy:
67
+ fail-fast: false
68
+ matrix:
69
+ python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]
70
+ include:
71
+ # Only this leg has the credentials for the integration tests, so it
72
+ # is the one that can meet the coverage threshold.
73
+ - python-version: "3.13"
74
+ coverage: true
75
+
76
+ steps:
77
+ - uses: actions/checkout@v5
78
+
79
+ - name: Install UV
80
+ uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
81
+ with:
82
+ enable-cache: true
83
+ cache-dependency-glob: pyproject.toml
84
+ # Each version resolves to different wheels, so they cannot share one
85
+ # cache entry.
86
+ cache-suffix: py${{ matrix.python-version }}
87
+
88
+ - name: Run tests
89
+ if: ${{ !matrix.coverage }}
90
+ run: uv run --python "${{ matrix.python-version }}" --extra async pytest -rs --no-cov
91
+
92
+ - name: Run tests with coverage
93
+ if: ${{ matrix.coverage }}
94
+ env:
95
+ AFFILIATE_TAG: ${{ secrets.AFFILIATE_TAG }}
96
+ COUNTRY_CODE: ${{ secrets.COUNTRY_CODE }}
97
+ CREDENTIAL_ID: ${{ secrets.CREDENTIAL_ID }}
98
+ CREDENTIAL_SECRET: ${{ secrets.CREDENTIAL_SECRET }}
99
+ API_VERSION: ${{ secrets.API_VERSION }}
100
+ run: uv run --python "${{ matrix.python-version }}" --extra async pytest -rs --cov=amazon_creatorsapi
@@ -10,6 +10,7 @@ permissions:
10
10
  jobs:
11
11
  release:
12
12
  runs-on: ubuntu-latest
13
+ timeout-minutes: 10
13
14
  if: github.ref == 'refs/heads/master'
14
15
  environment: pypi
15
16
  outputs:
@@ -19,6 +20,9 @@ jobs:
19
20
  steps:
20
21
  - name: Checkout code
21
22
  uses: actions/checkout@v5
23
+ with:
24
+ # Needed so the tag existence check below can see the tags.
25
+ fetch-depth: 0
22
26
 
23
27
  - name: Extract version and notes from CHANGELOG
24
28
  id: changelog
@@ -40,7 +44,7 @@ jobs:
40
44
  - name: Check if tag already exists
41
45
  id: check_tag
42
46
  run: |
43
- if git rev-parse "v${{ steps.changelog.outputs.version }}" >/dev/null 2>&1; then
47
+ if git rev-parse -q --verify "refs/tags/${{ steps.changelog.outputs.version }}" >/dev/null; then
44
48
  echo "exists=true" >> $GITHUB_OUTPUT
45
49
  else
46
50
  echo "exists=false" >> $GITHUB_OUTPUT
@@ -59,21 +63,17 @@ jobs:
59
63
  - name: Skip release (tag exists)
60
64
  if: steps.check_tag.outputs.exists == 'true'
61
65
  run: |
62
- echo "⚠️ Tag v${{ steps.changelog.outputs.version }} already exists. Skipping release creation."
66
+ echo "⚠️ Tag ${{ steps.changelog.outputs.version }} already exists. Skipping release creation."
63
67
  exit 1
64
68
 
65
- - name: Set up Python
66
- uses: actions/setup-python@v5
69
+ - name: Install UV
70
+ uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
67
71
  with:
68
- python-version: "3.x"
69
-
70
- - name: Install dependencies
71
- run: |
72
- python -m pip install --upgrade pip
73
- pip install build
72
+ # uv build only needs the build backend, not the project dependencies.
73
+ enable-cache: false
74
74
 
75
75
  - name: Build package
76
- run: python -m build
76
+ run: uv build
77
77
 
78
78
  - name: Publish to PyPI
79
79
  uses: pypa/gh-action-pypi-publish@release/v1
@@ -28,12 +28,14 @@ repos:
28
28
  - id: check-merge-conflict
29
29
  - id: debug-statements
30
30
  - id: name-tests-test
31
+ # Support shared by the integration tests, which holds no test of its own
32
+ exclude: ^tests/integration_support\.py$
31
33
 
32
34
  - repo: https://github.com/lk16/detect-missing-init
33
35
  rev: v0.1.6
34
36
  hooks:
35
37
  - id: detect-missing-init
36
- args: ["--create", "--python-folders", "amazon_paapi"]
38
+ args: ["--create", "--python-folders", "amazon_creatorsapi"]
37
39
 
38
40
  - repo: https://github.com/gitleaks/gitleaks
39
41
  rev: v8.30.0
@@ -52,7 +54,7 @@ repos:
52
54
  - id: test
53
55
  name: Running tests
54
56
  language: system
55
- entry: "bash -c 'set -a && source .env 2>/dev/null; set +a && uv run pytest -rs --cov=amazon_paapi --cov=amazon_creatorsapi'"
57
+ entry: "bash -c 'set -a && source .env 2>/dev/null; set +a && uv run pytest -rs --cov=amazon_creatorsapi'"
56
58
  types_or: [python]
57
59
  pass_filenames: false
58
60
 
@@ -0,0 +1,192 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [7.1.0] - 2026-09-16
9
+
10
+ ### Added
11
+
12
+ - `timeout` in `AmazonCreatorsApi` and `AsyncAmazonCreatorsApi` accepts a pair of `(connect, read)` seconds, bounding each leg of a request on its own, so a host resolving to several addresses cannot spend a read-sized timeout on every one of them
13
+
14
+ ### Changed
15
+
16
+ - The default timeout is `(5, 25)` rather than `30`, five seconds to connect and twenty-five to read. It adds up to the thirty seconds that have always been documented and makes them true of the token request and of the async client too, where a single value was applied to each leg separately and allowed sixty. A response taking between twenty-five and thirty seconds now times out where it used to arrive
17
+
18
+ ## [7.0.0] - 2026-09-04
19
+
20
+ ### Added
21
+
22
+ - `list_feeds`, `get_feed`, `list_reports` and `get_report` methods in `amazon_creatorsapi` and `amazon_creatorsapi.aio`, with `Feed`, `FeedType`, `ReportMetadata` and `ReportType` in `amazon_creatorsapi.models` and in the bundled SDK
23
+ - `timeout` parameter in `AmazonCreatorsApi` and `AsyncAmazonCreatorsApi` to set the request timeout in seconds, or `None` to wait indefinitely
24
+ - `retries` parameter in `AmazonCreatorsApi` and `AsyncAmazonCreatorsApi` to retry the throttled and failed requests that Amazon asks to retry, waiting longer before every attempt and honouring the `Retry-After` header, whether Amazon sends it as an amount of seconds or as a date
25
+ - `include_unavailable` parameter in `get_items` to get an item holding only the ASIN for every requested item missing from the response
26
+ - `availability` parameter in `search_items` to include the items that are out of stock, keyword only and placed after the rest, so the arguments of a caller not using keywords keep their position
27
+ - `host` and `auth_endpoint` parameters in `AmazonCreatorsApi` and `AsyncAmazonCreatorsApi` to replace the endpoints of the API, useful to run tests against a mock server or to use a version newer than the ones known by the library, as long as the library can authenticate its family
28
+ - `AccessDeniedError`, raised when the credentials cannot perform the requested operation
29
+ - `ResourceNotFoundError`, raised when a feed or report does not exist, telling it apart from missing items
30
+ - Partial errors of a response are available in the `errors` attribute of the lists returned by `get_items` and `get_browse_nodes`, and are reported in the message of `ItemsNotFoundError`
31
+ - `ErrorData` and `ResultList` available in `amazon_creatorsapi.models`
32
+ - `get_asin` and `errors` are available directly in `amazon_creatorsapi`
33
+ - The identifier that Amazon gives to a request is part of the message of the error, so it can be reported to Amazon support
34
+ - `close` method and context manager support in `AmazonCreatorsApi`, to release the connections of a client that is not going to be reused
35
+ - `py.typed` marker, so the type hints of the package are used by type checkers
36
+ - Migration guide from version 6, listing what can break in code written for `amazon_creatorsapi` and how to fix it
37
+ - The values accepted by `version`, the countries and the marketplace each one maps to, and the `marketplace` argument are documented, instead of having to read the code to find them
38
+ - `CONTRIBUTING.md`, with the setup of the project, the commands of the `Makefile`, the conventions of the code and the tests, and what a pull request is expected to carry
39
+ - Tests pinning the signatures of both clients and the hierarchy of the errors, so a change that breaks the code of the users is noticed
40
+
41
+ ### Changed
42
+
43
+ - Requests time out after 30 seconds instead of waiting indefinitely, the refresh of the token included, which waited indefinitely in `AmazonCreatorsApi` and used the 5 second default of `httpx` in `AsyncAmazonCreatorsApi`. Pass `timeout=None` to restore the previous behaviour
44
+ - Errors are mapped from the response of the Creators API instead of the codes of the old Product Advertising API, so the reason and the fields that failed are part of the message
45
+ - A rejected request raises `InvalidArgumentError`, missing or expired credentials raise `AuthenticationError` and a forbidden request raises `AccessDeniedError`, instead of a generic `RequestError`
46
+ - Values rejected by the API constraints raise `InvalidArgumentError` instead of a `pydantic.ValidationError`
47
+ - Connection failures and unparseable responses raise `RequestError` instead of leaking the errors of the HTTP client
48
+ - An expired token is refreshed once and the request is sent again instead of failing
49
+ - `AuthenticationError` and `AccessDeniedError` are subclasses of `RequestError`, which is what a failed request raised before they got their own type
50
+ - `InvalidArgumentError` is also a `ValueError`, as the `pydantic.ValidationError` and the plain `ValueError` it replaced were
51
+ - `get_items` splits a request with more items than the API accepts into as many calls as needed, so any amount of items can be requested at once
52
+ - `get_items` returns the items in the order they were requested, and asks for duplicated items only once
53
+ - `get_items` raises `ItemsNotFoundError` when the response holds no requested item, as documented, instead of returning an empty list
54
+ - `search_items` rejects a search without any criteria instead of sending it to the API
55
+ - An unsupported `version` raises `InvalidArgumentError` instead of a plain `ValueError`, like the rest of the arguments of the clients, and a version of a family that the library cannot authenticate is rejected even when `auth_endpoint` is given, instead of being sent with the Cognito flow and rejected by Amazon without an explanation
56
+ - The error of an unsupported version tells that a newer version of a known family can be used by providing its `auth_endpoint`
57
+ - `AmazonCreatorsApi` validates the version when it is created, as `AsyncAmazonCreatorsApi` already did, instead of failing on the first request
58
+ - The auth flow of a version and the `Authorization` header it expects are decided in a single place shared by both clients, and the copies bundled in the SDK are pinned to them by tests, so a bump of the SDK cannot leave both halves disagreeing
59
+ - `AsyncAmazonCreatorsApi` builds its requests with the models of the SDK, so both clients validate the same values before sending a request
60
+ - Every client uses its own configuration for the SDK instead of the one shared by the whole process
61
+ - Throttling is measured with a monotonic clock and is safe to use from several threads
62
+ - `throttling` is validated like the rest of the options, so a negative or invalid value raises `InvalidArgumentError` instead of being accepted or failing with a `TypeError`
63
+ - The usage guide covers everything the README does, so the documentation does not have to be read in both places, and the README links to it
64
+ - The integration tests reach every operation of the API, feeds and reports included, and both clients share the same assertions, so a difference between them is a failure instead of a gap
65
+ - Every integration test reads the results of a single round of calls, which loads each request with as much as it can check, so the whole API is covered without spending more requests of the account
66
+ - The async integration tests make their calls when the suite runs instead of when the module is imported, so they are not sent when the tests are deselected and a failure is reported as such
67
+ - The CI workflow runs the test suite once per Python version instead of also running it inside the linter job, cancels superseded pull request runs and installs `uv` through a cached action
68
+ - The release workflow builds with `uv build`, and its check for an already existing tag looks for the tag name that is actually created, which never matched before
69
+ - Bumped the bundled `creatorsapi-python-sdk` from `1.2.0` to `1.3.0`, which makes `partnerTag` a required field of `SearchItemsRequestContent`
70
+ - Pinned `ruff` to the version run by pre-commit, so `make lint` matches CI
71
+
72
+ ### Fixed
73
+
74
+ - Examples in the documentation that used names that do not exist, such as `SortBy.PRICE_LOW_TO_HIGH` or `GetItemsResource.ITEMINFO_TITLE`
75
+ - Documented limits of `item_count`, `min_reviews_rating` and `variation_page`, which did not match the ones accepted by the API
76
+ - A token response that does not hold JSON raises `AuthenticationError` in `AsyncAmazonCreatorsApi`, instead of the error of the JSON parser
77
+ - Errors reported by the transport, such as an invalid certificate, keep their reason instead of being reported as `Request failed with status 0`
78
+ - An ASIN longer than ten characters in a URL is rejected instead of being trimmed to a different item
79
+ - Threads sharing a client ask for a single token when the cached one expires, instead of one for every thread
80
+ - Search integration tests no longer assume Amazon always returns a full page of items
81
+
82
+ ### Removed
83
+
84
+ - The deprecated `amazon_paapi` module and its bundled Product Advertising API 5.0 SDK, with `AmazonApi`, `amazon_paapi.errors`, `amazon_paapi.helpers`, `amazon_paapi.models` and `amazon_paapi.tools`. Use `amazon_creatorsapi` instead, following the [migration guide](https://python-amazon-paapi.readthedocs.io/en/latest/pages/migration-guide-6.html) for the credential, method and exception mapping
85
+ - Product Advertising API documentation and deprecation notices in the README and docs
86
+ - `API_KEY` and `API_SECRET` environment variables, only used by the removed module
87
+ - `six` dependency, which was not used
88
+
89
+ ## [6.3.0] - 2026-05-15
90
+
91
+ ### Added
92
+
93
+ - `delivery_flags` parameter in `search_items` for `amazon_creatorsapi` and `amazon_creatorsapi.aio`
94
+
95
+ ## [6.2.0] - 2026-03-12
96
+
97
+ ### Added
98
+
99
+ - LWA support in the `amazon_creatorsapi.aio` API layer
100
+
101
+ ### Changed
102
+
103
+ - Bumped `creatorsapi-python-sdk` from `1.1.2` to `1.2.0`
104
+ - Updated bundled SDK support to include LWA endpoints for v3.x
105
+
106
+ ## [6.1.0] - 2026-02-09
107
+
108
+ ### Added
109
+
110
+ - Full async/await support with new `amazon_creatorsapi.aio` subpackage ([#143](https://github.com/sergioteula/python-amazon-paapi/pull/143))
111
+ - `AsyncAmazonCreatorsApi` class for non-blocking API interactions
112
+ - Async HTTP client with `httpx` integration for connection pooling
113
+ - `AuthenticationError` exception for improved OAuth2 error handling
114
+ - Optional `[async]` installation extra: `pip install python-amazon-paapi[async]`
115
+ - Comprehensive async test suite with integration tests
116
+ - Documentation for async API usage in README and usage guide
117
+ - `make docs` command in Makefile for building documentation
118
+
119
+ ### Changed
120
+
121
+ - GitHub Actions workflow now installs async dependencies for complete test coverage
122
+ - Test coverage threshold lowered from 99% to 98% to accommodate async tests
123
+ - Additional Ruff linting rules for test files (ARG002, S101, S105, S106, SIM117)
124
+
125
+ ## [6.0.0] - 2026-01-29
126
+
127
+ ### Added
128
+
129
+ - New `amazon_creatorsapi` module for Amazon Creators API support
130
+ - `creatorsapi_python_sdk` package bundled for OAuth2 authentication
131
+ - `models` submodule exposing all SDK model classes (Item, Condition, SortBy, etc.)
132
+ - Migration guide from PAAPI to Creators API (`docs/pages/migration-guide-6.md`)
133
+ - Integration tests for the new Creators API module
134
+ - New dependencies: `pydantic>=2.0.0` and `requests>=2.28.0`
135
+
136
+ ### Changed
137
+
138
+ - **BREAKING**: The `amazon_paapi` module is now deprecated in favor of `amazon_creatorsapi`
139
+ - Updated documentation to reflect the new Creators API module
140
+ - Reorganized utility functions into `amazon_creatorsapi.core` package
141
+ - Updated README with Creators API examples and deprecation notice
142
+
143
+ ### Deprecated
144
+
145
+ - `amazon_paapi` module - use `amazon_creatorsapi` instead
146
+ - All PAAPI-specific documentation pages removed
147
+
148
+ ### Removed
149
+
150
+ - Migration guides for versions 4 and 5 (`migration-guide-4.md`, `migration-guide-5.md`)
151
+
152
+ ## [5.2.0] - 2026-01-11
153
+
154
+ ### Added
155
+
156
+ - Support for OffersV2 resources with new model classes ([#141](https://github.com/sergioteula/python-amazon-paapi/pull/141))
157
+
158
+ ## [5.1.0] - 2026-01-11
159
+
160
+ ### Added
161
+
162
+ - Integration tests with real Amazon API calls
163
+ - Type hints throughout the codebase using `Literal` types for country codes
164
+ - `.env.template` file for easier development setup
165
+ - Code style guide for AI assistants (`.agent/rules/code-style-guide.md`)
166
+ - Pre-commit hooks with Ruff integration
167
+ - Version consistency check script (`scripts/check_version.py`)
168
+ - Manual release workflow (`release.yml`) that creates GitHub releases from CHANGELOG
169
+ - CI check to ensure CHANGELOG is updated in every PR
170
+
171
+ ### Changed
172
+
173
+ - **BREAKING**: Minimum Python version raised from 3.7 to 3.9
174
+ - Migrated from `setup.py` to `pyproject.toml` for project configuration
175
+ - Replaced multiple linters (Flake8, isort, Black, Pylint) with Ruff
176
+ - Replaced Docker-based development environment with `uv` package manager
177
+ - Consolidated coverage, mypy, and pytest configuration into `pyproject.toml`
178
+ - Renamed test files to use `_test.py` suffix instead of `test_` prefix
179
+ - Updated GitHub Actions workflows to use `uv` instead of Docker
180
+ - Improved docstrings across the codebase
181
+ - Completely rewritten README with clearer structure and examples
182
+ - Updated Read the Docs configuration to v2 format with modern Sphinx versions
183
+ - Updated documentation to furo theme
184
+
185
+ ### Removed
186
+
187
+ - `setup.py` - replaced by `pyproject.toml`
188
+ - `.coveragerc` - configuration moved to `pyproject.toml`
189
+ - `.flake8` - replaced by Ruff configuration in `pyproject.toml`
190
+ - Docker development environment (`docker/`, `docker-compose.yml`)
191
+ - Legacy shell scripts (`scripts/` directory)
192
+ - Custom git hooks (`.githooks/`) - replaced by pre-commit
@@ -0,0 +1,89 @@
1
+ # Contributing
2
+
3
+ Thanks for taking the time to contribute. This guide covers how to set the project up,
4
+ what the checks expect and how a change should be shaped.
5
+
6
+ ## Setting up
7
+
8
+ The project is managed with [uv](https://docs.astral.sh/uv/):
9
+
10
+ ```bash
11
+ git clone https://github.com/sergioteula/python-amazon-paapi.git
12
+ cd python-amazon-paapi
13
+ uv sync --extra async
14
+ make setup
15
+ ```
16
+
17
+ `make setup` installs the pre-commit hooks, which run Ruff, mypy and the tests before
18
+ every commit. The `async` extra is needed to run the tests of `AsyncAmazonCreatorsApi`.
19
+
20
+ Copy `.env.template` to `.env` and fill it with your Creators API credentials to run the
21
+ integration tests. Without it the unit tests still run, and the integration tests are
22
+ skipped and reported as such.
23
+
24
+ ## Commands
25
+
26
+ | Command | What it does |
27
+ | --------------------------- | ------------------------------------------------------- |
28
+ | `make test` | Run the test suite |
29
+ | `make coverage` | Run the tests with a coverage report |
30
+ | `make test-all-python-tags` | Run the tests on every supported Python version |
31
+ | `make lint` | Run Ruff and apply the fixes it can make |
32
+ | `make format` | Format the code with Ruff |
33
+ | `make mypy` | Check the types |
34
+ | `make pre-commit` | Run every hook against all the files, as CI does |
35
+ | `make docs` | Build the documentation into `docs/_build/html` |
36
+
37
+ ## Layout
38
+
39
+ | Path | What it holds |
40
+ | ------------------------- | ------------------------------------------------------------------ |
41
+ | `amazon_creatorsapi/` | The library: the clients, the errors and the core utilities |
42
+ | `creatorsapi_python_sdk/` | The SDK generated from the API schema, vendored and not edited |
43
+ | `tests/` | The test suite, mirroring the structure of `amazon_creatorsapi` |
44
+ | `docs/` | The Sphinx documentation published on Read the Docs |
45
+
46
+ `creatorsapi_python_sdk` is generated code: it is excluded from Ruff, mypy and the
47
+ formatter, and it is replaced wholesale when the SDK is bumped, so a fix belongs in
48
+ `amazon_creatorsapi` and not there.
49
+
50
+ ## Style
51
+
52
+ - Everything in English: code, comments, docstrings and commit messages.
53
+ - Docstrings on every function, and type hints on every signature.
54
+ - Comments only where the reason for the code is not obvious from the code itself.
55
+ - No abbreviations or single-letter names.
56
+ - `noqa` only when there is no other way, and never without a reason.
57
+
58
+ ## Tests
59
+
60
+ - Tests come with the change, following TDD.
61
+ - The `tests` directory mirrors the structure of `amazon_creatorsapi`.
62
+ - `unittest.TestCase` with `setUp` and `tearDown`, unittest assertions and `@patch`
63
+ decorators rather than context managers.
64
+ - Coverage may not drop below 98%, which is enforced by the test run.
65
+
66
+ ## Documentation
67
+
68
+ A change that adds or changes something a user can see belongs in the documentation as
69
+ well:
70
+
71
+ - `README.md` and `docs/pages/usage-guide.md` cover the same ground, the guide in more
72
+ depth. Keep both in step.
73
+ - Docstrings feed the API reference, so a new argument is documented there too.
74
+
75
+ ## Sending a change
76
+
77
+ 1. Add an entry to `CHANGELOG.md`, under `[Unreleased]`, in the section that matches the
78
+ change: `Added`, `Changed`, `Fixed` or `Removed`. CI rejects a pull request that does
79
+ not touch the changelog.
80
+ 2. Run `make pre-commit` and make sure everything passes.
81
+ 3. Open the pull request describing what changes for the user and why.
82
+
83
+ The version lives in `pyproject.toml`, `docs/conf.py` and `CHANGELOG.md`, and
84
+ `scripts/check_version.py` checks that the three agree. Only a release changes them.
85
+
86
+ ## Getting help
87
+
88
+ Ask in the [Telegram group](https://t.me/PythonAmazonPAAPI) or open an
89
+ [issue](https://github.com/sergioteula/python-amazon-paapi/issues).
@@ -11,7 +11,7 @@ test:
11
11
  @uv run --env-file .env pytest -rs
12
12
 
13
13
  coverage:
14
- @uv run pytest -rs --cov=amazon_paapi --cov=amazon_creatorsapi --cov-report=html --cov-report=term --cov-report=xml
14
+ @uv run pytest -rs --cov=amazon_creatorsapi --cov-report=html --cov-report=term --cov-report=xml
15
15
 
16
16
  test-all-python-tags:
17
17
  @touch .env