Files
Wei Ji e3373026d6 Enable pydocstyle (D) ruff rule and add more docs (#21)
* Use pydocstyle (D) rule with google convention

Add a ruff rule to catch missing documentation. Using google convention so that undocumented-param (D417) rule is enabled to catch missing params, xref https://docs.astral.sh/ruff/rules/undocumented-param. Extended to include D213 (instead of D212) and D410 rules too.

* Fix D100 Missing docstring in public module

* Fix D101 Missing docstring in public class

* Fix D103 Missing docstring in public function

Also ignore rule D205 to allow first sentence of docstring to wrap to multiple lines.

* Fix  D417 Missing argument description in the docstring

* Update indent in pyproject.toml file
2025-12-09 08:22:01 +00:00

81 lines
1.8 KiB
TOML

[project]
name = "geo-assistant"
version = "0.0.1"
description = "Geo Assistant"
readme = "README.md"
requires-python = ">=3.13"
dependencies = [
"langgraph",
"fastapi",
"pydantic",
"geojson_pydantic",
"streamlit",
"httpx",
"uvicorn[standard]",
"langchain-ollama",
"langchain",
"python-dotenv",
"duckdb",
"shapely",
"pystac-client",
"planetary-computer",
"odc-stac>=0.3.9",
"xarray",
"matplotlib",
"geopandas>=1.1.1",
"dspy>=3.0.4",
"watchdog>=6.0.0",
"folium>=0.15.0",
]
[dependency-groups]
dev = [
"ruff",
"pytest",
"pytest-asyncio",
"pre-commit",
"jupyterlab>=4.5.0",
]
docs = [
"mkdocs>=1.6.1",
"mkdocs-material[imaging]>=9.6.11",
"mkdocs-material-extensions>=1.3.1",
"pymdown-extensions>=10.14.3",
"mike>=2.1.3",
"mkdocstrings[python]>=1.0.0",
]
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.build.targets.wheel]
packages = ["src/geo_assistant"]
[tool.pytest.ini_options]
addopts = "--color=yes"
asyncio_mode = "auto"
[tool.ruff.lint]
select = [
"COM", # flake8-commas
"D", # pydocstyle
"F", # pyflakes
"I", # isort
"RUF", # ruff-specific
"UP", # pyupgrade
]
extend-select = [
"D213", # Summary lines should be positioned on the second physical line of the docstring.
"D410", # A blank line after section headings.
]
ignore = [
"D205", # 1 blank line required between summary line and description
"D212", # Multi-line docstring summary should start at the first line
]
[tool.ruff.lint.pydocstyle]
# See https://docs.astral.sh/ruff/faq/#does-ruff-support-numpy-or-google-style-docstrings
# for the enabled/disabled rules for the "google" convention.
convention = "google"