A simple Python 3 library to read your Things app data.
Project description
Things Python API
things.py is a simple Python 3 library to read data from your Things app.
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 intended to be machine-readable, not human-readable. The aim of this project is to let you access all your Things 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. Note that you can print the SQL used by adding the parameter print_sql=True
to most API calls.
If any aspect of the API seems overly complex or doesn't meet your needs, please don't hesitate to add a new issue here.
Terminology
Here are the core technical terms used involving the database:
- area
- tag
- task
- type
'to-do'
: can have checklists;'project'
: can have to-dos and headings;'heading'
: part of a project; groups to-dos.
- status:
'incomplete'
,'canceled'
, or'completed'
- trashed:
True
orFalse
- start:
'Inbox'
,'Anytime'
, or'Someday'
- type
- checklist item (contained within a to-do)
Documentation
The full documentation for this library can be found here: https://thingsapi.github.io/things.py/things/api.html
Things URL Scheme
You can make good use of the uuid
to link to to-dos, areas, tags, and more from other apps. Also updates are possible. Read an introduction here and see the documentation here.
Used By
The following open-source projects make use of this library:
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
Built Distribution
File details
Details for the file things.py-0.0.15.tar.gz
.
File metadata
- Download URL: things.py-0.0.15.tar.gz
- Upload date:
- Size: 27.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 95ee8602083cf8b9fde59f64486fa6f3d13b1f84bd565c60dd77599c07e7ea16 |
|
MD5 | 2a4cda544d4e89aec7b4ea83d148dc80 |
|
BLAKE2b-256 | 09bfdbba75d9a4e38de0d91dff8b1d0aacd754df4080d7c17eae3a1640a4d17f |
File details
Details for the file things.py-0.0.15-py3-none-any.whl
.
File metadata
- Download URL: things.py-0.0.15-py3-none-any.whl
- Upload date:
- Size: 26.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5c75e7f35eb6e9558fa937bfa0b7563f5dc3b726adade836131e572a15c47a0d |
|
MD5 | a67172f235bcc5e8a3e0ff7432bec004 |
|
BLAKE2b-256 | b4a397c7e8a2b9ab527cef9c31b74d88d730e4ba539bf6e9743522f9b7584122 |