pyproject.toml (118 lines of code) (raw):
[build-system]
requires = ['scikit-build-core', 'cython']
build-backend = 'scikit_build_core.build'
[project]
name = 'h3'
version = '4.2.2'
description = "Uber's hierarchical hexagonal geospatial indexing system"
readme = 'readme.md'
license = {file = 'LICENSE'}
authors = [
{ name = 'Uber Technologies', email = 'ajfriend@gmail.com' },
]
maintainers = [
{ name = 'AJ Friend', email = 'ajfriend@gmail.com' },
]
requires-python = '>=3.8'
dependencies = []
classifiers = [
'Development Status :: 5 - Production/Stable',
'Intended Audience :: Developers',
'Intended Audience :: Science/Research',
'License :: OSI Approved :: Apache Software License',
'Programming Language :: C',
'Programming Language :: Cython',
'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9',
'Programming Language :: Python :: 3.10',
'Programming Language :: Python :: 3.11',
'Programming Language :: Python :: 3.12',
'Programming Language :: Python :: 3.13',
'Operating System :: MacOS :: MacOS X',
'Operating System :: POSIX :: Linux',
'Operating System :: Microsoft :: Windows',
'Topic :: Scientific/Engineering :: GIS',
]
[project.urls]
Homepage = 'https://github.com/uber/h3-py'
Documentation = 'https://uber.github.io/h3-py/'
'Bug Tracker' = 'https://github.com/uber/h3-py/issues'
Discussions = 'https://github.com/uber/h3-py/discussions'
Changelog = 'https://uber.github.io/h3-py/_changelog.html'
[project.optional-dependencies]
numpy = ['numpy']
test = ['pytest', 'pytest-cov', 'ruff', 'numpy']
all = [
'h3[test]',
'jupyter-book',
'sphinx>=7.3.3', # https://github.com/sphinx-doc/sphinx/issues/12290
'jupyterlab',
'jupyterlab-geojson',
'geopandas',
'geodatasets',
'matplotlib',
'contextily',
'cartopy',
'geoviews',
]
[tool.pytest.ini_options]
addopts = "--cov-report=term-missing --durations=10"
[tool.coverage.run]
omit = [
'*/h3/api/basic_int/__init__.py',
'*/h3/api/memview_int/__init__.py',
'*/h3/api/numpy_int/__init__.py'
]
[tool.scikit-build]
sdist.exclude = [
'src/h3lib',
'docs',
'dev_notes.md',
'makefile',
]
sdist.include = [
'src/h3lib/LICENSE',
'src/h3lib/README.md',
'src/h3lib/VERSION',
'src/h3lib/CMakeLists.txt',
'src/h3lib/cmake/*',
'src/h3lib/src/h3lib/*'
]
[tool.ruff]
src = [
'src',
'tests',
]
line-length = 88
[tool.ruff.lint]
flake8-quotes.inline-quotes = 'single'
# https://docs.astral.sh/ruff/rules/
preview = true # https://docs.astral.sh/ruff/preview/#selecting-single-preview-rules
select = [
'A',
# 'B', # todo
# 'COM', # todo
'E',
'F',
'Q',
'W',
# 'D', # todo. this is nice!
# 'PL', # todo. some interesting ideas
# 'DOC', # todo: interesting
]
ignore = [
'E221', # Multiple spaces before operator
'E231', # Missing whitespace after ','
'E241', # Multiple spaces after ','
'E251', # Unexpected spaces around keyword / parameter equals
'E272', # Multiple spaces before keyword
'E731', # Do not assign a `lambda` expression, use a `def`
# 'PLR2004',
]
[tool.ruff.lint.per-file-ignores]
'*.ipynb' = [
'E501', # Line too long (104 > 88)
]
'test*.py' = [
# 'D', # maybe just the need for docstring
]