-
Notifications
You must be signed in to change notification settings - Fork 8
/
pyproject.toml
128 lines (115 loc) · 3.96 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
[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 = [
"mkdocs", # Documentation generator
"mkdocstrings[python]", # Python-specific plugin for mkdocs
"mkdocs-section-index", # Plugin for generating a section index in mkdocs
"mkdocs-gen-files", # Plugin for generating additional files in mkdocs
"mkdocs-literate-nav>=0.6.1", # Plugin for literate-style navigation in mkdocs
"mkdocs-gallery", # Plugin for adding image galleries to mkdocs
"mkdocs-material", # Material theme for mkdocs
"mkdocs-autorefs>=0.5",
"mkdocs-linkcheck", # Check relative links
"scikit-learn",
"dandi",
"matplotlib>=3.7",
"seaborn",
"pooch",
]
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
addopts = "-n auto"
[tool.coverage.run]
omit = [
"src/nemos/fetch/*",
"src/nemos/_documentation_utils/*",
]
[tool.coverage.report]
exclude_lines = [
"@abc.abstractmethod",
"if __name__ == .__main__.:"
]