Mendeley / mendeley-python-sdk

Python SDK for the Mendeley API.
Apache License 2.0
119 stars 59 forks source link

Mendeley Python SDK

Monthly downloads Pypi version Format License Docs Build status

The Mendeley Python SDK provides access to the Mendeley API. For more information on the API and its capabilities, see the Mendeley developer portal.

Installation

You might like to set up a virtualenv for your project that uses the Mendeley API. See this virtualenv tutorial for instructions. IDEs like IntelliJ with the Python plugin or PyCharm can also help you manage a virtualenv.

Install dependencies from PyPI using pip, a package manager for Python.

pip install mendeley

Documentation

Full documentation, including examples, can be found on ReadTheDocs.

Continuous integration

See the Travis CI build to find:

Releases

Travis CI automatically pushes new releases to Pypi, and triggers ReadTheDocs rebuilds, if the following conditions are true:

See the .travis.yml 'deploy' section for more specific information.

Compatibility

Contributing to the SDK

Submission method

  1. Fork the repository
  2. Make your changes (please add tests - they will be exercised)
  3. Propose a pull request back to our repository. The CI system will test your changes on top of the current master commit, so we can see if they will work.

Dependency setup

  1. Set up a virtualenv if you like.
  2. Run pip install -r requirements.txt

Testing your changes

Run the test suite to see if your changes worked. If you are using a virtualenv, consider using tox. If not, the good old py.test command also works.

Prerequisites

  1. Register a Mendeley platform app.
  2. Set the Mendeley API client ID and secret as environment variables in your shell:

    export MENDELEY_CLIENT_ID=[your app client ID]
    export MENDELEY_CLIENT_SECRET=[your app client secret]

To run tests the normal way

  1. Create a test user account that you can safely make a mess inside. WARNING: Our user flow test suite exercises the API as a particular Mendeley user. The suite contains tests that will delete all documents associated with that account. Do not use your personal Mendeley account!

  2. Set the necessary extra credentials:

    export MENDELEY_ACCESS_TOKEN=[user's access token]
    export MENDELEY_REDIRECT_URI=[redirect URI of your app]
  3. Turn on the VCR cache (if you like) by setting recordMode: once in the test config YAML file.

  4. Run all tests in the test suite:

    py.test

To replicate CI testing

In the CI environment, it is not (yet) possible to test interactions with API endpoints that require user access tokens. We can only exercise tests that use the client credentials flow. You must put any tests which CI cannot run in the test/manual folder, so that the CI test run command can ignore them.

  1. Turn off the VCR cache (CI only makes sense when running against the real API) by setting recordMode: all the test config YAML file.
  2. Run the test suite ignoring 'user mode' tests that require user access tokens:

    py.test --ignore=test/manual/

Writing documentation

Sample applications