You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Expose periodic-schedule catalog management in the Python SDK #501
Python can register periodic tasks via @queue.periodic() (sdks/python/taskito/mixins/decorators.py:496) but cannot manage them afterwards — there is no way to list, unschedule, pause, or resume a registered schedule from the public API.
The native module already exposes all four; only the Python-level wrappers are missing:
sdks/python/taskito/_taskito.pyi:216-219 — already declared on the stub
The other SDKs have shipped this (listPeriodic / deletePeriodic / pausePeriodic / resumePeriodic), so Python is the last one short of the cross-SDK contract.
The docs currently document the gap rather than the feature — docs/content/docs/shared/guides/core/scheduling.mdx:348 says "There's no public API yet to list, pause, or delete a registered schedule" under "Managing periodic tasks", and warns that removing a decorator leaves the schedule firing for a task no worker handles.
Scope
Add list_periodic() / delete_periodic(name) / pause_periodic(name) / resume_periodic(name) to the appropriate mixin (mixins/inspection.py for the read, mixins/operations.py for the mutations), plus the a* variants in async_support/mixins.py.
Decide the return shape for list_periodic — the binding currently returns list[tuple[str, str, str, bool]], which is thin next to the PeriodicInfo view the other shells decode (name, task_name, cron_expr, queue, enabled, last_run, next_run, timezone). Widening it is likely the right call.
Tests under sdks/python/tests/core/, mirroring PeriodicTest.listPauseResumeDelete: list, pause toggles enabled, resume, unknown name → False, delete, double-delete → False.
Replace the Python-only "no public API yet" block in scheduling.mdx with the real usage, matching the shape of the other SDK blocks in that section.
Found while verifying #485, which turned out to be already implemented.
Activity