@@ -7,6 +7,19 @@ name = "flowsom"
77version = " 0.2.1"
88description = " The complete FlowSOM package known from R, now available in Python!"
99readme = " 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+ ]
1023requires-python = " >=3.10"
1124classifiers = [
1225 " Programming Language :: Python :: 3 :: Only" ,
@@ -15,65 +28,51 @@ classifiers = [
1528 " Programming Language :: Python :: 3.12" ,
1629 " Programming Language :: Python :: 3.13" ,
1730]
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"
3431dependencies = [
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 " ,
5047]
5148
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" ,
7268]
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"
7473
7574[tool .hatch .build .targets .wheel ]
76- packages = [' src/flowsom' ]
75+ packages = [ ' src/flowsom' ]
7776
7877[tool .hatch .envs .default ]
7978installer = " uv"
@@ -88,32 +87,13 @@ scripts.clean = "git clean -fdX -- {args:docs}"
8887[tool .hatch .envs .hatch-test ]
8988features = [ " test" ]
9089
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-
10790[tool .ruff ]
10891line-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" ]
11494
115- [ tool . ruff . lint ]
116- select = [
95+ format.docstring-code-format = true
96+ lint. select = [
11797 " B" , # flake8-bugbear
11898 " BLE" , # flake8-blind-except
11999 " C4" , # flake8-comprehensions
@@ -126,7 +106,7 @@ select = [
126106 " UP" , # pyupgrade
127107 " W" , # Warning detected by Pycodestyle
128108]
129- ignore = [
109+ lint. ignore = [
130110 " B008" , # Errors from function calls in argument defaults. These are fine when the result is immutable.
131111 " D100" , # Missing docstring in public module
132112 " D104" , # Missing docstring in public package
@@ -141,23 +121,35 @@ ignore = [
141121 " E731" , # Do not assign a lambda expression, use a def -> lambda expression assignments are convenient
142122 " E741" , # allow I, O, l as variable names -> I is the identity matrix
143123]
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"
144128
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" ]
147139
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 " ]
152144
153145[tool .cruft ]
154146skip = [
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" ,
163155]
0 commit comments