Skip to content

Commit f22764f

Browse files
committed
Restore compact_dict usage in update_task payload builders
Reapply compact_dict in sync/async update_task to keep payload construction consistent with the rest of the API surface.
1 parent 88cdba9 commit f22764f

2 files changed

Lines changed: 44 additions & 64 deletions

File tree

todoist_api_python/api.py

Lines changed: 22 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -350,7 +350,7 @@ def add_task_quick(
350350
)
351351
return Task.from_dict(task_data)
352352

353-
def update_task( # noqa: PLR0912
353+
def update_task(
354354
self,
355355
task_id: str,
356356
*,
@@ -396,37 +396,27 @@ def update_task( # noqa: PLR0912
396396
"""
397397
endpoint = get_api_url(f"{TASKS_PATH}/{task_id}")
398398

399-
data: dict[str, Any] = {}
400-
if content is not None:
401-
data["content"] = content
402-
if description is not None:
403-
data["description"] = description
404-
if labels is not None:
405-
data["labels"] = labels
406-
if priority is not None:
407-
data["priority"] = priority
408-
if due_string is not None:
409-
data["due_string"] = due_string
410-
if due_lang is not None:
411-
data["due_lang"] = due_lang
412-
if due_date is not None:
413-
data["due_date"] = format_date(due_date)
414-
if due_datetime is not None:
415-
data["due_datetime"] = format_datetime(due_datetime)
416-
if assignee_id is not None:
417-
data["assignee_id"] = assignee_id
418-
if day_order is not None:
419-
data["day_order"] = day_order
420-
if collapsed is not None:
421-
data["collapsed"] = collapsed
422-
if duration is not None:
423-
data["duration"] = duration
424-
if duration_unit is not None:
425-
data["duration_unit"] = duration_unit
426-
if deadline_date is not None:
427-
data["deadline_date"] = format_date(deadline_date)
428-
if deadline_lang is not None:
429-
data["deadline_lang"] = deadline_lang
399+
data = compact_dict(
400+
content=content,
401+
description=description,
402+
labels=labels,
403+
priority=priority,
404+
due_string=due_string,
405+
due_lang=due_lang,
406+
due_date=format_date(due_date) if due_date is not None else None,
407+
due_datetime=(
408+
format_datetime(due_datetime) if due_datetime is not None else None
409+
),
410+
assignee_id=assignee_id,
411+
day_order=day_order,
412+
collapsed=collapsed,
413+
duration=duration,
414+
duration_unit=duration_unit,
415+
deadline_date=(
416+
format_date(deadline_date) if deadline_date is not None else None
417+
),
418+
deadline_lang=deadline_lang,
419+
)
430420

431421
task_data: dict[str, Any] = post(
432422
self._client,

todoist_api_python/api_async.py

Lines changed: 22 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -374,7 +374,7 @@ async def add_task_quick(
374374
)
375375
return Task.from_dict(task_data)
376376

377-
async def update_task( # noqa: PLR0912
377+
async def update_task(
378378
self,
379379
task_id: str,
380380
*,
@@ -420,37 +420,27 @@ async def update_task( # noqa: PLR0912
420420
"""
421421
endpoint = get_api_url(f"{TASKS_PATH}/{task_id}")
422422

423-
data: dict[str, Any] = {}
424-
if content is not None:
425-
data["content"] = content
426-
if description is not None:
427-
data["description"] = description
428-
if labels is not None:
429-
data["labels"] = labels
430-
if priority is not None:
431-
data["priority"] = priority
432-
if due_string is not None:
433-
data["due_string"] = due_string
434-
if due_lang is not None:
435-
data["due_lang"] = due_lang
436-
if due_date is not None:
437-
data["due_date"] = format_date(due_date)
438-
if due_datetime is not None:
439-
data["due_datetime"] = format_datetime(due_datetime)
440-
if assignee_id is not None:
441-
data["assignee_id"] = assignee_id
442-
if day_order is not None:
443-
data["day_order"] = day_order
444-
if collapsed is not None:
445-
data["collapsed"] = collapsed
446-
if duration is not None:
447-
data["duration"] = duration
448-
if duration_unit is not None:
449-
data["duration_unit"] = duration_unit
450-
if deadline_date is not None:
451-
data["deadline_date"] = format_date(deadline_date)
452-
if deadline_lang is not None:
453-
data["deadline_lang"] = deadline_lang
423+
data = compact_dict(
424+
content=content,
425+
description=description,
426+
labels=labels,
427+
priority=priority,
428+
due_string=due_string,
429+
due_lang=due_lang,
430+
due_date=format_date(due_date) if due_date is not None else None,
431+
due_datetime=(
432+
format_datetime(due_datetime) if due_datetime is not None else None
433+
),
434+
assignee_id=assignee_id,
435+
day_order=day_order,
436+
collapsed=collapsed,
437+
duration=duration,
438+
duration_unit=duration_unit,
439+
deadline_date=(
440+
format_date(deadline_date) if deadline_date is not None else None
441+
),
442+
deadline_lang=deadline_lang,
443+
)
454444

455445
task_data: dict[str, Any] = await post_async(
456446
self._client,

0 commit comments

Comments
 (0)