mirror of
https://github.com/dtzp555-max/aci-sim.git
synced 2026-07-19 09:46:33 +00:00
Initial public release — aci-sim v0.16.0
aci-sim is a stateful REST simulator of a 2-site Cisco ACI fabric (per-site APIC + ND/NDO management planes) — for testing ACI automation (Ansible cisco.aci / cisco.mso, aci-py, custom REST clients) and CI gates without real hardware. Highlights: APIC + NDO REST surface served from one in-memory MIT built from a declarative topology.yaml; port mode + sandbox (real per-device IPs on :443) run modes; LLDP/CDP neighbor visibility; NDO->APIC deploy mirror (multi-site templates materialize onto the target sites' APIC stores); real-APIC fvBD default attributes; file-backed state save/restore; an `aci-sim` CLI (validate/show/graph/run/new/init/lldp); and an 888-test suite. History squashed for the public release. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
[project]
|
||||
name = "aci-sim"
|
||||
version = "0.16.0"
|
||||
description = "Faithful REST simulator of a 2-site Cisco ACI fabric (per-site APIC + ND/NDO)"
|
||||
readme = "README.md"
|
||||
license = "MIT"
|
||||
authors = [
|
||||
{ name = "aci-sim contributors" },
|
||||
]
|
||||
requires-python = ">=3.11"
|
||||
classifiers = [
|
||||
# No "License :: OSI Approved :: MIT License" classifier: the SPDX
|
||||
# `license = "MIT"` field above supersedes license classifiers (PEP 639)
|
||||
# and modern setuptools rejects having both.
|
||||
"Development Status :: 4 - Beta",
|
||||
"Intended Audience :: Developers",
|
||||
"Intended Audience :: System Administrators",
|
||||
"Operating System :: OS Independent",
|
||||
"Programming Language :: Python :: 3",
|
||||
"Programming Language :: Python :: 3.11",
|
||||
"Programming Language :: Python :: 3.12",
|
||||
"Topic :: System :: Networking",
|
||||
"Topic :: Software Development :: Testing",
|
||||
"Typing :: Typed",
|
||||
]
|
||||
# Runtime dependencies are declared statically here (NOT `dynamic`) so that a
|
||||
# plain `pip install aci-sim` / `pip install .` pulls them in. requirements.txt
|
||||
# is kept as a dev convenience (it also lists the test-only extras below).
|
||||
dependencies = [
|
||||
"fastapi>=0.110",
|
||||
"uvicorn[standard]>=0.29",
|
||||
"pydantic>=2.6",
|
||||
"pyyaml>=6.0",
|
||||
]
|
||||
|
||||
[project.optional-dependencies]
|
||||
# Test/dev-only — not needed to run the simulator. `pip install -e '.[dev]'`.
|
||||
dev = [
|
||||
"httpx>=0.27",
|
||||
"pytest>=8.0",
|
||||
"pytest-asyncio>=0.23",
|
||||
]
|
||||
|
||||
[project.urls]
|
||||
Homepage = "https://github.com/dtzp555-max/aci-sim"
|
||||
Repository = "https://github.com/dtzp555-max/aci-sim"
|
||||
Changelog = "https://github.com/dtzp555-max/aci-sim/blob/main/CHANGELOG.md"
|
||||
|
||||
[project.scripts]
|
||||
aci-sim = "aci_sim.cli:main"
|
||||
|
||||
[tool.setuptools.packages.find]
|
||||
# Auto-discover ALL subpackages (aci_sim.topology/build/rest_aci/ndo/
|
||||
# mit/runtime/query/control/...) — a bare `packages = ["aci_sim"]` would
|
||||
# ship only the top-level module and omit every subpackage.
|
||||
include = ["aci_sim*"]
|
||||
|
||||
[tool.pytest.ini_options]
|
||||
asyncio_mode = "auto"
|
||||
testpaths = ["tests"]
|
||||
|
||||
[tool.ruff]
|
||||
line-length = 100
|
||||
target-version = "py311"
|
||||
|
||||
[tool.ruff.lint]
|
||||
select = ["E", "F", "I", "UP", "B"]
|
||||
ignore = ["E501"]
|
||||
Reference in New Issue
Block a user