1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105
|
[build-system]
requires = ["setuptools>=61.0", "setuptools_scm[toml]>=6.2"]
build-backend = "setuptools.build_meta"
[tool.setuptools_scm]
[project]
name = "spaghetti"
dynamic = ["version"]
maintainers = [
{name = "James D. Gaboardi", email = "jgaboardi@gmail.com"},
]
license = {text = "BSD 3-Clause"}
description = "Analysis of Network-constrained Spatial Data"
keywords = ["spatial statistics", "networks", "graphs"]
readme = "README.md"
classifiers = [
"Programming Language :: Python :: 3",
"License :: OSI Approved :: BSD License",
"Operating System :: OS Independent",
"Intended Audience :: Science/Research",
"Topic :: Scientific/Engineering :: GIS",
]
requires-python = ">=3.10"
dependencies = [
"esda>=2.1",
"geopandas>=0.12",
"libpysal>=4.6",
"numpy>=1.22",
"pandas>=1.4,!=1.5.0",
"rtree>=1.0",
"scipy>=1.8",
"shapely>=2.0.1",
]
[project.urls]
Home = "https://pysal.org/spaghetti/"
Repository = "https://github.com/pysal/spaghetti"
[project.optional-dependencies]
dev = [
"ruff",
"pre-commit",
]
docs = [
"nbsphinx",
"numpydoc",
"sphinx",
"sphinxcontrib-bibtex",
"sphinx_bootstrap_theme",
]
tests = [
"pytest",
"pytest-cov",
"pytest-doctestplus",
"pytest-timeout",
"pytest-xdist",
"codecov",
"coverage",
"twine",
"wheel",
]
nb_pypi = [
"mip",
"ortools",
]
nb_conda = [
"matplotlib",
"matplotlib-scalebar",
"pulp",
"seaborn",
"splot",
"watermark",
]
[tool.setuptools.packages.find]
include = [
"spaghetti",
"spaghetti.*",
]
[tool.ruff]
line-length = 88
lint.select = ["E", "F", "W", "I", "UP", "N", "B", "A", "C4", "SIM", "ARG"]
exclude = ["spaghetti/tests/*", "docs/*"]
[tool.ruff.lint.per-file-ignores]
"*__init__.py" = [
"F401", # imported but unused
"F403", # star import; unable to detect undefined names
]
[tool.coverage.run]
source = ["./spaghetti"]
[tool.coverage.report]
exclude_lines = [
"if self.debug:",
"pragma: no cover",
"raise NotImplementedError",
"except ModuleNotFoundError:",
"except ImportError",
]
ignore_errors = true
omit = ["spaghetti/tests/*", "docs/conf.py"]
|