Upgrade all dependencies to latest stable versions

Bump minimum Python to 3.12 (from 3.10) to unlock latest Sphinx,
myst-parser, and other packages that dropped 3.10/3.11 support.

Core: mcp 1.26, fastmcp 2.14.5, kicad-python 0.5, pandas 2.3.3,
requests 2.32.5, pyyaml 6.0.3, defusedxml 0.7.1

Dev: pytest 8.4.2, pytest-asyncio 1.3, ruff 0.15.1, mypy 1.19.1,
pytest-cov 7.0, pre-commit 4.5.1, bandit 1.9.3

Docs: sphinx 9.1, sphinx-rtd-theme 3.1, myst-parser 5.0

Remove unused playwright from visualization group.
This commit is contained in:
Ryan Malloy 2026-02-12 23:51:56 -07:00
parent e9aa4aeb4c
commit b99d1bd2b9
3 changed files with 1144 additions and 888 deletions

View File

@ -1 +1 @@
3.10 3.13

View File

@ -1,5 +1,5 @@
[build-system] [build-system]
requires = ["hatchling"] requires = ["hatchling>=1.28.0"]
build-backend = "hatchling.build" build-backend = "hatchling.build"
[project] [project]
@ -32,23 +32,21 @@ classifiers = [
"License :: OSI Approved :: MIT License", "License :: OSI Approved :: MIT License",
"Operating System :: OS Independent", "Operating System :: OS Independent",
"Programming Language :: Python :: 3", "Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.13",
"Topic :: Scientific/Engineering :: Electronic Design Automation (EDA)", "Topic :: Scientific/Engineering :: Electronic Design Automation (EDA)",
"Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Software Development :: Libraries :: Python Modules",
"Typing :: Typed" "Typing :: Typed"
] ]
requires-python = ">=3.10" requires-python = ">=3.12"
dependencies = [ dependencies = [
"mcp[cli]>=1.0.0", "mcp[cli]>=1.26.0",
"fastmcp>=2.0.0", "fastmcp>=2.14.5",
"pandas>=2.0.0", "pandas>=2.3.3",
"pyyaml>=6.0.0", "pyyaml>=6.0.3",
"defusedxml>=0.7.0", # Secure XML parsing "defusedxml>=0.7.1", # Secure XML parsing
"kicad-python>=0.4.0", # KiCad IPC API bindings "kicad-python>=0.5.0", # KiCad IPC API bindings
"requests>=2.31.0", # HTTP client for FreeRouting integration "requests>=2.32.5", # HTTP client for FreeRouting integration
] ]
[project.urls] [project.urls]
@ -61,37 +59,36 @@ kicad-mcp = "kicad_mcp.server:main"
[dependency-groups] [dependency-groups]
dev = [ dev = [
"pytest>=7.0.0", "pytest>=8.4.2",
"pytest-asyncio>=0.23.0", "pytest-asyncio>=1.3.0",
"pytest-mock>=3.10.0", "pytest-mock>=3.15.1",
"pytest-cov>=4.0.0", "pytest-cov>=7.0.0",
"pytest-xdist>=3.0.0", "pytest-xdist>=3.8.0",
"ruff>=0.1.0", "ruff>=0.15.1",
"mypy>=1.8.0", "mypy>=1.19.1",
"pre-commit>=3.0.0", "pre-commit>=4.5.1",
"bandit>=1.7.0", # Security linting for pre-commit hooks "bandit>=1.9.3", # Security linting for pre-commit hooks
] ]
docs = [ docs = [
"sphinx>=7.0.0", "sphinx>=9.1.0",
"sphinx-rtd-theme>=1.3.0", "sphinx-rtd-theme>=3.1.0",
"myst-parser>=2.0.0", "myst-parser>=5.0.0",
] ]
security = [ security = [
"bandit>=1.7.0", "bandit>=1.9.3",
"safety>=3.0.0", "safety>=3.7.0",
] ]
performance = [ performance = [
"memory-profiler>=0.61.0", "memory-profiler>=0.61.0",
"py-spy>=0.3.0", "py-spy>=0.3.0",
] ]
visualization = [ visualization = [
"cairosvg>=2.7.0", # SVG to PNG conversion "cairosvg>=2.8.2", # SVG to PNG conversion
"Pillow>=10.0.0", # Image processing "Pillow>=12.1.1", # Image processing
"playwright>=1.40.0", # Browser automation (optional)
] ]
[tool.ruff] [tool.ruff]
target-version = "py310" target-version = "py312"
line-length = 100 line-length = 100
[tool.ruff.lint] [tool.ruff.lint]
@ -137,7 +134,7 @@ skip-magic-trailing-comma = false
line-ending = "auto" line-ending = "auto"
[tool.mypy] [tool.mypy]
python_version = "3.11" python_version = "3.12"
warn_return_any = true warn_return_any = true
warn_unused_configs = true warn_unused_configs = true
disallow_untyped_defs = false disallow_untyped_defs = false

1973
uv.lock generated

File diff suppressed because it is too large Load Diff