render-lab-tasks-gmail
Python port of all 16 registered tasks in the pinned TypeScript pack at
45f9c2d44bd28e01ae9813e0d2ff56ee6c533816. Python 3.12+.
Install this distribution and its dependencies:
pip install render-lab-tasks-gmail==0.1.0
Import definitions from render_lab_tasks_gmail.tasks; combine app objects
with Workflows.from_workflows(...). JSON fields retain TS spelling; functions
use snake_case. Package root imports are inert.
Tasks
| Registered name | Python export (also exposes _impl) |
|---|---|
gmail.archive |
archive |
gmail.awaitReply |
await_reply |
gmail.createLabel |
create_label |
gmail.draft |
draft |
gmail.draftReply |
draft_reply |
gmail.forward |
forward |
gmail.getFullThread |
get_full_thread |
gmail.getMessage |
get_message |
gmail.getThread |
get_thread |
gmail.label |
label |
gmail.labelThread |
label_thread |
gmail.listLabels |
list_labels |
gmail.reply |
reply |
gmail.search |
search |
gmail.send |
send |
gmail.trash |
trash |
Dependencies and retries
Raw implementations accept context first and keyword-only deps. The .client
module exports typed Port, Deps, and Client classes. Inject a fake port, or
pass a caller-owned httpx.AsyncClient to Client. Default dependencies close
their client after one operation. Credentials resolve at first use. Transport
retries are disabled; retry.py owns durable policies. DTO types are in .types.
Requires core >=0.1.1.
Environment
| Variable | Contract |
|---|---|
GOOGLE_ACCESS_TOKEN |
Optional pre-issued token; takes precedence. |
GOOGLE_CLIENT_ID |
Required with secret and refresh token when no access token is supplied. |
GOOGLE_CLIENT_SECRET |
OAuth client secret for refresh. |
GOOGLE_REFRESH_TOKEN |
Refresh token granted the scopes for the operations you use. |
Verification and limitations
Reads, labels, drafts, sends, replies, forwards, and reply polling use Gmail v1.
Reply drafts prefer the latest inbound message and preserve MIME threading headers;
optional From must be a verified send-as address. Header CR/LF injection is rejected.
getFullThread defaults to 20 messages and 20,000 UTF-16 units per body; Python drops
a split surrogate pair rather than returning invalid Unicode and rejects invalid
limits. list_labels_impl(ctx, *, deps=...) and wrapped list_labels(ctx) take no
input, matching the TS operation. awaitReply checks one page of ten messages per
attempt; it does not independently verify sender identity. Send/draft/forward
retain retries and may duplicate mail after an ambiguous response. Use test mailboxes.
Shared fixtures execute the actual pinned TS implementations and compare Python outputs and requests. Sanity's SDK calls are translated into separately asserted REST requests. These are hermetic checks, not real account or hosted verification. See the testing backlog and the root verification tracker. Licensed under MIT.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file render_lab_tasks_gmail-0.1.0.tar.gz.
File metadata
- Download URL: render_lab_tasks_gmail-0.1.0.tar.gz
- Upload date:
- Size: 8.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9d1e18d35fd5df5e01b1cdcc30f642e411cddfa5ce517c078fffc74b8aa40150
|
|
| MD5 |
e5797fc5866b760318dfa6fcaa5faa48
|
|
| BLAKE2b-256 |
51d5297cc4f7ad678223e1cec9ec4aaa42955e377bdd31d260bcaa6acba00f1d
|
Provenance
The following attestation bundles were made for render_lab_tasks_gmail-0.1.0.tar.gz:
Publisher:
publish.yml on render-lab/render-tasks-python
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
render_lab_tasks_gmail-0.1.0.tar.gz -
Subject digest:
9d1e18d35fd5df5e01b1cdcc30f642e411cddfa5ce517c078fffc74b8aa40150 - Sigstore transparency entry: 2767896669
- Sigstore integration time:
-
Permalink:
render-lab/render-tasks-python@b601664587ba5882dd7c8efabfc8908151008df6 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/render-lab
-
Access:
internal
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@b601664587ba5882dd7c8efabfc8908151008df6 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file render_lab_tasks_gmail-0.1.0-py3-none-any.whl.
File metadata
- Download URL: render_lab_tasks_gmail-0.1.0-py3-none-any.whl
- Upload date:
- Size: 16.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9b208a7f1ebf4086a64c75c59086f839ec39f01f5f33791d7a9267c39e418739
|
|
| MD5 |
fd6bfc99ac18ca44d4e8cb233627e9a8
|
|
| BLAKE2b-256 |
587c69317648b6895aba4da10d38491401ed637d04f258bdfb9be0084e7f8f15
|
Provenance
The following attestation bundles were made for render_lab_tasks_gmail-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on render-lab/render-tasks-python
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
render_lab_tasks_gmail-0.1.0-py3-none-any.whl -
Subject digest:
9b208a7f1ebf4086a64c75c59086f839ec39f01f5f33791d7a9267c39e418739 - Sigstore transparency entry: 2767896679
- Sigstore integration time:
-
Permalink:
render-lab/render-tasks-python@b601664587ba5882dd7c8efabfc8908151008df6 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/render-lab
-
Access:
internal
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@b601664587ba5882dd7c8efabfc8908151008df6 -
Trigger Event:
workflow_dispatch
-
Statement type: