dodopayments 1.38.1__tar.gz → 1.39.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.
Potentially problematic release.
This version of dodopayments might be problematic. Click here for more details.
- dodopayments-1.39.0/.release-please-manifest.json +3 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/CHANGELOG.md +23 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/PKG-INFO +5 -7
- {dodopayments-1.38.1 → dodopayments-1.39.0}/README.md +3 -5
- {dodopayments-1.38.1 → dodopayments-1.39.0}/pyproject.toml +2 -2
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/_base_client.py +9 -2
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/_models.py +8 -5
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/_version.py +1 -1
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/resources/subscriptions.py +22 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/subscription_charge_params.py +15 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/subscription_create_params.py +13 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/tests/api_resources/test_subscriptions.py +8 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/tests/test_client.py +2 -2
- {dodopayments-1.38.1 → dodopayments-1.39.0}/tests/test_models.py +45 -0
- dodopayments-1.38.1/.release-please-manifest.json +0 -3
- {dodopayments-1.38.1 → dodopayments-1.39.0}/.gitignore +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/CONTRIBUTING.md +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/LICENSE +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/SECURITY.md +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/api.md +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/bin/check-release-environment +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/bin/publish-pypi +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/examples/.keep +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/mypy.ini +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/noxfile.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/release-please-config.json +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/requirements-dev.lock +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/requirements.lock +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodo_payments/lib/.keep +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/__init__.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/_client.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/_compat.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/_constants.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/_exceptions.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/_files.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/_qs.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/_resource.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/_response.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/_streaming.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/_types.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/_utils/__init__.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/_utils/_logs.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/_utils/_proxy.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/_utils/_reflection.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/_utils/_resources_proxy.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/_utils/_streams.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/_utils/_sync.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/_utils/_transform.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/_utils/_typing.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/_utils/_utils.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/lib/.keep +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/pagination.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/py.typed +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/resources/__init__.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/resources/addons.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/resources/brands.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/resources/customers/__init__.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/resources/customers/customer_portal.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/resources/customers/customers.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/resources/discounts.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/resources/disputes.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/resources/invoices/__init__.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/resources/invoices/invoices.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/resources/invoices/payments.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/resources/license_key_instances.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/resources/license_keys.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/resources/licenses.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/resources/misc.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/resources/payments.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/resources/payouts.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/resources/products/__init__.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/resources/products/images.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/resources/products/products.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/resources/refunds.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/resources/webhook_events.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/__init__.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/addon_cart_response_item.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/addon_create_params.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/addon_list_params.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/addon_response.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/addon_update_images_response.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/addon_update_params.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/attach_existing_customer_param.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/billing_address.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/billing_address_param.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/brand_create_params.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/brand_create_response.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/brand_list_response.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/brand_retrieve_response.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/brand_update_images_response.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/brand_update_params.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/brand_update_response.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/country_code.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/create_new_customer_param.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/currency.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/customer.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/customer_create_params.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/customer_limited_details.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/customer_list_params.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/customer_portal_session.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/customer_request_param.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/customer_update_params.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/customers/__init__.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/customers/customer_portal_create_params.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/discount.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/discount_create_params.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/discount_list_params.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/discount_type.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/discount_update_params.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/dispute.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/dispute_list_params.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/dispute_list_response.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/dispute_retrieve_response.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/dispute_stage.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/dispute_status.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/intent_status.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/invoices/__init__.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/license_activate_params.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/license_deactivate_params.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/license_key.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/license_key_duration.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/license_key_duration_param.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/license_key_instance.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/license_key_instance_list_params.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/license_key_instance_update_params.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/license_key_list_params.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/license_key_status.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/license_key_update_params.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/license_validate_params.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/license_validate_response.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/misc_list_supported_countries_response.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/one_time_product_cart_item.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/one_time_product_cart_item_param.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/payment.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/payment_create_params.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/payment_create_response.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/payment_list_params.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/payment_list_response.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/payment_retrieve_line_items_response.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/payout_list_params.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/payout_list_response.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/price.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/price_param.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/product.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/product_create_params.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/product_list_params.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/product_list_response.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/product_update_files_params.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/product_update_files_response.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/product_update_params.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/products/__init__.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/products/image_update_params.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/products/image_update_response.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/refund.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/refund_create_params.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/refund_list_params.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/refund_status.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/subscription.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/subscription_change_plan_params.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/subscription_charge_response.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/subscription_create_response.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/subscription_list_params.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/subscription_list_response.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/subscription_status.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/subscription_update_params.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/tax_category.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/time_interval.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/webhook_event.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/webhook_event_list_params.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/webhook_event_type.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/tests/__init__.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/tests/api_resources/__init__.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/tests/api_resources/customers/__init__.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/tests/api_resources/customers/test_customer_portal.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/tests/api_resources/invoices/__init__.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/tests/api_resources/invoices/test_payments.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/tests/api_resources/products/__init__.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/tests/api_resources/products/test_images.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/tests/api_resources/test_addons.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/tests/api_resources/test_brands.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/tests/api_resources/test_customers.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/tests/api_resources/test_discounts.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/tests/api_resources/test_disputes.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/tests/api_resources/test_license_key_instances.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/tests/api_resources/test_license_keys.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/tests/api_resources/test_licenses.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/tests/api_resources/test_misc.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/tests/api_resources/test_payments.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/tests/api_resources/test_payouts.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/tests/api_resources/test_products.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/tests/api_resources/test_refunds.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/tests/api_resources/test_webhook_events.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/tests/conftest.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/tests/sample_file.txt +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/tests/test_deepcopy.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/tests/test_extract_files.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/tests/test_files.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/tests/test_qs.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/tests/test_required_args.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/tests/test_response.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/tests/test_streaming.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/tests/test_transform.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/tests/test_utils/test_proxy.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/tests/test_utils/test_typing.py +0 -0
- {dodopayments-1.38.1 → dodopayments-1.39.0}/tests/utils.py +0 -0
|
@@ -1,5 +1,28 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.39.0 (2025-07-15)
|
|
4
|
+
|
|
5
|
+
Full Changelog: [v1.38.2...v1.39.0](https://github.com/dodopayments/dodopayments-python/compare/v1.38.2...v1.39.0)
|
|
6
|
+
|
|
7
|
+
### Features
|
|
8
|
+
|
|
9
|
+
* **api:** updated openapi spec to v1.40.0 ([91da77a](https://github.com/dodopayments/dodopayments-python/commit/91da77acd02f39295613e55454005f0a90bca600))
|
|
10
|
+
* clean up environment call outs ([8bbe9b4](https://github.com/dodopayments/dodopayments-python/commit/8bbe9b4cccc55a6f08fd9760b45aa46b94bc6a2d))
|
|
11
|
+
|
|
12
|
+
## 1.38.2 (2025-07-12)
|
|
13
|
+
|
|
14
|
+
Full Changelog: [v1.38.1...v1.38.2](https://github.com/dodopayments/dodopayments-python/compare/v1.38.1...v1.38.2)
|
|
15
|
+
|
|
16
|
+
### Bug Fixes
|
|
17
|
+
|
|
18
|
+
* **client:** don't send Content-Type header on GET requests ([9807cc2](https://github.com/dodopayments/dodopayments-python/commit/9807cc2f47241f9168c7eb766c7c9f0e8f32e4ad))
|
|
19
|
+
* **parsing:** correctly handle nested discriminated unions ([4147e1f](https://github.com/dodopayments/dodopayments-python/commit/4147e1ffcf8c2790e21c9667ce759086612e4e1e))
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
### Chores
|
|
23
|
+
|
|
24
|
+
* **readme:** fix version rendering on pypi ([5f7a3c2](https://github.com/dodopayments/dodopayments-python/commit/5f7a3c2c710878faaa7840a9d82eb3cab5f761c5))
|
|
25
|
+
|
|
3
26
|
## 1.38.1 (2025-07-09)
|
|
4
27
|
|
|
5
28
|
Full Changelog: [v1.38.0...v1.38.1](https://github.com/dodopayments/dodopayments-python/compare/v1.38.0...v1.38.1)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: dodopayments
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.39.0
|
|
4
4
|
Summary: The official Python library for the Dodo Payments API
|
|
5
5
|
Project-URL: Homepage, https://github.com/dodopayments/dodopayments-python
|
|
6
6
|
Project-URL: Repository, https://github.com/dodopayments/dodopayments-python
|
|
@@ -30,12 +30,13 @@ Requires-Dist: sniffio
|
|
|
30
30
|
Requires-Dist: typing-extensions<5,>=4.10
|
|
31
31
|
Provides-Extra: aiohttp
|
|
32
32
|
Requires-Dist: aiohttp; extra == 'aiohttp'
|
|
33
|
-
Requires-Dist: httpx-aiohttp>=0.1.
|
|
33
|
+
Requires-Dist: httpx-aiohttp>=0.1.8; extra == 'aiohttp'
|
|
34
34
|
Description-Content-Type: text/markdown
|
|
35
35
|
|
|
36
36
|
# Dodo Payments Python API library
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
<!-- prettier-ignore -->
|
|
39
|
+
[)](https://pypi.org/project/dodopayments/)
|
|
39
40
|
|
|
40
41
|
The [Dodo Payments](https://dodopayments.com) Python library provides convenient access to the Dodo Payments REST API from any Python 3.8+
|
|
41
42
|
application. The library includes type definitions for all request params and response fields,
|
|
@@ -147,7 +148,6 @@ pip install dodopayments[aiohttp]
|
|
|
147
148
|
Then you can enable it by instantiating the client with `http_client=DefaultAioHttpClient()`:
|
|
148
149
|
|
|
149
150
|
```python
|
|
150
|
-
import os
|
|
151
151
|
import asyncio
|
|
152
152
|
from dodopayments import DefaultAioHttpClient
|
|
153
153
|
from dodopayments import AsyncDodoPayments
|
|
@@ -155,9 +155,7 @@ from dodopayments import AsyncDodoPayments
|
|
|
155
155
|
|
|
156
156
|
async def main() -> None:
|
|
157
157
|
async with AsyncDodoPayments(
|
|
158
|
-
bearer_token=
|
|
159
|
-
"DODO_PAYMENTS_API_KEY"
|
|
160
|
-
), # This is the default and can be omitted
|
|
158
|
+
bearer_token="My Bearer Token",
|
|
161
159
|
http_client=DefaultAioHttpClient(),
|
|
162
160
|
) as client:
|
|
163
161
|
payment = await client.payments.create(
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# Dodo Payments Python API library
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
<!-- prettier-ignore -->
|
|
4
|
+
[)](https://pypi.org/project/dodopayments/)
|
|
4
5
|
|
|
5
6
|
The [Dodo Payments](https://dodopayments.com) Python library provides convenient access to the Dodo Payments REST API from any Python 3.8+
|
|
6
7
|
application. The library includes type definitions for all request params and response fields,
|
|
@@ -112,7 +113,6 @@ pip install dodopayments[aiohttp]
|
|
|
112
113
|
Then you can enable it by instantiating the client with `http_client=DefaultAioHttpClient()`:
|
|
113
114
|
|
|
114
115
|
```python
|
|
115
|
-
import os
|
|
116
116
|
import asyncio
|
|
117
117
|
from dodopayments import DefaultAioHttpClient
|
|
118
118
|
from dodopayments import AsyncDodoPayments
|
|
@@ -120,9 +120,7 @@ from dodopayments import AsyncDodoPayments
|
|
|
120
120
|
|
|
121
121
|
async def main() -> None:
|
|
122
122
|
async with AsyncDodoPayments(
|
|
123
|
-
bearer_token=
|
|
124
|
-
"DODO_PAYMENTS_API_KEY"
|
|
125
|
-
), # This is the default and can be omitted
|
|
123
|
+
bearer_token="My Bearer Token",
|
|
126
124
|
http_client=DefaultAioHttpClient(),
|
|
127
125
|
) as client:
|
|
128
126
|
payment = await client.payments.create(
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "dodopayments"
|
|
3
|
-
version = "1.
|
|
3
|
+
version = "1.39.0"
|
|
4
4
|
description = "The official Python library for the Dodo Payments API"
|
|
5
5
|
dynamic = ["readme"]
|
|
6
6
|
license = "Apache-2.0"
|
|
@@ -39,7 +39,7 @@ Homepage = "https://github.com/dodopayments/dodopayments-python"
|
|
|
39
39
|
Repository = "https://github.com/dodopayments/dodopayments-python"
|
|
40
40
|
|
|
41
41
|
[project.optional-dependencies]
|
|
42
|
-
aiohttp = ["aiohttp", "httpx_aiohttp>=0.1.
|
|
42
|
+
aiohttp = ["aiohttp", "httpx_aiohttp>=0.1.8"]
|
|
43
43
|
|
|
44
44
|
[tool.rye]
|
|
45
45
|
managed = true
|
|
@@ -529,6 +529,15 @@ class BaseClient(Generic[_HttpxClientT, _DefaultStreamT]):
|
|
|
529
529
|
# work around https://github.com/encode/httpx/discussions/2880
|
|
530
530
|
kwargs["extensions"] = {"sni_hostname": prepared_url.host.replace("_", "-")}
|
|
531
531
|
|
|
532
|
+
is_body_allowed = options.method.lower() != "get"
|
|
533
|
+
|
|
534
|
+
if is_body_allowed:
|
|
535
|
+
kwargs["json"] = json_data if is_given(json_data) else None
|
|
536
|
+
kwargs["files"] = files
|
|
537
|
+
else:
|
|
538
|
+
headers.pop("Content-Type", None)
|
|
539
|
+
kwargs.pop("data", None)
|
|
540
|
+
|
|
532
541
|
# TODO: report this error to httpx
|
|
533
542
|
return self._client.build_request( # pyright: ignore[reportUnknownMemberType]
|
|
534
543
|
headers=headers,
|
|
@@ -540,8 +549,6 @@ class BaseClient(Generic[_HttpxClientT, _DefaultStreamT]):
|
|
|
540
549
|
# so that passing a `TypedDict` doesn't cause an error.
|
|
541
550
|
# https://github.com/microsoft/pyright/issues/3526#event-6715453066
|
|
542
551
|
params=self.qs.stringify(cast(Mapping[str, Any], params)) if params else None,
|
|
543
|
-
json=json_data if is_given(json_data) else None,
|
|
544
|
-
files=files,
|
|
545
552
|
**kwargs,
|
|
546
553
|
)
|
|
547
554
|
|
|
@@ -2,9 +2,10 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
import os
|
|
4
4
|
import inspect
|
|
5
|
-
from typing import TYPE_CHECKING, Any, Type, Union, Generic, TypeVar, Callable, cast
|
|
5
|
+
from typing import TYPE_CHECKING, Any, Type, Union, Generic, TypeVar, Callable, Optional, cast
|
|
6
6
|
from datetime import date, datetime
|
|
7
7
|
from typing_extensions import (
|
|
8
|
+
List,
|
|
8
9
|
Unpack,
|
|
9
10
|
Literal,
|
|
10
11
|
ClassVar,
|
|
@@ -366,7 +367,7 @@ def _construct_field(value: object, field: FieldInfo, key: str) -> object:
|
|
|
366
367
|
if type_ is None:
|
|
367
368
|
raise RuntimeError(f"Unexpected field type is None for {key}")
|
|
368
369
|
|
|
369
|
-
return construct_type(value=value, type_=type_)
|
|
370
|
+
return construct_type(value=value, type_=type_, metadata=getattr(field, "metadata", None))
|
|
370
371
|
|
|
371
372
|
|
|
372
373
|
def is_basemodel(type_: type) -> bool:
|
|
@@ -420,7 +421,7 @@ def construct_type_unchecked(*, value: object, type_: type[_T]) -> _T:
|
|
|
420
421
|
return cast(_T, construct_type(value=value, type_=type_))
|
|
421
422
|
|
|
422
423
|
|
|
423
|
-
def construct_type(*, value: object, type_: object) -> object:
|
|
424
|
+
def construct_type(*, value: object, type_: object, metadata: Optional[List[Any]] = None) -> object:
|
|
424
425
|
"""Loose coercion to the expected type with construction of nested values.
|
|
425
426
|
|
|
426
427
|
If the given value does not match the expected type then it is returned as-is.
|
|
@@ -438,8 +439,10 @@ def construct_type(*, value: object, type_: object) -> object:
|
|
|
438
439
|
type_ = type_.__value__ # type: ignore[unreachable]
|
|
439
440
|
|
|
440
441
|
# unwrap `Annotated[T, ...]` -> `T`
|
|
441
|
-
if
|
|
442
|
-
meta: tuple[Any, ...] =
|
|
442
|
+
if metadata is not None:
|
|
443
|
+
meta: tuple[Any, ...] = tuple(metadata)
|
|
444
|
+
elif is_annotated_type(type_):
|
|
445
|
+
meta = get_args(type_)[1:]
|
|
443
446
|
type_ = extract_type_arg(type_, 0)
|
|
444
447
|
else:
|
|
445
448
|
meta = tuple()
|
|
@@ -388,7 +388,9 @@ class SubscriptionsResource(SyncAPIResource):
|
|
|
388
388
|
subscription_id: str,
|
|
389
389
|
*,
|
|
390
390
|
product_price: int,
|
|
391
|
+
adaptive_currency_fees_inclusive: Optional[bool] | NotGiven = NOT_GIVEN,
|
|
391
392
|
metadata: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
|
|
393
|
+
product_currency: Optional[Currency] | NotGiven = NOT_GIVEN,
|
|
392
394
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
393
395
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
394
396
|
extra_headers: Headers | None = None,
|
|
@@ -402,9 +404,16 @@ class SubscriptionsResource(SyncAPIResource):
|
|
|
402
404
|
Represented in the lowest denomination of the currency (e.g.,
|
|
403
405
|
cents for USD). For example, to charge $1.00, pass `100`.
|
|
404
406
|
|
|
407
|
+
adaptive_currency_fees_inclusive: Whether adaptive currency fees should be included in the product_price (true) or
|
|
408
|
+
added on top (false). This field is ignored if adaptive pricing is not enabled
|
|
409
|
+
for the business.
|
|
410
|
+
|
|
405
411
|
metadata: Metadata for the payment. If not passed, the metadata of the subscription will
|
|
406
412
|
be taken
|
|
407
413
|
|
|
414
|
+
product_currency: Optional currency of the product price. If not specified, defaults to the
|
|
415
|
+
currency of the product.
|
|
416
|
+
|
|
408
417
|
extra_headers: Send extra headers
|
|
409
418
|
|
|
410
419
|
extra_query: Add additional query parameters to the request
|
|
@@ -420,7 +429,9 @@ class SubscriptionsResource(SyncAPIResource):
|
|
|
420
429
|
body=maybe_transform(
|
|
421
430
|
{
|
|
422
431
|
"product_price": product_price,
|
|
432
|
+
"adaptive_currency_fees_inclusive": adaptive_currency_fees_inclusive,
|
|
423
433
|
"metadata": metadata,
|
|
434
|
+
"product_currency": product_currency,
|
|
424
435
|
},
|
|
425
436
|
subscription_charge_params.SubscriptionChargeParams,
|
|
426
437
|
),
|
|
@@ -778,7 +789,9 @@ class AsyncSubscriptionsResource(AsyncAPIResource):
|
|
|
778
789
|
subscription_id: str,
|
|
779
790
|
*,
|
|
780
791
|
product_price: int,
|
|
792
|
+
adaptive_currency_fees_inclusive: Optional[bool] | NotGiven = NOT_GIVEN,
|
|
781
793
|
metadata: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
|
|
794
|
+
product_currency: Optional[Currency] | NotGiven = NOT_GIVEN,
|
|
782
795
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
783
796
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
784
797
|
extra_headers: Headers | None = None,
|
|
@@ -792,9 +805,16 @@ class AsyncSubscriptionsResource(AsyncAPIResource):
|
|
|
792
805
|
Represented in the lowest denomination of the currency (e.g.,
|
|
793
806
|
cents for USD). For example, to charge $1.00, pass `100`.
|
|
794
807
|
|
|
808
|
+
adaptive_currency_fees_inclusive: Whether adaptive currency fees should be included in the product_price (true) or
|
|
809
|
+
added on top (false). This field is ignored if adaptive pricing is not enabled
|
|
810
|
+
for the business.
|
|
811
|
+
|
|
795
812
|
metadata: Metadata for the payment. If not passed, the metadata of the subscription will
|
|
796
813
|
be taken
|
|
797
814
|
|
|
815
|
+
product_currency: Optional currency of the product price. If not specified, defaults to the
|
|
816
|
+
currency of the product.
|
|
817
|
+
|
|
798
818
|
extra_headers: Send extra headers
|
|
799
819
|
|
|
800
820
|
extra_query: Add additional query parameters to the request
|
|
@@ -810,7 +830,9 @@ class AsyncSubscriptionsResource(AsyncAPIResource):
|
|
|
810
830
|
body=await async_maybe_transform(
|
|
811
831
|
{
|
|
812
832
|
"product_price": product_price,
|
|
833
|
+
"adaptive_currency_fees_inclusive": adaptive_currency_fees_inclusive,
|
|
813
834
|
"metadata": metadata,
|
|
835
|
+
"product_currency": product_currency,
|
|
814
836
|
},
|
|
815
837
|
subscription_charge_params.SubscriptionChargeParams,
|
|
816
838
|
),
|
{dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/subscription_charge_params.py
RENAMED
|
@@ -5,6 +5,8 @@ from __future__ import annotations
|
|
|
5
5
|
from typing import Dict, Optional
|
|
6
6
|
from typing_extensions import Required, TypedDict
|
|
7
7
|
|
|
8
|
+
from .currency import Currency
|
|
9
|
+
|
|
8
10
|
__all__ = ["SubscriptionChargeParams"]
|
|
9
11
|
|
|
10
12
|
|
|
@@ -16,8 +18,21 @@ class SubscriptionChargeParams(TypedDict, total=False):
|
|
|
16
18
|
For example, to charge $1.00, pass `100`.
|
|
17
19
|
"""
|
|
18
20
|
|
|
21
|
+
adaptive_currency_fees_inclusive: Optional[bool]
|
|
22
|
+
"""
|
|
23
|
+
Whether adaptive currency fees should be included in the product_price (true) or
|
|
24
|
+
added on top (false). This field is ignored if adaptive pricing is not enabled
|
|
25
|
+
for the business.
|
|
26
|
+
"""
|
|
27
|
+
|
|
19
28
|
metadata: Optional[Dict[str, str]]
|
|
20
29
|
"""Metadata for the payment.
|
|
21
30
|
|
|
22
31
|
If not passed, the metadata of the subscription will be taken
|
|
23
32
|
"""
|
|
33
|
+
|
|
34
|
+
product_currency: Optional[Currency]
|
|
35
|
+
"""Optional currency of the product price.
|
|
36
|
+
|
|
37
|
+
If not specified, defaults to the currency of the product.
|
|
38
|
+
"""
|
{dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/subscription_create_params.py
RENAMED
|
@@ -109,6 +109,19 @@ class OnDemand(TypedDict, total=False):
|
|
|
109
109
|
details for future use.
|
|
110
110
|
"""
|
|
111
111
|
|
|
112
|
+
adaptive_currency_fees_inclusive: Optional[bool]
|
|
113
|
+
"""
|
|
114
|
+
Whether adaptive currency fees should be included in the product_price (true) or
|
|
115
|
+
added on top (false). This field is ignored if adaptive pricing is not enabled
|
|
116
|
+
for the business.
|
|
117
|
+
"""
|
|
118
|
+
|
|
119
|
+
product_currency: Optional[Currency]
|
|
120
|
+
"""Optional currency of the product price.
|
|
121
|
+
|
|
122
|
+
If not specified, defaults to the currency of the product.
|
|
123
|
+
"""
|
|
124
|
+
|
|
112
125
|
product_price: Optional[int]
|
|
113
126
|
"""
|
|
114
127
|
Product price for the initial charge to customer If not specified the stored
|
|
@@ -65,6 +65,8 @@ class TestSubscriptions:
|
|
|
65
65
|
metadata={"foo": "string"},
|
|
66
66
|
on_demand={
|
|
67
67
|
"mandate_only": True,
|
|
68
|
+
"adaptive_currency_fees_inclusive": True,
|
|
69
|
+
"product_currency": "AED",
|
|
68
70
|
"product_price": 0,
|
|
69
71
|
},
|
|
70
72
|
payment_link=True,
|
|
@@ -331,7 +333,9 @@ class TestSubscriptions:
|
|
|
331
333
|
subscription = client.subscriptions.charge(
|
|
332
334
|
subscription_id="subscription_id",
|
|
333
335
|
product_price=0,
|
|
336
|
+
adaptive_currency_fees_inclusive=True,
|
|
334
337
|
metadata={"foo": "string"},
|
|
338
|
+
product_currency="AED",
|
|
335
339
|
)
|
|
336
340
|
assert_matches_type(SubscriptionChargeResponse, subscription, path=["response"])
|
|
337
341
|
|
|
@@ -416,6 +420,8 @@ class TestAsyncSubscriptions:
|
|
|
416
420
|
metadata={"foo": "string"},
|
|
417
421
|
on_demand={
|
|
418
422
|
"mandate_only": True,
|
|
423
|
+
"adaptive_currency_fees_inclusive": True,
|
|
424
|
+
"product_currency": "AED",
|
|
419
425
|
"product_price": 0,
|
|
420
426
|
},
|
|
421
427
|
payment_link=True,
|
|
@@ -682,7 +688,9 @@ class TestAsyncSubscriptions:
|
|
|
682
688
|
subscription = await async_client.subscriptions.charge(
|
|
683
689
|
subscription_id="subscription_id",
|
|
684
690
|
product_price=0,
|
|
691
|
+
adaptive_currency_fees_inclusive=True,
|
|
685
692
|
metadata={"foo": "string"},
|
|
693
|
+
product_currency="AED",
|
|
686
694
|
)
|
|
687
695
|
assert_matches_type(SubscriptionChargeResponse, subscription, path=["response"])
|
|
688
696
|
|
|
@@ -473,7 +473,7 @@ class TestDodoPayments:
|
|
|
473
473
|
def test_multipart_repeating_array(self, client: DodoPayments) -> None:
|
|
474
474
|
request = client._build_request(
|
|
475
475
|
FinalRequestOptions.construct(
|
|
476
|
-
method="
|
|
476
|
+
method="post",
|
|
477
477
|
url="/foo",
|
|
478
478
|
headers={"Content-Type": "multipart/form-data; boundary=6b7ba517decee4a450543ea6ae821c82"},
|
|
479
479
|
json_data={"array": ["foo", "bar"]},
|
|
@@ -1389,7 +1389,7 @@ class TestAsyncDodoPayments:
|
|
|
1389
1389
|
def test_multipart_repeating_array(self, async_client: AsyncDodoPayments) -> None:
|
|
1390
1390
|
request = async_client._build_request(
|
|
1391
1391
|
FinalRequestOptions.construct(
|
|
1392
|
-
method="
|
|
1392
|
+
method="post",
|
|
1393
1393
|
url="/foo",
|
|
1394
1394
|
headers={"Content-Type": "multipart/form-data; boundary=6b7ba517decee4a450543ea6ae821c82"},
|
|
1395
1395
|
json_data={"array": ["foo", "bar"]},
|
|
@@ -889,3 +889,48 @@ def test_discriminated_union_case() -> None:
|
|
|
889
889
|
)
|
|
890
890
|
|
|
891
891
|
assert isinstance(m, ModelB)
|
|
892
|
+
|
|
893
|
+
|
|
894
|
+
def test_nested_discriminated_union() -> None:
|
|
895
|
+
class InnerType1(BaseModel):
|
|
896
|
+
type: Literal["type_1"]
|
|
897
|
+
|
|
898
|
+
class InnerModel(BaseModel):
|
|
899
|
+
inner_value: str
|
|
900
|
+
|
|
901
|
+
class InnerType2(BaseModel):
|
|
902
|
+
type: Literal["type_2"]
|
|
903
|
+
some_inner_model: InnerModel
|
|
904
|
+
|
|
905
|
+
class Type1(BaseModel):
|
|
906
|
+
base_type: Literal["base_type_1"]
|
|
907
|
+
value: Annotated[
|
|
908
|
+
Union[
|
|
909
|
+
InnerType1,
|
|
910
|
+
InnerType2,
|
|
911
|
+
],
|
|
912
|
+
PropertyInfo(discriminator="type"),
|
|
913
|
+
]
|
|
914
|
+
|
|
915
|
+
class Type2(BaseModel):
|
|
916
|
+
base_type: Literal["base_type_2"]
|
|
917
|
+
|
|
918
|
+
T = Annotated[
|
|
919
|
+
Union[
|
|
920
|
+
Type1,
|
|
921
|
+
Type2,
|
|
922
|
+
],
|
|
923
|
+
PropertyInfo(discriminator="base_type"),
|
|
924
|
+
]
|
|
925
|
+
|
|
926
|
+
model = construct_type(
|
|
927
|
+
type_=T,
|
|
928
|
+
value={
|
|
929
|
+
"base_type": "base_type_1",
|
|
930
|
+
"value": {
|
|
931
|
+
"type": "type_2",
|
|
932
|
+
},
|
|
933
|
+
},
|
|
934
|
+
)
|
|
935
|
+
assert isinstance(model, Type1)
|
|
936
|
+
assert isinstance(model.value, InnerType2)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/resources/customers/__init__.py
RENAMED
|
File without changes
|
{dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/resources/customers/customer_portal.py
RENAMED
|
File without changes
|
{dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/resources/customers/customers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/resources/license_key_instances.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/addon_cart_response_item.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/addon_update_images_response.py
RENAMED
|
File without changes
|
|
File without changes
|
{dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/attach_existing_customer_param.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/brand_retrieve_response.py
RENAMED
|
File without changes
|
{dodopayments-1.38.1 → dodopayments-1.39.0}/src/dodopayments/types/brand_update_images_response.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|