napari-nuclephaser 0.0.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. napari_nuclephaser-0.0.1/.github/dependabot.yml +14 -0
  2. napari_nuclephaser-0.0.1/.github/workflows/test_and_deploy.yml +91 -0
  3. napari_nuclephaser-0.0.1/.gitignore +84 -0
  4. napari_nuclephaser-0.0.1/.napari-hub/DESCRIPTION.md +9 -0
  5. napari_nuclephaser-0.0.1/.napari-hub/config.yml +11 -0
  6. napari_nuclephaser-0.0.1/.pre-commit-config.yaml +27 -0
  7. napari_nuclephaser-0.0.1/LICENSE +21 -0
  8. napari_nuclephaser-0.0.1/MANIFEST.in +5 -0
  9. napari_nuclephaser-0.0.1/PKG-INFO +144 -0
  10. napari_nuclephaser-0.0.1/README.md +69 -0
  11. napari_nuclephaser-0.0.1/pyproject.toml +131 -0
  12. napari_nuclephaser-0.0.1/setup.cfg +4 -0
  13. napari_nuclephaser-0.0.1/src/napari_nuclephaser/__init__.py +2 -0
  14. napari_nuclephaser-0.0.1/src/napari_nuclephaser/_tests/__init__.py +0 -0
  15. napari_nuclephaser-0.0.1/src/napari_nuclephaser/_tests/test_widget_calibrate_with_dapi.py +154 -0
  16. napari_nuclephaser-0.0.1/src/napari_nuclephaser/_tests/test_widget_calibrate_with_known_number.py +69 -0
  17. napari_nuclephaser-0.0.1/src/napari_nuclephaser/_tests/test_widget_calibrate_with_points.py +151 -0
  18. napari_nuclephaser-0.0.1/src/napari_nuclephaser/_tests/test_widget_make_points.py +186 -0
  19. napari_nuclephaser-0.0.1/src/napari_nuclephaser/_tests/test_widget_predict_on_stack.py +134 -0
  20. napari_nuclephaser-0.0.1/src/napari_nuclephaser/_version.py +21 -0
  21. napari_nuclephaser-0.0.1/src/napari_nuclephaser/_widget.py +1068 -0
  22. napari_nuclephaser-0.0.1/src/napari_nuclephaser/models/Fluorescent nuclei detectors/dapi_v5.pt +0 -0
  23. napari_nuclephaser-0.0.1/src/napari_nuclephaser/models/ND_v11n.pt +0 -0
  24. napari_nuclephaser-0.0.1/src/napari_nuclephaser/models/ND_v11s.pt +0 -0
  25. napari_nuclephaser-0.0.1/src/napari_nuclephaser/models/ND_v5n.pt +0 -0
  26. napari_nuclephaser-0.0.1/src/napari_nuclephaser/models/ND_v5s.pt +0 -0
  27. napari_nuclephaser-0.0.1/src/napari_nuclephaser/napari.yaml +47 -0
  28. napari_nuclephaser-0.0.1/src/napari_nuclephaser.egg-info/PKG-INFO +144 -0
  29. napari_nuclephaser-0.0.1/src/napari_nuclephaser.egg-info/SOURCES.txt +32 -0
  30. napari_nuclephaser-0.0.1/src/napari_nuclephaser.egg-info/dependency_links.txt +1 -0
  31. napari_nuclephaser-0.0.1/src/napari_nuclephaser.egg-info/entry_points.txt +2 -0
  32. napari_nuclephaser-0.0.1/src/napari_nuclephaser.egg-info/requires.txt +26 -0
  33. napari_nuclephaser-0.0.1/src/napari_nuclephaser.egg-info/top_level.txt +1 -0
  34. napari_nuclephaser-0.0.1/tox.ini +33 -0
@@ -0,0 +1,14 @@
1
+ # Dependabot configuration
2
+ # https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuring-dependabot-version-updates#enabling-github-dependabot-version-updates
3
+ # https://til.simonwillison.net/github/dependabot-python-setup
4
+
5
+ version: 2
6
+ updates:
7
+ - package-ecosystem: pip
8
+ directory: "/"
9
+ schedule:
10
+ interval: monthly
11
+ groups:
12
+ python-packages:
13
+ patterns:
14
+ - "*"
@@ -0,0 +1,91 @@
1
+ # This workflows will upload a Python Package using Twine when a release is created
2
+ # For more information see: https://help.github.com/en/actions/language-and-framework-guides/using-python-with-github-actions#publishing-to-package-registries
3
+
4
+ name: tests
5
+
6
+ on:
7
+ push:
8
+ branches:
9
+ - main
10
+ - npe2
11
+ tags:
12
+ - "v*" # Push events to matching v*, i.e. v1.0, v20.15.10
13
+ pull_request:
14
+ branches:
15
+ - main
16
+ - npe2
17
+ workflow_dispatch:
18
+
19
+ jobs:
20
+ test:
21
+ name: ${{ matrix.platform }} py${{ matrix.python-version }}
22
+ runs-on: ${{ matrix.platform }}
23
+ timeout-minutes: 30
24
+ strategy:
25
+ matrix:
26
+ platform: [windows-latest]
27
+ python-version: ["3.10", "3.11", "3.12", "3.13"]
28
+
29
+ steps:
30
+ - uses: actions/checkout@v4
31
+
32
+ - name: Set up Python ${{ matrix.python-version }}
33
+ uses: actions/setup-python@v5
34
+ with:
35
+ python-version: ${{ matrix.python-version }}
36
+
37
+ # these libraries enable testing on Qt on linux
38
+ - uses: tlambert03/setup-qt-libs@v1
39
+
40
+ # strategy borrowed from vispy for installing opengl libs on windows
41
+ - name: Install Windows OpenGL
42
+ if: runner.os == 'Windows'
43
+ run: |
44
+ git clone --depth 1 https://github.com/pyvista/gl-ci-helpers.git
45
+ powershell gl-ci-helpers/appveyor/install_opengl.ps1
46
+
47
+ # note: if you need dependencies from conda, considering using
48
+ # setup-miniconda: https://github.com/conda-incubator/setup-miniconda
49
+ # and
50
+ # tox-conda: https://github.com/tox-dev/tox-conda
51
+ - name: Install dependencies
52
+ run: |
53
+ python -m pip install --upgrade pip
54
+ python -m pip install setuptools tox tox-gh-actions
55
+
56
+ # this runs the platform-specific tests declared in tox.ini
57
+ - name: Test with tox
58
+ uses: aganders3/headless-gui@v2
59
+ with:
60
+ run: python -m tox
61
+ env:
62
+ PLATFORM: ${{ matrix.platform }}
63
+
64
+ - name: Coverage
65
+ uses: codecov/codecov-action@v3
66
+
67
+ deploy:
68
+ # this will run when you have tagged a commit, starting with "v*"
69
+ # and requires that you have put your twine API key in your
70
+ # github secrets (see readme for details)
71
+ needs: [test]
72
+ runs-on: ubuntu-latest
73
+ if: contains(github.ref, 'tags')
74
+ steps:
75
+ - uses: actions/checkout@v4
76
+ - name: Set up Python
77
+ uses: actions/setup-python@v5
78
+ with:
79
+ python-version: "3.x"
80
+ - name: Install dependencies
81
+ run: |
82
+ python -m pip install --upgrade pip
83
+ pip install -U setuptools setuptools_scm wheel twine build
84
+ - name: Build and publish
85
+ env:
86
+ TWINE_USERNAME: __token__
87
+ TWINE_PASSWORD: ${{ secrets.TWINE_API_KEY }}
88
+ run: |
89
+ git tag
90
+ python -m build .
91
+ twine upload dist/*
@@ -0,0 +1,84 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ env/
12
+ build/
13
+ develop-eggs/
14
+ dist/
15
+ downloads/
16
+ eggs/
17
+ .eggs/
18
+ lib/
19
+ lib64/
20
+ parts/
21
+ sdist/
22
+ var/
23
+ *.egg-info/
24
+ .installed.cfg
25
+ *.egg
26
+
27
+ # PyInstaller
28
+ # Usually these files are written by a python script from a template
29
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
30
+ *.manifest
31
+ *.spec
32
+
33
+ # Installer logs
34
+ pip-log.txt
35
+ pip-delete-this-directory.txt
36
+
37
+ # Unit test / coverage reports
38
+ htmlcov/
39
+ .tox/
40
+ .coverage
41
+ .coverage.*
42
+ .cache
43
+ nosetests.xml
44
+ coverage.xml
45
+ *,cover
46
+ .hypothesis/
47
+ .napari_cache
48
+
49
+ # Translations
50
+ *.mo
51
+ *.pot
52
+
53
+ # Django stuff:
54
+ *.log
55
+ local_settings.py
56
+
57
+ # Flask instance folder
58
+ instance/
59
+
60
+ # Sphinx documentation
61
+ docs/_build/
62
+
63
+ # MkDocs documentation
64
+ /site/
65
+
66
+ # PyBuilder
67
+ target/
68
+
69
+ # Pycharm and VSCode
70
+ .idea/
71
+ venv/
72
+ .vscode/
73
+
74
+ # IPython Notebook
75
+ .ipynb_checkpoints
76
+
77
+ # pyenv
78
+ .python-version
79
+
80
+ # OS
81
+ .DS_Store
82
+
83
+ # written by setuptools_scm
84
+ **/_version.py
@@ -0,0 +1,9 @@
1
+ <!-- This file is a placeholder for customizing description of your plugin
2
+ on the napari hub if you wish. The readme file will be used by default if
3
+ you wish not to do any customization for the napari hub listing.
4
+
5
+ If you need some help writing a good description, check out our
6
+ [guide](https://github.com/chanzuckerberg/napari-hub/wiki/Writing-the-Perfect-Description-for-your-Plugin)
7
+ -->
8
+
9
+ The developer has not yet provided a napari-hub specific description.
@@ -0,0 +1,11 @@
1
+ # You may use this file to customize how your plugin page appears
2
+ # on the napari hub: https://www.napari-hub.org/
3
+ # See their wiki for details https://github.com/chanzuckerberg/napari-hub/wiki
4
+
5
+ # Please note that this file should only be used IN ADDITION to entering
6
+ # metadata fields (such as summary, description, authors, and various URLS)
7
+ # in your standard python package metadata (e.g. setup.cfg, setup.py, or
8
+ # pyproject.toml), when you would like those fields to be displayed
9
+ # differently on the hub than in the napari application.
10
+
11
+ visibility: hidden
@@ -0,0 +1,27 @@
1
+ repos:
2
+ - repo: https://github.com/pre-commit/pre-commit-hooks
3
+ rev: v5.0.0
4
+ hooks:
5
+ - id: check-docstring-first
6
+ - id: end-of-file-fixer
7
+ - id: trailing-whitespace
8
+ exclude: ^\.napari-hub/.*
9
+ - id: check-yaml # checks for correct yaml syntax for github actions ex.
10
+ - repo: https://github.com/astral-sh/ruff-pre-commit
11
+ rev: v0.11.2
12
+ hooks:
13
+ - id: ruff
14
+ - repo: https://github.com/psf/black
15
+ rev: 25.1.0
16
+ hooks:
17
+ - id: black
18
+ - repo: https://github.com/tlambert03/napari-plugin-checks
19
+ rev: v0.3.0
20
+ hooks:
21
+ - id: napari-plugin-checks
22
+ # https://mypy.readthedocs.io/en/stable/
23
+ # you may wish to add this as well!
24
+ # - repo: https://github.com/pre-commit/mirrors-mypy
25
+ # rev: v1.9.0
26
+ # hooks:
27
+ # - id: mypy
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 nikvo1
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,5 @@
1
+ include LICENSE
2
+ include README.md
3
+
4
+ recursive-exclude * __pycache__
5
+ recursive-exclude * *.py[co]
@@ -0,0 +1,144 @@
1
+ Metadata-Version: 2.4
2
+ Name: napari-nuclephaser
3
+ Version: 0.0.1
4
+ Summary: A Napari plugin to detect and count nuclei on phase contrast images
5
+ Author: Nikita Voloshin
6
+ Author-email: nikita.voloshin.98@gmail.com
7
+ License: MIT License
8
+
9
+ Copyright (c) 2025 nikvo1
10
+
11
+ Permission is hereby granted, free of charge, to any person obtaining a copy
12
+ of this software and associated documentation files (the "Software"), to deal
13
+ in the Software without restriction, including without limitation the rights
14
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
15
+ copies of the Software, and to permit persons to whom the Software is
16
+ furnished to do so, subject to the following conditions:
17
+
18
+ The above copyright notice and this permission notice shall be included in all
19
+ copies or substantial portions of the Software.
20
+
21
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
24
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
25
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
26
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
27
+ SOFTWARE.
28
+
29
+ Project-URL: Bug Tracker, https://github.com/nikvo1/napari-nuclephaser/issues
30
+ Project-URL: Documentation, https://github.com/nikvo1/napari-nuclephaser#README.md
31
+ Project-URL: Source Code, https://github.com/nikvo1/napari-nuclephaser
32
+ Project-URL: User Support, https://github.com/nikvo1/napari-nuclephaser/issues
33
+ Classifier: Development Status :: 2 - Pre-Alpha
34
+ Classifier: Framework :: napari
35
+ Classifier: Intended Audience :: Developers
36
+ Classifier: License :: OSI Approved :: MIT License
37
+ Classifier: Operating System :: OS Independent
38
+ Classifier: Programming Language :: Python
39
+ Classifier: Programming Language :: Python :: 3
40
+ Classifier: Programming Language :: Python :: 3 :: Only
41
+ Classifier: Programming Language :: Python :: 3.10
42
+ Classifier: Programming Language :: Python :: 3.11
43
+ Classifier: Programming Language :: Python :: 3.12
44
+ Classifier: Programming Language :: Python :: 3.13
45
+ Classifier: Topic :: Scientific/Engineering :: Image Processing
46
+ Requires-Python: >=3.10
47
+ Description-Content-Type: text/markdown
48
+ License-File: LICENSE
49
+ Requires-Dist: setuptools
50
+ Requires-Dist: wheel
51
+ Requires-Dist: napari
52
+ Requires-Dist: ultralytics
53
+ Requires-Dist: yolov5
54
+ Requires-Dist: magicgui
55
+ Requires-Dist: sahi
56
+ Requires-Dist: scikit-image
57
+ Requires-Dist: torch
58
+ Requires-Dist: pathlib
59
+ Requires-Dist: numpy
60
+ Requires-Dist: typing
61
+ Requires-Dist: pandas
62
+ Requires-Dist: openpyxl
63
+ Requires-Dist: seaborn
64
+ Requires-Dist: opencv-python
65
+ Requires-Dist: imagecodecs
66
+ Provides-Extra: testing
67
+ Requires-Dist: tox; extra == "testing"
68
+ Requires-Dist: pytest; extra == "testing"
69
+ Requires-Dist: pytest-cov; extra == "testing"
70
+ Requires-Dist: pytest-qt; extra == "testing"
71
+ Requires-Dist: pytest-mock; extra == "testing"
72
+ Requires-Dist: napari; extra == "testing"
73
+ Requires-Dist: pyqt5; extra == "testing"
74
+ Dynamic: license-file
75
+
76
+ # napari-nuclephaser
77
+
78
+ [![License MIT](https://img.shields.io/pypi/l/napari-nuclephaser.svg?color=green)](https://github.com/nikvo1/napari-nuclephaser/raw/main/LICENSE)
79
+ [![PyPI](https://img.shields.io/pypi/v/napari-nuclephaser.svg?color=green)](https://pypi.org/project/napari-nuclephaser)
80
+ [![Python Version](https://img.shields.io/pypi/pyversions/napari-nuclephaser.svg?color=green)](https://python.org)
81
+ [![tests](https://github.com/nikvo1/napari-nuclephaser/workflows/tests/badge.svg)](https://github.com/nikvo1/napari-nuclephaser/actions)
82
+ [![codecov](https://codecov.io/gh/nikvo1/napari-nuclephaser/branch/main/graph/badge.svg)](https://codecov.io/gh/nikvo1/napari-nuclephaser)
83
+ [![napari hub](https://img.shields.io/endpoint?url=https://api.napari-hub.org/shields/napari-nuclephaser)](https://napari-hub.org/plugins/napari-nuclephaser)
84
+ [![npe2](https://img.shields.io/badge/plugin-npe2-blue?link=https://napari.org/stable/plugins/index.html)](https://napari.org/stable/plugins/index.html)
85
+ [![Copier](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/copier-org/copier/master/img/badge/badge-grayscale-inverted-border-purple.json)](https://github.com/copier-org/copier)
86
+
87
+ A Napari plugin to detect and count nuclei on phase contrast images
88
+
89
+ ----------------------------------
90
+
91
+ This [napari] plugin was generated with [copier] using the [napari-plugin-template].
92
+
93
+ <!--
94
+ Don't miss the full getting started guide to set up your new package:
95
+ https://github.com/napari/napari-plugin-template#getting-started
96
+
97
+ and review the napari docs for plugin developers:
98
+ https://napari.org/stable/plugins/index.html
99
+ -->
100
+
101
+ ## Installation
102
+
103
+ You can install `napari-nuclephaser` via [pip]:
104
+
105
+ pip install napari-nuclephaser
106
+
107
+
108
+
109
+ To install latest development version :
110
+
111
+ pip install git+https://github.com/nikvo1/napari-nuclephaser.git
112
+
113
+
114
+ ## Contributing
115
+
116
+ Contributions are very welcome. Tests can be run with [tox], please ensure
117
+ the coverage at least stays the same before you submit a pull request.
118
+
119
+ ## License
120
+
121
+ Distributed under the terms of the [MIT] license,
122
+ "napari-nuclephaser" is free and open source software
123
+
124
+ ## Issues
125
+
126
+ If you encounter any problems, please [file an issue] along with a detailed description.
127
+
128
+ [napari]: https://github.com/napari/napari
129
+ [copier]: https://copier.readthedocs.io/en/stable/
130
+ [@napari]: https://github.com/napari
131
+ [MIT]: http://opensource.org/licenses/MIT
132
+ [BSD-3]: http://opensource.org/licenses/BSD-3-Clause
133
+ [GNU GPL v3.0]: http://www.gnu.org/licenses/gpl-3.0.txt
134
+ [GNU LGPL v3.0]: http://www.gnu.org/licenses/lgpl-3.0.txt
135
+ [Apache Software License 2.0]: http://www.apache.org/licenses/LICENSE-2.0
136
+ [Mozilla Public License 2.0]: https://www.mozilla.org/media/MPL/2.0/index.txt
137
+ [napari-plugin-template]: https://github.com/napari/napari-plugin-template
138
+
139
+ [file an issue]: https://github.com/nikvo1/napari-nuclephaser/issues
140
+
141
+ [napari]: https://github.com/napari/napari
142
+ [tox]: https://tox.readthedocs.io/en/latest/
143
+ [pip]: https://pypi.org/project/pip/
144
+ [PyPI]: https://pypi.org/
@@ -0,0 +1,69 @@
1
+ # napari-nuclephaser
2
+
3
+ [![License MIT](https://img.shields.io/pypi/l/napari-nuclephaser.svg?color=green)](https://github.com/nikvo1/napari-nuclephaser/raw/main/LICENSE)
4
+ [![PyPI](https://img.shields.io/pypi/v/napari-nuclephaser.svg?color=green)](https://pypi.org/project/napari-nuclephaser)
5
+ [![Python Version](https://img.shields.io/pypi/pyversions/napari-nuclephaser.svg?color=green)](https://python.org)
6
+ [![tests](https://github.com/nikvo1/napari-nuclephaser/workflows/tests/badge.svg)](https://github.com/nikvo1/napari-nuclephaser/actions)
7
+ [![codecov](https://codecov.io/gh/nikvo1/napari-nuclephaser/branch/main/graph/badge.svg)](https://codecov.io/gh/nikvo1/napari-nuclephaser)
8
+ [![napari hub](https://img.shields.io/endpoint?url=https://api.napari-hub.org/shields/napari-nuclephaser)](https://napari-hub.org/plugins/napari-nuclephaser)
9
+ [![npe2](https://img.shields.io/badge/plugin-npe2-blue?link=https://napari.org/stable/plugins/index.html)](https://napari.org/stable/plugins/index.html)
10
+ [![Copier](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/copier-org/copier/master/img/badge/badge-grayscale-inverted-border-purple.json)](https://github.com/copier-org/copier)
11
+
12
+ A Napari plugin to detect and count nuclei on phase contrast images
13
+
14
+ ----------------------------------
15
+
16
+ This [napari] plugin was generated with [copier] using the [napari-plugin-template].
17
+
18
+ <!--
19
+ Don't miss the full getting started guide to set up your new package:
20
+ https://github.com/napari/napari-plugin-template#getting-started
21
+
22
+ and review the napari docs for plugin developers:
23
+ https://napari.org/stable/plugins/index.html
24
+ -->
25
+
26
+ ## Installation
27
+
28
+ You can install `napari-nuclephaser` via [pip]:
29
+
30
+ pip install napari-nuclephaser
31
+
32
+
33
+
34
+ To install latest development version :
35
+
36
+ pip install git+https://github.com/nikvo1/napari-nuclephaser.git
37
+
38
+
39
+ ## Contributing
40
+
41
+ Contributions are very welcome. Tests can be run with [tox], please ensure
42
+ the coverage at least stays the same before you submit a pull request.
43
+
44
+ ## License
45
+
46
+ Distributed under the terms of the [MIT] license,
47
+ "napari-nuclephaser" is free and open source software
48
+
49
+ ## Issues
50
+
51
+ If you encounter any problems, please [file an issue] along with a detailed description.
52
+
53
+ [napari]: https://github.com/napari/napari
54
+ [copier]: https://copier.readthedocs.io/en/stable/
55
+ [@napari]: https://github.com/napari
56
+ [MIT]: http://opensource.org/licenses/MIT
57
+ [BSD-3]: http://opensource.org/licenses/BSD-3-Clause
58
+ [GNU GPL v3.0]: http://www.gnu.org/licenses/gpl-3.0.txt
59
+ [GNU LGPL v3.0]: http://www.gnu.org/licenses/lgpl-3.0.txt
60
+ [Apache Software License 2.0]: http://www.apache.org/licenses/LICENSE-2.0
61
+ [Mozilla Public License 2.0]: https://www.mozilla.org/media/MPL/2.0/index.txt
62
+ [napari-plugin-template]: https://github.com/napari/napari-plugin-template
63
+
64
+ [file an issue]: https://github.com/nikvo1/napari-nuclephaser/issues
65
+
66
+ [napari]: https://github.com/napari/napari
67
+ [tox]: https://tox.readthedocs.io/en/latest/
68
+ [pip]: https://pypi.org/project/pip/
69
+ [PyPI]: https://pypi.org/
@@ -0,0 +1,131 @@
1
+ [project]
2
+ name = "napari-nuclephaser"
3
+ dynamic = ["version"]
4
+ description = "A Napari plugin to detect and count nuclei on phase contrast images"
5
+ readme = "README.md"
6
+ license = {file = "LICENSE"}
7
+ authors = [
8
+ {name = "Nikita Voloshin"},
9
+ {email = "nikita.voloshin.98@gmail.com"},
10
+ ]
11
+ classifiers = [
12
+ "Development Status :: 2 - Pre-Alpha",
13
+ "Framework :: napari",
14
+ "Intended Audience :: Developers",
15
+ "License :: OSI Approved :: MIT License",
16
+ "Operating System :: OS Independent",
17
+ "Programming Language :: Python",
18
+ "Programming Language :: Python :: 3",
19
+ "Programming Language :: Python :: 3 :: Only",
20
+ "Programming Language :: Python :: 3.10",
21
+ "Programming Language :: Python :: 3.11",
22
+ "Programming Language :: Python :: 3.12",
23
+ "Programming Language :: Python :: 3.13",
24
+ "Topic :: Scientific/Engineering :: Image Processing",
25
+ ]
26
+ requires-python = ">=3.10"
27
+ dependencies = ["setuptools",
28
+ "wheel",
29
+ "napari",
30
+ "ultralytics",
31
+ "yolov5",
32
+ "magicgui",
33
+ "sahi",
34
+ "scikit-image",
35
+ "torch",
36
+ "pathlib",
37
+ "numpy",
38
+ "typing",
39
+ "pandas",
40
+ "openpyxl",
41
+ "seaborn",
42
+ "opencv-python",
43
+ "imagecodecs"]
44
+
45
+ [project.optional-dependencies]
46
+ testing = [
47
+ "tox",
48
+ "pytest", # https://docs.pytest.org/en/latest/contents.html
49
+ "pytest-cov", # https://pytest-cov.readthedocs.io/en/latest/
50
+ "pytest-qt",
51
+ "pytest-mock", # https://pytest-qt.readthedocs.io/en/latest/
52
+ "napari",
53
+ "pyqt5",
54
+ ]
55
+
56
+ [project.entry-points."napari.manifest"]
57
+ napari-nuclephaser = "napari_nuclephaser:napari.yaml"
58
+
59
+ [project.urls]
60
+ "Bug Tracker" = "https://github.com/nikvo1/napari-nuclephaser/issues"
61
+ "Documentation" = "https://github.com/nikvo1/napari-nuclephaser#README.md"
62
+ "Source Code" = "https://github.com/nikvo1/napari-nuclephaser"
63
+ "User Support" = "https://github.com/nikvo1/napari-nuclephaser/issues"
64
+
65
+ [build-system]
66
+ requires = ["setuptools>=42.0.0", "wheel", "setuptools_scm"]
67
+ build-backend = "setuptools.build_meta"
68
+
69
+ [tool.setuptools]
70
+ include-package-data = true
71
+
72
+ [tool.setuptools.packages.find]
73
+ where = ["src"]
74
+
75
+ [tool.setuptools.package-data]
76
+ "*" = ["*.yaml"]
77
+
78
+
79
+ [tool.setuptools_scm]
80
+ write_to = "src/napari_nuclephaser/_version.py"
81
+
82
+
83
+ [tool.black]
84
+ line-length = 79
85
+ target-version = ['py310', 'py311', 'py312', 'py313']
86
+
87
+ [tool.ruff]
88
+ line-length = 79
89
+ lint.select = [
90
+ "E", "F", "W", #flake8
91
+ "UP", # pyupgrade
92
+ "I", # isort
93
+ "BLE", # flake8-blind-exception
94
+ "B", # flake8-bugbear
95
+ "A", # flake8-builtins
96
+ "C4", # flake8-comprehensions
97
+ "ISC", # flake8-implicit-str-concat
98
+ "G", # flake8-logging-format
99
+ "PIE", # flake8-pie
100
+ "SIM", # flake8-simplify
101
+ ]
102
+ lint.ignore = [
103
+ "E501", # line too long. let black handle this
104
+ "UP006", "UP007", # type annotation. As using magicgui require runtime type annotation then we disable this.
105
+ "SIM117", # flake8-simplify - some of merged with statements are not looking great with black, reanble after drop python 3.9
106
+ ]
107
+
108
+ exclude = [
109
+ ".bzr",
110
+ ".direnv",
111
+ ".eggs",
112
+ ".git",
113
+ ".mypy_cache",
114
+ ".pants.d",
115
+ ".ruff_cache",
116
+ ".svn",
117
+ ".tox",
118
+ ".venv",
119
+ "__pypackages__",
120
+ "_build",
121
+ "buck-out",
122
+ "build",
123
+ "dist",
124
+ "node_modules",
125
+ "venv",
126
+ "*vendored*",
127
+ "*_vendor*",
128
+ ]
129
+
130
+ target-version = "py310"
131
+ fix = true
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,2 @@
1
+ __version__ = "0.0.1"
2
+ # from .widget import widget_factory