Skip to content

Task Parent#

pyticktick.models.v2.parameters.task_parent #

Parameters for setting and unsetting parent tasks via the V2 API.

Unofficial API

These models are part of the unofficial TickTick API. They were created by reverse engineering the API. They may be incomplete or inaccurate.

Classes:

Name Description
PostBatchTaskParentV2

Model for setting and unsetting parent tasks via the V2 API.

SetTaskParentV2

Model for setting a parent task via the V2 API.

UnSetTaskParentV2

Model for unsetting a parent task via the V2 API.

PostBatchTaskParentV2 #

Bases: RootModel[list[Union[SetTaskParentV2, UnSetTaskParentV2]]]

Model for setting and unsetting parent tasks via the V2 API.

This model is used to set and unset parent tasks via the V2 API. This is not currently documented or supported in the official API docs. This is used as the payload in the POST /batch/taskParent endpoint. It can contain a list of both SetTaskParentV2 and UnSetTaskParentV2 models. The API will process the list and set or unset the parent tasks as needed.

SetTaskParentV2 pydantic-model #

Bases: BaseModelV2

Model for setting a parent task via the V2 API.

This model is used to set a parent task via the V2 API. This is not currently documented or supported in the official API docs. This is used as the payload in the POST /batch/taskParent endpoint.

Show JSON schema:
{
  "additionalProperties": false,
  "description": "Model for setting a parent task via the V2 API.\n\nThis model is used to set a parent task via the V2 API. This is not currently\ndocumented or supported in the official API docs. This is used as the payload in the\n`POST /batch/taskParent` endpoint.",
  "properties": {
    "parent_id": {
      "description": "ID of the task to set as the parent",
      "title": "Parent Id",
      "type": "string"
    },
    "project_id": {
      "description": "ID of the project for both tasks",
      "title": "Project Id",
      "type": "string"
    },
    "task_id": {
      "description": "ID of the task to set the parent for",
      "title": "Task Id",
      "type": "string"
    }
  },
  "required": [
    "parent_id",
    "project_id",
    "task_id"
  ],
  "title": "SetTaskParentV2",
  "type": "object"
}

Fields:

Validators:

parent_id pydantic-field #

parent_id: str

ID of the task to set as the parent

project_id pydantic-field #

project_id: str

ID of the project for both tasks

task_id pydantic-field #

task_id: str

ID of the task to set the parent for

empty_str_to_none pydantic-validator #

empty_str_to_none(v: Any) -> Any

Convert empty strings to None.

TickTick API responses sometimes conflates None and empty strings for optional fields. This validator ensures that empty strings are converted to None, which then allows for more consistent handling of the data within the library.

Parameters:

Name Type Description Default
v Any

The value to validate.

required

Returns:

Name Type Description
Any Any

The input value if it is not an empty string, otherwise None.

Source code in src/pyticktick/models/v2/models.py
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
@field_validator("*", mode="before")
@classmethod
def empty_str_to_none(cls, v: Any) -> Any:
    """Convert empty strings to None.

    TickTick API responses sometimes conflates `None` and empty strings for
    optional fields. This validator ensures that empty strings are converted to
    `None`, which then allows for more consistent handling of the data within the
    library.

    Args:
        v (Any): The value to validate.

    Returns:
        Any: The input value if it is not an empty string, otherwise `None`.
    """
    if isinstance(v, str) and len(v) == 0:
        return None
    return v

UnSetTaskParentV2 pydantic-model #

Bases: BaseModelV2

Model for unsetting a parent task via the V2 API.

This model is used to unset a parent task via the V2 API. This is not currently documented or supported in the official API docs. This is used as the payload in the POST /batch/taskParent endpoint.

Show JSON schema:
{
  "additionalProperties": false,
  "description": "Model for unsetting a parent task via the V2 API.\n\nThis model is used to unset a parent task via the V2 API. This is not currently\ndocumented or supported in the official API docs. This is used as the payload in the\n`POST /batch/taskParent` endpoint.",
  "properties": {
    "old_parent_id": {
      "description": "ID of the task to unset as the parent",
      "title": "Old Parent Id",
      "type": "string"
    },
    "project_id": {
      "description": "ID of the project for both tasks",
      "title": "Project Id",
      "type": "string"
    },
    "task_id": {
      "description": "ID of the task to unset the parent for",
      "title": "Task Id",
      "type": "string"
    }
  },
  "required": [
    "old_parent_id",
    "project_id",
    "task_id"
  ],
  "title": "UnSetTaskParentV2",
  "type": "object"
}

Fields:

Validators:

old_parent_id pydantic-field #

old_parent_id: str

ID of the task to unset as the parent

project_id pydantic-field #

project_id: str

ID of the project for both tasks

task_id pydantic-field #

task_id: str

ID of the task to unset the parent for

empty_str_to_none pydantic-validator #

empty_str_to_none(v: Any) -> Any

Convert empty strings to None.

TickTick API responses sometimes conflates None and empty strings for optional fields. This validator ensures that empty strings are converted to None, which then allows for more consistent handling of the data within the library.

Parameters:

Name Type Description Default
v Any

The value to validate.

required

Returns:

Name Type Description
Any Any

The input value if it is not an empty string, otherwise None.

Source code in src/pyticktick/models/v2/models.py
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
@field_validator("*", mode="before")
@classmethod
def empty_str_to_none(cls, v: Any) -> Any:
    """Convert empty strings to None.

    TickTick API responses sometimes conflates `None` and empty strings for
    optional fields. This validator ensures that empty strings are converted to
    `None`, which then allows for more consistent handling of the data within the
    library.

    Args:
        v (Any): The value to validate.

    Returns:
        Any: The input value if it is not an empty string, otherwise `None`.
    """
    if isinstance(v, str) and len(v) == 0:
        return None
    return v