-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathpyproject.toml
135 lines (122 loc) · 3.69 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
[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
]
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",
]
examples = [
"scikit-learn",
"dandi",
"matplotlib>=3.7",
"seaborn",
"pooch",
"fsspec",
]
[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
[tool.coverage.run]
omit = [
"src/nemos/fetch/*",
"src/nemos/_documentation_utils/*",
]
[tool.coverage.report]
exclude_lines = [
"@abc.abstractmethod",
"if __name__ == .__main__.:"
]