pandas>=1.2.0
requests>=2.25.0
geopandas>=0.10.0
shapely>=1.8.0
pyproj>=3.0.0
us>=2.0.0
tqdm>=4.60.0
appdirs>=1.4.0
certifi>=2025.8.3
numpy<2
pyyaml>=6.0.0
matplotlib>=3.5.0

[LLM]
openai>=1.0.0
ollama>=0.6.0
asyncio>=4.0.0
pytest-asyncio>=0.20.0

[all]
pandas>=1.2.0
requests>=2.25.0
geopandas>=0.10.0
shapely>=1.8.0
pyproj>=3.0.0
us>=2.0.0
tqdm>=4.60.0
appdirs>=1.4.0
certifi>=2025.8.3
numpy<2
pyyaml>=6.0.0
matplotlib>=3.5.0
pytest>=6.0
pytest-cov>=2.12
pytest-mock>=3.6
pytest-asyncio>=0.20.0
black>=21.0
isort>=5.9
flake8>=3.9
mypy>=0.910
toml>=0.10.2
pre-commit
autopep8
autoflake
docformatter
sphinx>=4.0
sphinx-rtd-theme>=1.0
myst-parser>=0.15
sphinx-autodoc-typehints>=1.12
nbsphinx>=0.8
jupyter>=1.0
ipython>=7.0
myst-nb>=1.3.0
tomli>=2.2.1
seaborn>=0.11.0
openai>=1.0.0
ollama>=0.6.0
asyncio>=4.0.0

[dev]
pytest>=6.0
pytest-cov>=2.12
pytest-mock>=3.6
pytest-asyncio>=0.20.0
black>=21.0
isort>=5.9
flake8>=3.9
mypy>=0.910
toml>=0.10.2
pre-commit
autopep8
autoflake
docformatter

[docs]
sphinx>=4.0
sphinx-rtd-theme>=1.0
myst-parser>=0.15
sphinx-autodoc-typehints>=1.12
nbsphinx>=0.8
jupyter>=1.0
ipython>=7.0
myst-nb>=1.3.0
tomli>=2.2.1
seaborn>=0.11.0
