-
Notifications
You must be signed in to change notification settings - Fork 5
/
pyproject.toml
114 lines (99 loc) · 2.89 KB
/
pyproject.toml
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
106
107
108
109
110
111
112
113
114
[build-system]
requires = ["scikit-build-core >=0.4.3",
"nanobind == 2.1.0",
"typing_extensions;python_version < '3.11'"
]
build-backend = "scikit_build_core.build"
[project]
name = "pgeof"
version = "0.3.0"
readme = "README.md"
description = "Compute the geometric features associated with each point's neighborhood:"
requires-python = ">=3.8,<3.13"
license = {file = "LICENSE"}
authors = [
{name = "Loic Landrieu", email = "[email protected]"},
{name = "Damien Robert", email = "[email protected]"}
]
keywords = ["point clouds", "features", "3D", "LiDAR"]
classifiers = [
"Development Status :: 3 - Alpha",
"Programming Language :: Python",
"Topic :: Scientific/Engineering"
]
dependencies = [
"numpy >= 1.7, < 2"
]
[project.urls]
homepage = "https://github.com/drprojects/point_geometric_features"
repository = "https://github.com/drprojects/point_geometric_features"
[tool.scikit-build]
# Protect the configuration against future changes in scikit-build-core
minimum-version = "0.4"
# Setuptools-style build caching in a local directory
build-dir = "build/{wheel_tag}"
cmake.build-type = "Release"
# make sdist a lot lighter by removing some useless files from third_party
# ⚠️ be sure to keep copyrights and license file
sdist.exclude = [
"third_party/eigen/bench",
"third_party/eigen/demos",
"third_party/eigen/doc",
"third_party/taskflow/3rd-party",
"third_party/taskflow/benchmarks",
"third_party/taskflow/docs",
"third_party/taskflow/doxygen",
"third_party/taskflow/examples",
"third_party/taskflow/sandbox",
"third_party/taskflow/unittests",
]
[tool.ruff]
target-version = "py310"
line-length = 120
[tool.ruff.lint]
# TODO Add D, PTH, RET, disabled for now as they collides with intial choices
select = ["E", "W", "YTT", "NPY", "PYI", "Q", "F", "B", "I", "SIM", "RUF"]
# TODO: for now we ignore "Line too long error (E501)"
# because our comments are too longs
# code formatting will take care of the line length in code anyway
ignore = [
"E501",
# Ignore docstring in public package and module
"D100",
"D104",
# Blank line before class
"D203",
# multiline summary second line
"D213",
# yoda conditions
"SIM300",
]
[tool.ruff.lint.isort]
known-first-party = ["pgeof"]
[tool.tox]
legacy_tox_ini = """
[tox]
[gh-actions]
python =
3.9: py39
3.10: py310
3.11: py311
3.12: py312
[testenv]
deps =
pytest >= 7.4
pytest-benchmark ~= 4.0
numpy >= 1.7, < 2
scipy
jakteristics;platform_system=="Windows" or platform_system=="Linux"
commands = pytest --basetemp="{envtmpdir}" {posargs}
[testenv:bench]
# globs/wildcards do not work with tox
commands = pytest -s --basetemp="{envtmpdir}" {posargs:tests/bench_knn.py tests/bench_jakteristics.py}
"""
[tool.cibuildwheel]
build = "cp3{9,10,11,12}-*"
archs = ["auto64"] # limit to 64bits builds
# Needed for full C++17 support
[tool.cibuildwheel.macos.environment]
MACOSX_DEPLOYMENT_TARGET = "11.0"