-
Notifications
You must be signed in to change notification settings - Fork 26
Expand file tree
/
Copy pathpyproject.toml
More file actions
201 lines (188 loc) · 6.01 KB
/
pyproject.toml
File metadata and controls
201 lines (188 loc) · 6.01 KB
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
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
[build-system]
build-backend = "hatchling.build"
requires = ["hatch-vcs", "hatchling"]
[project]
authors = [
{ email = "dan@mccloy.info", name = "Daniel McCloy" },
{ email = "larsoner@uw.edu", name = "Eric Larson" },
{ email = "rkmaddox@uw.edu", name = "Ross Maddox" },
]
classifiers = [
"Intended Audience :: Science/Research",
"Intended Audience :: Developers",
"Programming Language :: Python",
"Topic :: Software Development",
"Topic :: Scientific/Engineering",
"Operating System :: Microsoft :: Windows",
"Operating System :: POSIX",
"Operating System :: Unix",
"Operating System :: MacOS",
]
dependencies = [
"decorator",
"h5io",
"matplotlib",
"numpy",
"packaging",
"pillow",
"pyglet >=2,!=2.1.10",
"scipy",
]
description = "A high-precision auditory and visual stimulus delivery library for psychoacoustics in Python."
dynamic = ["version"]
keywords = ["experiment", "stimuli", "psychoacoustics", "psychophysics"]
license = "BSD-3-Clause"
license-files = ["LICENSE"]
maintainers = [
{ email = "dan@mccloy.info", name = "Daniel McCloy" },
{ email = "larsoner@uw.edu", name = "Eric Larson" },
]
name = "expyfun"
readme = { content-type = "text/x-rst", file = "README.rst" }
requires-python = ">=3.10"
[project.optional-dependencies]
all = [
"joblib", # _crm_prepare_corpus_helper
"mne", # resampling, window_edges, texture stimuli
"pandas", # barplot
"pyparallel", # parallel port triggering
"rtmixer", # sound card backend
"tdtpy ; platform_system=='Windows'", # TDT
]
[dependency-groups]
docs = ["numpydoc", "pydata-sphinx-theme", "sphinx-gallery", "sphinx"]
test = ["flaky", "pytest-cov", "pytest-timeout", "pytest"]
dev = [
"build",
"pre-commit",
{ include-group = "docs" },
{ include-group = "test" },
]
[tool.codespell]
ignore-words = "ignore_words.txt"
builtin = "clear,rare,informal,names,usage"
skip = "doc/references.bib"
[tool.ruff]
exclude = ["__init__.py"]
[tool.ruff.lint]
select = ["A", "B006", "D", "E", "F", "I", "W", "UP"] # , "UP031"]
ignore = [
"D100", # Missing docstring in public module
"D104", # Missing docstring in public package
"D400", # First line should end with a period
"D401", # First line should be in imperative mood
"D413", # Missing blank line after last section
"UP031", # Use format specifiers instead of percent format
"UP030", # Use implicit references for positional format fields
]
[tool.ruff.lint.pydocstyle]
convention = "numpy"
ignore-decorators = [
"property",
"setter",
"mne.utils.copy_function_doc_to_method_doc",
"mne.utils.copy_doc",
"mne.utils.deprecated",
]
[tool.ruff.lint.per-file-ignores]
"examples/**.py" = [
"D205", # 1 blank line required between summary line and description
]
[tool.pytest.ini_options]
# -r f (failed), E (error), s (skipped), x (xfail), X (xpassed), w (warnings)
# don't put in xfail for pytest 8.0+ because then it prints the tracebacks,
# which look like real errors
addopts = """--durations=20 --doctest-modules -rfEXs --cov-report= --tb=short \
--cov-branch --doctest-ignore-import-errors --junit-xml=junit-results.xml \
--ignore=doc --ignore=examples --ignore=tools \
--color=yes --capture=sys"""
junit_family = "xunit2"
# Set this pretty low to ensure we do not by default add really long tests,
# or make changes that make things a lot slower
timeout = 15
usefixtures = "matplotlib_config"
# Once SciPy updates not to have non-integer and non-tuple errors (1.2.0) we
# should remove them from here.
# This list should also be considered alongside reset_warnings in doc/conf.py
filterwarnings = '''
error::
ignore::ImportWarning
ignore:TDT is in dummy mode:UserWarning
ignore:generator 'ZipRunIterator.ranges' raised StopIteration:DeprecationWarning
ignore:size changed:RuntimeWarning
ignore:Using or importing the ABCs:DeprecationWarning
ignore:joblib not installed:RuntimeWarning
ignore:Matplotlib is building the font cache using fc-list:UserWarning
ignore:.*clock has been deprecated.*:DeprecationWarning
ignore:the imp module is deprecated.*:DeprecationWarning
ignore:.*eos_action is deprecated.*:DeprecationWarning
ignore:.*Vertex attribute shorthand.*:
ignore:.*ufunc size changed.*:RuntimeWarning
ignore:.*doc-files.*:
ignore:.*include is ignored because.*:
always:.*unclosed file.*:ResourceWarning
always:.*may indicate binary incompatibility.*:
ignore:.*Cannot change thread mode after it is set.*:UserWarning
ignore:.*distutils Version classes are deprecated.*:DeprecationWarning
ignore:.*distutils\.sysconfig module is deprecated.*:DeprecationWarning
ignore:.*isSet\(\) is deprecated.*:DeprecationWarning
ignore:`product` is deprecated as of NumPy.*:DeprecationWarning
ignore:Invalid dash-separated options.*:
ignore:__array__ implementation doesn.*:DeprecationWarning
ignore:'.*' deprecated - use '.*'.*:DeprecationWarning
always:Exception in thread .*:pytest.PytestUnhandledThreadExceptionWarning
always:.*Exception ignored in.*__del__.*:
'''
[tool.rstcheck]
report_level = "WARNING"
ignore_roles = [
"attr",
"class",
"doc",
"eq",
"exc",
"file",
"footcite",
"footcite:t",
"func",
"gh",
"kbd",
"meth",
"mod",
"newcontrib",
"py:mod",
"py:obj",
"obj",
"ref",
"samp",
"term",
]
ignore_directives = [
"autoclass",
"autofunction",
"automodule",
"autosummary",
"bibliography",
"cssclass",
"currentmodule",
"dropdown",
"footbibliography",
"glossary",
"graphviz",
"grid",
"highlight",
"minigallery",
"tabularcolumns",
"toctree",
"rst-class",
"tab-set",
"towncrier-draft-entries",
]
ignore_messages = "^.*(Unknown target name|Undefined substitution referenced)[^`]*$"
[tool.hatch.version]
raw-options = { version_scheme = "release-branch-semver" }
source = "vcs"
[tool.hatch.build.targets.sdist.force-include]
"expyfun/data" = "expyfun/data"
[tool.hatch.build.targets.wheel.force-include]
"expyfun/data" = "expyfun/data"