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?
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).
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
0.1.6 (2018-07-27) — * Fix typo in RecurrenceTypes class name
0.1.5 (2018-07-27) — * 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
Built Distribution
Hashes for wunderpy2-0.1.6-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ffefc0c099e4876aa98a486bed5442cd0d18d9a469b750ed195c5ad4b3ea4567 |
|
MD5 | 3f9fc7522df1528824c6061a52ee1e20 |
|
BLAKE2b-256 | f1518585e5e11dcd9f292420022de390f8ddfcb6e8be8bb821a60df65f78b8b5 |