Pre-release
This release is a pre-release and may not be stable for production use.
devaci
Python library that generates Cisco ACI configuration and optionally pushes it to an APIC controller via Cisco's official Cobra SDK.
Structure
devaci/
├── LICENSE
├── README.md
├── pyproject.toml
├── pyrightconfig.json
├── uv.lock
├── src/
│ └── devaci/
│ ├── __init__.py # public API
│ ├── console.py # logging + rich console
│ ├── data.py # xlsx/csv loading and filtering
│ ├── deploy.py # DeployClass orchestrator
│ ├── exceptions.py
│ ├── filters.py # Jinja filters + YAML loader
│ ├── jinja.py # JinjaRenderer
│ ├── results.py # result dataclasses
│ └── cobra/
│ ├── __init__.py # CobraBuilder
│ ├── base.py
│ ├── builders.py # registered ACI object handlers
│ └── registry.py
└── tests/
├── test_cobra.py
├── test_deploy.py
├── test_devaci.py
└── test_outputs.py
Installation (development)
pip install uv # if you don't have it yet
uv sync # creates .venv and installs devaci + dev dependencies
source .venv/bin/activate
To add/remove dependencies:
uv add requests # runtime dependency
uv add --dev httpx # development dependency
uv remove requests
External dependency: Cobra SDK
The Cisco ACI Cobra SDK (acicobra, acimodel, aciparser, acirpc) is not on PyPI.
Download the .whl files from Cisco and place them in the vendor/ folder (not tracked by git), then:
uv pip install vendor/*.whl
Tests that depend on the Cobra SDK fail if it is not installed.
Tests
uv run pytest
Lint and type checking
uv run ruff check .
uv run mypy src
Publishing
uv build
uv publish
Metadata
Release files for devaci 2.0.0a1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| devaci-2.0.0a1.tar.gz | 25.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| devaci-2.0.0a1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 49.5 kB
Release files / devaci-2.0.0a1.tar.gz
| Download URL | devaci-2.0.0a1.tar.gz |
|---|---|
| Size | 25.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
df81c243ecebe4eb95a088262ad58d94c80fe458a59fc246a0def6c777feefa9
|
|
BLAKE2b-256 checksum How to use checksums |
a19534b06d5fabc3442cbfbd220b121868476e8132a78e1f7be7b06b2a1c7af5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / devaci-2.0.0a1-py3-none-any.whl
| Download URL | devaci-2.0.0a1-py3-none-any.whl |
|---|---|
| Size | 24.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b820f08c4b17d0be6e16770865b0d763f5d0a0a014ef4feb0a91ed8042849281
|
|
BLAKE2b-256 checksum How to use checksums |
27ef00261bc8d99a23a67dffc775998482a2882b80ab04391b68235107abecd8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|