Install & Compatibility
Where this runs
tested against v0.1.2 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
muslpy 3.10–3.95 runs
installs and imports cleanly · install 0.0s · import 0.000s · 36.4MB
glibcpy 3.10–3.95 runs
installs and imports cleanly · install 5.0s · import 0.000s · 36MB
44MB installed
● package 44MB
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
avidtools
✓ import avidtools
avidtools.connectors
✓ from avidtools.connectors import garak
✗ import avidtools.connectors.garak as garak_connector
Submodules are not auto-imported; import the specific connector directly.
avidtools.types
✓ from avidtools import types
Basic usage: import avidtools, use a connector (e.g., garak) to convert evaluation output into an AVID report, then access report fields.
import avidtools
from avidtools.connectors import garak
# Create an AVID report from a Garak run
report = garak.from_output('path/to/garak/log.json')
print(report.title)
print(report.vulnerability[0].description)
# Optional: set AVID API key via environment variable
# import os; avidtools.client.set_api_key(os.environ.get('AVID_API_KEY', ''))
Debug
Known issues
breakingIn version 0.3.0, the 'enrich' terminology was renamed to 'normalize' across connectors. Code using old attribute names like `enrich()` will break.fixReplace all `connector.enrich(...)` calls with `connector.normalize(...)`.
affects: 0.3.0+
deprecatedThe `typing-extensions` dependency is only required for Python <3.13. In future versions it may become optional; avoid relying on it for projects targeting Python 3.12+.fixUse `import typing; typing.Protocol` etc. directly if on Python 3.13+.
affects: <0.4.0 (estimate)
gotchaConnectors for Garak and Inspect require specific log file formats. Using mismatched input will silently produce empty reports.fixEnsure input files are valid JSON/YAML from the respective evaluation framework. Refer to `avidtools.connectors` docs for schema expectations.
affects: all
gotchaThe `avidtools.client` module requires setting an API key via `set_api_key()` or environment variable `AVID_API_KEY`. Missing API key causes authentication errors with AVID Cloud features.fixSet `AVID_API_KEY` environment variable or call `avidtools.client.set_api_key('your-key')` before using cloud features. affects: all
Errors
Common errors & fixes
AttributeError: module 'avidtools.connectors' has no attribute 'inspect'
Trying to import the 'inspect' connector directly from the connectors package which is a namespace package; individual submodules must be imported explicitly.
fixUse `from avidtools.connectors import inspect` or `import avidtools.connectors.inspect`.
ModuleNotFoundError: No module named 'avidtools.connectors.inspect'
The 'inspect' connector may not be installed if using an older version (<0.2.0) or if the installation was incomplete.
fixUpgrade avidtools to version >=0.2.0: `pip install --upgrade avidtools`
Upgrade
Version history
0.3.2latest on PyPI · released Mar 19, 2026
Audit
Dependencies
pydanticrequiredData validation and settings management
pyyamlrequiredYAML file handling for AVID reports
requestsrequiredHTTP client for API interactions
typing-extensionsoptionalBackport of typing features for older Python versions