rasterio/pyproject.toml
2025-12-11 12:10:25 -06:00

145 lines
3.8 KiB
TOML

[build-system]
requires = [
"setuptools>=77.0.3",
"cython>=3.1,<=3.2",
"numpy>=2,<3",
]
build-backend = "setuptools.build_meta"
[project]
name = "rasterio"
dynamic = ["version"]
authors = [
{name = "Sean Gillies", email = "sean@mapbox.com"},
]
maintainers = [
{name = "Rasterio contributors"},
]
description = "Fast and direct raster I/O for use with NumPy"
readme = "README.rst"
keywords = ["gis", "raster", "gdal"]
license = "BSD-3-Clause"
license-files = ["LICENSE.txt", "AUTHORS.txt"]
classifiers = [
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"Intended Audience :: Information Technology",
"Intended Audience :: Science/Research",
"Programming Language :: C",
"Programming Language :: Cython",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Programming Language :: Python :: 3",
"Topic :: Multimedia :: Graphics :: Graphics Conversion",
"Topic :: Scientific/Engineering :: GIS",
]
requires-python = ">=3.12"
dependencies = [
"affine",
"attrs",
"certifi",
# Avoid https://github.com/pallets/click/issues/2939
"click>=4.0,!=8.2.*",
"click-plugins",
"cligj>=0.5",
"numpy>=2",
"pyparsing",
]
[project.optional-dependencies]
all = ["rasterio[docs,ipython,plot,s3,test]"]
docs = [
"ghp-import",
"numpydoc",
"sphinx",
"sphinx-click",
"sphinx-rtd-theme",
]
ipython = ["ipython>=2.0"]
plot = ["matplotlib"]
s3 = ["boto3>=1.2.4"]
test = [
"aiohttp",
"boto3>=1.2.4",
"fsspec",
"hypothesis",
"matplotlib",
"packaging",
"pytest-cov>=2.2.0",
"pytest>=2.8.2",
"requests",
"shapely",
]
[project.urls]
Documentation = "https://rasterio.readthedocs.io/"
Repository = "https://github.com/rasterio/rasterio"
[project.scripts]
rio = "rasterio.rio.main:main_group"
[project.entry-points."rasterio.rio_commands"]
blocks = "rasterio.rio.blocks:blocks"
bounds = "rasterio.rio.bounds:bounds"
calc = "rasterio.rio.calc:calc"
clip = "rasterio.rio.clip:clip"
convert = "rasterio.rio.convert:convert"
create = "rasterio.rio.create:create"
edit-info = "rasterio.rio.edit_info:edit"
env = "rasterio.rio.env:env"
gcps = "rasterio.rio.gcps:gcps"
info = "rasterio.rio.info:info"
insp = "rasterio.rio.insp:insp"
mask = "rasterio.rio.mask:mask"
merge = "rasterio.rio.merge:merge"
overview = "rasterio.rio.overview:overview"
rasterize = "rasterio.rio.rasterize:rasterize"
rm = "rasterio.rio.rm:rm"
sample = "rasterio.rio.sample:sample"
shapes = "rasterio.rio.shapes:shapes"
stack = "rasterio.rio.stack:stack"
transform = "rasterio.rio.transform:transform"
warp = "rasterio.rio.warp:warp"
[tool.setuptools.packages.find]
include = ["rasterio", "rasterio.*"]
[tool.setuptools.dynamic]
version = {attr = "rasterio.__version__"}
[tool.pytest.ini_options]
testpaths = ["tests"]
filterwarnings = [
"ignore:FilePath is supplanted",
"ignore:is_valid is not useful",
"ignore:The given matrix is",
"ignore:Dataset has no geotransform",
"ignore::rasterio.errors.NotGeoreferencedWarning",
"ignore::rasterio.errors.RasterioDeprecationWarning",
"ignore:numpy.ufunc size changed",
]
markers = [
"slow: marks tests as slow",
"gdalbin: marks test requiring GDAL binaries",
"wheel: marks test specific to wheel-building infra",
"network: marks tests that require network access"
]
[tool.ruff.lint]
select = [
"F", # pyflakes
"E", "W", # pycodestyle
]
ignore = [
"E501", # Line too long
"E722", # Do not use bare `except`
"E741", # Ambiguous variable name
"F841", # Local variable is assigned to but never used
]
[tool.ruff.lint.per-file-ignores]
"rasterio/__init__.py" = ["F401"]
"rasterio/path.py" = ["F401"]
"**/tests/*" = ["E402"]