Skip to main content

dagnam-contracts

The canonical component/parameter validation contract for Dagnam.AI — the generated component schema plus a dependency-free interpreter of it.

An architecture is validated in three places: the platform backend when a project is saved, the dagnam SDK before a job is submitted, and the Studio as nodes are dragged onto the canvas. All three must reach identical verdicts — a parameter the Studio accepts and the backend rejects is a bug the user experiences as the product lying to them. This package is the one definition they all read.

import dagnam_contracts as contracts

errors = contracts.validate_params(
    "convolution-layer", {"filters": -999}, node_id="conv_1"
)
for e in errors:
    print(e.message)
# convolution-layer: filters must be at least 1, got -999
# convolution-layer: missing required parameter 'kernelSize'

Zero dependencies, by design

This package installs nothing else. That is a constraint rather than a coincidence: the dagnam SDK ships with only requests and numpy, so a contract package it depends on must add nothing.

It is why the Pydantic registry that authors the schema stays out of the distribution — the wheel carries generated JSON and a plain-Python interpreter of it, and the typed authoring format lives in the repository instead.

Dataset hygiene and prompt rendering (Python-only)

Since 0.2.0 the Python package also ships the dataset-hygiene primitives the platform and the dagnam SDK share — so a redaction, a dedup pass or a contamination check reaches the same verdict wherever it runs — and the one function that renders a chat request as classifier input text, so the text a classifier saw in training is byte-for-byte the text it sees when served. Results are frozen dataclasses; everything is standard library only.

from dagnam_contracts import (
    apply_pii_policy, compute_exact_duplicates, compute_near_duplicates,
    compute_split_overlap, render_chat_prompt, scan_rows,
)

report = scan_rows(rows)                      # counts_by_code, issues, pass_list, disclaimer
rows, changed, removed = apply_pii_policy(rows, {"PII_EMAIL": "redact"})
compute_exact_duplicates(rows).duplicate_indices
compute_near_duplicates(rows, threshold=0.9).pairs
compute_split_overlap({"train": train_rows, "test": test_rows}).has_contamination
render_chat_prompt([{"role": "user", "content": "hi"}], system="Label it.")
# '<|system|>\nLabel it.\n<|user|>\nhi\n'

The PII scan is best-effort by contract: its result names the classes it looked for (pass_list) and carries a disclaimer, and nothing here ever reports data as "clean". These modules are Python-only; @dagnam/contracts (npm) carries the schema interpreter alone.

Versioning

dagnam-contracts and @dagnam/contracts (npm) are published together at the same version and carry a byte-identical schema, so a version number describes one contract across both ecosystems. Breaking schema changes take a major bump, and each consumer upgrades deliberately.

License

Apache-2.0. Source: https://github.com/Dagnam-AI/dag-contracts

Metadata

Release files for dagnam-contracts 0.3.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 dagnam-contracts 0.3.0
File Size Uploaded Provenance
dagnam_contracts-0.3.0.tar.gz 76.0 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for dagnam-contracts 0.3.0
File Interpreter ABI Platform
dagnam_contracts-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 116.1 kB

Release files / dagnam_contracts-0.3.0.tar.gz

Download URL dagnam_contracts-0.3.0.tar.gz
Size 76.0 kB
Tags Source
SHA-256 checksum
How to use checksums
3a4c54492b9ed1cf8e42242b6f375b0d2ceab98f6e72782b4fcc848317576a98
BLAKE2b-256 checksum
How to use checksums
52ebab9124f76a142f895305a8cd1f4612ae51ec026553993d64fc0d6720b960
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 8, 2026.

Transparency log

Release files / dagnam_contracts-0.3.0-py3-none-any.whl

Download URL dagnam_contracts-0.3.0-py3-none-any.whl
Size 40.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
20aefd7b61885010301640715b627145b74ab029f92ba950e4c6ca80ba9bb971
BLAKE2b-256 checksum
How to use checksums
08dc295b39fc75ed3b4c9fefcc2008e7827aa9bc393b3c32db7985f1701edabd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 8, 2026.

Transparency log

Security for dagnam-contracts 0.3.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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for dagnam_contracts-0.3.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 8, 2026.

Transparency log

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.

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