Skip to content

Commit 331a1cd

Browse files
google-labs-jules[bot]BenRKarl
authored andcommitted
Add type hints and annotations to examples/misc
This change adds type hints and annotations to the Python files in the examples/misc directory to improve code readability and maintainability.
1 parent fd41137 commit 331a1cd

File tree

4 files changed

+44
-24
lines changed

4 files changed

+44
-24
lines changed

examples/misc/add_ad_group_image_asset.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@
2323

2424
from google.ads.googleads.client import GoogleAdsClient
2525
from google.ads.googleads.errors import GoogleAdsException
26+
from google.ads.googleads.v19.services.types.ad_group_asset_service import AdGroupAssetServiceClient
27+
from google.ads.googleads.v19.services.types.ad_group_asset_service import MutateAdGroupAssetsResponse
28+
from google.ads.googleads.v19.services.types.google_ads_service import GoogleAdsServiceClient
2629
from google.api_core import protobuf_helpers
2730

2831

@@ -32,7 +35,9 @@ def main(
3235
ad_group_id: str,
3336
asset_id: str,
3437
) -> None:
35-
ad_group_asset_service = client.get_service("AdGroupAssetService")
38+
ad_group_asset_service: AdGroupAssetServiceClient = client.get_service(
39+
"AdGroupAssetService"
40+
)
3641
ad_group_asset_resource_name: str = ad_group_asset_service.asset_path(
3742
customer_id, asset_id
3843
)
@@ -44,8 +49,10 @@ def main(
4449
ad_group_asset_set.ad_group = ad_group_asset_service.ad_group_path(
4550
customer_id, ad_group_id
4651
)
47-
response = ad_group_asset_service.mutate_ad_group_assets(
48-
customer_id=customer_id, operations=[ad_group_asset_operation]
52+
response: MutateAdGroupAssetsResponse = (
53+
ad_group_asset_service.mutate_ad_group_assets(
54+
customer_id=customer_id, operations=[ad_group_asset_operation]
55+
)
4956
)
5057

5158
for result in response.results:

examples/misc/campaign_report_to_csv.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@
3333

3434
from google.ads.googleads.client import GoogleAdsClient
3535
from google.ads.googleads.errors import GoogleAdsException
36+
from google.ads.googleads.v19.services.services.google_ads_service import GoogleAdsServiceClient
37+
from google.ads.googleads.v19.services.types.google_ads_service import SearchGoogleAdsStreamRequest
38+
from google.api_core.call import GrpcStream
3639

3740

3841
_DEFAULT_FILE_NAME = "campaign_report_to_csv_results.csv"
@@ -53,7 +56,7 @@ def main(
5356
"""
5457
file_dir: str = os.path.dirname(os.path.abspath(__file__))
5558
file_path: str = os.path.join(file_dir, output_file)
56-
ga_service = client.get_service("GoogleAdsService")
59+
ga_service: GoogleAdsServiceClient = client.get_service("GoogleAdsService")
5760

5861
query: str = """
5962
SELECT
@@ -70,13 +73,15 @@ def main(
7073
LIMIT 25"""
7174

7275
# Issues a search request using streaming.
73-
search_request = client.get_type("SearchGoogleAdsStreamRequest")
76+
search_request: SearchGoogleAdsStreamRequest = client.get_type(
77+
"SearchGoogleAdsStreamRequest"
78+
)
7479
search_request.customer_id = customer_id
7580
search_request.query = query
76-
stream = ga_service.search_stream(search_request)
81+
stream: GrpcStream = ga_service.search_stream(search_request)
7782

7883
with open(file_path, "w", newline="") as f:
79-
writer = csv.writer(f)
84+
writer: csv.writer = csv.writer(f)
8085

8186
# Define a list of headers for the first row.
8287
headers: list[str] = [

examples/misc/set_custom_client_timeouts.py

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,15 @@
2929

3030
from google.ads.googleads.client import GoogleAdsClient
3131
from google.ads.googleads.errors import GoogleAdsException
32+
from google.ads.googleads.v19.services.services.google_ads_service import GoogleAdsServiceClient
33+
from google.ads.googleads.v19.services.types.google_ads_service import SearchGoogleAdsRequest
34+
from google.ads.googleads.v19.services.types.google_ads_service import SearchGoogleAdsStreamRequest
35+
from google.ads.googleads.v19.services.types.google_ads_service import SearchGoogleAdsStreamResponse
3236
from google.api_core.exceptions import DeadlineExceeded
3337
from google.api_core.retry import Retry
3438

3539

36-
_CLIENT_TIMEOUT_SECONDS = 5 * 60 # 5 minutes.
40+
_CLIENT_TIMEOUT_SECONDS: int = 5 * 60 # 5 minutes.
3741
_QUERY: str = "SELECT campaign.id FROM campaign"
3842

3943

@@ -53,14 +57,16 @@ def make_server_streaming_call(
5357
client: An initialized GoogleAds client.
5458
customer_id: The str Google Ads customer ID.
5559
"""
56-
ga_service = client.get_service("GoogleAdsService")
57-
campaign_ids: List[str] = []
60+
ga_service: GoogleAdsServiceClient = client.get_service("GoogleAdsService")
61+
campaign_ids: list[str] = []
5862

5963
try:
60-
search_request = client.get_type("SearchGoogleAdsStreamRequest")
64+
search_request: SearchGoogleAdsStreamRequest = client.get_type(
65+
"SearchGoogleAdsStreamRequest"
66+
)
6167
search_request.customer_id = customer_id
6268
search_request.query = _QUERY
63-
stream = ga_service.search_stream(
69+
stream: SearchGoogleAdsStreamResponse = ga_service.search_stream(
6470
request=search_request,
6571
# When making any request, an optional "timeout" parameter can be
6672
# provided to specify a client-side response deadline in seconds.
@@ -75,7 +81,7 @@ def make_server_streaming_call(
7581
campaign_ids.append(row.campaign.id)
7682

7783
print("The server streaming call completed before the timeout.")
78-
except DeadlineExceeded as ex:
84+
except DeadlineExceeded:
7985
print("The server streaming call did not complete before the timeout.")
8086
sys.exit(1)
8187
except GoogleAdsException as ex:
@@ -102,14 +108,16 @@ def make_unary_call(client: GoogleAdsClient, customer_id: str) -> None:
102108
client: An initialized GoogleAds client.
103109
customer_id: The Google Ads customer ID.
104110
"""
105-
ga_service = client.get_service("GoogleAdsService")
106-
campaign_ids: List[str] = []
111+
ga_service: GoogleAdsServiceClient = client.get_service("GoogleAdsService")
112+
campaign_ids: list[str] = []
107113

108114
try:
109-
search_request = client.get_type("SearchGoogleAdsRequest")
115+
search_request: SearchGoogleAdsRequest = client.get_type(
116+
"SearchGoogleAdsRequest"
117+
)
110118
search_request.customer_id = customer_id
111119
search_request.query = _QUERY
112-
results = ga_service.search(
120+
results: SearchGoogleAdsStreamResponse = ga_service.search(
113121
request=search_request,
114122
# When making any request, an optional "retry" parameter can be
115123
# provided to specify its retry behavior. Complete information about
@@ -137,7 +145,7 @@ def make_unary_call(client: GoogleAdsClient, customer_id: str) -> None:
137145
campaign_ids.append(row.campaign.id)
138146

139147
print("The unary call completed before the timeout.")
140-
except DeadlineExceeded as ex:
148+
except DeadlineExceeded:
141149
print("The unary call did not complete before the timeout.")
142150
sys.exit(1)
143151
except GoogleAdsException as ex:

examples/misc/upload_image_asset.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,10 @@
2323

2424
from google.ads.googleads.client import GoogleAdsClient
2525
from google.ads.googleads.errors import GoogleAdsException
26-
from google.ads.googleads.v19.services.types import (
27-
AssetOperation,
28-
MutateAssetsResponse,
29-
)
30-
from google.ads.googleads.v19.resources.types import Asset
26+
from google.ads.googleads.v19.services.services.asset_service import AssetServiceClient
27+
from google.ads.googleads.v19.services.types.asset_service import MutateAssetsResponse
28+
from google.ads.googleads.v19.resources.types.asset import Asset
29+
from google.ads.googleads.v19.services.types.asset_service import AssetOperation
3130
from examples.utils.example_helpers import get_image_bytes_from_url
3231

3332

@@ -39,7 +38,7 @@ def main(client: GoogleAdsClient, customer_id: str) -> None:
3938
url: str = "https://gaagl.page.link/Eit5"
4039
image_content: bytes = get_image_bytes_from_url(url)
4140

42-
asset_service = client.get_service("AssetService")
41+
asset_service: AssetServiceClient = client.get_service("AssetService")
4342
asset_operation: AssetOperation = client.get_type("AssetOperation")
4443
asset: Asset = asset_operation.create
4544
asset.type_ = client.enums.AssetTypeEnum.IMAGE
@@ -54,6 +53,7 @@ def main(client: GoogleAdsClient, customer_id: str) -> None:
5453
# When there is an existing image asset with the same content but a different
5554
# name, the new name will be dropped silently.
5655
asset.name = "Marketing Image"
56+
5757
mutate_asset_response: MutateAssetsResponse = (
5858
asset_service.mutate_assets(
5959
customer_id=customer_id, operations=[asset_operation]

0 commit comments

Comments
 (0)