pyrate icon indicating copy to clipboard operation
pyrate copied to clipboard

a python wrapper for restful apis

pyrate

.. image:: https://pypip.in/d/pyrate/badge.png :target: https://crate.io/packages/pyrate/ :alt: Number of PyPI downloads

.. image:: https://travis-ci.org/Chive/pyrate.png?branch=master :target: https://travis-ci.org/Chive/pyrate :alt: Build Status

.. image:: https://coveralls.io/repos/Chive/pyrate/badge.png?branch=master :target: https://coveralls.io/r/Chive/pyrate?branch=master :alt: Code Coverage

.. image:: https://d2weczhvl823v0.cloudfront.net/Chive/pyrate/trend.png :alt: Bitdeli Badge

Pyrate is a python wrapper for restful web apis. It's like magic but simpler.

Currently, the following services are implemented

  • Github <#github>__
  • Harvest <#harvest>__
  • Basecamp <#basecamp>__
  • Mailchimp (v2) <#mailchimp>__
  • Twitter (v1.1 + OAuth) <#twitter>__

There's a quick-start guide below, for full documentation (WIP) visit: http://pyrate.readthedocs.org/en/latest/ <http://pyrate.readthedocs.org/en/latest/>__

Dependencies

  • requests <http://python-requests.org>__
  • requests\_oauthlib <https://github.com/requests/requests-oauthlib>__
  • six <https://pythonhosted.org/six/>__

Installation

::

pip install pyrate

Quick Start

Twitter


::

    from pyrate.services import twitter

    h = twitter.TwitterPyrate(
        oauth_consumer_key='',
        oauth_consumer_secret='',
        oauth_token='',
        oauth_token_secret=''
    )

    # check if the connection works
    h.check_connection()
    
    # direct api call
    h.get('account/verify_credentials')
    
    # convenient tweeting!
    h.tweet("This is awesome!")

Mailchimp

::

from pyrate.services import mailchimp

h = mailchimp.MailchimpPyrate(apikey='')

# check if the connection works
h.check_connection()

# direct api call
h.do('helper/ping')

# (un)subscribing to lists!
h.subscribeToList('ListName', '[email protected]')
h.unsubscribeFromList('ListName', '[email protected]')

Harvest


::

    from pyrate.services import harvest

    h = harvest.HarvestPyrate(
        user='',
        password='',
        organisation=''
    )

    # check if the connection works
    h.check_connection()

    # tell me who I am    
    h.do('account/who_am_i')

Github
~~~~~~

::

    from pyrate.services import github

    h = github.GithubPyrate(
        user='',
        password=''
    )
    
    # check if the connection works
    h.check_connection()
    
    # create & delete repositories!
    h.create_repo('name', 'description', private=True)
    h.create_repo('name', 'description', 'organisation')
    h.delete_repo('name')

Basecamp
~~~~~~

::

    from pyrate.services import basecamp

    h = basecamp.BasecampPyrate(
        user='',
        password='',
        org_id=''
    )

    # check if the connection works
    h.check_connection()
    
    # what projects are there?
    print(h.do('projects'))

Todos
-----

-  Create more "convenience"-methods (like
   ``h.tweet()``)
-  Implement CLI-Interface (see branch
   `feature/cli <https://github.com/Chive/pyrate/tree/feature/cli>`__)
-  Add more services (Open for suggestions!)
-  Expand Documentation
-  lots and lots more