-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathpyproject.toml
148 lines (135 loc) · 4.29 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
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
[build-system]
requires = ["setuptools", "setuptools-scm"]
build-backend = "setuptools.build_meta"
[project]
name = "nemos"
version = "0.1.6"
authors = [{name = "nemos authors"}]
description = "NEural MOdelS, a statistical modeling framework for neuroscience."
readme = "README.md"
requires-python = ">=3.10"
keywords = ["neuroscience", "Poisson-GLM"]
license = { file = "LICENSE" }
classifiers = [
"Intended Audience :: Science/Research",
"Natural Language :: English",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12"
]
# Define dependencies for the project
dependencies = [
"jax>=0.4.28", # Numerical computing library
"jaxopt>=0.6", # Optimization library built on JAX
"numpy>1.20", # Numerical computing library
"scipy>=1.10", # Scientific computing library
"typing_extensions>=4.6", # Typing extensions for Python
"pynapple>=0.6.6",
]
# Configure package discovery for setuptools
[tool.setuptools.packages.find]
where = ["src"] # The directory where package modules are located
include = ["nemos"] # The specific package(s) to include in the distribution
# Define optional dependencies for the project
[project.optional-dependencies]
dev = [
"black", # Code formatter
"isort", # Import sorter
"pip-tools", # Dependency management
"pytest", # Testing framework
"pytest-xdist", # Parallelize pytest
"flake8", # Code linter
"coverage", # Test coverage measurement
"pytest-cov", # Test coverage plugin for pytest
"statsmodels", # Used to compare model pseudo-r2 in testing
"scikit-learn", # Testing compatibility with CV & pipelines
"matplotlib>=3.7", # Needed by doctest to run docstrings examples
"pooch", # Required by doctest for fetch module
"dandi", # Required by doctest for fetch module
"seaborn", # Required by doctest for _documentation_utils module
"myst-nb", # Test myst_nb utils for glue
]
docs = [
"numpydoc",
"sphinx",
"pydata-sphinx-theme",
"sphinx-autodoc-typehints",
"sphinx-copybutton",
"sphinx-design",
"sphinx-issues",
"sphinxcontrib-apidoc",
"sphinx-togglebutton",
"sphinx_code_tabs",
"sphinxemoji",
"myst-parser",
"myst-nb",
"dandi",
"sphinx-autobuild",
"sphinx-contributors",
"scikit-learn",
"dandi",
"matplotlib>=3.7",
"seaborn",
"pooch",
"ipywidgets",
"ipykernel",
"patsy",
]
examples = [
"scikit-learn",
"dandi",
"matplotlib>=3.7",
"seaborn",
"pooch",
"fsspec",
"patsy",
]
[tool.black]
target-version = ['py38', 'py39', 'py310']
skip-string-normalization = false
exclude = '''
(
/(
\.eggs
| \.git
| \.hg
| \.mypy_cache
| \.md
| \.toml
| \.cfg
| \.txt
| \.tox
| \.venv
| _build
| buck-out
| build
| dist
| examples))'''
# Configure isort
[tool.isort]
multi_line_output = 3 # Use three-line style for multi-line imports
include_trailing_comma = true # Include trailing comma in multi-line imports
profile = "black"
# Configure pytest
[tool.pytest.ini_options]
testpaths = ["tests"] # Specify the directory where test files are located
filterwarnings = [
# note the use of single quote below to denote "raw" strings in TOML
# this is raised whenever one imports the plotting utils
'ignore:plotting functions contained within:UserWarning',
# numerical inversion test reaches tolerance...
'ignore:Tolerance of -?\d\.\d+e-\d\d reached:RuntimeWarning',
# mpl must be non-interctive for testing otherwise doctests will freeze
'ignore:FigureCanvasAgg is non-interactive, and thus cannot be shown:UserWarning',
]
[tool.coverage.run]
omit = [
"src/nemos/fetch/*",
"src/nemos/_documentation_utils/*",
]
[tool.coverage.report]
exclude_lines = [
"@abc.abstractmethod",
"if __name__ == .__main__.:"
]