growsurf-python 1.9.0__tar.gz → 1.10.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.
- growsurf_python-1.10.0/.release-please-manifest.json +3 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/CHANGELOG.md +7 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/PKG-INFO +1 -1
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/pyproject.toml +1 -1
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/_utils/_transform.py +4 -2
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/_version.py +1 -1
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/resources/campaign/rewards.py +6 -6
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/campaign_design.py +5 -1
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/tests/test_transform.py +18 -0
- growsurf_python-1.9.0/.release-please-manifest.json +0 -3
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/.gitignore +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/CONTRIBUTING.md +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/LICENSE +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/README.md +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/SECURITY.md +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/api.md +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/bin/check-release-environment +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/bin/publish-pypi +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/examples/.keep +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/release-please-config.json +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/requirements-dev.lock +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/__init__.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/_base_client.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/_client.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/_compat.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/_constants.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/_exceptions.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/_files.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/_models.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/_qs.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/_resource.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/_response.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/_streaming.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/_types.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/_utils/__init__.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/_utils/_compat.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/_utils/_datetime_parse.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/_utils/_json.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/_utils/_logs.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/_utils/_path.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/_utils/_proxy.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/_utils/_reflection.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/_utils/_resources_proxy.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/_utils/_streams.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/_utils/_sync.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/_utils/_typing.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/_utils/_utils.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/lib/.keep +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/py.typed +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/resources/__init__.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/resources/account.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/resources/campaign/__init__.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/resources/campaign/campaign.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/resources/campaign/commission.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/resources/campaign/design.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/resources/campaign/emails.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/resources/campaign/installation.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/resources/campaign/integrations.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/resources/campaign/options.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/resources/campaign/participant.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/resources/campaign/program_resources.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/resources/campaign/reward.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/resources/campaign/webhooks.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/resources/team.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/__init__.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/account_create_params.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/affiliate_application.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/affiliate_application_answer.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/affiliate_application_list_response.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/affiliate_invite.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/affiliate_invite_list_response.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/analytics_availability.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/analytics_unavailable_reason.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/__init__.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/campaign.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/campaign_emails.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/campaign_installation.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/campaign_options.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/campaign_reward_list_response.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/commission_approve_response.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/commission_delete_response.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/delete_program_resource_response.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/delete_reward_response.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/delete_webhook_response.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/email_participant_response.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/fraud_risk_level.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/integration.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/integration_list_response.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/participant.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/participant_activation_analytics.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/participant_activity_logs_response.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/participant_add_params.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/participant_analytics_params.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/participant_analytics_response.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/participant_bulk_delete_params.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/participant_bulk_delete_response.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/participant_delete_response.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/participant_email_params.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/participant_get_payout_destination_response.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/participant_list_activity_logs_params.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/participant_list_commissions_params.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/participant_list_payouts_params.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/participant_list_referrals_params.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/participant_list_rewards_params.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/participant_list_rewards_response.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/participant_record_transaction_params.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/participant_record_transaction_response.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/participant_refund_transaction_params.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/participant_refund_transaction_response.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/participant_request_payout_destination_confirmation_params.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/participant_request_payout_destination_confirmation_response.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/participant_reward.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/participant_send_invites_params.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/participant_send_invites_response.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/participant_trigger_referral_params.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/participant_trigger_referral_response.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/participant_update_params.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/pending_analytics_erasure.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/program_resource.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/program_resource_list_response.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/program_resource_upload_result.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/program_resource_upload_ticket.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/referral_source.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/referral_status.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/reward.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/reward_approve_params.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/reward_approve_response.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/reward_create_params.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/reward_delete_response.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/reward_fulfill_response.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/reward_tax_valuation.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/reward_update_params.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/webhook.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/webhook_create_params.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/webhook_event.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/webhook_list_response.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/webhook_test_params.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/webhook_test_response.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/webhook_update_params.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign_activation_analytics_response.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign_create_affiliate_invite_params.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign_create_mobile_participant_token_params.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign_create_mobile_participant_token_response.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign_create_params.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign_engagement_analytics.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign_list_affiliate_applications_params.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign_list_affiliate_invites_params.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign_list_commissions_params.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign_list_leaderboard_params.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign_list_participants_params.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign_list_payouts_params.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign_list_referrals_params.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign_list_response.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign_retrieve_activation_analytics_params.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign_retrieve_analytics_params.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign_retrieve_analytics_response.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign_review_affiliate_application_params.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign_update_params.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/commission_structure.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/create_account_response.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/email_analytics.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/participant_commission_list.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/participant_list.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/participant_payout_list.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/referral_flow_screenshot.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/referral_flow_screenshots_response.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/referral_list.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/rotate_api_key_response.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/team.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/team_update_params.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/verification_email_response.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/tests/__init__.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/tests/api_resources/__init__.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/tests/api_resources/campaign/__init__.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/tests/api_resources/campaign/test_commission.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/tests/api_resources/campaign/test_design.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/tests/api_resources/campaign/test_emails.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/tests/api_resources/campaign/test_installation.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/tests/api_resources/campaign/test_integrations.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/tests/api_resources/campaign/test_options.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/tests/api_resources/campaign/test_participant.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/tests/api_resources/campaign/test_program_resources.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/tests/api_resources/campaign/test_reward.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/tests/api_resources/campaign/test_rewards.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/tests/api_resources/campaign/test_webhooks.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/tests/api_resources/test_account.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/tests/api_resources/test_campaign.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/tests/api_resources/test_team_contract.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/tests/conftest.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/tests/sample_file.txt +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/tests/test_client.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/tests/test_extract_files.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/tests/test_files.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/tests/test_models.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/tests/test_qs.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/tests/test_required_args.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/tests/test_response.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/tests/test_streaming.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/tests/test_utils/test_datetime_parse.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/tests/test_utils/test_json.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/tests/test_utils/test_path.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/tests/test_utils/test_proxy.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/tests/test_utils/test_typing.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/tests/types/test_affiliate_application.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/tests/types/test_analytics_reward_status.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/tests/types/test_email_analytics.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/tests/types/test_lead_reward_events.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/tests/types/test_participant_activation_engagement_analytics.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/tests/types/test_participant_contract.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/tests/types/test_payout_provider_forward_compat.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/tests/types/test_referral_source.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/tests/utils.py +0 -0
- {growsurf_python-1.9.0 → growsurf_python-1.10.0}/uv.lock +0 -0
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [1.10.0](https://github.com/growsurf/growsurf-python/compare/v1.9.0...v1.10.0) (2026-09-23)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* **api:** update SDK campaign contracts and request handling ([fbc6468](https://github.com/growsurf/growsurf-python/commit/fbc6468fcb946a5363aec2fd21d9b2f697f5334d))
|
|
9
|
+
|
|
3
10
|
## [1.9.0](https://github.com/growsurf/growsurf-python/compare/v1.8.0...v1.9.0) (2026-09-21)
|
|
4
11
|
|
|
5
12
|
|
|
@@ -218,7 +218,8 @@ def _transform_recursive(
|
|
|
218
218
|
return data
|
|
219
219
|
|
|
220
220
|
if isinstance(data, pydantic.BaseModel):
|
|
221
|
-
|
|
221
|
+
# Request bodies use API field names, so dump aliased fields (e.g. `maxAmount`) by alias.
|
|
222
|
+
return model_dump(data, exclude_unset=True, mode="json", by_alias=True)
|
|
222
223
|
|
|
223
224
|
annotated_type = _get_annotated_type(annotation)
|
|
224
225
|
if annotated_type is None:
|
|
@@ -384,7 +385,8 @@ async def _async_transform_recursive(
|
|
|
384
385
|
return data
|
|
385
386
|
|
|
386
387
|
if isinstance(data, pydantic.BaseModel):
|
|
387
|
-
|
|
388
|
+
# Request bodies use API field names, so dump aliased fields (e.g. `maxAmount`) by alias.
|
|
389
|
+
return model_dump(data, exclude_unset=True, mode="json", by_alias=True)
|
|
388
390
|
|
|
389
391
|
annotated_type = _get_annotated_type(annotation)
|
|
390
392
|
if annotated_type is None:
|
|
@@ -327,9 +327,9 @@ class RewardsResource(SyncAPIResource):
|
|
|
327
327
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
328
328
|
) -> CampaignRewardListResponse:
|
|
329
329
|
"""
|
|
330
|
-
Retrieves
|
|
331
|
-
|
|
332
|
-
|
|
330
|
+
Retrieves configured Campaign Rewards, including switched-off rewards and rewards
|
|
331
|
+
whose group is not selected. Deleted rewards are excluded. The campaign response's
|
|
332
|
+
embedded rewards array includes only enabled, visible rewards.
|
|
333
333
|
|
|
334
334
|
Args:
|
|
335
335
|
extra_headers: Send extra headers
|
|
@@ -692,9 +692,9 @@ class AsyncRewardsResource(AsyncAPIResource):
|
|
|
692
692
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
693
693
|
) -> CampaignRewardListResponse:
|
|
694
694
|
"""
|
|
695
|
-
Retrieves
|
|
696
|
-
|
|
697
|
-
|
|
695
|
+
Retrieves configured Campaign Rewards, including switched-off rewards and rewards
|
|
696
|
+
whose group is not selected. Deleted rewards are excluded. The campaign response's
|
|
697
|
+
embedded rewards array includes only enabled, visible rewards.
|
|
698
698
|
|
|
699
699
|
Args:
|
|
700
700
|
extra_headers: Send extra headers
|
{growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/campaign_design.py
RENAMED
|
@@ -55,7 +55,11 @@ class CampaignDesignResources(TypedDict, total=False):
|
|
|
55
55
|
# `widget` is the website widget shown in a corner of your own site — a button or a
|
|
56
56
|
# card, its placement and offsets, when it appears, and which pages it appears on —
|
|
57
57
|
# with its colors under `theme.widget`. Both of its audience switches start off, so a
|
|
58
|
-
# program shows nothing until you turn one on.
|
|
58
|
+
# program shows nothing until you turn one on. `trafficInsights` is the participant
|
|
59
|
+
# Traffic report: visits to a participant's share link and where they came from. It
|
|
60
|
+
# starts on for new affiliate programs and hidden for referral programs; `GET` returns
|
|
61
|
+
# every setting with its default copy, and a `PATCH` changes only the settings you
|
|
62
|
+
# send. Its labels cannot be blank.
|
|
59
63
|
# `GET` returns the fields configured for the program;
|
|
60
64
|
# `payoutDestinationConfirmation` is omitted when no confirmation fields are
|
|
61
65
|
# stored. Stored `null` fields are returned as `null`; omitted and `null` fields
|
|
@@ -7,6 +7,7 @@ from datetime import date, datetime
|
|
|
7
7
|
from typing_extensions import Required, Annotated, TypedDict
|
|
8
8
|
|
|
9
9
|
import pytest
|
|
10
|
+
from pydantic import Field
|
|
10
11
|
|
|
11
12
|
from growsurf._types import Base64FileInput, omit, not_given
|
|
12
13
|
from growsurf._utils import (
|
|
@@ -317,6 +318,23 @@ async def test_pydantic_mismatched_object_type(use_async: bool) -> None:
|
|
|
317
318
|
assert cast(Any, params) == {"foo": {"hello": "world"}}
|
|
318
319
|
|
|
319
320
|
|
|
321
|
+
class ModelWithAlias(BaseModel):
|
|
322
|
+
max_amount: Optional[int] = Field(alias="maxAmount", default=None)
|
|
323
|
+
|
|
324
|
+
|
|
325
|
+
class TypedDictWithAliasedModel(TypedDict, total=False):
|
|
326
|
+
commission_structure: Annotated[ModelWithAlias, PropertyInfo(alias="commissionStructure")]
|
|
327
|
+
|
|
328
|
+
|
|
329
|
+
@parametrize
|
|
330
|
+
@pytest.mark.asyncio
|
|
331
|
+
async def test_pydantic_model_uses_api_field_names(use_async: bool) -> None:
|
|
332
|
+
params = {"commission_structure": ModelWithAlias(maxAmount=5000)}
|
|
333
|
+
assert cast(Any, await transform(params, TypedDictWithAliasedModel, use_async)) == {
|
|
334
|
+
"commissionStructure": {"maxAmount": 5000}
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
|
|
320
338
|
class ModelNestedObjects(BaseModel):
|
|
321
339
|
nested: MyModel
|
|
322
340
|
|
|
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
|
{growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/resources/campaign/__init__.py
RENAMED
|
File without changes
|
{growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/resources/campaign/campaign.py
RENAMED
|
File without changes
|
{growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/resources/campaign/commission.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/resources/campaign/installation.py
RENAMED
|
File without changes
|
{growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/resources/campaign/integrations.py
RENAMED
|
File without changes
|
|
File without changes
|
{growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/resources/campaign/participant.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/resources/campaign/webhooks.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/account_create_params.py
RENAMED
|
File without changes
|
{growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/affiliate_application.py
RENAMED
|
File without changes
|
{growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/affiliate_application_answer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/analytics_availability.py
RENAMED
|
File without changes
|
{growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/analytics_unavailable_reason.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/campaign_emails.py
RENAMED
|
File without changes
|
|
File without changes
|
{growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/campaign_options.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
|
{growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/fraud_risk_level.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
|
|
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
|
{growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/participant_reward.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/program_resource.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/referral_source.py
RENAMED
|
File without changes
|
{growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/referral_status.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/reward_create_params.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/reward_tax_valuation.py
RENAMED
|
File without changes
|
{growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/reward_update_params.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/webhook_event.py
RENAMED
|
File without changes
|
|
File without changes
|
{growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign/webhook_test_params.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign_create_params.py
RENAMED
|
File without changes
|
{growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign_engagement_analytics.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign_list_payouts_params.py
RENAMED
|
File without changes
|
|
File without changes
|
{growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign_list_response.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/campaign_update_params.py
RENAMED
|
File without changes
|
|
File without changes
|
{growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/create_account_response.py
RENAMED
|
File without changes
|
|
File without changes
|
{growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/participant_commission_list.py
RENAMED
|
File without changes
|
|
File without changes
|
{growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/participant_payout_list.py
RENAMED
|
File without changes
|
{growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/referral_flow_screenshot.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/rotate_api_key_response.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{growsurf_python-1.9.0 → growsurf_python-1.10.0}/src/growsurf/types/verification_email_response.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{growsurf_python-1.9.0 → growsurf_python-1.10.0}/tests/api_resources/campaign/test_commission.py
RENAMED
|
File without changes
|
{growsurf_python-1.9.0 → growsurf_python-1.10.0}/tests/api_resources/campaign/test_design.py
RENAMED
|
File without changes
|
{growsurf_python-1.9.0 → growsurf_python-1.10.0}/tests/api_resources/campaign/test_emails.py
RENAMED
|
File without changes
|
{growsurf_python-1.9.0 → growsurf_python-1.10.0}/tests/api_resources/campaign/test_installation.py
RENAMED
|
File without changes
|
{growsurf_python-1.9.0 → growsurf_python-1.10.0}/tests/api_resources/campaign/test_integrations.py
RENAMED
|
File without changes
|
{growsurf_python-1.9.0 → growsurf_python-1.10.0}/tests/api_resources/campaign/test_options.py
RENAMED
|
File without changes
|
{growsurf_python-1.9.0 → growsurf_python-1.10.0}/tests/api_resources/campaign/test_participant.py
RENAMED
|
File without changes
|
|
File without changes
|
{growsurf_python-1.9.0 → growsurf_python-1.10.0}/tests/api_resources/campaign/test_reward.py
RENAMED
|
File without changes
|
{growsurf_python-1.9.0 → growsurf_python-1.10.0}/tests/api_resources/campaign/test_rewards.py
RENAMED
|
File without changes
|
{growsurf_python-1.9.0 → growsurf_python-1.10.0}/tests/api_resources/campaign/test_webhooks.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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{growsurf_python-1.9.0 → growsurf_python-1.10.0}/tests/types/test_analytics_reward_status.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{growsurf_python-1.9.0 → growsurf_python-1.10.0}/tests/types/test_payout_provider_forward_compat.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|