Skip to content

Align Python Tasks SDK results, validation and poll pacing (0.2.0) - #1

Merged
griffinmc22 merged 2 commits into
mainfrom
t3/align-with-node
Nov 1, 2026
Merged

griffinmc22 merged 2 commits into
mainfrom
t3/align-with-node

Conversation

@griffinmc22

@griffinmc22 griffinmc22 commented Oct 31, 2026 •

Copy link
Copy Markdown
Contributor

Success responses with no extracted elements now expose results: {}. Repeated waits return copies of retained results for up to one hour within the existing buffer cap. README examples use .get() for optional elements. Millisecond receivedAt values (>= 100,000,000,000) raise local InvalidRequestError, matching Node's guard; this restriction requires the 0.2.0 minor bump.

The monotonic poll gate rechecks every wake and now measures the gap from request completion so dispatch delays cannot shorten it (3 seconds, or 1 second after a full page). Sent polls still finish independently of departing waiters. New tests confirm existing HTTP error handling preserves normal error types, status and Retry-After for HTML, empty, invalid UTF-8 and non-object JSON bodies, including create retry policy. Main already had the correct Mailman > Settings > Tasks API path; verified the actual arrow-separated path in the built wheel README.

Validation:

  • Full unittest suite: 50 passing tests each on Python 3.12 and 3.13; seven new regression tests.
  • CI's python -m mypy mailman_tasks: success, four source files.
  • python -m build and python -m twine check dist/mailman_tasks-0.2.0*: wheel and sdist pass.
  • Python 3.8 syntax parsing, wheel metadata/README checks, and git diff --check pass.
  • Python 3.8/3.10 runtimes unavailable locally; GitHub CI covers the full 3.8/3.10/3.12/3.13 matrix.
  • No production API calls, other-repository changes, merges or publishing.

Owner steps after merging:

  1. Confirm all CI jobs pass and check out merged main in a clean release environment.
  2. Install build/twine, then run python -m build and python -m twine check dist/mailman_tasks-0.2.0*.
  3. Publish only the 0.2.0 wheel and sdist with python -m twine upload dist/mailman_tasks-0.2.0*, using the owner's PyPI credentials or approved publishing workflow.
  4. Verify PyPI version 0.2.0 and its README/settings path. This SDK-only PR needs no application/server deploy.

Nothing has been merged, tagged, released or published.


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

griffinmc22 and others added 2 commits October 31, 2026 15:50
Match the Node and Go SDKs: `reason` is "timeout" when the server timed
the task out and "deadline" when the wait ran out (the task is lost).
The default request_timeout is now 15 seconds, as in the guide (M8) and
the other SDKs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@griffinmc22
griffinmc22 merged commit a4ab075 into main Nov 1, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant