Skip to main content
Join the official 2019 Python Developers SurveyStart the survey!

Type stubs for google-ads

Project description

Type stubs for the Google Ads API Client Library for Python

This package provides type stubs for the Google Ads API Client Library for Python. It's currently compatible with v.3.3.0 of this library.

This is in no way affiliated with Google.

The stubs for protobuf messages were created by mypy-protobuf. The rest were created either by hand or by self-made scripts, with the output of MyPy's stubgen as a starting point.

If you find incorrect annotations, please create an issue. Contributions for fixes are also welcome.

Installation

$ pip install google-ads-stubs

Caveats

There are some caveats. The primary one is that type inference does not work for the get_type and get_service methods of Client. The workaround is to explicitly state the type. For get_type you can also instantiate the object directly.

# Replace this:
campaign_operation = client.get_type('CampaignOperation')
# With this:
from google.ads.google_ads.v2.types import CampaignOperation
campaign_operation: CampaignOperation = client.get_type('CampaignOperation')
# Or this:
from google.ads.google_ads.v2.types import CampaignOperation
campaign_operation = CampaignOperation()

# Replace this:
google_ads_service = client.get_service('GoogleAdsService')
# With this:
from google.ads.google_ads.v2.services.google_ads_service_client import GoogleAdsServiceClient
google_ads_service: GoogleAdsServiceClient = client.get_service('GoogleAdsService')

While it is technically possible to type these methods using a combination of overloading and literal types, this is not included in these stubs. The reason is that it requires about 10.000 overloads, which, while simple to generate, slows type checking to a crawl.

This package does not provide complete type annotations, although it should cover what's used by most developers. The bare output from stubgen is used by the service stubs and transport classes. The service stubs are unlikely to be typed as long as there is no mypy-protobuf equivalent for GRPC stubs. The transport classes may be typed in the future if there is a need for it.

Some service methods allow you to pass in either a protobuf message or a dictionary for certain arguments. There is no check that the dictionary conforms to the message structure, as this would require a TypedDict subclass for each message.

Project details


Release history Release notifications

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for google-ads-stubs, version 1.0.0
Filename, size File type Python version Upload date Hashes
Filename, size google_ads_stubs-1.0.0-py2.py3-none-any.whl (11.7 MB) File type Wheel Python version py2.py3 Upload date Hashes View hashes
Filename, size google-ads-stubs-1.0.0.tar.gz (4.9 MB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page