[build-system] requires = ["setuptools>=68", "wheel"] build-backend = "setuptools.backends.legacy:build" [project] name = "geo-tools" version = "0.1.0" description = "专业地理信息数据处理工具库 —— 基于 geopandas / shapely / fiona" readme = "README.md" requires-python = ">=3.10" license = { text = "MIT" } authors = [{ name = "geo_tools contributors" }] keywords = ["gis", "geopandas", "shapely", "fiona", "spatial", "geospatial"] classifiers = [ "Development Status :: 3 - Alpha", "Intended Audience :: Science/Research", "Topic :: Scientific/Engineering :: GIS", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", ] dependencies = [ "geopandas>=0.14", "shapely>=2.0", "fiona>=1.9", "pyproj>=3.6", "pandas>=2.0", "numpy>=1.24", "pydantic>=2.0", "pydantic-settings>=2.0", "python-dotenv>=1.0", ] [project.optional-dependencies] dev = [ "pytest>=7.4", "pytest-cov>=4.1", "pytest-timeout>=2.1", "black>=23.0", "isort>=5.12", "flake8>=6.0", "mypy>=1.5", ] notebook = [ "jupyter>=1.0", "matplotlib>=3.7", "contextily>=1.4", "folium>=0.15", ] raster = [ "rasterio>=1.3", "xarray>=2023.6", "rio-cogeo>=4.0", ] [project.urls] Homepage = "https://github.com/your-org/geo_tools" Repository = "https://github.com/your-org/geo_tools" "Bug Tracker" = "https://github.com/your-org/geo_tools/issues" [tool.setuptools.packages.find] where = ["."] include = ["geo_tools*"] # ── pytest ───────────────────────────────────────────────────────────────── [tool.pytest.ini_options] testpaths = ["tests"] addopts = "-v --tb=short" timeout = 120 # ── coverage ──────────────────────────────────────────────────────────────── [tool.coverage.run] source = ["geo_tools"] omit = ["tests/*", "scripts/*", "examples/*"] [tool.coverage.report] show_missing = true skip_covered = false # ── black ─────────────────────────────────────────────────────────────────── [tool.black] line-length = 100 target-version = ["py310", "py311", "py312"] # ── isort ─────────────────────────────────────────────────────────────────── [tool.isort] profile = "black" line_length = 100 # ── mypy ──────────────────────────────────────────────────────────────────── [tool.mypy] python_version = "3.10" ignore_missing_imports = true warn_return_any = false