python-amazon-paapi 6.2.0__tar.gz → 7.0.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 (350) hide show
  1. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/.agent/rules/code-style-guide.md +2 -2
  2. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/.env.template +0 -6
  3. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/.github/ISSUE_TEMPLATE/---bug-report.md +1 -1
  4. python_amazon_paapi-7.0.0/.github/workflows/check.yml +100 -0
  5. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/.github/workflows/release.yml +11 -11
  6. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/.pre-commit-config.yaml +4 -2
  7. python_amazon_paapi-7.0.0/CHANGELOG.md +182 -0
  8. python_amazon_paapi-7.0.0/CONTRIBUTING.md +89 -0
  9. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/Makefile +1 -1
  10. python_amazon_paapi-7.0.0/PKG-INFO +450 -0
  11. python_amazon_paapi-7.0.0/README.md +416 -0
  12. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/amazon_creatorsapi/__init__.py +3 -3
  13. python_amazon_paapi-7.0.0/amazon_creatorsapi/aio/api.py +827 -0
  14. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/amazon_creatorsapi/aio/auth.py +57 -33
  15. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/amazon_creatorsapi/aio/client.py +8 -5
  16. python_amazon_paapi-7.0.0/amazon_creatorsapi/api.py +708 -0
  17. python_amazon_paapi-7.0.0/amazon_creatorsapi/core/auth.py +149 -0
  18. python_amazon_paapi-7.0.0/amazon_creatorsapi/core/constants.py +16 -0
  19. python_amazon_paapi-7.0.0/amazon_creatorsapi/core/error_handling.py +190 -0
  20. python_amazon_paapi-7.0.0/amazon_creatorsapi/core/items.py +69 -0
  21. python_amazon_paapi-7.0.0/amazon_creatorsapi/core/oauth.py +142 -0
  22. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/amazon_creatorsapi/core/parsers.py +7 -2
  23. python_amazon_paapi-7.0.0/amazon_creatorsapi/core/requests.py +27 -0
  24. python_amazon_paapi-7.0.0/amazon_creatorsapi/core/results.py +36 -0
  25. python_amazon_paapi-7.0.0/amazon_creatorsapi/core/retry.py +102 -0
  26. python_amazon_paapi-7.0.0/amazon_creatorsapi/core/validation.py +160 -0
  27. python_amazon_paapi-7.0.0/amazon_creatorsapi/errors.py +62 -0
  28. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/amazon_creatorsapi/models.py +14 -0
  29. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/__init__.py +2 -0
  30. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/api/default_api.py +6 -7
  31. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/api_client.py +1 -1
  32. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/__init__.py +2 -0
  33. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/feed.py +6 -3
  34. python_amazon_paapi-7.0.0/creatorsapi_python_sdk/models/feed_type.py +44 -0
  35. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/get_feed_request_content.py +6 -3
  36. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/get_report_request_content.py +6 -3
  37. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/report_metadata.py +6 -3
  38. python_amazon_paapi-7.0.0/creatorsapi_python_sdk/models/report_type.py +44 -0
  39. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/search_items_request_content.py +1 -4
  40. python_amazon_paapi-7.0.0/creatorsapi_python_sdk/py.typed +0 -0
  41. python_amazon_paapi-7.0.0/docs/amazon_creatorsapi.aio.rst +42 -0
  42. python_amazon_paapi-7.0.0/docs/amazon_creatorsapi.core.rst +11 -0
  43. python_amazon_paapi-7.0.0/docs/amazon_creatorsapi.errors.rst +12 -0
  44. python_amazon_paapi-7.0.0/docs/amazon_creatorsapi.models.rst +12 -0
  45. python_amazon_paapi-7.0.0/docs/amazon_creatorsapi.rst +11 -0
  46. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/docs/conf.py +9 -6
  47. python_amazon_paapi-7.0.0/docs/index.rst +81 -0
  48. python_amazon_paapi-7.0.0/docs/pages/migration-guide-6.md +158 -0
  49. python_amazon_paapi-7.0.0/docs/pages/migration-guide-7.md +249 -0
  50. python_amazon_paapi-7.0.0/docs/pages/usage-guide.md +431 -0
  51. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/pyproject.toml +13 -27
  52. python_amazon_paapi-7.0.0/tests/__init__.py +1 -0
  53. python_amazon_paapi-7.0.0/tests/amazon_creatorsapi/aio/api_test.py +2553 -0
  54. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/tests/amazon_creatorsapi/aio/auth_test.py +86 -0
  55. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/tests/amazon_creatorsapi/aio/client_test.py +5 -0
  56. python_amazon_paapi-7.0.0/tests/amazon_creatorsapi/aio/integration_test.py +178 -0
  57. python_amazon_paapi-7.0.0/tests/amazon_creatorsapi/api_test.py +1985 -0
  58. python_amazon_paapi-7.0.0/tests/amazon_creatorsapi/core/__init__.py +1 -0
  59. python_amazon_paapi-7.0.0/tests/amazon_creatorsapi/core/auth_test.py +165 -0
  60. python_amazon_paapi-7.0.0/tests/amazon_creatorsapi/core/error_handling_test.py +180 -0
  61. python_amazon_paapi-7.0.0/tests/amazon_creatorsapi/core/items_test.py +70 -0
  62. python_amazon_paapi-7.0.0/tests/amazon_creatorsapi/core/oauth_test.py +111 -0
  63. python_amazon_paapi-7.0.0/tests/amazon_creatorsapi/core/requests_test.py +54 -0
  64. python_amazon_paapi-7.0.0/tests/amazon_creatorsapi/core/results_test.py +31 -0
  65. python_amazon_paapi-7.0.0/tests/amazon_creatorsapi/core/retry_test.py +99 -0
  66. python_amazon_paapi-7.0.0/tests/amazon_creatorsapi/core/sdk_parity_test.py +88 -0
  67. python_amazon_paapi-7.0.0/tests/amazon_creatorsapi/core/validation_test.py +126 -0
  68. python_amazon_paapi-7.0.0/tests/amazon_creatorsapi/errors_test.py +70 -0
  69. python_amazon_paapi-7.0.0/tests/amazon_creatorsapi/integration_test.py +170 -0
  70. python_amazon_paapi-7.0.0/tests/amazon_creatorsapi/signatures_test.py +128 -0
  71. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/tests/amazon_creatorsapi/tools_test.py +6 -0
  72. python_amazon_paapi-7.0.0/tests/integration_support.py +540 -0
  73. python_amazon_paapi-6.2.0/.github/workflows/check.yml +0 -97
  74. python_amazon_paapi-6.2.0/CHANGELOG.md +0 -105
  75. python_amazon_paapi-6.2.0/PKG-INFO +0 -244
  76. python_amazon_paapi-6.2.0/README.md +0 -209
  77. python_amazon_paapi-6.2.0/amazon_creatorsapi/aio/api.py +0 -551
  78. python_amazon_paapi-6.2.0/amazon_creatorsapi/api.py +0 -380
  79. python_amazon_paapi-6.2.0/amazon_creatorsapi/core/constants.py +0 -7
  80. python_amazon_paapi-6.2.0/amazon_creatorsapi/core/error_handling.py +0 -55
  81. python_amazon_paapi-6.2.0/amazon_creatorsapi/core/validation.py +0 -40
  82. python_amazon_paapi-6.2.0/amazon_creatorsapi/errors.py +0 -40
  83. python_amazon_paapi-6.2.0/amazon_paapi/__init__.py +0 -20
  84. python_amazon_paapi-6.2.0/amazon_paapi/api.py +0 -349
  85. python_amazon_paapi-6.2.0/amazon_paapi/errors/__init__.py +0 -25
  86. python_amazon_paapi-6.2.0/amazon_paapi/errors/exceptions.py +0 -46
  87. python_amazon_paapi-6.2.0/amazon_paapi/helpers/__init__.py +0 -1
  88. python_amazon_paapi-6.2.0/amazon_paapi/helpers/arguments.py +0 -93
  89. python_amazon_paapi-6.2.0/amazon_paapi/helpers/generators.py +0 -16
  90. python_amazon_paapi-6.2.0/amazon_paapi/helpers/items.py +0 -21
  91. python_amazon_paapi-6.2.0/amazon_paapi/helpers/requests.py +0 -204
  92. python_amazon_paapi-6.2.0/amazon_paapi/models/__init__.py +0 -22
  93. python_amazon_paapi-6.2.0/amazon_paapi/models/browse_nodes_result.py +0 -30
  94. python_amazon_paapi-6.2.0/amazon_paapi/models/item_result.py +0 -450
  95. python_amazon_paapi-6.2.0/amazon_paapi/models/regions.py +0 -105
  96. python_amazon_paapi-6.2.0/amazon_paapi/models/search_result.py +0 -18
  97. python_amazon_paapi-6.2.0/amazon_paapi/models/variations_result.py +0 -49
  98. python_amazon_paapi-6.2.0/amazon_paapi/sdk/COPYING.txt +0 -202
  99. python_amazon_paapi-6.2.0/amazon_paapi/sdk/LICENSE.txt +0 -202
  100. python_amazon_paapi-6.2.0/amazon_paapi/sdk/NOTICE.txt +0 -2
  101. python_amazon_paapi-6.2.0/amazon_paapi/sdk/__init__.py +0 -145
  102. python_amazon_paapi-6.2.0/amazon_paapi/sdk/api/__init__.py +0 -29
  103. python_amazon_paapi-6.2.0/amazon_paapi/sdk/api/default_api.py +0 -430
  104. python_amazon_paapi-6.2.0/amazon_paapi/sdk/api_client.py +0 -684
  105. python_amazon_paapi-6.2.0/amazon_paapi/sdk/auth/__init__.py +0 -33
  106. python_amazon_paapi-6.2.0/amazon_paapi/sdk/auth/sign_helper.py +0 -152
  107. python_amazon_paapi-6.2.0/amazon_paapi/sdk/configuration.py +0 -232
  108. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/__init__.py +0 -135
  109. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/availability.py +0 -105
  110. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/big_decimal.py +0 -99
  111. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/browse_node.py +0 -286
  112. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/browse_node_ancestor.py +0 -204
  113. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/browse_node_child.py +0 -179
  114. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/browse_node_info.py +0 -156
  115. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/browse_nodes_result.py +0 -129
  116. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/by_line_info.py +0 -182
  117. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/classifications.py +0 -155
  118. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/condition.py +0 -108
  119. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/content_info.py +0 -209
  120. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/content_rating.py +0 -129
  121. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/contributor.py +0 -205
  122. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/customer_reviews.py +0 -155
  123. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/deal_details.py +0 -257
  124. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/delivery_flag.py +0 -107
  125. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/dimension_based_attribute.py +0 -207
  126. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/duration_price.py +0 -156
  127. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/error_data.py +0 -153
  128. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/external_ids.py +0 -181
  129. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/get_browse_nodes_request.py +0 -263
  130. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/get_browse_nodes_resource.py +0 -105
  131. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/get_browse_nodes_response.py +0 -156
  132. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/get_items_request.py +0 -424
  133. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/get_items_resource.py +0 -170
  134. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/get_items_response.py +0 -156
  135. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/get_variations_request.py +0 -449
  136. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/get_variations_resource.py +0 -173
  137. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/get_variations_response.py +0 -156
  138. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/image_size.py +0 -179
  139. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/image_type.py +0 -181
  140. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/images.py +0 -155
  141. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/item.py +0 -422
  142. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/item_id_type.py +0 -104
  143. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/item_info.py +0 -399
  144. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/items_result.py +0 -129
  145. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/language_type.py +0 -153
  146. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/languages.py +0 -181
  147. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/manufacture_info.py +0 -181
  148. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/max_price.py +0 -99
  149. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/merchant.py +0 -105
  150. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/min_price.py +0 -99
  151. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/min_reviews_rating.py +0 -99
  152. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/min_saving_percent.py +0 -99
  153. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/money.py +0 -181
  154. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/multi_valued_attribute.py +0 -179
  155. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/offer_availability.py +0 -205
  156. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/offer_availability_v2.py +0 -205
  157. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/offer_condition.py +0 -260
  158. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/offer_condition_note.py +0 -153
  159. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/offer_condition_v2.py +0 -179
  160. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/offer_count.py +0 -99
  161. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/offer_delivery_info.py +0 -207
  162. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/offer_listing.py +0 -422
  163. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/offer_listing_v2.py +0 -343
  164. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/offer_listings.py +0 -101
  165. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/offer_listings_v2.py +0 -101
  166. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/offer_loyalty_points.py +0 -127
  167. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/offer_loyalty_points_v2.py +0 -127
  168. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/offer_merchant_info.py +0 -231
  169. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/offer_merchant_info_v2.py +0 -153
  170. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/offer_price.py +0 -286
  171. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/offer_price_v2.py +0 -209
  172. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/offer_program_eligibility.py +0 -153
  173. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/offer_promotion.py +0 -257
  174. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/offer_saving_basis.py +0 -182
  175. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/offer_savings.py +0 -231
  176. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/offer_savings_v2.py +0 -155
  177. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/offer_shipping_charge.py +0 -231
  178. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/offer_sub_condition.py +0 -205
  179. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/offer_summary.py +0 -208
  180. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/offer_type.py +0 -105
  181. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/offers.py +0 -156
  182. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/offers_v2.py +0 -129
  183. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/partner_type.py +0 -104
  184. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/price.py +0 -155
  185. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/price_type.py +0 -107
  186. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/product_advertising_api_client_exception.py +0 -129
  187. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/product_advertising_api_service_exception.py +0 -127
  188. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/product_info.py +0 -262
  189. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/properties.py +0 -99
  190. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/rating.py +0 -127
  191. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/refinement.py +0 -181
  192. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/refinement_bin.py +0 -153
  193. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/rental_offer_listing.py +0 -263
  194. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/rental_offers.py +0 -129
  195. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/saving_basis_type.py +0 -107
  196. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/search_index.py +0 -99
  197. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/search_items_request.py +0 -819
  198. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/search_items_resource.py +0 -171
  199. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/search_items_response.py +0 -156
  200. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/search_refinements.py +0 -181
  201. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/search_result.py +0 -208
  202. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/single_boolean_valued_attribute.py +0 -179
  203. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/single_integer_valued_attribute.py +0 -179
  204. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/single_string_valued_attribute.py +0 -179
  205. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/sort_by.py +0 -109
  206. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/technical_info.py +0 -156
  207. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/trade_in_info.py +0 -155
  208. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/trade_in_price.py +0 -179
  209. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/unit_based_attribute.py +0 -205
  210. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/variation_attribute.py +0 -153
  211. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/variation_dimension.py +0 -205
  212. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/variation_summary.py +0 -208
  213. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/variations_result.py +0 -156
  214. python_amazon_paapi-6.2.0/amazon_paapi/sdk/models/website_sales_rank.py +0 -205
  215. python_amazon_paapi-6.2.0/amazon_paapi/sdk/rest.py +0 -335
  216. python_amazon_paapi-6.2.0/amazon_paapi/tools/__init__.py +0 -5
  217. python_amazon_paapi-6.2.0/amazon_paapi/tools/asin.py +0 -19
  218. python_amazon_paapi-6.2.0/docs/amazon_creatorsapi.aio.rst +0 -22
  219. python_amazon_paapi-6.2.0/docs/amazon_creatorsapi.core.rst +0 -7
  220. python_amazon_paapi-6.2.0/docs/amazon_creatorsapi.errors.rst +0 -7
  221. python_amazon_paapi-6.2.0/docs/amazon_creatorsapi.models.rst +0 -7
  222. python_amazon_paapi-6.2.0/docs/amazon_creatorsapi.rst +0 -10
  223. python_amazon_paapi-6.2.0/docs/index.rst +0 -57
  224. python_amazon_paapi-6.2.0/docs/pages/migration-guide-6.md +0 -166
  225. python_amazon_paapi-6.2.0/docs/pages/usage-guide.md +0 -161
  226. python_amazon_paapi-6.2.0/tests/__init__.py +0 -1
  227. python_amazon_paapi-6.2.0/tests/amazon_creatorsapi/aio/api_test.py +0 -1296
  228. python_amazon_paapi-6.2.0/tests/amazon_creatorsapi/aio/integration_test.py +0 -468
  229. python_amazon_paapi-6.2.0/tests/amazon_creatorsapi/api_test.py +0 -795
  230. python_amazon_paapi-6.2.0/tests/amazon_creatorsapi/integration_test.py +0 -473
  231. python_amazon_paapi-6.2.0/tests/api_test.py +0 -67
  232. python_amazon_paapi-6.2.0/tests/errors_test.py +0 -12
  233. python_amazon_paapi-6.2.0/tests/helpers_arguments_test.py +0 -94
  234. python_amazon_paapi-6.2.0/tests/helpers_generators_test.py +0 -19
  235. python_amazon_paapi-6.2.0/tests/helpers_items_test.py +0 -52
  236. python_amazon_paapi-6.2.0/tests/helpers_requests_test.py +0 -183
  237. python_amazon_paapi-6.2.0/tests/integration_test.py +0 -333
  238. python_amazon_paapi-6.2.0/tests/offersv2_test.py +0 -79
  239. python_amazon_paapi-6.2.0/tests/tools_test.py +0 -37
  240. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/.github/ISSUE_TEMPLATE/---feature-request.md +0 -0
  241. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  242. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/.gitignore +0 -0
  243. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/.readthedocs.yml +0 -0
  244. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/LICENSE +0 -0
  245. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/amazon_creatorsapi/aio/__init__.py +0 -0
  246. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/amazon_creatorsapi/core/__init__.py +0 -0
  247. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/amazon_creatorsapi/core/marketplaces.py +0 -0
  248. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/amazon_creatorsapi/core/resources.py +0 -0
  249. {python_amazon_paapi-6.2.0/creatorsapi_python_sdk → python_amazon_paapi-7.0.0/amazon_creatorsapi}/py.typed +0 -0
  250. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/api/__init__.py +0 -0
  251. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/api_response.py +0 -0
  252. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/auth/__init__.py +0 -0
  253. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/auth/oauth2_config.py +0 -0
  254. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/auth/oauth2_token_manager.py +0 -0
  255. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/configuration.py +0 -0
  256. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/exceptions.py +0 -0
  257. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/access_denied_exception_response_content.py +0 -0
  258. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/access_denied_reason.py +0 -0
  259. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/availability.py +0 -0
  260. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/browse_node.py +0 -0
  261. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/browse_node_ancestor.py +0 -0
  262. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/browse_node_child.py +0 -0
  263. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/browse_node_info.py +0 -0
  264. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/browse_nodes_result.py +0 -0
  265. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/by_line_info.py +0 -0
  266. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/classifications.py +0 -0
  267. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/condition.py +0 -0
  268. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/content_info.py +0 -0
  269. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/content_rating.py +0 -0
  270. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/contributor.py +0 -0
  271. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/customer_reviews.py +0 -0
  272. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/deal_details.py +0 -0
  273. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/delivery_flag.py +0 -0
  274. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/dimension_based_attribute.py +0 -0
  275. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/error_data.py +0 -0
  276. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/external_ids.py +0 -0
  277. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/get_browse_nodes_request_content.py +0 -0
  278. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/get_browse_nodes_resource.py +0 -0
  279. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/get_browse_nodes_response_content.py +0 -0
  280. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/get_feed_response_content.py +0 -0
  281. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/get_items_request_content.py +0 -0
  282. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/get_items_resource.py +0 -0
  283. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/get_items_response_content.py +0 -0
  284. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/get_report_response_content.py +0 -0
  285. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/get_variations_request_content.py +0 -0
  286. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/get_variations_resource.py +0 -0
  287. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/get_variations_response_content.py +0 -0
  288. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/image_size.py +0 -0
  289. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/image_type.py +0 -0
  290. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/images.py +0 -0
  291. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/internal_server_exception_response_content.py +0 -0
  292. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/item.py +0 -0
  293. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/item_info.py +0 -0
  294. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/items_result.py +0 -0
  295. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/language_type.py +0 -0
  296. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/languages.py +0 -0
  297. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/list_feeds_response_content.py +0 -0
  298. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/list_reports_response_content.py +0 -0
  299. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/manufacture_info.py +0 -0
  300. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/money.py +0 -0
  301. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/multi_valued_attribute.py +0 -0
  302. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/offer_availability_v2.py +0 -0
  303. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/offer_condition_v2.py +0 -0
  304. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/offer_listing_v2.py +0 -0
  305. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/offer_loyalty_points_v2.py +0 -0
  306. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/offer_merchant_info_v2.py +0 -0
  307. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/offer_price_v2.py +0 -0
  308. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/offer_saving_basis.py +0 -0
  309. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/offer_savings.py +0 -0
  310. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/offer_type.py +0 -0
  311. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/offers_v2.py +0 -0
  312. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/product_info.py +0 -0
  313. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/rating.py +0 -0
  314. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/refinement.py +0 -0
  315. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/refinement_bin.py +0 -0
  316. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/resource_not_found_exception_response_content.py +0 -0
  317. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/saving_basis_type.py +0 -0
  318. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/search_items_resource.py +0 -0
  319. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/search_items_response_content.py +0 -0
  320. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/search_refinements.py +0 -0
  321. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/search_result.py +0 -0
  322. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/single_boolean_valued_attribute.py +0 -0
  323. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/single_integer_valued_attribute.py +0 -0
  324. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/single_string_valued_attribute.py +0 -0
  325. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/sort_by.py +0 -0
  326. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/technical_info.py +0 -0
  327. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/throttle_exception_response_content.py +0 -0
  328. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/trade_in_info.py +0 -0
  329. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/trade_in_price.py +0 -0
  330. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/unauthorized_exception_reason.py +0 -0
  331. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/unauthorized_exception_response_content.py +0 -0
  332. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/unit_based_attribute.py +0 -0
  333. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/validation_exception_field.py +0 -0
  334. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/validation_exception_reason.py +0 -0
  335. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/validation_exception_response_content.py +0 -0
  336. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/variation_attribute.py +0 -0
  337. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/variation_dimension.py +0 -0
  338. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/variation_summary.py +0 -0
  339. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/variation_summary_price.py +0 -0
  340. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/variations_result.py +0 -0
  341. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/website_sales_rank.py +0 -0
  342. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/rest.py +0 -0
  343. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/docs/Makefile +0 -0
  344. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/docs/_static/pa-paapi-icon.ico +0 -0
  345. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/docs/_static/pa-paapi-logo.png +0 -0
  346. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/docs/make.bat +0 -0
  347. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/docs/requirements.txt +0 -0
  348. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/scripts/check_version.py +0 -0
  349. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.0}/tests/amazon_creatorsapi/__init__.py +0 -0
  350. {python_amazon_paapi-6.2.0 → python_amazon_paapi-7.0.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,182 @@
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.0.0] - 2026-09-04
9
+
10
+ ### Added
11
+
12
+ - `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
13
+ - `timeout` parameter in `AmazonCreatorsApi` and `AsyncAmazonCreatorsApi` to set the request timeout in seconds, or `None` to wait indefinitely
14
+ - `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
15
+ - `include_unavailable` parameter in `get_items` to get an item holding only the ASIN for every requested item missing from the response
16
+ - `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
17
+ - `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
18
+ - `AccessDeniedError`, raised when the credentials cannot perform the requested operation
19
+ - `ResourceNotFoundError`, raised when a feed or report does not exist, telling it apart from missing items
20
+ - 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`
21
+ - `ErrorData` and `ResultList` available in `amazon_creatorsapi.models`
22
+ - `get_asin` and `errors` are available directly in `amazon_creatorsapi`
23
+ - The identifier that Amazon gives to a request is part of the message of the error, so it can be reported to Amazon support
24
+ - `close` method and context manager support in `AmazonCreatorsApi`, to release the connections of a client that is not going to be reused
25
+ - `py.typed` marker, so the type hints of the package are used by type checkers
26
+ - Migration guide from version 6, listing what can break in code written for `amazon_creatorsapi` and how to fix it
27
+ - 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
28
+ - `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
29
+ - 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
30
+
31
+ ### Changed
32
+
33
+ - 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
34
+ - 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
35
+ - A rejected request raises `InvalidArgumentError`, missing or expired credentials raise `AuthenticationError` and a forbidden request raises `AccessDeniedError`, instead of a generic `RequestError`
36
+ - Values rejected by the API constraints raise `InvalidArgumentError` instead of a `pydantic.ValidationError`
37
+ - Connection failures and unparseable responses raise `RequestError` instead of leaking the errors of the HTTP client
38
+ - An expired token is refreshed once and the request is sent again instead of failing
39
+ - `AuthenticationError` and `AccessDeniedError` are subclasses of `RequestError`, which is what a failed request raised before they got their own type
40
+ - `InvalidArgumentError` is also a `ValueError`, as the `pydantic.ValidationError` and the plain `ValueError` it replaced were
41
+ - `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
42
+ - `get_items` returns the items in the order they were requested, and asks for duplicated items only once
43
+ - `get_items` raises `ItemsNotFoundError` when the response holds no requested item, as documented, instead of returning an empty list
44
+ - `search_items` rejects a search without any criteria instead of sending it to the API
45
+ - 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
46
+ - The error of an unsupported version tells that a newer version of a known family can be used by providing its `auth_endpoint`
47
+ - `AmazonCreatorsApi` validates the version when it is created, as `AsyncAmazonCreatorsApi` already did, instead of failing on the first request
48
+ - 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
49
+ - `AsyncAmazonCreatorsApi` builds its requests with the models of the SDK, so both clients validate the same values before sending a request
50
+ - Every client uses its own configuration for the SDK instead of the one shared by the whole process
51
+ - Throttling is measured with a monotonic clock and is safe to use from several threads
52
+ - `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`
53
+ - 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
54
+ - 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
55
+ - 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
56
+ - 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
57
+ - 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
58
+ - 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
59
+ - Bumped the bundled `creatorsapi-python-sdk` from `1.2.0` to `1.3.0`, which makes `partnerTag` a required field of `SearchItemsRequestContent`
60
+ - Pinned `ruff` to the version run by pre-commit, so `make lint` matches CI
61
+
62
+ ### Fixed
63
+
64
+ - Examples in the documentation that used names that do not exist, such as `SortBy.PRICE_LOW_TO_HIGH` or `GetItemsResource.ITEMINFO_TITLE`
65
+ - Documented limits of `item_count`, `min_reviews_rating` and `variation_page`, which did not match the ones accepted by the API
66
+ - A token response that does not hold JSON raises `AuthenticationError` in `AsyncAmazonCreatorsApi`, instead of the error of the JSON parser
67
+ - Errors reported by the transport, such as an invalid certificate, keep their reason instead of being reported as `Request failed with status 0`
68
+ - An ASIN longer than ten characters in a URL is rejected instead of being trimmed to a different item
69
+ - Threads sharing a client ask for a single token when the cached one expires, instead of one for every thread
70
+ - Search integration tests no longer assume Amazon always returns a full page of items
71
+
72
+ ### Removed
73
+
74
+ - 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
75
+ - Product Advertising API documentation and deprecation notices in the README and docs
76
+ - `API_KEY` and `API_SECRET` environment variables, only used by the removed module
77
+ - `six` dependency, which was not used
78
+
79
+ ## [6.3.0] - 2026-05-15
80
+
81
+ ### Added
82
+
83
+ - `delivery_flags` parameter in `search_items` for `amazon_creatorsapi` and `amazon_creatorsapi.aio`
84
+
85
+ ## [6.2.0] - 2026-03-12
86
+
87
+ ### Added
88
+
89
+ - LWA support in the `amazon_creatorsapi.aio` API layer
90
+
91
+ ### Changed
92
+
93
+ - Bumped `creatorsapi-python-sdk` from `1.1.2` to `1.2.0`
94
+ - Updated bundled SDK support to include LWA endpoints for v3.x
95
+
96
+ ## [6.1.0] - 2026-02-09
97
+
98
+ ### Added
99
+
100
+ - Full async/await support with new `amazon_creatorsapi.aio` subpackage ([#143](https://github.com/sergioteula/python-amazon-paapi/pull/143))
101
+ - `AsyncAmazonCreatorsApi` class for non-blocking API interactions
102
+ - Async HTTP client with `httpx` integration for connection pooling
103
+ - `AuthenticationError` exception for improved OAuth2 error handling
104
+ - Optional `[async]` installation extra: `pip install python-amazon-paapi[async]`
105
+ - Comprehensive async test suite with integration tests
106
+ - Documentation for async API usage in README and usage guide
107
+ - `make docs` command in Makefile for building documentation
108
+
109
+ ### Changed
110
+
111
+ - GitHub Actions workflow now installs async dependencies for complete test coverage
112
+ - Test coverage threshold lowered from 99% to 98% to accommodate async tests
113
+ - Additional Ruff linting rules for test files (ARG002, S101, S105, S106, SIM117)
114
+
115
+ ## [6.0.0] - 2026-01-29
116
+
117
+ ### Added
118
+
119
+ - New `amazon_creatorsapi` module for Amazon Creators API support
120
+ - `creatorsapi_python_sdk` package bundled for OAuth2 authentication
121
+ - `models` submodule exposing all SDK model classes (Item, Condition, SortBy, etc.)
122
+ - Migration guide from PAAPI to Creators API (`docs/pages/migration-guide-6.md`)
123
+ - Integration tests for the new Creators API module
124
+ - New dependencies: `pydantic>=2.0.0` and `requests>=2.28.0`
125
+
126
+ ### Changed
127
+
128
+ - **BREAKING**: The `amazon_paapi` module is now deprecated in favor of `amazon_creatorsapi`
129
+ - Updated documentation to reflect the new Creators API module
130
+ - Reorganized utility functions into `amazon_creatorsapi.core` package
131
+ - Updated README with Creators API examples and deprecation notice
132
+
133
+ ### Deprecated
134
+
135
+ - `amazon_paapi` module - use `amazon_creatorsapi` instead
136
+ - All PAAPI-specific documentation pages removed
137
+
138
+ ### Removed
139
+
140
+ - Migration guides for versions 4 and 5 (`migration-guide-4.md`, `migration-guide-5.md`)
141
+
142
+ ## [5.2.0] - 2026-01-11
143
+
144
+ ### Added
145
+
146
+ - Support for OffersV2 resources with new model classes ([#141](https://github.com/sergioteula/python-amazon-paapi/pull/141))
147
+
148
+ ## [5.1.0] - 2026-01-11
149
+
150
+ ### Added
151
+
152
+ - Integration tests with real Amazon API calls
153
+ - Type hints throughout the codebase using `Literal` types for country codes
154
+ - `.env.template` file for easier development setup
155
+ - Code style guide for AI assistants (`.agent/rules/code-style-guide.md`)
156
+ - Pre-commit hooks with Ruff integration
157
+ - Version consistency check script (`scripts/check_version.py`)
158
+ - Manual release workflow (`release.yml`) that creates GitHub releases from CHANGELOG
159
+ - CI check to ensure CHANGELOG is updated in every PR
160
+
161
+ ### Changed
162
+
163
+ - **BREAKING**: Minimum Python version raised from 3.7 to 3.9
164
+ - Migrated from `setup.py` to `pyproject.toml` for project configuration
165
+ - Replaced multiple linters (Flake8, isort, Black, Pylint) with Ruff
166
+ - Replaced Docker-based development environment with `uv` package manager
167
+ - Consolidated coverage, mypy, and pytest configuration into `pyproject.toml`
168
+ - Renamed test files to use `_test.py` suffix instead of `test_` prefix
169
+ - Updated GitHub Actions workflows to use `uv` instead of Docker
170
+ - Improved docstrings across the codebase
171
+ - Completely rewritten README with clearer structure and examples
172
+ - Updated Read the Docs configuration to v2 format with modern Sphinx versions
173
+ - Updated documentation to furo theme
174
+
175
+ ### Removed
176
+
177
+ - `setup.py` - replaced by `pyproject.toml`
178
+ - `.coveragerc` - configuration moved to `pyproject.toml`
179
+ - `.flake8` - replaced by Ruff configuration in `pyproject.toml`
180
+ - Docker development environment (`docker/`, `docker-compose.yml`)
181
+ - Legacy shell scripts (`scripts/` directory)
182
+ - 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