Skip to main content

A Python library for working with the Trello api.

Project description

Meet Trollop

Trollop is a Python library for working with the Trello API.

Quick Start

A Trello connection is instantiated with your API key and a user’s oauth token:

In [1]: from trollop import TrelloConnection

In [2]: conn = TrelloConnection(<your developer key>, <user's oauth token>)

The connection object will automatically have a Member object attached, representing the user whose oauth token was used to connect:

In [3]: conn.me
Out[3]: <trollop.lib.Member object at 0x101707650>

In [4]: conn.me.username
Out[4]: u'btubbs'

In the previous example no HTTP request was made until command 4, the access to conn.me.username. Trollop objects are lazy.

The connection object has methods for getting objects by their IDs:

In [5]: card = conn.get_card('4f2e454cefab2bbd4ea71b02')

In [6]: card.name
Out[6]: u'Build a Python Trello Library'

In [7]: card.desc
Out[7]: u'And call it Trollop.'

You can use normal Python introspection techniques to see the available attributes. They’ll mostly be named exactly as they are in the JSON returned from Trello:

In [13]: dir(card)
Out[13]:
['__class__',
 '__delattr__',
 '__dict__',
 '__doc__',
 '__format__',
 '__getattr__',
 '__getattribute__',
 '__hash__',
 '__init__',
 '__module__',
 '__new__',
 '__reduce__',
 '__reduce_ex__',
 '__repr__',
 '__setattr__',
 '__sizeof__',
 '__str__',
 '__subclasshook__',
 '__weakref__',
 '_conn',
 '_id',
 '_path',
 '_prefix',
 'badges',
 'board',
 'checkItemStates',
 'close',
 'closed',
 'desc',
 'labels',
 'list',
 'members',
 'name',
 'url']

The exact parsed JSON returned from trello.com is available as the _data attribute on all Trello objects:

In [7]: card._data
Out[7]:
{u'badges': {u'attachments': 0,
             u'checkItems': 0,
             u'checkItemsChecked': 0,
             u'comments': 1,
             u'description': True,
             u'due': None,
             u'fogbugz': u'',
             u'votes': 0},
 u'checkItemStates': [],
 u'closed': True,
 u'desc': u'And call it Trollop.',
 u'id': u'4f2e454cefab2bbd4ea71b02',
 u'idBoard': u'4e8df268f14f2517a7a342fa',
 u'idList': u'4f17cb04d5c817032301c179',
 u'idMembers': [],
 u'idShort': 130,
 u'labels': [],
 u'name': u'Build a Python Trello Library',
 u'url': u'https://trello.com/card/build-a-python-trello-library/4e8df268f14f2517a7a342fa/130'}

Trello objects have smart fields that automatically look up related objects:

In [9]: lst = card.list

In [10]: lst
Out[10]: <trollop.lib.List object at 0x101707890>

In [11]: lst.name
Out[11]: u'Icebox'

In [12]: lst._id
Out[12]: u'4f17cb04d5c817032301c179'

In [13]: len(lst.cards)
Out[13]: 20

In [14]: lst.cards[-1].name
Out[14]: u'Build a Python Trello Library'

Help Wanted

Coverage for creating/updating objects is still really thin. If you’d like to pitch in to finish covering the whole API, please send a pull request with your changes.

License

Trollop is licensed under the MIT License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

trollop-0.0.9.tar.gz (6.9 kB view details)

Uploaded Source

File details

Details for the file trollop-0.0.9.tar.gz.

File metadata

  • Download URL: trollop-0.0.9.tar.gz
  • Upload date:
  • Size: 6.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for trollop-0.0.9.tar.gz
Algorithm Hash digest
SHA256 b4279468f9f34c07efb2f03f905938c009fe25f850a79a2a1a5722d58dc8ab18
MD5 2ae1952d540d79634eb2f950a807a73c
BLAKE2b-256 f2db94e7a4617e860f947786c3ba7dab47496fd28d0238d78749e9acc092eb0a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page