A simple Python 3 library to read your Things app data.
Project description
Things Python API
A simple Python 3 library to read your Things app data.
Table of Contents
Install
$ pip3 install things.py
# or
$ git clone https://github.com/thingsapi/things.py && cd things.py && make install
Examples
>>> import things
>>> things.todos()
[{'uuid': '2Ukg8I2nLukhyEM7wYiBeb',
'type': 'to-do',
'title': 'Make reservation for dinner',
'project': 'bNj6TPdKYhY6fScvXWVRDX',
...},
{'uuid': 'RLZroza3jz0XPs3uAlynS7',
'type': 'to-do',
'title': 'Buy a whiteboard and accessories',
'project': 'w8oSP1HjWstPin8RMaJOtB',
'notes': "Something around 4' x 3' that's free-standing, two-sided, and magnetic.",
'checklist': True,
...
>>> things.todos('RLZroza3jz0XPs3uAlynS7')
{'uuid': 'RLZroza3jz0XPs3uAlynS7',
'type': 'to-do',
'title': 'Buy a whiteboard and accessories',
...
'checklist': [
{'title': 'Cleaning Spray', 'status': 'completed', ...},
{'title': 'Magnetic Eraser', 'status': 'incomplete', ...},
{'title': 'Round magnets', 'status': 'incomplete', ...}
]
...
}
>>> things.projects()
[{'uuid': 'bNj6TPdKYhY6fScvXWVRDX',
'type': 'project',
'title': 'Throw Birthday Party',
'area': 'bNj6TPdKYhY6fScvXWVRDX',
...},
{'uuid': 'w8oSP1HjWstPin8RMaJOtB',
'type': 'project',
'title': 'Set Up Home Office',
'area': 'Gw9QefIdgR6nPEoY5hBNSh',
...
>>> things.areas()
[{'uuid': 'ToLxnnBrWkfHC3tkx4vxdV',
'type': 'area',
'title': 'Family',
...},
{'uuid': 'Gw9QefIdgR6nPEoY5hBNSh',
'type': 'area',
'title': 'Apartment',
...
>>> things.tags()
[{'uuid': 'CKILg3kKF2jlCRisNFcqOj',
'type': 'tag',
'title': 'Home',
'shortcut': None},
{'uuid': 'gfmpz8zxnyfqMDvRi3E8vo',
'type': 'tag',
'title': 'Office',
'shortcut': None},
...
>>> things.get('CKILg3kKF2jlCRisNFcqOj')
{'uuid': 'CKILg3kKF2jlCRisNFcqOj',
'type': 'tag',
'title': 'Home',
'shortcut': None}
Background
The task management app Things stores all your to-dos in a SQLite database file (details here). This format is machine-readable, not human-readable. The aim of this project is let you access all your data in a human-readable way. We thereby stay as true to the database as possible while doing SQL Joins and transformations to aid understanding of the data.
Here's the terminology used involving the database:
- area
- tag
- task
- type
'to-do'
: may have a checklist; may be in an area and have tags.'project'
: may have to-dos and headings; may be in an area and have tags.'heading'
: part of a project; groups "tasks".
- status:
"incomplete"
,"canceled"
, or"completed"
- trashed:
True
orFalse
- start:
"Inbox"
,"Anytime"
, or"Someday"
- type
- checklist item (contained within a to-do)
Things URLs
You can make good use of the uuid
to link to to-dos, areas, tags, and more from other apps. Read more here.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
things.py-0.0.1.tar.gz
(14.9 kB
view hashes)
Built Distribution
things.py-0.0.1-py3-none-any.whl
(17.7 kB
view hashes)
Close
Hashes for things.py-0.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a159e74b07091fabcccb531a2662a214531f925f8ffc88f32b616d8a3347fa83 |
|
MD5 | f139be662b0e5f9bbc1c0f825c2acc87 |
|
BLAKE2b-256 | 807446c3c3414bf551ed5562452b0576739db2eeaf40f12362baf80861568de4 |