forked from scikit-learn/scikit-learn
-
Notifications
You must be signed in to change notification settings - Fork 0
/
pyproject.toml
126 lines (116 loc) · 3.73 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
115
116
117
118
119
120
121
122
123
124
125
126
[build-system]
# Minimum requirements for the build system to execute.
requires = [
"setuptools",
"wheel",
"Cython>=0.29.33",
# use oldest-supported-numpy which provides the oldest numpy version with
# wheels on PyPI
#
# see: https://github.com/scipy/oldest-supported-numpy/blob/main/setup.cfg
"oldest-supported-numpy; python_version!='3.10' or platform_system!='Windows' or platform_python_implementation=='PyPy'",
# For CPython 3.10 under Windows, SciPy requires NumPy 1.22.3 while the
# oldest supported NumPy is defined as 1.21.6. We therefore need to force
# it for this specific configuration. For details, see
# https://github.com/scipy/scipy/blob/c58b608c83d30800aceee6a4dab5c3464cb1de7d/pyproject.toml#L38-L41
"numpy==1.22.3; python_version=='3.10' and platform_system=='Windows' and platform_python_implementation != 'PyPy'",
"scipy>=1.5.0",
]
[tool.black]
line-length = 88
target_version = ['py38', 'py39', 'py310']
preview = true
exclude = '''
/(
\.eggs # exclude a few common directories in the
| \.git # root of the project
| \.mypy_cache
| \.vscode
| build
| dist
| doc/tutorial
| doc/_build
| doc/auto_examples
| sklearn/externals
| asv_benchmarks/env
)/
'''
[tool.ruff]
# all rules can be found here: https://beta.ruff.rs/docs/rules/
select = ["E", "F", "W", "I"]
# max line length for black
line-length = 88
target-version = "py38"
ignore=[
# space before : (needed for how black formats slicing)
"E203",
# do not assign a lambda expression, use a def
"E731",
# do not use variables named 'l', 'O', or 'I'
"E741",
]
exclude=[
".git",
"__pycache__",
"dist",
"sklearn/externals",
"doc/_build",
"doc/auto_examples",
"doc/tutorial",
"build",
"asv_benchmarks/env",
"asv_benchmarks/html",
"asv_benchmarks/results",
"asv_benchmarks/benchmarks/cache",
]
[tool.ruff.per-file-ignores]
# It's fine not to put the import at the top of the file in the examples
# folder.
"examples/*"=["E402"]
"doc/conf.py"=["E402"]
[tool.cython-lint]
# Ignore the same error codes as ruff
# + E501 (line too long) because keeping it < 88 in cython
# often makes code less readable.
ignore = [
# multiple spaces/tab after comma
'E24',
# space before : (needed for how black formats slicing)
'E203',
# line too long
'E501',
# do not assign a lambda expression, use a def
'E731',
# do not use variables named 'l', 'O', or 'I'
'E741',
# line break before binary operator
'W503',
# line break after binary operator
'W504',
]
# Exclude files are generated from tempita templates
exclude= '''
(
asv_benchmarks/
| sklearn/_loss/_loss.pyx
| sklearn/linear_model/_sag_fast.pyx
| sklearn/linear_model/_sgd_fast.pyx
| sklearn/utils/_seq_dataset.pyx
| sklearn/utils/_seq_dataset.pxd
| sklearn/utils/_weight_vector.pyx
| sklearn/utils/_weight_vector.pxd
| sklearn/metrics/_dist_metrics.pyx
| sklearn/metrics/_dist_metrics.pxd
| sklearn/metrics/_pairwise_distances_reduction/_argkmin.pxd
| sklearn/metrics/_pairwise_distances_reduction/_argkmin.pyx
| sklearn/metrics/_pairwise_distances_reduction/_argkmin_classmode.pyx
| sklearn/metrics/_pairwise_distances_reduction/_base.pxd
| sklearn/metrics/_pairwise_distances_reduction/_base.pyx
| sklearn/metrics/_pairwise_distances_reduction/_datasets_pair.pxd
| sklearn/metrics/_pairwise_distances_reduction/_datasets_pair.pyx
| sklearn/metrics/_pairwise_distances_reduction/_middle_term_computer.pxd
| sklearn/metrics/_pairwise_distances_reduction/_middle_term_computer.pyx
| sklearn/metrics/_pairwise_distances_reduction/_radius_neighbors.pxd
| sklearn/metrics/_pairwise_distances_reduction/_radius_neighbors.pyx
)
'''