adcp 3.0.0__tar.gz → 3.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {adcp-3.0.0/src/adcp.egg-info → adcp-3.1.0}/PKG-INFO +1 -1
- {adcp-3.0.0 → adcp-3.1.0}/pyproject.toml +1 -1
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/__init__.py +9 -1
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/__init__.py +4 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/aliases.py +55 -0
- {adcp-3.0.0 → adcp-3.1.0/src/adcp.egg-info}/PKG-INFO +1 -1
- {adcp-3.0.0 → adcp-3.1.0}/tests/test_type_aliases.py +233 -0
- {adcp-3.0.0 → adcp-3.1.0}/LICENSE +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/MANIFEST.in +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/README.md +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/setup.cfg +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/ADCP_VERSION +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/__main__.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/adagents.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/client.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/config.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/exceptions.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/protocols/__init__.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/protocols/a2a.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/protocols/base.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/protocols/mcp.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/py.typed +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/server/__init__.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/server/base.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/server/content_standards.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/server/governance.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/server/mcp_tools.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/server/proposal.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/server/sponsored_intelligence.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/simple.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/testing/__init__.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/testing/test_helpers.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/_ergonomic.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/_generated.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/base.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/coercion.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/core.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/__init__.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/adagents.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/content_standards/__init__.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/content_standards/artifact.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/content_standards/artifact_webhook_payload.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/content_standards/calibrate_content_request.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/content_standards/calibrate_content_response.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/content_standards/content_standards.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/content_standards/create_content_standards_request.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/content_standards/create_content_standards_response.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/content_standards/get_content_standards_request.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/content_standards/get_content_standards_response.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/content_standards/get_media_buy_artifacts_request.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/content_standards/get_media_buy_artifacts_response.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/content_standards/list_content_standards_request.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/content_standards/list_content_standards_response.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/content_standards/update_content_standards_request.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/content_standards/update_content_standards_response.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/content_standards/validate_content_delivery_request.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/content_standards/validate_content_delivery_response.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/__init__.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/activation_key.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/assets/__init__.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/assets/audio_asset.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/assets/css_asset.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/assets/daast_asset.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/assets/html_asset.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/assets/image_asset.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/assets/javascript_asset.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/assets/text_asset.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/assets/url_asset.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/assets/vast_asset.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/assets/video_asset.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/assets/webhook_asset.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/async_response_data.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/brand_manifest.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/brand_manifest_ref.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/context.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/creative_asset.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/creative_assignment.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/creative_filters.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/creative_manifest.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/creative_policy.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/delivery_metrics.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/deployment.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/destination.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/error.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/ext.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/format.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/format_id.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/frequency_cap.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/identifier.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/mcp_webhook_payload.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/measurement.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/media_buy.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/media_buy_features.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/offering.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/package.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/performance_feedback.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/placement.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/pricing_option.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/product.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/product_allocation.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/product_filters.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/promoted_offerings.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/promoted_products.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/property.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/property_id.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/property_list_ref.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/property_tag.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/proposal.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/protocol_envelope.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/publisher_property_selector.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/push_notification_config.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/reporting_capabilities.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/reporting_webhook.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/response.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/signal_filters.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/start_timing.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/sub_asset.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/core/targeting.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/creative/__init__.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/creative/list_creative_formats_request.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/creative/list_creative_formats_response.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/creative/preview_creative_request.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/creative/preview_creative_response.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/creative/preview_render.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/enums/__init__.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/enums/adcp_domain.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/enums/asset_content_type.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/enums/auth_scheme.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/enums/available_metric.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/enums/channels.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/enums/co_branding_requirement.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/enums/creative_action.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/enums/creative_agent_capability.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/enums/creative_sort_field.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/enums/creative_status.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/enums/daast_tracking_event.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/enums/daast_version.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/enums/delivery_type.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/enums/dimension_unit.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/enums/feed_format.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/enums/feedback_source.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/enums/format_category.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/enums/format_id_parameter.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/enums/frequency_cap_scope.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/enums/geo_level.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/enums/history_entry_type.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/enums/http_method.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/enums/identifier_types.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/enums/javascript_module_type.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/enums/landing_page_requirement.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/enums/markdown_flavor.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/enums/media_buy_status.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/enums/metric_type.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/enums/metro_system.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/enums/notification_type.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/enums/pacing.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/enums/postal_system.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/enums/preview_output_format.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/enums/pricing_model.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/enums/property_type.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/enums/publisher_identifier_types.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/enums/reporting_frequency.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/enums/signal_catalog_type.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/enums/sort_direction.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/enums/task_status.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/enums/task_type.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/enums/update_frequency.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/enums/url_asset_type.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/enums/validation_mode.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/enums/vast_tracking_event.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/enums/vast_version.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/enums/webhook_response_type.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/enums/webhook_security_method.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/extensions/__init__.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/extensions/extension_meta.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/media_buy/__init__.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/media_buy/build_creative_request.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/media_buy/build_creative_response.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/media_buy/create_media_buy_async_response_input_required.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/media_buy/create_media_buy_async_response_submitted.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/media_buy/create_media_buy_async_response_working.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/media_buy/create_media_buy_request.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/media_buy/create_media_buy_response.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/media_buy/get_media_buy_delivery_request.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/media_buy/get_media_buy_delivery_response.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/media_buy/get_products_async_response_input_required.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/media_buy/get_products_async_response_submitted.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/media_buy/get_products_async_response_working.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/media_buy/get_products_request.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/media_buy/get_products_response.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/media_buy/list_authorized_properties_request.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/media_buy/list_authorized_properties_response.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/media_buy/list_creative_formats_request.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/media_buy/list_creative_formats_response.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/media_buy/list_creatives_request.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/media_buy/list_creatives_response.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/media_buy/package_request.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/media_buy/package_update.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/media_buy/provide_performance_feedback_request.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/media_buy/provide_performance_feedback_response.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/media_buy/sync_creatives_async_response_input_required.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/media_buy/sync_creatives_async_response_submitted.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/media_buy/sync_creatives_async_response_working.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/media_buy/sync_creatives_request.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/media_buy/sync_creatives_response.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/media_buy/update_media_buy_async_response_input_required.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/media_buy/update_media_buy_async_response_submitted.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/media_buy/update_media_buy_async_response_working.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/media_buy/update_media_buy_request.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/media_buy/update_media_buy_response.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/pricing_options/__init__.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/pricing_options/cpc_option.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/pricing_options/cpcv_option.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/pricing_options/cpm_option.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/pricing_options/cpp_option.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/pricing_options/cpv_option.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/pricing_options/flat_rate_option.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/pricing_options/vcpm_option.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/property/__init__.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/property/base_property_source.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/property/create_property_list_request.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/property/create_property_list_response.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/property/delete_property_list_request.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/property/delete_property_list_response.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/property/feature_requirement.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/property/get_property_list_request.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/property/get_property_list_response.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/property/list_property_lists_request.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/property/list_property_lists_response.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/property/property_error.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/property/property_feature.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/property/property_feature_definition.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/property/property_list.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/property/property_list_changed_webhook.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/property/property_list_filters.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/property/update_property_list_request.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/property/update_property_list_response.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/protocol/__init__.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/protocol/get_adcp_capabilities_request.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/protocol/get_adcp_capabilities_response.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/protocols/__init__.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/protocols/adcp_extension.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/signals/__init__.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/signals/activate_signal_request.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/signals/activate_signal_response.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/signals/get_signals_request.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/signals/get_signals_response.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/sponsored_intelligence/__init__.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/sponsored_intelligence/si_capabilities.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/sponsored_intelligence/si_get_offering_request.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/sponsored_intelligence/si_get_offering_response.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/sponsored_intelligence/si_identity.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/sponsored_intelligence/si_initiate_session_request.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/sponsored_intelligence/si_initiate_session_response.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/sponsored_intelligence/si_send_message_request.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/sponsored_intelligence/si_send_message_response.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/sponsored_intelligence/si_terminate_session_request.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/sponsored_intelligence/si_terminate_session_response.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/sponsored_intelligence/si_ui_element.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/utils/__init__.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/utils/format_assets.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/utils/operation_id.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/utils/preview_cache.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/utils/response_parser.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/validation.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp/webhooks.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp.egg-info/SOURCES.txt +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp.egg-info/dependency_links.txt +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp.egg-info/entry_points.txt +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp.egg-info/requires.txt +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/src/adcp.egg-info/top_level.txt +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/tests/test_adagents.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/tests/test_cli.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/tests/test_client.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/tests/test_code_generation.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/tests/test_discriminated_unions.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/tests/test_format_assets.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/tests/test_format_id_validation.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/tests/test_helpers.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/tests/test_preview_html.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/tests/test_protocols.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/tests/test_public_api.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/tests/test_response_parser.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/tests/test_response_str.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/tests/test_server_framework.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/tests/test_simple_api.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/tests/test_type_coercion.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/tests/test_version_interop.py +0 -0
- {adcp-3.0.0 → adcp-3.1.0}/tests/test_webhook_handling.py +0 -0
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "adcp"
|
|
7
|
-
version = "3.
|
|
7
|
+
version = "3.1.0"
|
|
8
8
|
description = "Official Python client for the Ad Context Protocol (AdCP)"
|
|
9
9
|
authors = [
|
|
10
10
|
{name = "AdCP Community", email = "maintainers@adcontextprotocol.org"}
|
|
@@ -139,6 +139,8 @@ from adcp.types.aliases import (
|
|
|
139
139
|
BuildCreativeSuccessResponse,
|
|
140
140
|
CreateMediaBuyErrorResponse,
|
|
141
141
|
CreateMediaBuySuccessResponse,
|
|
142
|
+
Deployment,
|
|
143
|
+
Destination,
|
|
142
144
|
HtmlPreviewRender,
|
|
143
145
|
InlineDaastAsset,
|
|
144
146
|
InlineVastAsset,
|
|
@@ -149,10 +151,12 @@ from adcp.types.aliases import (
|
|
|
149
151
|
PreviewCreativeInteractiveResponse,
|
|
150
152
|
PreviewCreativeManifestRequest,
|
|
151
153
|
PreviewCreativeStaticResponse,
|
|
154
|
+
PricingOption,
|
|
152
155
|
PropertyId,
|
|
153
156
|
PropertyTag,
|
|
154
157
|
ProvidePerformanceFeedbackErrorResponse,
|
|
155
158
|
ProvidePerformanceFeedbackSuccessResponse,
|
|
159
|
+
PublisherProperties,
|
|
156
160
|
PublisherPropertiesAll,
|
|
157
161
|
PublisherPropertiesById,
|
|
158
162
|
PublisherPropertiesByTag,
|
|
@@ -193,7 +197,7 @@ from adcp.webhooks import (
|
|
|
193
197
|
get_adcp_signed_headers_for_webhook,
|
|
194
198
|
)
|
|
195
199
|
|
|
196
|
-
__version__ = "3.
|
|
200
|
+
__version__ = "3.1.0"
|
|
197
201
|
|
|
198
202
|
|
|
199
203
|
def get_adcp_version() -> str:
|
|
@@ -362,6 +366,8 @@ __all__ = [
|
|
|
362
366
|
"BuildCreativeErrorResponse",
|
|
363
367
|
"CreateMediaBuySuccessResponse",
|
|
364
368
|
"CreateMediaBuyErrorResponse",
|
|
369
|
+
"Deployment",
|
|
370
|
+
"Destination",
|
|
365
371
|
"HtmlPreviewRender",
|
|
366
372
|
"InlineDaastAsset",
|
|
367
373
|
"InlineVastAsset",
|
|
@@ -372,10 +378,12 @@ __all__ = [
|
|
|
372
378
|
"PreviewCreativeManifestRequest",
|
|
373
379
|
"PreviewCreativeStaticResponse",
|
|
374
380
|
"PreviewCreativeInteractiveResponse",
|
|
381
|
+
"PricingOption",
|
|
375
382
|
"PropertyId",
|
|
376
383
|
"PropertyTag",
|
|
377
384
|
"ProvidePerformanceFeedbackSuccessResponse",
|
|
378
385
|
"ProvidePerformanceFeedbackErrorResponse",
|
|
386
|
+
"PublisherProperties",
|
|
379
387
|
"PublisherPropertiesAll",
|
|
380
388
|
"PublisherPropertiesById",
|
|
381
389
|
"PublisherPropertiesByTag",
|
|
@@ -289,10 +289,12 @@ from adcp.types.aliases import (
|
|
|
289
289
|
PreviewCreativeInteractiveResponse,
|
|
290
290
|
PreviewCreativeManifestRequest,
|
|
291
291
|
PreviewCreativeStaticResponse,
|
|
292
|
+
PricingOption,
|
|
292
293
|
PropertyId,
|
|
293
294
|
PropertyTag,
|
|
294
295
|
ProvidePerformanceFeedbackErrorResponse,
|
|
295
296
|
ProvidePerformanceFeedbackSuccessResponse,
|
|
297
|
+
PublisherProperties,
|
|
296
298
|
PublisherPropertiesAll,
|
|
297
299
|
PublisherPropertiesById,
|
|
298
300
|
PublisherPropertiesByTag,
|
|
@@ -602,10 +604,12 @@ __all__ = [
|
|
|
602
604
|
"PreviewCreativeInteractiveResponse",
|
|
603
605
|
"PreviewCreativeManifestRequest",
|
|
604
606
|
"PreviewCreativeStaticResponse",
|
|
607
|
+
"PricingOption",
|
|
605
608
|
"PropertyId",
|
|
606
609
|
"PropertyTag",
|
|
607
610
|
"ProvidePerformanceFeedbackErrorResponse",
|
|
608
611
|
"ProvidePerformanceFeedbackSuccessResponse",
|
|
612
|
+
"PublisherProperties",
|
|
609
613
|
"PublisherPropertiesAll",
|
|
610
614
|
"PublisherPropertiesById",
|
|
611
615
|
"PublisherPropertiesByTag",
|
|
@@ -43,6 +43,11 @@ from adcp.types._generated import (
|
|
|
43
43
|
# Build creative responses
|
|
44
44
|
BuildCreativeResponse1,
|
|
45
45
|
BuildCreativeResponse2,
|
|
46
|
+
CpcPricingOption,
|
|
47
|
+
CpcvPricingOption,
|
|
48
|
+
CpmPricingOption,
|
|
49
|
+
CppPricingOption,
|
|
50
|
+
CpvPricingOption,
|
|
46
51
|
# Create media buy responses
|
|
47
52
|
CreateMediaBuyResponse1,
|
|
48
53
|
CreateMediaBuyResponse2,
|
|
@@ -55,6 +60,7 @@ from adcp.types._generated import (
|
|
|
55
60
|
# Destination types
|
|
56
61
|
Destination1,
|
|
57
62
|
Destination2,
|
|
63
|
+
FlatRatePricingOption,
|
|
58
64
|
# Preview creative requests
|
|
59
65
|
PreviewCreativeRequest1,
|
|
60
66
|
PreviewCreativeRequest2,
|
|
@@ -86,6 +92,7 @@ from adcp.types._generated import (
|
|
|
86
92
|
# VAST assets
|
|
87
93
|
VastAsset1,
|
|
88
94
|
VastAsset2,
|
|
95
|
+
VcpmPricingOption,
|
|
89
96
|
)
|
|
90
97
|
from adcp.types._generated import (
|
|
91
98
|
PublisherPropertySelector1 as PublisherPropertiesInternal,
|
|
@@ -688,6 +695,52 @@ Example:
|
|
|
688
695
|
```
|
|
689
696
|
"""
|
|
690
697
|
|
|
698
|
+
# ============================================================================
|
|
699
|
+
# PRICING OPTION UNION TYPE - For Type Hints Without RootModel Wrapper
|
|
700
|
+
# ============================================================================
|
|
701
|
+
# The generated PricingOption is a RootModel wrapper that mypy doesn't recognize
|
|
702
|
+
# as compatible with the individual variant types. This union alias provides a
|
|
703
|
+
# way to type-hint pricing options without the wrapper, fixing mypy list-item errors.
|
|
704
|
+
|
|
705
|
+
PricingOption = (
|
|
706
|
+
CpmPricingOption
|
|
707
|
+
| VcpmPricingOption
|
|
708
|
+
| CpcPricingOption
|
|
709
|
+
| CpcvPricingOption
|
|
710
|
+
| CpvPricingOption
|
|
711
|
+
| CppPricingOption
|
|
712
|
+
| FlatRatePricingOption
|
|
713
|
+
)
|
|
714
|
+
"""Union type for all pricing option variants.
|
|
715
|
+
|
|
716
|
+
Use this for type hints when constructing Product.pricing_options or any field
|
|
717
|
+
that accepts pricing options. This fixes mypy list-item errors that occur when
|
|
718
|
+
using the individual variant types.
|
|
719
|
+
|
|
720
|
+
Example:
|
|
721
|
+
```python
|
|
722
|
+
from adcp.types import Product, CpmPricingOption, PricingOption
|
|
723
|
+
|
|
724
|
+
# Type hint for a list of pricing options
|
|
725
|
+
def get_pricing(options: list[PricingOption]) -> None:
|
|
726
|
+
for opt in options:
|
|
727
|
+
print(f"Model: {opt.pricing_model}")
|
|
728
|
+
|
|
729
|
+
# Use in Product construction (no more mypy errors!)
|
|
730
|
+
product = Product(
|
|
731
|
+
product_id="test",
|
|
732
|
+
name="Test Product",
|
|
733
|
+
pricing_options=[
|
|
734
|
+
CpmPricingOption(
|
|
735
|
+
pricing_model="cpm",
|
|
736
|
+
floor_price=1.50,
|
|
737
|
+
currency="USD"
|
|
738
|
+
)
|
|
739
|
+
]
|
|
740
|
+
)
|
|
741
|
+
```
|
|
742
|
+
"""
|
|
743
|
+
|
|
691
744
|
# ============================================================================
|
|
692
745
|
# EXPORTS
|
|
693
746
|
# ============================================================================
|
|
@@ -759,4 +812,6 @@ __all__ = [
|
|
|
759
812
|
"AgentDestination",
|
|
760
813
|
# Destination union
|
|
761
814
|
"Destination",
|
|
815
|
+
# Pricing option union
|
|
816
|
+
"PricingOption",
|
|
762
817
|
]
|
|
@@ -572,3 +572,236 @@ def test_deployment_destination_aliases_in_exports():
|
|
|
572
572
|
assert "AgentDeployment" in aliases_module.__all__
|
|
573
573
|
assert "PlatformDestination" in aliases_module.__all__
|
|
574
574
|
assert "AgentDestination" in aliases_module.__all__
|
|
575
|
+
|
|
576
|
+
|
|
577
|
+
# ============================================================================
|
|
578
|
+
# UNION TYPE ALIASES TESTS
|
|
579
|
+
# ============================================================================
|
|
580
|
+
|
|
581
|
+
|
|
582
|
+
def test_pricing_option_union_import():
|
|
583
|
+
"""Test that PricingOption union type can be imported."""
|
|
584
|
+
from adcp import PricingOption
|
|
585
|
+
from adcp.types.aliases import PricingOption as AliasPricingOption
|
|
586
|
+
|
|
587
|
+
# Verify all import paths work
|
|
588
|
+
assert PricingOption is AliasPricingOption
|
|
589
|
+
|
|
590
|
+
|
|
591
|
+
def test_pricing_option_union_is_union_type():
|
|
592
|
+
"""Test that PricingOption is a union type, not a RootModel."""
|
|
593
|
+
import types
|
|
594
|
+
|
|
595
|
+
from adcp import PricingOption
|
|
596
|
+
|
|
597
|
+
# Should be a Union type, not a class
|
|
598
|
+
# In Python 3.10+, unions created with | are types.UnionType
|
|
599
|
+
assert isinstance(PricingOption, types.UnionType)
|
|
600
|
+
|
|
601
|
+
|
|
602
|
+
def test_pricing_option_union_contains_all_variants():
|
|
603
|
+
"""Test that PricingOption union contains all pricing variants."""
|
|
604
|
+
from typing import get_args
|
|
605
|
+
|
|
606
|
+
from adcp import (
|
|
607
|
+
CpcPricingOption,
|
|
608
|
+
CpcvPricingOption,
|
|
609
|
+
CpmPricingOption,
|
|
610
|
+
CppPricingOption,
|
|
611
|
+
CpvPricingOption,
|
|
612
|
+
FlatRatePricingOption,
|
|
613
|
+
PricingOption,
|
|
614
|
+
VcpmPricingOption,
|
|
615
|
+
)
|
|
616
|
+
|
|
617
|
+
# Get all types in the union
|
|
618
|
+
union_args = set(get_args(PricingOption))
|
|
619
|
+
|
|
620
|
+
# Verify all pricing option variants are in the union
|
|
621
|
+
expected_variants = {
|
|
622
|
+
CpmPricingOption,
|
|
623
|
+
VcpmPricingOption,
|
|
624
|
+
CpcPricingOption,
|
|
625
|
+
CpcvPricingOption,
|
|
626
|
+
CpvPricingOption,
|
|
627
|
+
CppPricingOption,
|
|
628
|
+
FlatRatePricingOption,
|
|
629
|
+
}
|
|
630
|
+
|
|
631
|
+
assert union_args == expected_variants
|
|
632
|
+
|
|
633
|
+
|
|
634
|
+
def test_pricing_option_union_exported():
|
|
635
|
+
"""Test that PricingOption union is properly exported."""
|
|
636
|
+
import adcp
|
|
637
|
+
import adcp.types.aliases as aliases_module
|
|
638
|
+
|
|
639
|
+
# Check main package exports
|
|
640
|
+
assert hasattr(adcp, "PricingOption")
|
|
641
|
+
assert "PricingOption" in adcp.__all__
|
|
642
|
+
|
|
643
|
+
# Check aliases module exports
|
|
644
|
+
assert hasattr(aliases_module, "PricingOption")
|
|
645
|
+
assert "PricingOption" in aliases_module.__all__
|
|
646
|
+
|
|
647
|
+
|
|
648
|
+
def test_pricing_option_variants_type_compatible():
|
|
649
|
+
"""Test that pricing option variants are type-compatible with the union.
|
|
650
|
+
|
|
651
|
+
This is the key test from issue #120 - verifying that individual pricing
|
|
652
|
+
option types can be used where PricingOption is expected without mypy errors.
|
|
653
|
+
"""
|
|
654
|
+
from adcp import CpmPricingOption, PricingOption, VcpmPricingOption
|
|
655
|
+
|
|
656
|
+
# Create instances of variants (pricing_option_id is required)
|
|
657
|
+
cpm = CpmPricingOption(
|
|
658
|
+
pricing_option_id="cpm-1",
|
|
659
|
+
pricing_model="cpm",
|
|
660
|
+
floor_price=1.50,
|
|
661
|
+
currency="USD",
|
|
662
|
+
)
|
|
663
|
+
vcpm = VcpmPricingOption(
|
|
664
|
+
pricing_option_id="vcpm-1",
|
|
665
|
+
pricing_model="vcpm",
|
|
666
|
+
floor_price=2.00,
|
|
667
|
+
currency="USD",
|
|
668
|
+
)
|
|
669
|
+
|
|
670
|
+
# These should be type-compatible with PricingOption union
|
|
671
|
+
# (mypy will verify this at type-check time, but we can verify instances at runtime)
|
|
672
|
+
options: list[PricingOption] = [cpm, vcpm]
|
|
673
|
+
|
|
674
|
+
assert len(options) == 2
|
|
675
|
+
assert options[0].pricing_model == "cpm"
|
|
676
|
+
assert options[1].pricing_model == "vcpm"
|
|
677
|
+
|
|
678
|
+
|
|
679
|
+
def test_publisher_properties_union_import():
|
|
680
|
+
"""Test that PublisherProperties union type can be imported."""
|
|
681
|
+
from adcp import PublisherProperties
|
|
682
|
+
from adcp.types.aliases import PublisherProperties as AliasPublisherProperties
|
|
683
|
+
|
|
684
|
+
# Verify all import paths work
|
|
685
|
+
assert PublisherProperties is AliasPublisherProperties
|
|
686
|
+
|
|
687
|
+
|
|
688
|
+
def test_publisher_properties_union_is_union_type():
|
|
689
|
+
"""Test that PublisherProperties is a union type, not a RootModel."""
|
|
690
|
+
import types
|
|
691
|
+
|
|
692
|
+
from adcp import PublisherProperties
|
|
693
|
+
|
|
694
|
+
# Should be a Union type, not a class
|
|
695
|
+
assert isinstance(PublisherProperties, types.UnionType)
|
|
696
|
+
|
|
697
|
+
|
|
698
|
+
def test_publisher_properties_union_contains_all_variants():
|
|
699
|
+
"""Test that PublisherProperties union contains all property selector variants."""
|
|
700
|
+
from typing import get_args
|
|
701
|
+
|
|
702
|
+
from adcp import (
|
|
703
|
+
PublisherProperties,
|
|
704
|
+
PublisherPropertiesAll,
|
|
705
|
+
PublisherPropertiesById,
|
|
706
|
+
PublisherPropertiesByTag,
|
|
707
|
+
)
|
|
708
|
+
|
|
709
|
+
# Get all types in the union
|
|
710
|
+
union_args = set(get_args(PublisherProperties))
|
|
711
|
+
|
|
712
|
+
# Verify all publisher properties variants are in the union
|
|
713
|
+
expected_variants = {
|
|
714
|
+
PublisherPropertiesAll,
|
|
715
|
+
PublisherPropertiesById,
|
|
716
|
+
PublisherPropertiesByTag,
|
|
717
|
+
}
|
|
718
|
+
|
|
719
|
+
assert union_args == expected_variants
|
|
720
|
+
|
|
721
|
+
|
|
722
|
+
def test_publisher_properties_union_exported():
|
|
723
|
+
"""Test that PublisherProperties union is properly exported."""
|
|
724
|
+
import adcp
|
|
725
|
+
import adcp.types.aliases as aliases_module
|
|
726
|
+
|
|
727
|
+
# Check main package exports
|
|
728
|
+
assert hasattr(adcp, "PublisherProperties")
|
|
729
|
+
assert "PublisherProperties" in adcp.__all__
|
|
730
|
+
|
|
731
|
+
# Check aliases module exports
|
|
732
|
+
assert hasattr(aliases_module, "PublisherProperties")
|
|
733
|
+
assert "PublisherProperties" in aliases_module.__all__
|
|
734
|
+
|
|
735
|
+
|
|
736
|
+
def test_deployment_union_import():
|
|
737
|
+
"""Test that Deployment union type can be imported."""
|
|
738
|
+
from adcp import Deployment
|
|
739
|
+
from adcp.types.aliases import Deployment as AliasDeployment
|
|
740
|
+
|
|
741
|
+
# Verify all import paths work
|
|
742
|
+
assert Deployment is AliasDeployment
|
|
743
|
+
|
|
744
|
+
|
|
745
|
+
def test_deployment_union_is_union_type():
|
|
746
|
+
"""Test that Deployment is a union type, not a RootModel."""
|
|
747
|
+
import types
|
|
748
|
+
|
|
749
|
+
from adcp import Deployment
|
|
750
|
+
|
|
751
|
+
# Should be a Union type, not a class
|
|
752
|
+
assert isinstance(Deployment, types.UnionType)
|
|
753
|
+
|
|
754
|
+
|
|
755
|
+
def test_deployment_union_contains_all_variants():
|
|
756
|
+
"""Test that Deployment union contains all deployment variants."""
|
|
757
|
+
from typing import get_args
|
|
758
|
+
|
|
759
|
+
from adcp import AgentDeployment, Deployment, PlatformDeployment
|
|
760
|
+
|
|
761
|
+
# Get all types in the union
|
|
762
|
+
union_args = set(get_args(Deployment))
|
|
763
|
+
|
|
764
|
+
# Verify all deployment variants are in the union
|
|
765
|
+
expected_variants = {
|
|
766
|
+
PlatformDeployment,
|
|
767
|
+
AgentDeployment,
|
|
768
|
+
}
|
|
769
|
+
|
|
770
|
+
assert union_args == expected_variants
|
|
771
|
+
|
|
772
|
+
|
|
773
|
+
def test_destination_union_import():
|
|
774
|
+
"""Test that Destination union type can be imported."""
|
|
775
|
+
from adcp import Destination
|
|
776
|
+
from adcp.types.aliases import Destination as AliasDestination
|
|
777
|
+
|
|
778
|
+
# Verify all import paths work
|
|
779
|
+
assert Destination is AliasDestination
|
|
780
|
+
|
|
781
|
+
|
|
782
|
+
def test_destination_union_is_union_type():
|
|
783
|
+
"""Test that Destination is a union type, not a RootModel."""
|
|
784
|
+
import types
|
|
785
|
+
|
|
786
|
+
from adcp import Destination
|
|
787
|
+
|
|
788
|
+
# Should be a Union type, not a class
|
|
789
|
+
assert isinstance(Destination, types.UnionType)
|
|
790
|
+
|
|
791
|
+
|
|
792
|
+
def test_destination_union_contains_all_variants():
|
|
793
|
+
"""Test that Destination union contains all destination variants."""
|
|
794
|
+
from typing import get_args
|
|
795
|
+
|
|
796
|
+
from adcp import AgentDestination, Destination, PlatformDestination
|
|
797
|
+
|
|
798
|
+
# Get all types in the union
|
|
799
|
+
union_args = set(get_args(Destination))
|
|
800
|
+
|
|
801
|
+
# Verify all destination variants are in the union
|
|
802
|
+
expected_variants = {
|
|
803
|
+
PlatformDestination,
|
|
804
|
+
AgentDestination,
|
|
805
|
+
}
|
|
806
|
+
|
|
807
|
+
assert union_args == expected_variants
|
|
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
|
{adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/content_standards/artifact_webhook_payload.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{adcp-3.0.0 → adcp-3.1.0}/src/adcp/types/generated_poc/content_standards/content_standards.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
|
|
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
|