Giacomo Chiarella
07/02/2025, 2:20 PMtask_filter = TaskRunFilter(
tags=TaskRunFilterTags(all_=[tag]),
state_type=TaskRunFilterStateType(
any_=[
StateType.RUNNING.value,
StateType.PENDING.value,
StateType.CANCELLING.value,
StateType.SCHEDULED.value,
StateType.PAUSED.value
]
)
)
but despite in the class doc it is written that it returns task runs meeting all conditions, it looks like it is an OR. Does it happen to you also?Giacomo Chiarella
07/02/2025, 2:22 PMtask_filter = TaskRunFilter(
tags=TaskRunFilterTags(all_=[tag]),
state=TaskRunFilterState(
type=TaskRunFilterStateType(
any_=[
StateType.RUNNING.value,
StateType.PENDING.value,
StateType.CANCELLING.value,
StateType.SCHEDULED.value,
StateType.PAUSED.value
]
)
)
)
Marvin suggests this change, is it correct?Brendan Dalpe
07/02/2025, 2:26 PMstate_type
is not a valid parameter for the TaskRunFilter
class.
Marvin's suggestion should fix this.Giacomo Chiarella
07/02/2025, 2:27 PMBrendan Dalpe
07/02/2025, 2:27 PMGiacomo Chiarella
07/03/2025, 3:43 PMtask_filter = TaskRunFilter(
tags=TaskRunFilterTags(all_=[tag]),
state=TaskRunFilterState(
type=TaskRunFilterStateType(
any_=[
StateType.RUNNING.value,
StateType.PENDING.value,
StateType.CANCELLING.value,
StateType.SCHEDULED.value,
StateType.PAUSED.value
]
)
)
)
task_runs = await client.read_task_runs(task_run_filter=task_filter, sort=TaskRunSort.NAME_ASC, limit=limit,
offset=offset)
but I got this
pydantic_core._pydantic_core.ValidationError: 1 validation error for TaskRunFilterState
name
Field required [type=missing, input_value={'type': TaskRunFilterSta...LED, StateType.PAUSED])}, input_type=dict]
I don’t get if name is mandatory or there is something wrong with something else, any idea?Brendan Dalpe
07/03/2025, 3:51 PMGiacomo Chiarella
07/03/2025, 3:52 PMGiacomo Chiarella
07/03/2025, 3:57 PMtask_filter = TaskRunFilter(
tags=TaskRunFilterTags(all_=[tag]),
state=TaskRunFilterState(
name=TaskRunFilterStateName(
any_=[
StateType.RUNNING.value,
StateType.PENDING.value,
StateType.CANCELLING.value,
StateType.SCHEDULED.value,
StateType.PAUSED.value
]
),
type=TaskRunFilterStateType(
any_=[
StateType.RUNNING,
StateType.PENDING,
StateType.CANCELLING,
StateType.SCHEDULED,
StateType.PAUSED
]
)
)
)
could you validate it?Brendan Dalpe
07/03/2025, 4:16 PMfrom prefect.client.orchestration import get_client
from prefect.states import StateType
from prefect.server.schemas.filters import TaskRunFilter, TaskRunFilterState, TaskRunFilterStateType
with get_client(sync_client=True) as client:
task_filter = TaskRunFilter(
state=TaskRunFilterState(
type=TaskRunFilterStateType(
any_=[
StateType.RUNNING,
StateType.PENDING,
StateType.CANCELLING,
StateType.SCHEDULED,
StateType.PAUSED,
StateType.COMPLETED
]
)
)
)
result = client.read_task_runs(task_run_filter=task_filter)
for task_run in result:
print(f"Task Run ID: {task_run.id}, State: {task_run.state.type}")
Giacomo Chiarella
07/03/2025, 4:18 PMBrendan Dalpe
07/03/2025, 4:24 PMprint(client.client_version())
Giacomo Chiarella
07/03/2025, 6:37 PM