Files
FabledSteward/pyproject.toml
T
bvandeusenandClaude Opus 5.5 cac65fa35c
CI / lint (push) Successful in 2s
CI / integration (push) Successful in 1m27s
CI / unit (push) Successful in 1m28s
CI / publish (push) Successful in 1m27s
build(deps): replace the deprecated pysnmp-lextudio with pysnmp>=7.1 (#5470)
#5470 "pysnmp-lextudio is deprecated: every startup logs a RuntimeWarning".

Dependency change: the [snmp] extra now installs `pysnmp>=7.1` instead of
`pysnmp-lextudio>=6.2`. pysnmp is the same lextudio lineage under its maintained
name; the 7.1 floor is because below 7 the name is the abandoned 4.x line with
no asyncio API. The poller already finds either API shape (_api(), the engine
close probes), so no code changes; its docstring now names what the image ships.
Approved by the operator 2026-10-09 ("yes please do the swap").

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 14:37:06 -04:00

58 lines
1.4 KiB
TOML

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[project]
name = "steward"
version = "0.1.0"
requires-python = ">=3.11"
dependencies = [
"quart>=0.19",
"sqlalchemy[asyncio]>=2.0",
"asyncpg>=0.29",
"alembic>=1.13",
"bcrypt>=4.1",
"python-dotenv>=1.0",
"pyyaml>=6.0",
"packaging>=24.0",
"click>=8.0",
"httpx>=0.27",
"cryptography>=42",
# Floor, not a cap: MCPServer (mcp.server.mcpserver) and the mcp.types
# mirror that steward/mcp/ is written against first ship in SDK 2.2.
"mcp>=2.2",
]
[project.optional-dependencies]
ldap = [
"ldap3>=2.9",
]
snmp = [
# The maintained pysnmp (lextudio's lineage, which took over the name).
# Floor 7.1: below 7 that name is the abandoned 4.x line, which has no
# asyncio API (#5470; the poller uses pysnmp.hlapi.v3arch.asyncio).
"pysnmp>=7.1",
]
# Batteries-included Ansible (bundles the common community collections) for the
# playbook runner. Installed into the image via Dockerfile `pip install .[ansible]`.
ansible = [
"ansible>=10,<13",
]
dev = [
"pytest>=8.0",
"pytest-asyncio>=0.23",
]
[project.scripts]
steward = "steward.cli:main"
[tool.pytest.ini_options]
asyncio_mode = "auto"
testpaths = ["tests"]
markers = [
"integration: requires a live Postgres; runs only in the integration CI lane",
]
[tool.hatch.build.targets.wheel]
packages = ["steward"]