https://github.com/bergercookie/taskw-ng
Next Generation Taskwarrior Python API
https://github.com/bergercookie/taskw-ng
python python3 taskmanagement taskwarrior
Last synced: 7 months ago
JSON representation
Next Generation Taskwarrior Python API
- Host: GitHub
- URL: https://github.com/bergercookie/taskw-ng
- Owner: bergercookie
- License: gpl-3.0
- Created: 2019-04-09T23:32:26.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2024-08-10T10:22:52.000Z (about 1 year ago)
- Last Synced: 2025-03-16T22:02:32.061Z (7 months ago)
- Topics: python, python3, taskmanagement, taskwarrior
- Language: Python
- Homepage: https://pypi.org/project/taskw-ng
- Size: 526 KB
- Stars: 5
- Watchers: 4
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.rst
- Contributing: CONTRIBUTING.md
- License: LICENSE.txt
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# `taskw-ng` - Python API for the Taskwarrior DB
> This project is a continuation of the [taskw python
wrapper](https://github.com/ralphbean/taskw).This is a python API for the [Taskwarrior](http://taskwarrior.org) command line
task manager. It supports interacting with Taskwarirrior version >= `2.5`.## Getting `taskw-ng`
### Installing
Using `taskw-ng` requires that you first install [Taskwarrior](http://taskwarrior.org).
Installing it from http://pypi.org/project/taskw-ng is easy with `pip`:
```sh
pip install taskw-ng
```## Examples
### Looking at tasks
```python
from taskw_ng import TaskWarrior
w = TaskWarrior()
tasks = w.load_tasks()
tasks.keys()
# ['completed', 'pending']
type(tasks['pending'])
#
type(tasks['pending'][0])
#
```### Adding tasks
```python
from taskw_ng import TaskWarrior
w = TaskWarrior()
w.task_add("Eat food")
w.task_add("Take a nap", priority="H", project="life", due="1359090000")
```### Retrieving tasks
```python
from taskw_ng import TaskWarrior
w = TaskWarrior()
w.get_task(id=5)
```### Updating tasks
```python
from taskw_ng import TaskWarrior
w = TaskWarrior()
id, task = w.get_task(id=14)
task['project'] = 'Updated project name'
w.task_update(task)
```### Deleting tasks
```python
from taskw_ng import TaskWarrior
w = TaskWarrior()
w.task_delete(id=3)
```### Completing tasks
```python
from taskw_ng import TaskWarrior
w = TaskWarrior()
w.task_done(id=46)
```### Being Flexible
You can point `taskw-ng` at different Taskwarrior databases.
```python
from taskw_ng import TaskWarrior
w = TaskWarrior(config_filename="~/some_project/.taskrc")
w.task_add("Use taskw_ng.")
```### Looking at the config
```python
from taskw_ng import TaskWarrior
w = TaskWarrior()
config = w.load_config()
config['data']['location']
# '/home/threebean/.task'
config['_forcecolor']
# 'yes'
```### Using python-appropriate types (dates, UUIDs, etc)
```python
from taskw_ng import TaskWarrior
w = TaskWarrior(marshal=True)
w.get_task(id=10)
# should give the following:
# (10,
# {
# 'description': 'Hello there!',
# 'entry': datetime.datetime(2014, 3, 14, 14, 18, 40, tzinfo=tzutc())
# 'id': 10,
# 'project': 'Saying Hello',
# 'status': 'pending',
# 'uuid': UUID('4882751a-3966-4439-9675-948b1152895c')
# }
# )
```