Skip to content

Commit 94e6c03

Browse files
authored
Add custom __contains__ types (#41)
1 parent 3f64aa1 commit 94e6c03

2,339 files changed

Lines changed: 9687 additions & 2339 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

google-stubs/ads/googleads/v13/common/types/ad_asset.pyi

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
from collections.abc import Mapping
2-
from typing import Any, TypeVar
2+
from typing import Any, NoReturn, TypeVar
33

44
import google.protobuf.message
55
import proto
6+
from typing_extensions import Literal
67

78
from google.ads.googleads.v13.common.types.asset_policy import AdAssetPolicySummary
89
from google.ads.googleads.v13.enums.types.asset_performance_label import (
@@ -23,6 +24,7 @@ class AdDiscoveryCarouselCardAsset(proto.Message):
2324
ignore_unknown_fields: bool = False,
2425
asset: str = ...
2526
) -> None: ...
27+
def __contains__(self, key: Literal["asset"]) -> bool: ... # type: ignore[override]
2628

2729
class AdImageAsset(proto.Message):
2830
asset: str
@@ -33,6 +35,7 @@ class AdImageAsset(proto.Message):
3335
ignore_unknown_fields: bool = False,
3436
asset: str = ...
3537
) -> None: ...
38+
def __contains__(self, key: Literal["asset"]) -> bool: ... # type: ignore[override]
3639

3740
class AdMediaBundleAsset(proto.Message):
3841
asset: str
@@ -43,6 +46,7 @@ class AdMediaBundleAsset(proto.Message):
4346
ignore_unknown_fields: bool = False,
4447
asset: str = ...
4548
) -> None: ...
49+
def __contains__(self, key: Literal["asset"]) -> bool: ... # type: ignore[override]
4650

4751
class AdTextAsset(proto.Message):
4852
text: str
@@ -59,6 +63,7 @@ class AdTextAsset(proto.Message):
5963
asset_performance_label: AssetPerformanceLabelEnum.AssetPerformanceLabel = ...,
6064
policy_summary_info: AdAssetPolicySummary = ...
6165
) -> None: ...
66+
def __contains__(self, key: Literal["text", "pinned_field", "asset_performance_label", "policy_summary_info"]) -> bool: ... # type: ignore[override]
6267

6368
class AdVideoAsset(proto.Message):
6469
asset: str
@@ -69,3 +74,4 @@ class AdVideoAsset(proto.Message):
6974
ignore_unknown_fields: bool = False,
7075
asset: str = ...
7176
) -> None: ...
77+
def __contains__(self, key: Literal["asset"]) -> bool: ... # type: ignore[override]

google-stubs/ads/googleads/v13/common/types/ad_type_infos.pyi

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
from collections.abc import Mapping, MutableSequence
2-
from typing import Any, TypeVar
2+
from typing import Any, NoReturn, TypeVar
33

44
import google.protobuf.message
55
import proto
6+
from typing_extensions import Literal
67

78
from google.ads.googleads.v13.common.types.ad_asset import (
89
AdDiscoveryCarouselCardAsset,
@@ -47,6 +48,7 @@ class AppAdInfo(proto.Message):
4748
youtube_videos: MutableSequence[AdVideoAsset] = ...,
4849
html5_media_bundles: MutableSequence[AdMediaBundleAsset] = ...,
4950
) -> None: ...
51+
def __contains__(self, key: Literal["mandatory_ad_text", "headlines", "descriptions", "images", "youtube_videos", "html5_media_bundles"]) -> bool: ... # type: ignore[override]
5052

5153
class AppEngagementAdInfo(proto.Message):
5254
headlines: MutableSequence[AdTextAsset]
@@ -63,6 +65,7 @@ class AppEngagementAdInfo(proto.Message):
6365
images: MutableSequence[AdImageAsset] = ...,
6466
videos: MutableSequence[AdVideoAsset] = ...,
6567
) -> None: ...
68+
def __contains__(self, key: Literal["headlines", "descriptions", "images", "videos"]) -> bool: ... # type: ignore[override]
6669

6770
class AppPreRegistrationAdInfo(proto.Message):
6871
headlines: MutableSequence[AdTextAsset]
@@ -79,6 +82,7 @@ class AppPreRegistrationAdInfo(proto.Message):
7982
images: MutableSequence[AdImageAsset] = ...,
8083
youtube_videos: MutableSequence[AdVideoAsset] = ...,
8184
) -> None: ...
85+
def __contains__(self, key: Literal["headlines", "descriptions", "images", "youtube_videos"]) -> bool: ... # type: ignore[override]
8286

8387
class CallAdInfo(proto.Message):
8488
country_code: str
@@ -115,6 +119,7 @@ class CallAdInfo(proto.Message):
115119
path1: str = ...,
116120
path2: str = ...,
117121
) -> None: ...
122+
def __contains__(self, key: Literal["country_code", "phone_number", "business_name", "headline1", "headline2", "description1", "description2", "call_tracked", "disable_call_conversion", "phone_number_verification_url", "conversion_action", "conversion_reporting_state", "path1", "path2"]) -> bool: ... # type: ignore[override]
118123

119124
class DiscoveryCarouselAdInfo(proto.Message):
120125
business_name: str
@@ -135,6 +140,7 @@ class DiscoveryCarouselAdInfo(proto.Message):
135140
call_to_action_text: str = ...,
136141
carousel_cards: MutableSequence[AdDiscoveryCarouselCardAsset] = ...,
137142
) -> None: ...
143+
def __contains__(self, key: Literal["business_name", "logo_image", "headline", "description", "call_to_action_text", "carousel_cards"]) -> bool: ... # type: ignore[override]
138144

139145
class DiscoveryMultiAssetAdInfo(proto.Message):
140146
marketing_images: MutableSequence[AdImageAsset]
@@ -161,6 +167,7 @@ class DiscoveryMultiAssetAdInfo(proto.Message):
161167
call_to_action_text: str = ...,
162168
lead_form_only: bool = ...,
163169
) -> None: ...
170+
def __contains__(self, key: Literal["marketing_images", "square_marketing_images", "portrait_marketing_images", "logo_images", "headlines", "descriptions", "business_name", "call_to_action_text", "lead_form_only"]) -> bool: ... # type: ignore[override]
164171

165172
class DisplayUploadAdInfo(proto.Message):
166173
display_upload_product_type: DisplayUploadProductTypeEnum.DisplayUploadProductType
@@ -173,6 +180,7 @@ class DisplayUploadAdInfo(proto.Message):
173180
display_upload_product_type: DisplayUploadProductTypeEnum.DisplayUploadProductType = ...,
174181
media_bundle: AdMediaBundleAsset = ...,
175182
) -> None: ...
183+
def __contains__(self, key: Literal["display_upload_product_type", "media_bundle"]) -> bool: ... # type: ignore[override]
176184

177185
class ExpandedDynamicSearchAdInfo(proto.Message):
178186
description: str
@@ -185,6 +193,7 @@ class ExpandedDynamicSearchAdInfo(proto.Message):
185193
description: str = ...,
186194
description2: str = ...,
187195
) -> None: ...
196+
def __contains__(self, key: Literal["description", "description2"]) -> bool: ... # type: ignore[override]
188197

189198
class ExpandedTextAdInfo(proto.Message):
190199
headline_part1: str
@@ -207,6 +216,7 @@ class ExpandedTextAdInfo(proto.Message):
207216
path1: str = ...,
208217
path2: str = ...,
209218
) -> None: ...
219+
def __contains__(self, key: Literal["headline_part1", "headline_part2", "headline_part3", "description", "description2", "path1", "path2"]) -> bool: ... # type: ignore[override]
210220

211221
class HotelAdInfo(proto.Message):
212222
def __init__(
@@ -215,6 +225,7 @@ class HotelAdInfo(proto.Message):
215225
*,
216226
ignore_unknown_fields: bool = False,
217227
) -> None: ...
228+
def __contains__(self, key: NoReturn) -> bool: ... # type: ignore[override]
218229

219230
class ImageAdInfo(proto.Message):
220231
pixel_width: int
@@ -245,6 +256,7 @@ class ImageAdInfo(proto.Message):
245256
data: bytes = ...,
246257
ad_id_to_copy_image_from: int = ...,
247258
) -> None: ...
259+
def __contains__(self, key: Literal["pixel_width", "pixel_height", "image_url", "preview_pixel_width", "preview_pixel_height", "preview_image_url", "mime_type", "name", "media_file", "data", "ad_id_to_copy_image_from"]) -> bool: ... # type: ignore[override]
248260

249261
class InFeedVideoAdInfo(proto.Message):
250262
headline: str
@@ -261,6 +273,7 @@ class InFeedVideoAdInfo(proto.Message):
261273
description2: str = ...,
262274
thumbnail: VideoThumbnailEnum.VideoThumbnail = ...,
263275
) -> None: ...
276+
def __contains__(self, key: Literal["headline", "description1", "description2", "thumbnail"]) -> bool: ... # type: ignore[override]
264277

265278
class LegacyAppInstallAdInfo(proto.Message):
266279
app_id: str
@@ -279,6 +292,7 @@ class LegacyAppInstallAdInfo(proto.Message):
279292
description1: str = ...,
280293
description2: str = ...,
281294
) -> None: ...
295+
def __contains__(self, key: Literal["app_id", "app_store", "headline", "description1", "description2"]) -> bool: ... # type: ignore[override]
282296

283297
class LegacyResponsiveDisplayAdInfo(proto.Message):
284298
short_headline: str
@@ -317,6 +331,7 @@ class LegacyResponsiveDisplayAdInfo(proto.Message):
317331
price_prefix: str = ...,
318332
promo_text: str = ...,
319333
) -> None: ...
334+
def __contains__(self, key: Literal["short_headline", "long_headline", "description", "business_name", "allow_flexible_color", "accent_color", "main_color", "call_to_action_text", "logo_image", "square_logo_image", "marketing_image", "square_marketing_image", "format_setting", "price_prefix", "promo_text"]) -> bool: ... # type: ignore[override]
320335

321336
class LocalAdInfo(proto.Message):
322337
headlines: MutableSequence[AdTextAsset]
@@ -341,6 +356,7 @@ class LocalAdInfo(proto.Message):
341356
path1: str = ...,
342357
path2: str = ...,
343358
) -> None: ...
359+
def __contains__(self, key: Literal["headlines", "descriptions", "call_to_actions", "marketing_images", "logo_images", "videos", "path1", "path2"]) -> bool: ... # type: ignore[override]
344360

345361
class ResponsiveDisplayAdControlSpec(proto.Message):
346362
enable_asset_enhancements: bool
@@ -353,6 +369,7 @@ class ResponsiveDisplayAdControlSpec(proto.Message):
353369
enable_asset_enhancements: bool = ...,
354370
enable_autogen_video: bool = ...,
355371
) -> None: ...
372+
def __contains__(self, key: Literal["enable_asset_enhancements", "enable_autogen_video"]) -> bool: ... # type: ignore[override]
356373

357374
class ResponsiveDisplayAdInfo(proto.Message):
358375
marketing_images: MutableSequence[AdImageAsset]
@@ -395,6 +412,7 @@ class ResponsiveDisplayAdInfo(proto.Message):
395412
format_setting: DisplayAdFormatSettingEnum.DisplayAdFormatSetting = ...,
396413
control_spec: ResponsiveDisplayAdControlSpec = ...,
397414
) -> None: ...
415+
def __contains__(self, key: Literal["marketing_images", "square_marketing_images", "logo_images", "square_logo_images", "headlines", "long_headline", "descriptions", "youtube_videos", "business_name", "main_color", "accent_color", "allow_flexible_color", "call_to_action_text", "price_prefix", "promo_text", "format_setting", "control_spec"]) -> bool: ... # type: ignore[override]
398416

399417
class ResponsiveSearchAdInfo(proto.Message):
400418
headlines: MutableSequence[AdTextAsset]
@@ -411,6 +429,7 @@ class ResponsiveSearchAdInfo(proto.Message):
411429
path1: str = ...,
412430
path2: str = ...,
413431
) -> None: ...
432+
def __contains__(self, key: Literal["headlines", "descriptions", "path1", "path2"]) -> bool: ... # type: ignore[override]
414433

415434
class ShoppingComparisonListingAdInfo(proto.Message):
416435
headline: str
@@ -421,6 +440,7 @@ class ShoppingComparisonListingAdInfo(proto.Message):
421440
ignore_unknown_fields: bool = False,
422441
headline: str = ...,
423442
) -> None: ...
443+
def __contains__(self, key: Literal["headline"]) -> bool: ... # type: ignore[override]
424444

425445
class ShoppingProductAdInfo(proto.Message):
426446
def __init__(
@@ -429,6 +449,7 @@ class ShoppingProductAdInfo(proto.Message):
429449
*,
430450
ignore_unknown_fields: bool = False,
431451
) -> None: ...
452+
def __contains__(self, key: NoReturn) -> bool: ... # type: ignore[override]
432453

433454
class ShoppingSmartAdInfo(proto.Message):
434455
def __init__(
@@ -437,6 +458,7 @@ class ShoppingSmartAdInfo(proto.Message):
437458
*,
438459
ignore_unknown_fields: bool = False,
439460
) -> None: ...
461+
def __contains__(self, key: NoReturn) -> bool: ... # type: ignore[override]
440462

441463
class SmartCampaignAdInfo(proto.Message):
442464
headlines: MutableSequence[AdTextAsset]
@@ -449,6 +471,7 @@ class SmartCampaignAdInfo(proto.Message):
449471
headlines: MutableSequence[AdTextAsset] = ...,
450472
descriptions: MutableSequence[AdTextAsset] = ...,
451473
) -> None: ...
474+
def __contains__(self, key: Literal["headlines", "descriptions"]) -> bool: ... # type: ignore[override]
452475

453476
class TextAdInfo(proto.Message):
454477
headline: str
@@ -463,6 +486,7 @@ class TextAdInfo(proto.Message):
463486
description1: str = ...,
464487
description2: str = ...,
465488
) -> None: ...
489+
def __contains__(self, key: Literal["headline", "description1", "description2"]) -> bool: ... # type: ignore[override]
466490

467491
class TravelAdInfo(proto.Message):
468492
def __init__(
@@ -471,6 +495,7 @@ class TravelAdInfo(proto.Message):
471495
*,
472496
ignore_unknown_fields: bool = False,
473497
) -> None: ...
498+
def __contains__(self, key: NoReturn) -> bool: ... # type: ignore[override]
474499

475500
class VideoAdInfo(proto.Message):
476501
video: AdVideoAsset
@@ -491,6 +516,7 @@ class VideoAdInfo(proto.Message):
491516
non_skippable: VideoNonSkippableInStreamAdInfo = ...,
492517
in_feed: InFeedVideoAdInfo = ...,
493518
) -> None: ...
519+
def __contains__(self, key: Literal["video", "in_stream", "bumper", "out_stream", "non_skippable", "in_feed"]) -> bool: ... # type: ignore[override]
494520

495521
class VideoBumperInStreamAdInfo(proto.Message):
496522
companion_banner: AdImageAsset
@@ -505,6 +531,7 @@ class VideoBumperInStreamAdInfo(proto.Message):
505531
action_button_label: str = ...,
506532
action_headline: str = ...,
507533
) -> None: ...
534+
def __contains__(self, key: Literal["companion_banner", "action_button_label", "action_headline"]) -> bool: ... # type: ignore[override]
508535

509536
class VideoNonSkippableInStreamAdInfo(proto.Message):
510537
companion_banner: AdImageAsset
@@ -519,6 +546,7 @@ class VideoNonSkippableInStreamAdInfo(proto.Message):
519546
action_button_label: str = ...,
520547
action_headline: str = ...,
521548
) -> None: ...
549+
def __contains__(self, key: Literal["companion_banner", "action_button_label", "action_headline"]) -> bool: ... # type: ignore[override]
522550

523551
class VideoOutstreamAdInfo(proto.Message):
524552
headline: str
@@ -531,6 +559,7 @@ class VideoOutstreamAdInfo(proto.Message):
531559
headline: str = ...,
532560
description: str = ...,
533561
) -> None: ...
562+
def __contains__(self, key: Literal["headline", "description"]) -> bool: ... # type: ignore[override]
534563

535564
class VideoResponsiveAdInfo(proto.Message):
536565
headlines: MutableSequence[AdTextAsset]
@@ -555,6 +584,7 @@ class VideoResponsiveAdInfo(proto.Message):
555584
breadcrumb1: str = ...,
556585
breadcrumb2: str = ...,
557586
) -> None: ...
587+
def __contains__(self, key: Literal["headlines", "long_headlines", "descriptions", "call_to_actions", "videos", "companion_banners", "breadcrumb1", "breadcrumb2"]) -> bool: ... # type: ignore[override]
558588

559589
class VideoTrueViewInStreamAdInfo(proto.Message):
560590
action_button_label: str
@@ -569,3 +599,4 @@ class VideoTrueViewInStreamAdInfo(proto.Message):
569599
action_headline: str = ...,
570600
companion_banner: AdImageAsset = ...,
571601
) -> None: ...
602+
def __contains__(self, key: Literal["action_button_label", "action_headline", "companion_banner"]) -> bool: ... # type: ignore[override]

google-stubs/ads/googleads/v13/common/types/asset_policy.pyi

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
from collections.abc import Mapping, MutableSequence
2-
from typing import Any, TypeVar
2+
from typing import Any, NoReturn, TypeVar
33

44
import google.protobuf.message
55
import proto
6+
from typing_extensions import Literal
67

78
from google.ads.googleads.v13.common.types.policy import PolicyTopicEntry
89
from google.ads.googleads.v13.enums.types.asset_link_primary_status import (
@@ -36,6 +37,7 @@ class AdAssetPolicySummary(proto.Message):
3637
review_status: PolicyReviewStatusEnum.PolicyReviewStatus = ...,
3738
approval_status: PolicyApprovalStatusEnum.PolicyApprovalStatus = ...
3839
) -> None: ...
40+
def __contains__(self, key: Literal["policy_topic_entries", "review_status", "approval_status"]) -> bool: ... # type: ignore[override]
3941

4042
class AssetDisapproved(proto.Message):
4143
offline_evaluation_error_reasons: MutableSequence[
@@ -50,6 +52,7 @@ class AssetDisapproved(proto.Message):
5052
AssetOfflineEvaluationErrorReasonsEnum.AssetOfflineEvaluationErrorReasons
5153
] = ...
5254
) -> None: ...
55+
def __contains__(self, key: Literal["offline_evaluation_error_reasons"]) -> bool: ... # type: ignore[override]
5356

5457
class AssetLinkPrimaryStatusDetails(proto.Message):
5558
reason: AssetLinkPrimaryStatusReasonEnum.AssetLinkPrimaryStatusReason
@@ -64,3 +67,4 @@ class AssetLinkPrimaryStatusDetails(proto.Message):
6467
status: AssetLinkPrimaryStatusEnum.AssetLinkPrimaryStatus = ...,
6568
asset_disapproved: AssetDisapproved = ...
6669
) -> None: ...
70+
def __contains__(self, key: Literal["reason", "status", "asset_disapproved"]) -> bool: ... # type: ignore[override]

0 commit comments

Comments
 (0)