A client for accessing the OSF v2 API
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
docs
osf_api_v2_client
tests
.editorconfig
.gitignore
.travis.yml
AUTHORS.rst
CONTRIBUTING.rst
HISTORY.rst
LICENSE
MANIFEST.in
Makefile
README.rst
requirements.txt
setup.cfg
setup.py
tox.ini

README.rst

osf_api_v2_client

.. TODO:: this, once on PyPI

A client for accessing the OSF v2 API

Features

  • Simplifies access of JSON dictionary (dict) data:

    • Instead of user[u'attributes'][u'fullname'], user.attributes.fullname can be used.

    • However, you are not locked into the simplified "dot" access. Both regular dict access and "dot" access will work, and they can be switched up:

      user[u'attributes'].fullname
      user.attributes[u'fullname']
      
    • This works recursively for dicts within dicts (as seen above, given

      user = {u'attributes': {u'fullname': u'John Cleese'}}),

      and for dicts inside a list of dicts (see below).

    • Given:

      dict_with_list = {
          u'mylist': [
              {u'fullname': u'John Cleese'},
              {u'fullname': u'Terry Jones'},
              {u'fullname': u'Eric Idle'}
          ]
      }
      
    • Calls such as the following can be used:

      dict_with_list.mylist[0].fullname
      dict_with_list[u'mylist'][2][u'fullname']
      
  • Simplifies access of multiple items:

    • Though items are returned from the API with only a certain number of items per page (often ten), this library takes care of pagination in the background, providing a generator to return all desired items one at a time within a loop.

    • The following example prints the gravatar urls of the first 30 users in the OSF:

      from osf_api_v2_client.session import Session
      
      session = Session()
      for user in session.get_user_generator(num_requested=30):
          print(user.attributes.gravatar_url)