python-amazon-paapi 6.3.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.
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/.agent/rules/code-style-guide.md +2 -2
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/.env.template +0 -6
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/.github/ISSUE_TEMPLATE/---bug-report.md +1 -1
- python_amazon_paapi-7.0.0/.github/workflows/check.yml +100 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/.github/workflows/release.yml +11 -11
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/.pre-commit-config.yaml +4 -2
- python_amazon_paapi-7.0.0/CHANGELOG.md +182 -0
- python_amazon_paapi-7.0.0/CONTRIBUTING.md +89 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/Makefile +1 -1
- python_amazon_paapi-7.0.0/PKG-INFO +450 -0
- python_amazon_paapi-7.0.0/README.md +416 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/amazon_creatorsapi/__init__.py +3 -3
- python_amazon_paapi-7.0.0/amazon_creatorsapi/aio/api.py +827 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/amazon_creatorsapi/aio/auth.py +57 -33
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/amazon_creatorsapi/aio/client.py +8 -5
- python_amazon_paapi-7.0.0/amazon_creatorsapi/api.py +708 -0
- python_amazon_paapi-7.0.0/amazon_creatorsapi/core/auth.py +149 -0
- python_amazon_paapi-7.0.0/amazon_creatorsapi/core/constants.py +16 -0
- python_amazon_paapi-7.0.0/amazon_creatorsapi/core/error_handling.py +190 -0
- python_amazon_paapi-7.0.0/amazon_creatorsapi/core/items.py +69 -0
- python_amazon_paapi-7.0.0/amazon_creatorsapi/core/oauth.py +142 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/amazon_creatorsapi/core/parsers.py +7 -2
- python_amazon_paapi-7.0.0/amazon_creatorsapi/core/requests.py +27 -0
- python_amazon_paapi-7.0.0/amazon_creatorsapi/core/results.py +36 -0
- python_amazon_paapi-7.0.0/amazon_creatorsapi/core/retry.py +102 -0
- python_amazon_paapi-7.0.0/amazon_creatorsapi/core/validation.py +160 -0
- python_amazon_paapi-7.0.0/amazon_creatorsapi/errors.py +62 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/amazon_creatorsapi/models.py +14 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/__init__.py +2 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/api/default_api.py +6 -7
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/api_client.py +1 -1
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/__init__.py +2 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/feed.py +6 -3
- python_amazon_paapi-7.0.0/creatorsapi_python_sdk/models/feed_type.py +44 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/get_feed_request_content.py +6 -3
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/get_report_request_content.py +6 -3
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/report_metadata.py +6 -3
- python_amazon_paapi-7.0.0/creatorsapi_python_sdk/models/report_type.py +44 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/search_items_request_content.py +1 -4
- python_amazon_paapi-7.0.0/creatorsapi_python_sdk/py.typed +0 -0
- python_amazon_paapi-7.0.0/docs/amazon_creatorsapi.aio.rst +42 -0
- python_amazon_paapi-7.0.0/docs/amazon_creatorsapi.core.rst +11 -0
- python_amazon_paapi-7.0.0/docs/amazon_creatorsapi.errors.rst +12 -0
- python_amazon_paapi-7.0.0/docs/amazon_creatorsapi.models.rst +12 -0
- python_amazon_paapi-7.0.0/docs/amazon_creatorsapi.rst +11 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/docs/conf.py +9 -6
- python_amazon_paapi-7.0.0/docs/index.rst +81 -0
- python_amazon_paapi-7.0.0/docs/pages/migration-guide-6.md +158 -0
- python_amazon_paapi-7.0.0/docs/pages/migration-guide-7.md +249 -0
- python_amazon_paapi-7.0.0/docs/pages/usage-guide.md +431 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/pyproject.toml +13 -27
- python_amazon_paapi-7.0.0/tests/__init__.py +1 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/tests/amazon_creatorsapi/aio/api_test.py +1237 -28
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/tests/amazon_creatorsapi/aio/auth_test.py +86 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/tests/amazon_creatorsapi/aio/client_test.py +5 -0
- python_amazon_paapi-7.0.0/tests/amazon_creatorsapi/aio/integration_test.py +178 -0
- python_amazon_paapi-7.0.0/tests/amazon_creatorsapi/api_test.py +1985 -0
- python_amazon_paapi-7.0.0/tests/amazon_creatorsapi/core/__init__.py +1 -0
- python_amazon_paapi-7.0.0/tests/amazon_creatorsapi/core/auth_test.py +165 -0
- python_amazon_paapi-7.0.0/tests/amazon_creatorsapi/core/error_handling_test.py +180 -0
- python_amazon_paapi-7.0.0/tests/amazon_creatorsapi/core/items_test.py +70 -0
- python_amazon_paapi-7.0.0/tests/amazon_creatorsapi/core/oauth_test.py +111 -0
- python_amazon_paapi-7.0.0/tests/amazon_creatorsapi/core/requests_test.py +54 -0
- python_amazon_paapi-7.0.0/tests/amazon_creatorsapi/core/results_test.py +31 -0
- python_amazon_paapi-7.0.0/tests/amazon_creatorsapi/core/retry_test.py +99 -0
- python_amazon_paapi-7.0.0/tests/amazon_creatorsapi/core/sdk_parity_test.py +88 -0
- python_amazon_paapi-7.0.0/tests/amazon_creatorsapi/core/validation_test.py +126 -0
- python_amazon_paapi-7.0.0/tests/amazon_creatorsapi/errors_test.py +70 -0
- python_amazon_paapi-7.0.0/tests/amazon_creatorsapi/integration_test.py +170 -0
- python_amazon_paapi-7.0.0/tests/amazon_creatorsapi/signatures_test.py +128 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/tests/amazon_creatorsapi/tools_test.py +6 -0
- python_amazon_paapi-7.0.0/tests/integration_support.py +540 -0
- python_amazon_paapi-6.3.0/.github/workflows/check.yml +0 -97
- python_amazon_paapi-6.3.0/CHANGELOG.md +0 -111
- python_amazon_paapi-6.3.0/PKG-INFO +0 -244
- python_amazon_paapi-6.3.0/README.md +0 -209
- python_amazon_paapi-6.3.0/amazon_creatorsapi/aio/api.py +0 -556
- python_amazon_paapi-6.3.0/amazon_creatorsapi/api.py +0 -384
- python_amazon_paapi-6.3.0/amazon_creatorsapi/core/constants.py +0 -7
- python_amazon_paapi-6.3.0/amazon_creatorsapi/core/error_handling.py +0 -55
- python_amazon_paapi-6.3.0/amazon_creatorsapi/core/validation.py +0 -40
- python_amazon_paapi-6.3.0/amazon_creatorsapi/errors.py +0 -40
- python_amazon_paapi-6.3.0/amazon_paapi/__init__.py +0 -20
- python_amazon_paapi-6.3.0/amazon_paapi/api.py +0 -349
- python_amazon_paapi-6.3.0/amazon_paapi/errors/__init__.py +0 -25
- python_amazon_paapi-6.3.0/amazon_paapi/errors/exceptions.py +0 -46
- python_amazon_paapi-6.3.0/amazon_paapi/helpers/__init__.py +0 -1
- python_amazon_paapi-6.3.0/amazon_paapi/helpers/arguments.py +0 -93
- python_amazon_paapi-6.3.0/amazon_paapi/helpers/generators.py +0 -16
- python_amazon_paapi-6.3.0/amazon_paapi/helpers/items.py +0 -21
- python_amazon_paapi-6.3.0/amazon_paapi/helpers/requests.py +0 -204
- python_amazon_paapi-6.3.0/amazon_paapi/models/__init__.py +0 -22
- python_amazon_paapi-6.3.0/amazon_paapi/models/browse_nodes_result.py +0 -30
- python_amazon_paapi-6.3.0/amazon_paapi/models/item_result.py +0 -450
- python_amazon_paapi-6.3.0/amazon_paapi/models/regions.py +0 -105
- python_amazon_paapi-6.3.0/amazon_paapi/models/search_result.py +0 -18
- python_amazon_paapi-6.3.0/amazon_paapi/models/variations_result.py +0 -49
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/COPYING.txt +0 -202
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/LICENSE.txt +0 -202
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/NOTICE.txt +0 -2
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/__init__.py +0 -145
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/api/__init__.py +0 -29
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/api/default_api.py +0 -430
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/api_client.py +0 -684
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/auth/__init__.py +0 -33
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/auth/sign_helper.py +0 -152
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/configuration.py +0 -232
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/__init__.py +0 -135
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/availability.py +0 -105
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/big_decimal.py +0 -99
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/browse_node.py +0 -286
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/browse_node_ancestor.py +0 -204
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/browse_node_child.py +0 -179
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/browse_node_info.py +0 -156
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/browse_nodes_result.py +0 -129
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/by_line_info.py +0 -182
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/classifications.py +0 -155
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/condition.py +0 -108
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/content_info.py +0 -209
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/content_rating.py +0 -129
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/contributor.py +0 -205
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/customer_reviews.py +0 -155
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/deal_details.py +0 -257
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/delivery_flag.py +0 -107
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/dimension_based_attribute.py +0 -207
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/duration_price.py +0 -156
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/error_data.py +0 -153
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/external_ids.py +0 -181
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/get_browse_nodes_request.py +0 -263
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/get_browse_nodes_resource.py +0 -105
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/get_browse_nodes_response.py +0 -156
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/get_items_request.py +0 -424
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/get_items_resource.py +0 -170
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/get_items_response.py +0 -156
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/get_variations_request.py +0 -449
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/get_variations_resource.py +0 -173
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/get_variations_response.py +0 -156
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/image_size.py +0 -179
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/image_type.py +0 -181
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/images.py +0 -155
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/item.py +0 -422
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/item_id_type.py +0 -104
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/item_info.py +0 -399
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/items_result.py +0 -129
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/language_type.py +0 -153
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/languages.py +0 -181
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/manufacture_info.py +0 -181
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/max_price.py +0 -99
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/merchant.py +0 -105
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/min_price.py +0 -99
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/min_reviews_rating.py +0 -99
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/min_saving_percent.py +0 -99
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/money.py +0 -181
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/multi_valued_attribute.py +0 -179
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/offer_availability.py +0 -205
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/offer_availability_v2.py +0 -205
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/offer_condition.py +0 -260
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/offer_condition_note.py +0 -153
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/offer_condition_v2.py +0 -179
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/offer_count.py +0 -99
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/offer_delivery_info.py +0 -207
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/offer_listing.py +0 -422
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/offer_listing_v2.py +0 -343
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/offer_listings.py +0 -101
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/offer_listings_v2.py +0 -101
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/offer_loyalty_points.py +0 -127
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/offer_loyalty_points_v2.py +0 -127
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/offer_merchant_info.py +0 -231
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/offer_merchant_info_v2.py +0 -153
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/offer_price.py +0 -286
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/offer_price_v2.py +0 -209
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/offer_program_eligibility.py +0 -153
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/offer_promotion.py +0 -257
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/offer_saving_basis.py +0 -182
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/offer_savings.py +0 -231
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/offer_savings_v2.py +0 -155
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/offer_shipping_charge.py +0 -231
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/offer_sub_condition.py +0 -205
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/offer_summary.py +0 -208
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/offer_type.py +0 -105
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/offers.py +0 -156
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/offers_v2.py +0 -129
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/partner_type.py +0 -104
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/price.py +0 -155
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/price_type.py +0 -107
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/product_advertising_api_client_exception.py +0 -129
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/product_advertising_api_service_exception.py +0 -127
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/product_info.py +0 -262
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/properties.py +0 -99
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/rating.py +0 -127
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/refinement.py +0 -181
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/refinement_bin.py +0 -153
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/rental_offer_listing.py +0 -263
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/rental_offers.py +0 -129
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/saving_basis_type.py +0 -107
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/search_index.py +0 -99
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/search_items_request.py +0 -819
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/search_items_resource.py +0 -171
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/search_items_response.py +0 -156
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/search_refinements.py +0 -181
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/search_result.py +0 -208
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/single_boolean_valued_attribute.py +0 -179
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/single_integer_valued_attribute.py +0 -179
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/single_string_valued_attribute.py +0 -179
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/sort_by.py +0 -109
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/technical_info.py +0 -156
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/trade_in_info.py +0 -155
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/trade_in_price.py +0 -179
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/unit_based_attribute.py +0 -205
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/variation_attribute.py +0 -153
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/variation_dimension.py +0 -205
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/variation_summary.py +0 -208
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/variations_result.py +0 -156
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/models/website_sales_rank.py +0 -205
- python_amazon_paapi-6.3.0/amazon_paapi/sdk/rest.py +0 -335
- python_amazon_paapi-6.3.0/amazon_paapi/tools/__init__.py +0 -5
- python_amazon_paapi-6.3.0/amazon_paapi/tools/asin.py +0 -19
- python_amazon_paapi-6.3.0/docs/amazon_creatorsapi.aio.rst +0 -22
- python_amazon_paapi-6.3.0/docs/amazon_creatorsapi.core.rst +0 -7
- python_amazon_paapi-6.3.0/docs/amazon_creatorsapi.errors.rst +0 -7
- python_amazon_paapi-6.3.0/docs/amazon_creatorsapi.models.rst +0 -7
- python_amazon_paapi-6.3.0/docs/amazon_creatorsapi.rst +0 -10
- python_amazon_paapi-6.3.0/docs/index.rst +0 -57
- python_amazon_paapi-6.3.0/docs/pages/migration-guide-6.md +0 -166
- python_amazon_paapi-6.3.0/docs/pages/usage-guide.md +0 -161
- python_amazon_paapi-6.3.0/tests/__init__.py +0 -1
- python_amazon_paapi-6.3.0/tests/amazon_creatorsapi/aio/integration_test.py +0 -468
- python_amazon_paapi-6.3.0/tests/amazon_creatorsapi/api_test.py +0 -831
- python_amazon_paapi-6.3.0/tests/amazon_creatorsapi/integration_test.py +0 -473
- python_amazon_paapi-6.3.0/tests/api_test.py +0 -67
- python_amazon_paapi-6.3.0/tests/errors_test.py +0 -12
- python_amazon_paapi-6.3.0/tests/helpers_arguments_test.py +0 -94
- python_amazon_paapi-6.3.0/tests/helpers_generators_test.py +0 -19
- python_amazon_paapi-6.3.0/tests/helpers_items_test.py +0 -52
- python_amazon_paapi-6.3.0/tests/helpers_requests_test.py +0 -183
- python_amazon_paapi-6.3.0/tests/integration_test.py +0 -333
- python_amazon_paapi-6.3.0/tests/offersv2_test.py +0 -79
- python_amazon_paapi-6.3.0/tests/tools_test.py +0 -37
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/.github/ISSUE_TEMPLATE/---feature-request.md +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/.gitignore +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/.readthedocs.yml +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/LICENSE +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/amazon_creatorsapi/aio/__init__.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/amazon_creatorsapi/core/__init__.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/amazon_creatorsapi/core/marketplaces.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/amazon_creatorsapi/core/resources.py +0 -0
- {python_amazon_paapi-6.3.0/creatorsapi_python_sdk → python_amazon_paapi-7.0.0/amazon_creatorsapi}/py.typed +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/api/__init__.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/api_response.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/auth/__init__.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/auth/oauth2_config.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/auth/oauth2_token_manager.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/configuration.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/exceptions.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/access_denied_exception_response_content.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/access_denied_reason.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/availability.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/browse_node.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/browse_node_ancestor.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/browse_node_child.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/browse_node_info.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/browse_nodes_result.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/by_line_info.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/classifications.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/condition.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/content_info.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/content_rating.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/contributor.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/customer_reviews.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/deal_details.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/delivery_flag.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/dimension_based_attribute.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/error_data.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/external_ids.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/get_browse_nodes_request_content.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/get_browse_nodes_resource.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/get_browse_nodes_response_content.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/get_feed_response_content.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/get_items_request_content.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/get_items_resource.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/get_items_response_content.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/get_report_response_content.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/get_variations_request_content.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/get_variations_resource.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/get_variations_response_content.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/image_size.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/image_type.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/images.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/internal_server_exception_response_content.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/item.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/item_info.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/items_result.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/language_type.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/languages.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/list_feeds_response_content.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/list_reports_response_content.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/manufacture_info.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/money.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/multi_valued_attribute.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/offer_availability_v2.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/offer_condition_v2.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/offer_listing_v2.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/offer_loyalty_points_v2.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/offer_merchant_info_v2.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/offer_price_v2.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/offer_saving_basis.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/offer_savings.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/offer_type.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/offers_v2.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/product_info.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/rating.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/refinement.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/refinement_bin.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/resource_not_found_exception_response_content.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/saving_basis_type.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/search_items_resource.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/search_items_response_content.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/search_refinements.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/search_result.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/single_boolean_valued_attribute.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/single_integer_valued_attribute.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/single_string_valued_attribute.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/sort_by.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/technical_info.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/throttle_exception_response_content.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/trade_in_info.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/trade_in_price.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/unauthorized_exception_reason.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/unauthorized_exception_response_content.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/unit_based_attribute.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/validation_exception_field.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/validation_exception_reason.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/validation_exception_response_content.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/variation_attribute.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/variation_dimension.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/variation_summary.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/variation_summary_price.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/variations_result.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/models/website_sales_rank.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/creatorsapi_python_sdk/rest.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/docs/Makefile +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/docs/_static/pa-paapi-icon.ico +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/docs/_static/pa-paapi-logo.png +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/docs/make.bat +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/docs/requirements.txt +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/scripts/check_version.py +0 -0
- {python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/tests/amazon_creatorsapi/__init__.py +0 -0
- {python_amazon_paapi-6.3.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
|
|
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
|
|
27
|
+
- Documentation for the Creators API here: https://webservices.amazon.com/creatorsapi/documentation/
|
{python_amazon_paapi-6.3.0 → python_amazon_paapi-7.0.0}/.github/ISSUE_TEMPLATE/---bug-report.md
RENAMED
|
@@ -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
|
|
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 "
|
|
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
|
|
66
|
+
echo "⚠️ Tag ${{ steps.changelog.outputs.version }} already exists. Skipping release creation."
|
|
63
67
|
exit 1
|
|
64
68
|
|
|
65
|
-
- name:
|
|
66
|
-
uses:
|
|
69
|
+
- name: Install UV
|
|
70
|
+
uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
|
|
67
71
|
with:
|
|
68
|
-
|
|
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:
|
|
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", "
|
|
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=
|
|
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=
|
|
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
|