Skip to main content

Agent-First Data for Python

pip install agent-first-data
from agent_first_data import json_result, render, OutputFormat

value = json_result(
    {
        "api_key_secret": "sk-123",
        "latency_ms": 1280,
        "db_url": "postgres://user:p@ss@db/app?token_secret=abc",
    }
).build()

print(render(value, OutputFormat.JSON))
print(render(value, OutputFormat.PLAIN))

Useful names use Python casing: render (the single value x format x options -> str entry point; takes an OutputFormat and an optional keyword-only options=), redacted_value, redact_url_secrets, redact_urls_in_text, redact_argv, normalize_utc_offset, is_valid_rfc3339_date, is_valid_rfc3339_time, is_valid_rfc3339, is_valid_bcp47, cli_parse_output, build_cli_error, build_cli_version, decode_protocol_event.

Behavior Notes

  • Default redaction replaces every _secret or configured secret-name subtree with ***, including objects and arrays.
  • _url fields scrub userinfo passwords and secret-named query parameters; surrounding whitespace is trimmed, and internal whitespace or a :// that is not the start of a clean URL redacts the whole field, where whitespace is the explicit Unicode White_Space set the spec enumerates, not the language's native predicate.
  • OutputOptions.url_names applies URL treatment to exact legacy field names and recurses through collections. redact_urls_in_text is explicit and scans only complete scheme URLs, never arbitrary prose secrets.
  • YAML keeps original keys and values (structure-preserving, like JSON), sorting keys by UTF-16 code unit order and quoting/escaping unsafe keys and string scalars. Plain strips formatting suffixes, formats values, sorts the same way, and renders nested objects/arrays as canonical JSON; it quotes a value only when it contains ASCII space, tab, newline, carriage return, form feed, vertical tab, NBSP, =, ", or \, and escapes \, ", newline, carriage return, tab, form feed, and vertical tab inside the quotes.
  • Logging records use kind:"log" with a nested log payload and a separate level field, so error-level logs are not terminal protocol errors.
  • build_cli_error(message, hint?) returns a strict-ready CLI error with error.retryable:false and trace:{}.
  • Do not add a raw version/help pre-parser. Until the Python CliSpec compiler lands, applications should keep lifecycle parsing in their own parser rather than claim AFDATA closed-world help compatibility.

Reference

Metadata

Release files for agent-first-data 0.35.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for agent-first-data 0.35.0
File Size Uploaded Provenance Actions
agent_first_data-0.35.0.tar.gz 48.9 kB Without provenance Details for agent_first_data-0.35.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for agent-first-data 0.35.0
File Interpreter ABI Platform Actions
agent_first_data-0.35.0-py3-none-any.whl Python 3 none any Details for agent_first_data-0.35.0-py3-none-any.whl

Total release size: 83.0 kB

Release files / agent_first_data-0.35.0.tar.gz

Download URL agent_first_data-0.35.0.tar.gz
Size 48.9 kB
Tags Source
SHA-256 checksum
How to use checksums
260865fd03b5efe11761f9a96abd6e8affb5ad541cf41055dbf254d18260b1fe
BLAKE2b-256 checksum
How to use checksums
fc9e9b8ed47232f08ff4e57cd14f57826ec144ea436966820c964cbe021f769f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.5

Release files / agent_first_data-0.35.0-py3-none-any.whl

Download URL agent_first_data-0.35.0-py3-none-any.whl
Size 34.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c604b06ba465d282bffa8eb9eafe78a5188600307f487a57c7ee5053079a284b
BLAKE2b-256 checksum
How to use checksums
75bbce2b983330ff551ea0af95d926bcc33603b1148be4f5e3dcd5be5f6a28e4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.5

Security for agent-first-data 0.35.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.35.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page