@@ -7,6 +7,19 @@ name = "flowsom"
7
7
version = " 0.2.1"
8
8
description = " The complete FlowSOM package known from R, now available in Python!"
9
9
readme = " README.md"
10
+ license = { file = " LICENSE" }
11
+ maintainers = [
12
+ {
name =
" Artuur Couckuyt" ,
email =
" [email protected] " },
13
+ {
name =
" Benjamin Rombaut" ,
email =
" [email protected] " },
14
+ {
name =
" Yvan Saeys" ,
email =
" [email protected] " },
15
+ {
name =
" Sofie Van Gassen" ,
email =
" [email protected] " },
16
+ ]
17
+ authors = [
18
+ {
name =
" Artuur Couckuyt" ,
email =
" [email protected] " },
19
+ {
name =
" Benjamin Rombaut" ,
email =
" [email protected] " },
20
+ {
name =
" Yvan Saeys" ,
email =
" [email protected] " },
21
+ {
name =
" Sofie Van Gassen" ,
email =
" [email protected] " },
22
+ ]
10
23
requires-python = " >=3.10"
11
24
classifiers = [
12
25
" Programming Language :: Python :: 3 :: Only" ,
@@ -15,65 +28,51 @@ classifiers = [
15
28
" Programming Language :: Python :: 3.12" ,
16
29
" Programming Language :: Python :: 3.13" ,
17
30
]
18
- license = { file = " LICENSE" }
19
- authors = [
20
- {
name =
" Artuur Couckuyt" ,
email =
" [email protected] " },
21
- {
name =
" Benjamin Rombaut" ,
email =
" [email protected] " },
22
- {
name =
" Yvan Saeys" ,
email =
" [email protected] " },
23
- {
name =
" Sofie Van Gassen" ,
email =
" [email protected] " },
24
- ]
25
- maintainers = [
26
- {
name =
" Artuur Couckuyt" ,
email =
" [email protected] " },
27
- {
name =
" Benjamin Rombaut" ,
email =
" [email protected] " },
28
- {
name =
" Yvan Saeys" ,
email =
" [email protected] " },
29
- {
name =
" Sofie Van Gassen" ,
email =
" [email protected] " },
30
- ]
31
- urls.Documentation = " https://flowsom.readthedocs.io/en/latest/"
32
- urls.Source = " https://github.com/saeyslab/FlowSOM_Python"
33
- urls.Home-page = " https://github.com/saeyslab/FlowSOM_Python"
34
31
dependencies = [
35
- " mudata " ,
36
- " numpy " ,
37
- " matplotlib " ,
38
- " pandas " ,
39
- " scipy " ,
40
- " readfcs " ,
41
- " scikit-learn " ,
42
- " igraph " ,
43
- # for debug logging (referenced from the issue template)
44
- " session-info2 " ,
45
- " numba " ,
46
- " scanpy " ,
47
- " seaborn" ,
48
- " anndata " ,
49
- " loguru " ,
32
+ " anndata " ,
33
+ " igraph " ,
34
+ " loguru " ,
35
+ " matplotlib " ,
36
+ " mudata " ,
37
+ " numba " ,
38
+ " numpy " ,
39
+ " pandas " ,
40
+ " readfcs " ,
41
+ " scanpy " ,
42
+ " scikit-learn " ,
43
+ " scipy " ,
44
+ " seaborn" ,
45
+ # for debug logging (referenced from the issue template)
46
+ " session-info2 " ,
50
47
]
51
48
52
- [project .optional-dependencies ]
53
- dev = [" pre-commit" , " twine>=4.0.2" ]
54
- doc = [
55
- " docutils>=0.8,!=0.18.*,!=0.19.*" ,
56
- " sphinx>=4" ,
57
- " sphinx-book-theme>=1" ,
58
- " myst-nb>=1.1" ,
59
- " sphinxcontrib-bibtex>=1" ,
60
- " sphinx-autodoc-typehints" ,
61
- " sphinxext-opengraph" ,
62
- " sphinx-copybutton" ,
63
- " sphinx-tabs" ,
64
- " pandas" ,
65
- # Until pybtex >0.24.0 releases: https://bitbucket.org/pybtex-devs/pybtex/issues/169/
66
- " setuptools" ,
67
- # For notebooks
68
- " ipykernel" ,
69
- " ipython" ,
70
- # For example notebooks
71
- " pytometry>=0.1.5" ,
49
+ optional-dependencies.dev = [ " pre-commit" , " twine>=4.0.2" ]
50
+ optional-dependencies.doc = [
51
+ " docutils>=0.8,!=0.18.*,!=0.19.*" ,
52
+ # For notebooks
53
+ " ipykernel" ,
54
+ " ipython" ,
55
+ " myst-nb>=1.1" ,
56
+ " pandas" ,
57
+ # For example notebooks
58
+ " pytometry>=0.1.5" ,
59
+ # Until pybtex >0.24.0 releases: https://bitbucket.org/pybtex-devs/pybtex/issues/169/
60
+ " setuptools" ,
61
+ " sphinx>=4" ,
62
+ " sphinx-autodoc-typehints" ,
63
+ " sphinx-book-theme>=1" ,
64
+ " sphinx-copybutton" ,
65
+ " sphinx-tabs" ,
66
+ " sphinxcontrib-bibtex>=1" ,
67
+ " sphinxext-opengraph" ,
72
68
]
73
- test = [" pytest" , " coverage" ]
69
+ optional-dependencies.test = [ " coverage" , " pytest" ]
70
+ urls.Documentation = " https://flowsom.readthedocs.io/en/latest/"
71
+ urls.Home-page = " https://github.com/saeyslab/FlowSOM_Python"
72
+ urls.Source = " https://github.com/saeyslab/FlowSOM_Python"
74
73
75
74
[tool .hatch .build .targets .wheel ]
76
- packages = [' src/flowsom' ]
75
+ packages = [ ' src/flowsom' ]
77
76
78
77
[tool .hatch .envs .default ]
79
78
installer = " uv"
@@ -88,32 +87,13 @@ scripts.clean = "git clean -fdX -- {args:docs}"
88
87
[tool .hatch .envs .hatch-test ]
89
88
features = [ " test" ]
90
89
91
- [tool .coverage .run ]
92
- source = [" flowsom" ]
93
- omit = [" **/test_*.py" ]
94
-
95
- [tool .pytest .ini_options ]
96
- testpaths = [ " tests" ]
97
- xfail_strict = true
98
- addopts = [
99
- " --import-mode=importlib" , # allow using test files with same name
100
- ]
101
-
102
- [tool .fawltydeps ]
103
- code = [" src" ] # Only search for imports under ./src
104
- deps = [" pyproject.toml" ] # Only look for declared dependencies here
105
- ignore_undeclared = [" flowsom" ]
106
-
107
90
[tool .ruff ]
108
91
line-length = 120
109
- src = [" src" ]
110
- extend-include = [" *.ipynb" ]
111
-
112
- [tool .ruff .format ]
113
- docstring-code-format = true
92
+ src = [ " src" ]
93
+ extend-include = [ " *.ipynb" ]
114
94
115
- [ tool . ruff . lint ]
116
- select = [
95
+ format.docstring-code-format = true
96
+ lint. select = [
117
97
" B" , # flake8-bugbear
118
98
" BLE" , # flake8-blind-except
119
99
" C4" , # flake8-comprehensions
@@ -126,7 +106,7 @@ select = [
126
106
" UP" , # pyupgrade
127
107
" W" , # Warning detected by Pycodestyle
128
108
]
129
- ignore = [
109
+ lint. ignore = [
130
110
" B008" , # Errors from function calls in argument defaults. These are fine when the result is immutable.
131
111
" D100" , # Missing docstring in public module
132
112
" D104" , # Missing docstring in public package
@@ -141,23 +121,35 @@ ignore = [
141
121
" E731" , # Do not assign a lambda expression, use a def -> lambda expression assignments are convenient
142
122
" E741" , # allow I, O, l as variable names -> I is the identity matrix
143
123
]
124
+ lint.per-file-ignores."*/__init__.py" = [ " F401" ]
125
+ lint.per-file-ignores."docs/*" = [ " I" ]
126
+ lint.per-file-ignores."tests/*" = [ " D" ]
127
+ lint.pydocstyle.convention = " numpy"
144
128
145
- [tool .ruff .lint .pydocstyle ]
146
- convention = " numpy"
129
+ [tool .pytest .ini_options ]
130
+ testpaths = [ " tests" ]
131
+ xfail_strict = true
132
+ addopts = [
133
+ " --import-mode=importlib" , # allow using test files with same name
134
+ ]
135
+
136
+ [tool .coverage .run ]
137
+ source = [ " flowsom" ]
138
+ omit = [ " **/test_*.py" ]
147
139
148
- [tool .ruff . lint . per-file-ignores ]
149
- "docs/*" = [" I " ]
150
- "tests/*" = [" D " ]
151
- "*/__init__.py" = [" F401 " ]
140
+ [tool .fawltydeps ]
141
+ code = [ " src " ] # Only search for imports under ./src
142
+ deps = [ " pyproject.toml " ] # Only look for declared dependencies here
143
+ ignore_undeclared = [ " flowsom " ]
152
144
153
145
[tool .cruft ]
154
146
skip = [
155
- " tests" ,
156
- " src/**/__init__.py" ,
157
- " src/**/basic.py" ,
158
- " docs/api.md" ,
159
- " docs/changelog.md" ,
160
- " docs/references.bib" ,
161
- " docs/references.md" ,
162
- " docs/notebooks/example.ipynb" ,
147
+ " tests" ,
148
+ " src/**/__init__.py" ,
149
+ " src/**/basic.py" ,
150
+ " docs/api.md" ,
151
+ " docs/changelog.md" ,
152
+ " docs/references.bib" ,
153
+ " docs/references.md" ,
154
+ " docs/notebooks/example.ipynb" ,
163
155
]
0 commit comments