[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"