oauth2client ============ *making OAuth2 just a little less painful* ``oauth2client`` makes it easy to interact with OAuth2-protected resources, especially those related to Google APIs. You can also start with `general information about using OAuth2 with Google APIs `_. Getting started --------------- We recommend installing via ``pip``: .. code-block:: bash $ pip install --upgrade oauth2client You can also install from source: .. code-block:: bash $ git clone https://github.com/google/oauth2client $ cd oauth2client $ python setup.py install Using ``pypy`` -------------- - In order to use crypto libraries (e.g. for service accounts) you will need to install one of ``pycrypto`` or ``pyOpenSSL``. - Using ``pycrypto`` with ``pypy`` will be in general problematic. If ``libgmp`` is installed on your machine, the ``pycrypto`` install will attempt to build ``_fastmath.c``. However, this file uses CPython implementation details and hence can't be built in ``pypy`` (as of ``pypy`` 2.6 and ``pycrypto`` 2.6.1). In order to install .. code-block:: bash with_gmp=no pip install --upgrade pycrypto See discussions on the `pypy issue tracker`_ and the `pycrypto issue tracker`_. - Using ``pyOpenSSL`` with versions of ``pypy`` before 2.6 may be in general problematic since ``pyOpenSSL`` depends on the ``cryptography`` library. For versions of ``cryptography`` before 1.0, importing ``pyOpenSSL`` with it caused `massive startup costs`_. In order to address this slow startup, ``cryptography`` 1.0 made some `changes`_ in how it used ``cffi`` when means it can't be used on versions of ``pypy`` before 2.6. The default version of ``pypy`` you get when installed .. code-block:: bash apt-get install pypy pypy-dev on `Ubuntu 14.04`_ is 2.2.1. In order to upgrade, you'll need to use the `pypy/ppa PPA`_: .. code-block:: bash apt-get purge pypy pypy-dev add-apt-repository ppa:pypy/ppa apt-get update apt-get install pypy pypy-dev .. _pypy issue tracker: https://bitbucket.org/pypy/pypy/issues/997 .. _pycrypto issue tracker: https://github.com/dlitz/pycrypto/pull/59 .. _massive startup costs: https://github.com/pyca/pyopenssl/issues/137 .. _changes: https://github.com/pyca/cryptography/issues/2275#issuecomment-130751514 .. _Ubuntu 14.04: http://packages.ubuntu.com/trusty/pypy .. _pypy/ppa PPA: https://launchpad.net/~pypy/+archive/ubuntu/ppa Downloads ^^^^^^^^^ * `Most recent release tarball `_ * `Most recent release zipfile `_ * `Complete release list `_ Library Documentation --------------------- * Complete library index: :ref:`genindex` * Index of all modules: :ref:`modindex` * Search all documentation: :ref:`search` Contributing ------------ Please see the `contributing page`_ for more information. In particular, we love pull requests -- but please make sure to sign the contributor license agreement. .. _contributing page: https://github.com/google/oauth2client/blob/master/CONTRIBUTING.md .. toctree:: :maxdepth: 1 :hidden: source/oauth2client Supported Python Versions ------------------------- We support Python 2.6, 2.7, 3.3+. (Whatever this file says, the truth is always represented by our `tox.ini`_). .. _tox.ini: https://github.com/google/oauth2client/blob/master/tox.ini We explicitly decided to support Python 3 beginning with version 3.3. Reasons for this include: * Encouraging use of newest versions of Python 3 * Following the lead of prominent `open-source projects`_ * Unicode literal support which allows for a cleaner codebase that works in both Python 2 and Python 3 .. _open-source projects: http://docs.python-requests.org/en/latest/ .. _Unicode literal support: https://www.python.org/dev/peps/pep-0414/