Upload model data to Attestant for compliance analysis
Project description
Attestant
AI compliance for regulated lenders. Validate, approve, monitor, and defend AI-driven models and decisions.
Install
pip install attestant
Quick Start
import attestant
import pandas as pd
# Configure (or set ATTESTANT_API_KEY environment variable)
attestant.configure(api_key="pvt_live_...")
# 1. Declare data sources — provenance tracks automatically
data = attestant.source(pd.read_csv("applicants.csv"), "applicants")
demographics = attestant.source(
pd.read_csv("demographics.csv"), "demographics",
protected=["race", "gender", "age"],
)
# 2. Normal pandas — taint propagation happens behind the scenes
merged = data.merge(demographics, on="id")
X = merged[["income", "credit_score", "dti"]]
y = merged["approved"]
# 3. Validate before deployment
result = attestant.upload(
model=model,
X_test=X, y_test=y,
protected_columns=["race", "gender", "age"],
model_name="credit_approval",
model_version="v2.1",
)
print(result.dashboard_url)
# 4. Gate in production (one line)
attestant.gate("credit_approval", "v2.1")
# 5. Log predictions for monitoring
attestant.log_predictions(
model_name="credit_approval",
model_version="v2.1",
predictions=model.predict_proba(X_new)[:, 1],
features=X_new,
protected_data=demographics_new,
protected_columns=["race", "gender", "age"],
applicant_ids=df["application_id"].tolist(),
)
What It Does
- 41 automated compliance checks across ECOA/Reg B, SR 11-7, and EU AI Act
- Fairness analysis with disparate impact detection and SHAP-based adverse action reason codes
- Model gating -- block unapproved models from production with one line
- Inference monitoring -- track predictions, detect drift, generate alerts
- Decision defense -- reconstruct any individual decision for examiner review
- Data provenance -- automatic lineage tracking through pandas operations
Protected Columns
Mark columns containing protected attributes (race, gender, age, etc.) so Attestant can check for disparate impact and proxy discrimination:
data = attestant.source(df, "applicants", protected=["race", "gender", "age"])
Attestant automatically tracks whether protected data influences predictions -- even through indirect feature engineering.
Age Column Handling
Specify how age data is formatted:
result = attestant.upload(
...,
age_column="applicant_age",
age_format="years", # or: "months", "days", "dob", "birth_year"
)
Vendor Models
Validate vendor/third-party models the same way -- just pass predictions instead of a model:
# Get predictions from vendor API
vendor_predictions = vendor_api.score(X_test)
# Validate with full compliance suite
result = attestant.upload(
predictions=vendor_predictions,
X_test=X_test, y_test=y_test,
protected_columns=["race", "gender", "age"],
model_name="vendor_credit_score",
model_version="v3.2",
)
# Gate and monitor in production
attestant.gate("vendor_credit_score", "v3.2")
attestant.log_predictions(
model_name="vendor_credit_score",
model_version="v3.2",
predictions=vendor_api.score(X_new),
features=X_new,
protected_data=demographics_new,
protected_columns=["race", "gender", "age"],
)
All 41 compliance checks, fairness analysis, model gating, and inference monitoring work identically for vendor models.
CI/CD Integration
export ATTESTANT_API_KEY=pvt_live_...
attestant gate-check --model credit_approval --version v2.1
# Exit 0 = approved, 1 = blocked
Documentation
Full documentation at getattestant.com/docs
License
Apache 2.0
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
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 attestant-0.23.1-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: attestant-0.23.1-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 1.3 MB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6768346357736f62180d6914c3fb10f96e69aa1eb6d212693b9c8c5250e4e9ab
|
|
| MD5 |
93e2499a17f61be1988daa8064aef86e
|
|
| BLAKE2b-256 |
6ae0ef5ff9ac14e21b6b118cea64ad66b213c6738a5e190d12f347ecb341f4a0
|
File details
Details for the file attestant-0.23.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: attestant-0.23.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 5.2 MB
- Tags: CPython 3.13, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6d63e0036f30342122d633022af482931bf25b267ddd6477371b82112f5981c3
|
|
| MD5 |
f33284c1795bc9855b28b49585d21e08
|
|
| BLAKE2b-256 |
6155521eeddb0dec257d4d7432df4fcbeef1fddd8b48456030743c86d7cc9463
|
File details
Details for the file attestant-0.23.1-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: attestant-0.23.1-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 1.4 MB
- Tags: CPython 3.13, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
25f83fab1ffa3d64959b6a7e86fa898b6f233a5931f3cbbc0716533257f792bd
|
|
| MD5 |
f613ff03233d1f1a5e361752fcbef97f
|
|
| BLAKE2b-256 |
f3abe5cea9b7dee60e5707947dfd2c20214125aea62de545675452624e629dbb
|
File details
Details for the file attestant-0.23.1-cp313-cp313-macosx_10_13_x86_64.whl.
File metadata
- Download URL: attestant-0.23.1-cp313-cp313-macosx_10_13_x86_64.whl
- Upload date:
- Size: 1.4 MB
- Tags: CPython 3.13, macOS 10.13+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
53c415147defd84f9c89acbfa8c7e5b18dcf66621168dbf6663d3d5fd05440e0
|
|
| MD5 |
bf08e8848cec90aac5d3c1c595eb49f9
|
|
| BLAKE2b-256 |
ae1905b24d5d6e44fb61d33659bd0f5aa46f5ea5925a766e2c6f9339a40f183d
|
File details
Details for the file attestant-0.23.1-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: attestant-0.23.1-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 1.3 MB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
349bfb41df6263e8ee37aec9fb7976977e6d522727cedbc607bb20baec8b3906
|
|
| MD5 |
2c7e711a4e3428934c73025474b6ee79
|
|
| BLAKE2b-256 |
ad5f8e057c6d5fff21a4b21c027c521c07eee667b6680478295afb5a4b8c9a2b
|
File details
Details for the file attestant-0.23.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: attestant-0.23.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 5.2 MB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1575e91b5e49bf96fec42bdccfe024e51dedb97e20278d9d9a7f0da681796f14
|
|
| MD5 |
728cad40b5cfb27da47c15d70098d6fb
|
|
| BLAKE2b-256 |
55bdf807c47f61b85b9c993c250e1fc26244798751e7c00a9b1b58a371acea46
|
File details
Details for the file attestant-0.23.1-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: attestant-0.23.1-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 1.4 MB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
613a8e49e458337345cad75beb3671dd01b7d23787abf72f6f67576a5224e648
|
|
| MD5 |
90975754265f929455fe184c593c5202
|
|
| BLAKE2b-256 |
2bd13400dc3e3c06305ed8493c910dc9e08f3f33022f4fe9312b0add6844ccfe
|
File details
Details for the file attestant-0.23.1-cp312-cp312-macosx_10_13_x86_64.whl.
File metadata
- Download URL: attestant-0.23.1-cp312-cp312-macosx_10_13_x86_64.whl
- Upload date:
- Size: 1.4 MB
- Tags: CPython 3.12, macOS 10.13+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7eea4e18ac5f0d860d1f8abb54dfda64dcd72aa5d78b09c815a6289a5e9e2dc2
|
|
| MD5 |
54f0f9cdb4b5c15f880ba2ffbce20b09
|
|
| BLAKE2b-256 |
77fa431c7e22db6ccb9715dca72d7cf1d2b0448961c6c171ee6be475f408b16e
|
File details
Details for the file attestant-0.23.1-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: attestant-0.23.1-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 1.3 MB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
27203b769ff4928979f00862265622b5b3f9c5596889e7b9b29ae1bb1fbcaea1
|
|
| MD5 |
4c07518be9ce06ca6c86cd206faa6b43
|
|
| BLAKE2b-256 |
37252e526b7ef0bcd2efa2b56030de2b5b8ed669aa2ff2fb51b0ff19599ee4f5
|
File details
Details for the file attestant-0.23.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: attestant-0.23.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 5.4 MB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d9101e845411bfe9e3747cf9f24cf75fd7288bc9443e4b3027097bf8f7517487
|
|
| MD5 |
2a5d942aab3b4f261397883a480803a6
|
|
| BLAKE2b-256 |
44cb9fb67b8a6dd0a76ccfe8dcfcedebcd8d4bdd8d651957d8fe1aa75d9baa94
|
File details
Details for the file attestant-0.23.1-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: attestant-0.23.1-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 1.4 MB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b1581c3545662a523058a5ef2bba601a891e577d5bde90dd84d914dd4aec9e99
|
|
| MD5 |
4e360814484e778c316a93188e6c2410
|
|
| BLAKE2b-256 |
d874d6775f6398347194b9ef2da5b79ae078727f5e27bd7d15c647874f5a9a9c
|
File details
Details for the file attestant-0.23.1-cp311-cp311-macosx_10_9_x86_64.whl.
File metadata
- Download URL: attestant-0.23.1-cp311-cp311-macosx_10_9_x86_64.whl
- Upload date:
- Size: 1.5 MB
- Tags: CPython 3.11, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1dffa8d0f83eaa6f098075cfd232cb28262810fbb25ff38cee268ff61734d251
|
|
| MD5 |
7c6245861b1f6aac00e93f10e6371a10
|
|
| BLAKE2b-256 |
02365507022b5bbfeafef3ec113228d966d834d448a2e16f4302f85c0cea2d24
|
File details
Details for the file attestant-0.23.1-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: attestant-0.23.1-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 1.3 MB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6ec602305fe64c0193d436a2db96477a7fdf5a4143234cda59f16bfd797838aa
|
|
| MD5 |
91d421acbb50cb73fb0d0bcfdbd27332
|
|
| BLAKE2b-256 |
4fe57eadc17404cba05692405588520355b03c8e047fb3b58b04031c25059f8e
|
File details
Details for the file attestant-0.23.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: attestant-0.23.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 5.2 MB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
15ae16ccb3b3fc6f15e258d798af2d877ab795680052237ce9a2aaa20ecebdff
|
|
| MD5 |
224f1004cdeec375ccc41714faf34203
|
|
| BLAKE2b-256 |
fb7bbf8136016eb6539ba0bb125198d12753b5315fd07506a48f1385e78b5037
|
File details
Details for the file attestant-0.23.1-cp310-cp310-macosx_11_0_arm64.whl.
File metadata
- Download URL: attestant-0.23.1-cp310-cp310-macosx_11_0_arm64.whl
- Upload date:
- Size: 1.4 MB
- Tags: CPython 3.10, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
15e42e9b30e59789b8d3cb9c3ac21f56457e05e680850c44caae6dfc3bca175c
|
|
| MD5 |
efaa3c0f3b80d4ac2dd055b5fc533dbf
|
|
| BLAKE2b-256 |
19e7f4ef85722958bbbc37b9dad3c7ed4c1200be8d2a051396f2d07c6cc2dfe6
|
File details
Details for the file attestant-0.23.1-cp310-cp310-macosx_10_9_x86_64.whl.
File metadata
- Download URL: attestant-0.23.1-cp310-cp310-macosx_10_9_x86_64.whl
- Upload date:
- Size: 1.5 MB
- Tags: CPython 3.10, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fa5c3499c273949e772e2b75e8d9c0adc48c5fa6850f4e1834f224ee5e806ea8
|
|
| MD5 |
0628c90b33ba9a6acdaff1f508dfec07
|
|
| BLAKE2b-256 |
6d905a46a2f0540cbc3639e58cedc237949c4e460180d4b1faae12aad86b8b01
|
File details
Details for the file attestant-0.23.1-cp39-cp39-win_amd64.whl.
File metadata
- Download URL: attestant-0.23.1-cp39-cp39-win_amd64.whl
- Upload date:
- Size: 1.3 MB
- Tags: CPython 3.9, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a73692d40f080567477f11ccdec46fc7bf9cd291afc3359e23157583db55ee8d
|
|
| MD5 |
0e701ed768019f11ff9c45844898c22e
|
|
| BLAKE2b-256 |
9721280a1aa5fb025d6bf28bba414044de4dbfcb9049e3924bcf8b4f029f918e
|
File details
Details for the file attestant-0.23.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: attestant-0.23.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 5.2 MB
- Tags: CPython 3.9, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ff054660d7f1c8273c46d5d9b5f88ce414044b3bd0bf68dc5aab7ad8529fb529
|
|
| MD5 |
ad85a4f63d572bf0e76f921bb1bc6952
|
|
| BLAKE2b-256 |
b1c59887792c5aeb8b346d09dc3c18f59750c5a1057095fd743b16dfda6a7693
|
File details
Details for the file attestant-0.23.1-cp39-cp39-macosx_11_0_arm64.whl.
File metadata
- Download URL: attestant-0.23.1-cp39-cp39-macosx_11_0_arm64.whl
- Upload date:
- Size: 1.4 MB
- Tags: CPython 3.9, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
540b73f6355557579552a4d8d8f8031ebc3a939c2ba2a4f9476da2a1610127d6
|
|
| MD5 |
a43ed44451058fdc16add5f2d86601af
|
|
| BLAKE2b-256 |
3beed800ddfb6cef06ad5319ea98a621b99ec82253a8a82eff1c79f514cdda12
|
File details
Details for the file attestant-0.23.1-cp39-cp39-macosx_10_9_x86_64.whl.
File metadata
- Download URL: attestant-0.23.1-cp39-cp39-macosx_10_9_x86_64.whl
- Upload date:
- Size: 1.5 MB
- Tags: CPython 3.9, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3a4b9e497451ca74f16d33055316680ed46baf344d1129a197ec63af00b761f4
|
|
| MD5 |
54a87933aef1a12811b8266c889c77c0
|
|
| BLAKE2b-256 |
e8bb7c3e15f1966c1729a9823aa51bd3266a3b32fdd7a79923f9fe86891b949e
|