[project] name = "shearline" version = "1.1.0" description = "Analyst-grade US severe-weather tools for AI agents over MCP: warning polygons with IBW tags, SPC outlooks, RAP point environments, MRMS hail/rotation, storm reports, and a composite threat brief." readme = "README.md" license = "MIT" license-files = ["LICENSE"] authors = [{ name = "Backshear LLC" }] requires-python = ">=3.12" keywords = ["mcp", "weather", "severe-weather", "meteorology", "nws", "spc", "mrms", "radar", "ai-agents"] classifiers = [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "Intended Audience :: Science/Research", "Programming Language :: Python :: 3.12", "Topic :: Scientific/Engineering :: Atmospheric Science", ] dependencies = [ "boto3>=1.43.27", "cfgrib>=0.9.15.1", "eccodeslib>=2.47.1.20", "h5netcdf>=1.8.1", "h5py>=3.16.0", "httpx>=0.28.1", "mcp[cli]>=1.27.2", "metpy>=1.7.1", "numpy>=2.4.6", "pydantic>=2.13.4", "shapely>=2.1.2", "xarray>=2026.4.0", ] [project.urls] Homepage = "https://github.com/lostnumber07/shearline" Repository = "https://github.com/lostnumber07/shearline" Issues = "https://github.com/lostnumber07/shearline/issues" [project.scripts] shearline = "shearline.server:main" [build-system] requires = ["uv_build>=0.11.20,<0.12.0"] build-backend = "uv_build" [dependency-groups] dev = [ "pytest>=9.0.3", "pytest-asyncio>=1.4.0", "respx>=0.23.1", "ruff>=0.15.16", ] [tool.pytest.ini_options] asyncio_mode = "auto" testpaths = ["tests"] [tool.ruff] line-length = 110 target-version = "py312" [tool.ruff.lint] select = ["E", "F", "I", "W", "UP", "B"]