[project]
name = "souschef"
version = "0.1.0"
description = "AI-powered MCP server for Chef to Ansible conversion"
readme = "README.md"
requires-python = ">=3.14"
dependencies = [
"anthropic>=0.75.0",
"click>=8.1.0",
"mcp>=1.25.0",
"python-dotenv>=1.2.1",
"zod>=0.8.0",
]
[project.scripts]
souschef = "souschef.server:main"
souschef-cli = "souschef.cli:main"
[tool.uv]
package = true
[tool.ruff]
line-length = 88
[tool.ruff.lint]
select = ["E", "F", "W", "C90", "I", "N", "D", "UP", "B", "A", "C4", "T20", "SIM", "PTH", "ISC"]
ignore = ["D100", "D104", "D105", "D107"]
[tool.ruff.lint.per-file-ignores]
"__init__.py" = ["F401"]
"tests/*" = ["S101"]
"souschef/server.py" = ["T201"] # Allow print statements in main entry point
[tool.pytest.ini_options]
minversion = "6.0"
addopts = "-ra -q --cov=souschef --cov-report=term-missing"
testpaths = [
"tests",
]
[dependency-groups]
dev = [
"pytest>=9.0.2",
"pytest-cov>=7.0.0",
"pytest-benchmark>=5.1.0",
"hypothesis>=6.125.0",
"mutmut>=3.4.0",
"ruff>=0.14.10",
"pip-audit>=2.7.0",
"twine>=6.0.0",
]