{"id":46578,"library":"taskchampion3-py-dev","title":"TaskChampion 3","description":"Python bindings for TaskChampion 3.x, a replicated task database supporting Taskwarrior. Current version 3.0.1.3 (fork). Release cadence: irregular.","status":"active","version":"3.0.1.3","language":"python","source_language":"en","source_url":"https://github.com/dropwhile/taskchampion3-py-dev","tags":["taskwarrior","taskchampion","todo","pim"],"install":[{"cmd":"pip install taskchampion3-py-dev","lang":"bash","label":"Install using pip"}],"dependencies":[{"reason":"Core TaskChampion library (cffi bindings require dynamically linked native library)","package":"taskchampion","optional":false}],"imports":[{"wrong":"from taskchampion import TaskDb","symbol":"TaskDb","correct":"from taskchampion import Replica"},{"symbol":"Task","correct":"from taskchampion import Task"},{"symbol":"Replica","correct":"from taskchampion import Replica"}],"quickstart":{"code":"from taskchampion import TaskDb, Task\nimport os\n# Initialize database (in-memory for demo)\ndb = TaskDb.in_memory()\n# Create a task\ntask = Task.new(db, \"Buy groceries\")\n# Modify priority\ntask.set_urgency(10.0)\nprint(f\"Task created: {task.summary()}\")\n# Delete task\ntask.delete(db)","lang":"python","description":"Create an in-memory TaskChampion database, create a task, modify it, and delete it."},"warnings":[{"fix":"Install TaskChampion native library using 'conda install -c conda-forge taskchampion' or build from source.","message":"The native library (taskchampion) must be installed separately (e.g., via conda or system package) for the Python bindings to work. Missing library leads to import error.","severity":"breaking","affected_versions":">=3.0.0"},{"fix":"Update imports to 'from taskchampion import TaskDb, Task, UdaField' and refer to new UDA documentation.","message":"Class names changed from 'Database' to 'TaskDb' and 'UDA' (user-defined attributes) API is significantly different from TaskChampion 2.x.","severity":"breaking","affected_versions":">=3.0.0"},{"fix":"Be explicit: use 'TaskDb.on_disk(path)' for persistent storage and check existence if needed.","message":"In-memory databases are not persistent. If you open a database path that does not exist, it creates a new empty replica, not an error.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"search_vec":"'3':2,7 '3.0.1.3':17 'bind':4 'cadenc':20 'current':15 'databas':12 'fork':18 'irregular':21 'pim':25 'python':3 'releas':19 'replic':10 'support':13 'task':11 'taskchampion':1,6,23 'taskwarrior':14,22 'todo':24 'version':16 'x':8","created_at":"2026-06-07T13:00:36.295791+00:00","updated_at":"2026-06-07T13:00:36.295791+00:00","problems":null,"ecosystem":"pypi","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":null,"github":null,"docs":null,"changelog":null,"pypi":null,"npm":null,"openapi_spec":null,"status_page":null,"smithery":null,"categories":["productivity"],"base_url":null,"auth_type":null,"provenance":{"verified_status":"passing","verified_at":"2026-07-03","last_verified":"2026-07-03","next_check":"2026-08-02","install_tag":null}}