All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
TodoistAPIAsyncnow performs true async HTTP I/O withhttpx.AsyncClient.- Support for Python 3.14.
- Support for Python 3.9 (EOL).
- Breaking:
TodoistAPInow accepts an optionalclient: httpx.Clientinstead ofsession: requests.Session. - Breaking:
TodoistAPIAsyncnow accepts an optionalclient: httpx.AsyncClientinstead ofsession: requests.Session. - Breaking: Async paginated return types now use
AsyncIterator[...]instead ofAsyncGenerator[...]. - Breaking: API errors now raise
httpx.HTTPStatusErrorinstead ofrequests.exceptions.HTTPError. - Breaking: Authentication helpers now accept optional
httpx.Client/httpx.AsyncClientinstances instead ofsession: requests.Session. - Breaking:
update_sectionnow accepts only keyword arguments aftersection_id; any one ofname,order, orcollapsedcan be updated in the same call.
- Type hints for
Metaclass fields (project,section,assignee) now correctly indicate that tuple values can beNone
- Support for searching projects
- Support for searching sections
- Support for searching labels
- Support for moving tasks, courtesy of @radiant-tangent
- Support for
backups:readscope - Re-add support for
X-Request-ID- Configurable via
request_id_fnAPI constructor argument - Defaults to random UUID v4
- Configurable via
- Automatic testing across all supported Python versions
- Compatibility with Python 3.9 and Python 3.10
- Wheel and source distributions didn't include the package itself
- Project requiring Python 3.13 to be installed
- Support for deadlines
- Support for archiving and unarchiving projects
- Support for fetching completed tasks by due date range and by completion date range
- Support for
note,reminder, andauto_reminderinadd_task_quick - Documentation for all SDK functions, arguments, and return objects
- Types, type hints for all SDK functions, arguments, and return objects
- Function to obtain project URLs
- Use
dataclass-wizardfor object mapping - Modernized SDK to use the Todoist API v1
- Remove deprecated
Task.sync_id,Task.comment_count, andProject.comment_count - Replace
Task.is_completedwithTask.completed_at - Add support for
calendarinProject.view_style - Rename
quick_add_tasktoadd_task_quick - Add
filter_tasks, extracting that workflow fromget_tasks - Paginate results via an
Iteratoringet_tasks,filter_task,get_projects,get_collaborators,get_sections,get_comments,get_labels,get_shared_labels - Receive
dateanddatetimearguments as objects, not strings - Remove support for
X-Request-Idheader, unused on the API level
- Remove deprecated
- "Hide" internal modules and functions
- Task URLs are now obtained on demand, improving performance when not needed
- API requests configure appropriate timeouts to avoid connections hanging
- Regression with some
Projectobject attributes
TodoistAPIAsyncaccepts asessionparameter- State becomes optional in
AuthResult.from_dict() - Duration handling in
to_dict()and tests - Default value to
section_id - Properly close requests
Sessionobject
- Key error on
can_assign_tasksinProjectmodel
- Support
project.can_assign_tasks - Add
durationtoTaskobject - Pagination example
- Support for getting completed items through the items archive
- Restore Python 3.9 compatibility
- Building environment updates
- Use built-in data classes instead of
attrs
- Task property
date_addedshould beadded_at
- Fixed a crash in
get_commentsif attachment is null.
Migrate to REST API v2.
- Add missing
attrspackage dependency
- Dependabot updates
- Public release