Dropbox for Python ================== .. image:: https://travis-ci.org/dropbox/dropbox-sdk-python.svg?branch=v9.3.0 :target: https://travis-ci.org/dropbox/dropbox-sdk-python .. image:: https://readthedocs.org/projects/dropbox-sdk-python/badge/?version=stable :target: https://dropbox-sdk-python.readthedocs.org/en/stable/ :alt: [Latest Release Documentation] .. image:: https://img.shields.io/pypi/v/dropbox.svg :target: https://pypi.python.org/pypi/dropbox :alt: [Latest Release Version] .. image:: https://img.shields.io/pypi/l/dropbox.svg :target: http://opensource.org/licenses/MIT :alt: [Latest Release License] .. image:: https://img.shields.io/pypi/pyversions/dropbox.svg :target: https://pypi.python.org/pypi/dropbox :alt: [Latest Release Supported Python Versions] .. image:: https://img.shields.io/pypi/implementation/dropbox.svg :target: https://pypi.python.org/pypi/dropbox :alt: [Latest Release Supported Python Implementations] .. image:: https://img.shields.io/pypi/status/dropbox.svg :target: https://pypi.python.org/pypi/dropbox :alt: [Latest Release Development Stage] A Python SDK for integrating with the Dropbox API v2. Compatible with Python 2.7 and 3.4+. Documentation is available on `Read the Docs <http://dropbox-sdk-python.readthedocs.org/>`_. Installation ------------ Install via ``pip``: .. code-block:: console $ pip install dropbox Install from source: .. code-block:: console $ git clone git://github.com/dropbox/dropbox-sdk-python.git $ cd dropbox-sdk-python $ python setup.py install After installation, to get started, open a Python console: .. code-block:: pycon >>> import dropbox >>> dbx = dropbox.Dropbox("YOUR_ACCESS_TOKEN") >>> dbx.users_get_current_account() Creating an Application ----------------------- You need to create an Dropbox Application to make API requests. - Go to https://dropbox.com/developers/apps. Obtaining an Access Token ------------------------- All requests need to be made with an OAuth 2 access token. To get started, once you've created an app, you can go to the app's console and generate an access token for your own Dropbox account. Examples -------- ``example/updown.py`` demonstrates how to sync a local directory with a Dropbox. Documentation ------------- Documentation can be compiled by running ``make html`` from the ``docs`` folder. After compilation, open ``docs/_build/html/index.html``. Alternatively, you can read a hosted version from `Read the Docs`_. Updating API specification -------------------------- A good amount of this SDK is generated using `Stone <https://www.github.com/dropbox/stone>`_. We use git submodules to pin to a specific version of `Stone` since it's under active development, and we also pin to a version of our `API spec <https://www.github.com/dropbox/dropbox-api-spec>`_. To prepare the repo for generation, run these commands after cloning: .. code-block:: console $ git submodule init $ git submodule update You can run ``git pull`` within these sub repositories to update the pinned version. Now, run the included script: .. code-block:: console $ ./generate_base_client.py Testing ------- We use the `tox <https://tox.readthedocs.org/>`_ package to run tests in Python 2 and 3. To install, use :code:`pip install tox`. Once installed, run `tox` from the root directory. You'll need to specify a working Dropbox OAuth2 token: .. code-block:: console $ DROPBOX_TOKEN=YOUR_TOKEN tox -- -k "'not test_team'" Note that we skip ``test_team`` which requires a team token with `Member File Access <https://www.dropbox.com/developers/documentation/http/teams#teams-member-file-access>`_. To test this functionality, specify a ``DROPBOX_TEAM_TOKEN`` environment variable. .. code-block:: console $ DROPBOX_TOKEN=... DROPBOX_TEAM_TOKEN=... tox