blob: e5c8d36f0d7f06f1bb4fe469b63803e772b8b252 [file] [log] [blame] [view]
Matt Whisenhunt3c2c8052018-04-13 10:03:46 -07001# Google API Client
Dan O'Meara9c203d32017-07-07 09:03:31 -07002
Sander Brauwers729d9ae2018-12-13 19:28:04 +01003[![PyPI version](https://badge.fury.io/py/google-api-python-client.svg)](https://badge.fury.io/py/google-api-python-client)
4
Anthonios Partheniou22807c92021-03-15 12:18:03 -04005This is the [Google API Python client library](https://cloud.google.com/apis/docs/client-libraries-explained#google_api_client_libraries)
6for Google's discovery based APIs. To get started, please see the
7[docs folder](https://github.com/googleapis/google-api-python-client/blob/master/docs/README.md).
John Asmuth2fefc4c2014-04-24 16:13:05 -04008
Anthonios Partheniou22807c92021-03-15 12:18:03 -04009This library is considered complete and is in maintenance mode. This means
10that we will address critical bugs and security issues but will not add any
11new features.
12
13This library is officially supported by Google. However, the maintainers of
14this repository recommend using [Cloud Client Libraries for Python](https://github.com/googleapis/google-cloud-python),
15where possible, for new code development. For more information, please visit
16[Client Libraries Explained](https://cloud.google.com/apis/docs/client-libraries-explained).
Matt Whisenhunt3c2c8052018-04-13 10:03:46 -070017
release-please[bot]a9c7ddc2021-03-03 21:52:06 +000018## Version 2.0 Release
19The 2.0 release of `google-api-python-client` is a significant upgrade compared
Anthonios Partheniou82785372021-03-15 11:52:11 -040020to v1. Please see the [Migration Guide](https://github.com/googleapis/google-api-python-client/blob/master/UPGRADING.md) for more information.
Anthonios Partheniou22807c92021-03-15 12:18:03 -040021As a result of caching the discovery documents, the size of this package is at
22least 50 MB larger compared to the previous version.
release-please[bot]a9c7ddc2021-03-03 21:52:06 +000023
Grant Timmerman5c11b0a2019-06-26 07:39:48 -070024## Documentation
25
Anthonios Partheniou82785372021-03-15 11:52:11 -040026See the [docs folder](https://github.com/googleapis/google-api-python-client/blob/master/docs/README.md) for more detailed instructions and additional documentation.
Grant Timmerman5c11b0a2019-06-26 07:39:48 -070027
Kamil Breguła41144852020-03-20 22:42:50 +010028## Other Google API libraries
Matt Whisenhunt3c2c8052018-04-13 10:03:46 -070029
Anthonios Partheniou22807c92021-03-15 12:18:03 -040030The maintainers of this repository recommend using
31[Cloud Client Libraries for Python](https://github.com/googleapis/google-cloud-python),
32where possible, for new code development due to the following reasons:
33
34With [Cloud Client Libraries for Python](https://github.com/googleapis/google-cloud-python):
35- There is a separate client library for each API, so you can choose
36which client libraries to download. Whereas, `google-api-python-client` is a
37single client library for all APIs. As a result, the total package size for
38`google-api-python-client` exceeds 50MB.
39- There are stricter controls for breaking changes to the underlying APIs
40as each client library is focused on a specific API.
41- There are more features in these Cloud Client Libraries as each library is
42focused on a specific API, and in some cases, the libraries are owned by team
43who specialized in that API.
44- Developers will benefit from intellisense.
45
46For more information, please visit
47[Client Libraries Explained](https://cloud.google.com/apis/docs/client-libraries-explained).
48
49Although there are many benefits to moving to
50[Cloud Client Libraries for Python](https://github.com/googleapis/google-cloud-python),
51the maintainers want to emphasize that `google-api-python-client` will continue
52to be supported.
Kamil Breguła4c84c2c2020-01-27 18:10:19 +010053
54For Google Ads API, we recommend using [Google Ads API Client Library for Python](https://github.com/googleads/google-ads-python/).
Joe Gregorio8097e2a2011-05-17 11:11:34 -040055
Kamil Breguła41144852020-03-20 22:42:50 +010056For Google Firebase Admin API, we recommend using [Firebase Admin Python SDK](https://github.com/firebase/firebase-admin-python).
57
Grant Timmerman5c11b0a2019-06-26 07:39:48 -070058## Installation
59
Bu Sun Kime85af682019-10-22 13:45:38 -070060Install this library in a [virtualenv](https://virtualenv.pypa.io/en/latest/) using pip. virtualenv is a tool to
61create isolated Python environments. The basic problem it addresses is one of
62dependencies and versions, and indirectly permissions.
Joe Gregorio46675d22012-06-20 12:15:24 -040063
Bu Sun Kime85af682019-10-22 13:45:38 -070064With virtualenv, it's possible to install this library without needing system
65install permissions, and without clashing with the installed system
66dependencies.
67
68### Mac/Linux
69
70```
71pip install virtualenv
72virtualenv <your-env>
73source <your-env>/bin/activate
74<your-env>/bin/pip install google-api-python-client
Michael Mattiolib2b518f2014-07-14 00:48:04 -040075```
Grant Timmerman5c11b0a2019-06-26 07:39:48 -070076
Bu Sun Kime85af682019-10-22 13:45:38 -070077### Windows
Grant Timmerman5c11b0a2019-06-26 07:39:48 -070078
Bu Sun Kime85af682019-10-22 13:45:38 -070079```
80pip install virtualenv
81virtualenv <your-env>
82<your-env>\Scripts\activate
83<your-env>\Scripts\pip.exe install google-api-python-client
Michael Mattiolib2b518f2014-07-14 00:48:04 -040084```
Tom Miller7c95d812010-10-11 11:50:52 -070085
Grant Timmerman5c11b0a2019-06-26 07:39:48 -070086## Supported Python Versions
Joe Gregorio48d361f2010-08-18 13:19:21 -040087
Bu Sun Kim8325d242020-12-09 12:04:05 -070088Python 3.6, 3.7, 3.8, and 3.9 are fully supported and tested. This library may work on later versions of 3, but we do not currently run tests against those versions.
Christopher Wilcox8f4a5302018-12-14 12:24:44 -080089
Bu Sun Kim8325d242020-12-09 12:04:05 -070090## Unsupported Python Versions
Grant Timmerman5c11b0a2019-06-26 07:39:48 -070091
Bu Sun Kim8325d242020-12-09 12:04:05 -070092Python < 3.6
Jay Lee9cd0eb02014-09-12 07:15:11 -040093
Grant Timmerman5c11b0a2019-06-26 07:39:48 -070094## Third Party Libraries and Dependencies
95
Michael Mattiolib2b518f2014-07-14 00:48:04 -040096The following libraries will be installed when you install the client library:
Luis Nell4859b142016-08-01 18:43:35 +020097* [httplib2](https://github.com/httplib2/httplib2)
Simon Weberc952fd02016-10-13 12:48:44 -040098* [uritemplate](https://github.com/sigmavirus24/uritemplate)
Joe Gregorio8097e2a2011-05-17 11:11:34 -040099
Michael Mattioli460a4ad2014-08-01 21:37:56 -0400100For development you will also need the following libraries:
andrewnester31677812017-03-31 16:39:30 +0300101* [WebTest](http://webtest.pythonpaste.org/en/latest/index.html)
Michael Mattioli460a4ad2014-08-01 21:37:56 -0400102* [pyopenssl](https://pypi.python.org/pypi/pyOpenSSL)
Craig Citro3f8dc782014-05-19 15:00:07 -0700103
Grant Timmerman5c11b0a2019-06-26 07:39:48 -0700104## Contributing
105
Anthonios Partheniou82785372021-03-15 11:52:11 -0400106Please see our [Contribution Guide](https://github.com/googleapis/google-api-python-client/blob/master/CONTRIBUTING.rst).
release-please[bot]a9c7ddc2021-03-03 21:52:06 +0000107In particular, we love pull requests - but please make sure to sign
Dmitry Frenkel63f97f32020-07-09 10:14:02 -0700108the contributor license agreement.