Checks
Reproducible example
import json
from pyticktick import Client
client = Client(v2_username="username", v2_password="password")
resp = client.get_batch_v2()
print("My Projects:")
for project in resp.project_profiles:
print(json.dumps(project.model_dump(mode="json"), indent=4))
print("My Tasks:")
for task in resp.sync_task_bean.update:
print(json.dumps(task.model_dump(mode="json"), indent=4))
Log output
Connected to pydev debugger (build 221.5080.212)
2025-12-18 11:50:41.450 | WARNING | pyticktick.settings:_get_v1_token:512 - Cannot signon to v1 without `v1_client_id` and `v1_client_secret`
I:\Inspiron copy\Doug\TickTickAPIUsage\venv\lib\site-packages\pyticktick\settings.py:513: UserWarning: Cannot signon to v1 without `v1_client_id` and `v1_client_secret`
warnings.warn(msg, UserWarning, stacklevel=1)
Traceback (most recent call last):
File "C:\Program Files\JetBrains\PyCharm Community Edition 2022.1\plugins\python-ce\helpers\pydev\pydevd.py", line 1491, in _exec
pydev_imports.execfile(file, globals, locals) # execute the script
File "C:\Program Files\JetBrains\PyCharm Community Edition 2022.1\plugins\python-ce\helpers\pydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile
exec(compile(contents+"\n", file, 'exec'), glob, loc)
File "I:/Inspiron copy/Doug/TickTickAPIUsage/pytt_get_projects_and_tasks_from_test_account_V2.py", line 13, in <module>
resp = client.get_batch_v2()
File "I:\Inspiron copy\Doug\TickTickAPIUsage\venv\lib\site-packages\pyticktick\client.py", line 1219, in get_batch_v2
return GetBatchV2.model_validate(resp)
File "I:\Inspiron copy\Doug\TickTickAPIUsage\venv\lib\site-packages\pydantic\main.py", line 716, in model_validate
return cls.__pydantic_validator__.validate_python(
pydantic_core._pydantic_core.ValidationError: 2 validation errors for GetBatchV2
inboxId
Input should be a valid string [type=string_type, input_value=None, input_type=NoneType]
For further information visit https://errors.pydantic.dev/2.12/v/string_type
projectProfiles
Input should be a valid list [type=list_type, input_value=None, input_type=NoneType]
For further information visit https://errors.pydantic.dev/2.12/v/list_type
python-BaseException
Issue description
The client authorization is now working with the upgrade to 0.3.0, but the line resp = client.get_batch_v2() is generating Pydantic errors.
Checks
Reproducible example
Log output
Issue description
The client authorization is now working with the upgrade to 0.3.0, but the line resp = client.get_batch_v2() is generating Pydantic errors.