Skip to main content

A Python library for the Wunderlist 2 REST API

Project description

Overview

Wunderpy2 is a thin Python library for accessing the official Wunderlist 2 API. What does a thin library mean here?

  1. Only the bare minimum of error-checking to pass the Wunderlist API specifications is performed (e.g. there’s no checking whether a task’s title is empty, even though the Wunderlist web client enforces nonempty titles).

  2. There aren’t any ‘convenience’ functions, like getting a list by name instead of ID (that being said, I’ll likely get tired of repeating the same things myself, write a few, and bundle them in a separate helper module).

Installation

pip install wunderpy2

Usage & Examples

Getting a client

Wunderlist uses OAuth2 to allow applications to access users’ data, so you’ll need to create an application before doing anything. If you only want to access your own Wunderlist, generate an access token after creating your application and use it and the client ID as follows:

import wunderpy2
api = wunderpy2.WunderApi()
client = api.get_client(access_token, client_id)    # Fill in your values

If you want other Wunderlisters to use your application, you’ll need to see the “Redirect users to request Wunderlist access” section of the authorization docs in order to get a temporary code when a user has authorized your app. Once you have the code, you only need one more step:

api = wunderpy2.WunderApi()
access_token = api.get_access_token(temporary_code, client_id, client_secret)   # Fill in your values here
client = api.get_client(access_token, client_id)    # Fill in your client ID

Wunderlist Objects

All Wunderlist objects are merely Python objects with special keys. For convenience, these keys are laid out in a class format in model.py. Note that not every object will have every key (e.g. List objects with type ‘inbox’ do not have creation metadata).

Examples

Creating a task with a due date, note, ‘starred’ flag, and subtask:

lists = client.get_lists()
list = lists[0]
task = client.create_task(1234, "My new task", due_date="2015-08-02", starred=True)
client.create_note(task[wunderpy2.Task.ID], "My note")
client.create_subtask(task[wunderpy2.Task.ID], "My subtask")

Shuffling the order of tasks within a list (see the Positions endpoint documentation):

import random
task_positions_obj = client.get_task_positions_obj(list[wunderpy2.List.ID])
ordering = task_positions_obj[wunderpy2.Task.VALUES]
random.shuffle(ordering)
client.update_task_positions_obj(task_positions_obj[wunderpy2.TaskPositionsObj.ID], task_positions_obj[wunderpy2.TaskPositionsObj.REVISION], ordering)

TODO

  • Endpoint implementation:
    • Avatar

    • File

    • File preview

    • Folder

    • Reminder

    • Task comment

    • Upload

    • User

    • Webhooks?

Release History

TBA

  • Switch from dict.iteritems() to dict.items() for Python 2 & 3 compatibility

  • Expose a few more classes in the public-facing API

0.1.4 (2016/03/14)

  • Bugfix in task endpoint code

0.1.3 (2016/03/12)

  • Fix imports for Python 3

0.1.2 (2015/10/31)

  • Added ‘position’ endpoint

  • Added ‘subtask’ endpoint

0.1.1 (2015/08/16)

  • Fixed setup.py requiring ‘argparse’ module for Python >2.6

0.1.0 (2015/08/15)

  • Initial release

wunderpy2 is written and maintained by mieubrisse

Contributors

Nobody yet!

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

wunderpy2-python-3-fixes-0.1.4.tar.gz (12.1 kB view details)

Uploaded Source

File details

Details for the file wunderpy2-python-3-fixes-0.1.4.tar.gz.

File metadata

File hashes

Hashes for wunderpy2-python-3-fixes-0.1.4.tar.gz
Algorithm Hash digest
SHA256 3706f6900b849322b6d71b36f7990ecd4b37de2d0e6cd0d2a4a33177c541770d
MD5 5bf0eb5e1186d3298f0032e22bc2f30c
BLAKE2b-256 0b67728f1887d5a708915a1afab376f94f3ae76f7c7be8b3a9d18820825cf907

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