napari-afmslicer 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.
- napari_afmslicer-0.0.1/.copier-answers.yml +18 -0
- napari_afmslicer-0.0.1/.github/ISSUE_TEMPLATE/bug_report.yml +87 -0
- napari_afmslicer-0.0.1/.github/ISSUE_TEMPLATE/documentation.md +11 -0
- napari_afmslicer-0.0.1/.github/ISSUE_TEMPLATE/feature_request.md +28 -0
- napari_afmslicer-0.0.1/.github/ISSUE_TEMPLATE/task.md +11 -0
- napari_afmslicer-0.0.1/.github/PULL_REQUEST_TEMPLATE.md +23 -0
- napari_afmslicer-0.0.1/.github/dependabot.yml +25 -0
- napari_afmslicer-0.0.1/.github/workflows/cd.yml +65 -0
- napari_afmslicer-0.0.1/.github/workflows/test.yml +59 -0
- napari_afmslicer-0.0.1/.gitignore +112 -0
- napari_afmslicer-0.0.1/.justfile +68 -0
- napari_afmslicer-0.0.1/.markdownlint-cli2.yaml +22 -0
- napari_afmslicer-0.0.1/.napari-hub/DESCRIPTION.md +9 -0
- napari_afmslicer-0.0.1/.napari-hub/config.yml +9 -0
- napari_afmslicer-0.0.1/.pre-commit-config.yaml +73 -0
- napari_afmslicer-0.0.1/.pylintrc.toml +549 -0
- napari_afmslicer-0.0.1/LICENSE +675 -0
- napari_afmslicer-0.0.1/MANIFEST.in +5 -0
- napari_afmslicer-0.0.1/PKG-INFO +880 -0
- napari_afmslicer-0.0.1/README.md +167 -0
- napari_afmslicer-0.0.1/napari.yaml +3 -0
- napari_afmslicer-0.0.1/napari_screenshot.png +0 -0
- napari_afmslicer-0.0.1/pyproject.toml +199 -0
- napari_afmslicer-0.0.1/src/napari_afmslicer/__init__.py +6 -0
- napari_afmslicer-0.0.1/src/napari_afmslicer/afmslicer_filter_widget.py +151 -0
- napari_afmslicer-0.0.1/src/napari_afmslicer/afmslicer_slicer_widget.py +114 -0
- napari_afmslicer-0.0.1/src/napari_afmslicer/napari.yaml +35 -0
- napari_afmslicer-0.0.1/src/napari_afmslicer/view_3d_widget.py +47 -0
- napari_afmslicer-0.0.1/tests/__init__.py +1 -0
- napari_afmslicer-0.0.1/tox.ini +33 -0
- napari_afmslicer-0.0.1/uv.lock +4853 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Changes here will be overwritten by Copier; NEVER EDIT MANUALLY
|
|
2
|
+
_commit: v2.0.1
|
|
3
|
+
_src_path: https://github.com/napari/napari-plugin-template
|
|
4
|
+
display_name: AFMSlicer
|
|
5
|
+
email: n.shephard@sheffield.ac.uk
|
|
6
|
+
full_name: Neil Shephard
|
|
7
|
+
github_repository_url: https://github.com/ns-rse/napari-afmslicer
|
|
8
|
+
github_username_or_organization: ns-rse
|
|
9
|
+
include_reader_plugin: true
|
|
10
|
+
include_sample_data_plugin: true
|
|
11
|
+
include_widget_plugin: true
|
|
12
|
+
include_writer_plugin: true
|
|
13
|
+
install_dependabot: true
|
|
14
|
+
install_precommit: true
|
|
15
|
+
license: GNU GPL v3.0
|
|
16
|
+
module_name: napari_afmslicer
|
|
17
|
+
plugin_name: napari-afmslicer
|
|
18
|
+
short_description: A simple plugin to use AFMSlicer with napari
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
name: "\U0001F41B Bug Report"
|
|
2
|
+
description: Report a bug encountered while using napari-afmslicer
|
|
3
|
+
labels:
|
|
4
|
+
- "bug"
|
|
5
|
+
|
|
6
|
+
body:
|
|
7
|
+
- type: markdown
|
|
8
|
+
attributes:
|
|
9
|
+
value: |
|
|
10
|
+
Thanks for taking the time to report this issue! 🙏🏼
|
|
11
|
+
|
|
12
|
+
Please fill out the sections below to help us reproduce the problem.
|
|
13
|
+
|
|
14
|
+
- type: textarea
|
|
15
|
+
id: bug-report
|
|
16
|
+
attributes:
|
|
17
|
+
label: "\U0001F41B Bug Report"
|
|
18
|
+
description: "Please provide a clear and concise description of the bug."
|
|
19
|
+
placeholder: "What went wrong? What did you expect to happen?"
|
|
20
|
+
validations:
|
|
21
|
+
required: true
|
|
22
|
+
|
|
23
|
+
- type: textarea
|
|
24
|
+
id: steps-to-reproduce
|
|
25
|
+
attributes:
|
|
26
|
+
label: "\U0001F4A1 Steps to Reproduce"
|
|
27
|
+
description: "Please provide a minimal code snippet or list of steps to reproduce the bug."
|
|
28
|
+
placeholder: |
|
|
29
|
+
1. Go to '...'
|
|
30
|
+
2. Click on '....'
|
|
31
|
+
3. Scroll down to '....'
|
|
32
|
+
4. See error
|
|
33
|
+
validations:
|
|
34
|
+
required: true
|
|
35
|
+
|
|
36
|
+
- type: textarea
|
|
37
|
+
id: expected-behavior
|
|
38
|
+
attributes:
|
|
39
|
+
label: "\U0001F4A1 Expected Behavior"
|
|
40
|
+
description: "Please provide a clear and concise description of what you expected to happen."
|
|
41
|
+
placeholder: "What did you expect to happen?"
|
|
42
|
+
|
|
43
|
+
- type: textarea
|
|
44
|
+
id: environment
|
|
45
|
+
attributes:
|
|
46
|
+
label: "\U0001F30E Environment"
|
|
47
|
+
description: |
|
|
48
|
+
Please provide detailed information regarding your environment. Please paste the output of `napari --info` here or copy the information from the "napari info" dialog in the napari Help menu.
|
|
49
|
+
|
|
50
|
+
Otherwise, please provide information regarding your operating system (OS), Python version, napari version, Qt backend and version, Qt platform, method of installation, and any other relevant information related to your environment.
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
placeholder: |
|
|
54
|
+
napari: 0.5.0
|
|
55
|
+
Platform: macOS-13.2.1-arm64-arm-64bit
|
|
56
|
+
System: MacOS 13.2.1
|
|
57
|
+
Python: 3.11.4 (main, Aug 7 2023, 20:34:01) [Clang 14.0.3 (clang-1403.0.22.14.1)]
|
|
58
|
+
Qt: 5.15.10
|
|
59
|
+
PyQt5: 5.15.10
|
|
60
|
+
NumPy: 1.25.1
|
|
61
|
+
SciPy: 1.11.1
|
|
62
|
+
Dask: 2023.7.1
|
|
63
|
+
VisPy: 0.13.0
|
|
64
|
+
magicgui: 0.7.2
|
|
65
|
+
superqt: 0.5.4
|
|
66
|
+
in-n-out: 0.1.8
|
|
67
|
+
app-model: 0.2.0
|
|
68
|
+
npe2: 0.7.2
|
|
69
|
+
|
|
70
|
+
OpenGL:
|
|
71
|
+
- GL version: 2.1 Metal - 83
|
|
72
|
+
- MAX_TEXTURE_SIZE: 16384
|
|
73
|
+
|
|
74
|
+
Screens:
|
|
75
|
+
- screen 1: resolution 1512x982, scale 2.0
|
|
76
|
+
|
|
77
|
+
Settings path:
|
|
78
|
+
- /Users/.../napari/napari_5c6993c40c104085444cfc0c77fa392cb5cb8f56/settings.yaml
|
|
79
|
+
validations:
|
|
80
|
+
required: true
|
|
81
|
+
|
|
82
|
+
- type: textarea
|
|
83
|
+
id: additional-context
|
|
84
|
+
attributes:
|
|
85
|
+
label: "\U0001F4A1 Additional Context"
|
|
86
|
+
description: "Please provide any additional information or context regarding the problem here."
|
|
87
|
+
placeholder: "Add any other context about the problem here."
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "\U0001F4DA Documentation"
|
|
3
|
+
about: Report an issue with napari-afmslicer documentation
|
|
4
|
+
title: ''
|
|
5
|
+
labels: documentation
|
|
6
|
+
assignees: ''
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## 📚 Documentation
|
|
11
|
+
<!-- A clear and concise description of the documentation that needs to be created/updated -->
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "\U0001F680 Feature Request"
|
|
3
|
+
about: Submit a proposal/request for a new napari-afmslicer feature
|
|
4
|
+
title: ''
|
|
5
|
+
labels: feature
|
|
6
|
+
assignees: ''
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## 🚀 Feature
|
|
11
|
+
<!-- A clear and concise description of the feature proposal -->
|
|
12
|
+
|
|
13
|
+
## Motivation
|
|
14
|
+
|
|
15
|
+
<!-- Please outline the motivation for the proposal. Is your feature request related to a problem? e.g., I'm always -->
|
|
16
|
+
<!-- frustrated when [...]. If this is related to another GitHub issue, please link here too -->
|
|
17
|
+
|
|
18
|
+
## Pitch
|
|
19
|
+
|
|
20
|
+
<!-- A clear and concise description of what you want to happen. -->
|
|
21
|
+
|
|
22
|
+
## Alternatives
|
|
23
|
+
|
|
24
|
+
<!-- A clear and concise description of any alternative solutions or features you've considered, if any. -->
|
|
25
|
+
|
|
26
|
+
## Additional context
|
|
27
|
+
|
|
28
|
+
<!-- Add any other context or screenshots about the feature request here. -->
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# <!-- Informative Title -->
|
|
2
|
+
|
|
3
|
+
## References and relevant issues
|
|
4
|
+
<!-- What relevant resources were used in the creation of this PR?
|
|
5
|
+
If this PR addresses an existing issue on the repo,
|
|
6
|
+
please link to that issue here as "Closes #(issue-number)"
|
|
7
|
+
If this PR depends on another PR/issue (even in another repo),
|
|
8
|
+
please link to it with "Depends on #PR-number" or "Depends on org/repo#PR-number"
|
|
9
|
+
-->
|
|
10
|
+
|
|
11
|
+
## Description
|
|
12
|
+
<!-- What does this pull request (PR) do? Is it a new feature, a bug fix,
|
|
13
|
+
an improvement, or something else? Why is it necessary? If relevant, please add
|
|
14
|
+
a screenshot or a screen capture: "An image is worth a thousand words!" -->
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Check list
|
|
19
|
+
|
|
20
|
+
- [ ] Existing tests pass.
|
|
21
|
+
- [ ] Pre-commit checks pass.
|
|
22
|
+
- [ ] New functions/methods have typehints and docstrings.
|
|
23
|
+
- [ ] New functions/methods have tests which check the intended behaviour is correct.
|
|
@@ -0,0 +1,25 @@
|
|
|
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
|
+
# Monitor pip dependencies
|
|
8
|
+
- package-ecosystem: pip
|
|
9
|
+
directory: "/"
|
|
10
|
+
schedule:
|
|
11
|
+
interval: monthly
|
|
12
|
+
groups:
|
|
13
|
+
python-packages:
|
|
14
|
+
patterns:
|
|
15
|
+
- "*"
|
|
16
|
+
|
|
17
|
+
# Monitor GitHub Actions and propose updates for security and maintenance
|
|
18
|
+
- package-ecosystem: github-actions
|
|
19
|
+
directory: "/"
|
|
20
|
+
schedule:
|
|
21
|
+
interval: monthly
|
|
22
|
+
groups:
|
|
23
|
+
github-actions:
|
|
24
|
+
patterns:
|
|
25
|
+
- "*"
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
name: CD
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
pull_request:
|
|
6
|
+
push:
|
|
7
|
+
branches:
|
|
8
|
+
- main
|
|
9
|
+
release:
|
|
10
|
+
types:
|
|
11
|
+
- published
|
|
12
|
+
|
|
13
|
+
permissions: {}
|
|
14
|
+
|
|
15
|
+
concurrency:
|
|
16
|
+
group: ${{ github.workflow }}-${{ github.ref }}
|
|
17
|
+
cancel-in-progress: true
|
|
18
|
+
|
|
19
|
+
env:
|
|
20
|
+
# Many color libraries just need this to be set to any value, but at least
|
|
21
|
+
# one distinguishes color depth, where "3" -> "256-bit color".
|
|
22
|
+
FORCE_COLOR: 3
|
|
23
|
+
|
|
24
|
+
jobs:
|
|
25
|
+
dist:
|
|
26
|
+
name: Distribution build
|
|
27
|
+
runs-on: ubuntu-latest
|
|
28
|
+
permissions:
|
|
29
|
+
contents: read
|
|
30
|
+
|
|
31
|
+
steps:
|
|
32
|
+
- uses: actions/checkout@v7
|
|
33
|
+
with:
|
|
34
|
+
persist-credentials: false
|
|
35
|
+
fetch-depth: 0
|
|
36
|
+
|
|
37
|
+
- uses: hynek/build-and-inspect-python-package@v3.0.1
|
|
38
|
+
|
|
39
|
+
publish:
|
|
40
|
+
needs: [dist]
|
|
41
|
+
name: Publish to PyPI
|
|
42
|
+
environment: pypi
|
|
43
|
+
permissions:
|
|
44
|
+
id-token: write
|
|
45
|
+
attestations: write
|
|
46
|
+
contents: read
|
|
47
|
+
runs-on: ubuntu-latest
|
|
48
|
+
if: github.event_name == 'release' && github.event.action == 'published'
|
|
49
|
+
|
|
50
|
+
steps:
|
|
51
|
+
- uses: actions/download-artifact@v8
|
|
52
|
+
with:
|
|
53
|
+
name: Packages
|
|
54
|
+
path: dist
|
|
55
|
+
|
|
56
|
+
- name: Generate artifact attestation for sdist and wheel
|
|
57
|
+
uses: actions/attest@v4
|
|
58
|
+
with:
|
|
59
|
+
subject-path: "dist/*"
|
|
60
|
+
|
|
61
|
+
- uses: pypa/gh-action-pypi-publish@release/v1
|
|
62
|
+
# with:
|
|
63
|
+
# # Remember to tell (test-)pypi about this repo before publishing
|
|
64
|
+
# # Remove this line to publish to PyPI
|
|
65
|
+
# repository-url: https://test.pypi.org/legacy/
|
|
@@ -0,0 +1,59 @@
|
|
|
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
|
+
name: tests
|
|
4
|
+
|
|
5
|
+
on:
|
|
6
|
+
push:
|
|
7
|
+
branches:
|
|
8
|
+
- main
|
|
9
|
+
- npe2
|
|
10
|
+
tags:
|
|
11
|
+
- "v*" # Push events to matching v*, i.e. v1.0, v20.15.10
|
|
12
|
+
pull_request:
|
|
13
|
+
branches:
|
|
14
|
+
- main
|
|
15
|
+
- npe2
|
|
16
|
+
workflow_dispatch:
|
|
17
|
+
|
|
18
|
+
concurrency:
|
|
19
|
+
group: ${{ github.workflow }}-${{ github.ref }}
|
|
20
|
+
cancel-in-progress: true
|
|
21
|
+
|
|
22
|
+
jobs:
|
|
23
|
+
test:
|
|
24
|
+
name: ${{ matrix.platform }} py${{ matrix.python-version }}
|
|
25
|
+
runs-on: ${{ matrix.platform }}
|
|
26
|
+
timeout-minutes: 30
|
|
27
|
+
strategy:
|
|
28
|
+
fail-fast: false
|
|
29
|
+
matrix:
|
|
30
|
+
platform: [ubuntu-latest, windows-latest, macos-latest]
|
|
31
|
+
python-version: ["3.11"]
|
|
32
|
+
|
|
33
|
+
steps:
|
|
34
|
+
- uses: actions/checkout@v7
|
|
35
|
+
|
|
36
|
+
- name: Setup python
|
|
37
|
+
uses: astral-sh/setup-uv@v7
|
|
38
|
+
with:
|
|
39
|
+
python-version: ${{ matrix.python-version }}
|
|
40
|
+
activate-environment: "true"
|
|
41
|
+
- name: Install Windows OpenGL
|
|
42
|
+
uses: pyvista/setup-headless-display-action@v5.1
|
|
43
|
+
with:
|
|
44
|
+
qt: true
|
|
45
|
+
wm: herbstluftwm
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
# note: if you need dependencies from conda, considering using
|
|
49
|
+
# setup-miniconda: https://github.com/conda-incubator/setup-miniconda
|
|
50
|
+
# and
|
|
51
|
+
# tox-conda: https://github.com/tox-dev/tox-conda
|
|
52
|
+
# this runs the platform-specific tests declared in tox.ini
|
|
53
|
+
- name: Test with tox
|
|
54
|
+
run: uvx --with tox-gh-actions tox
|
|
55
|
+
env:
|
|
56
|
+
PLATFORM: ${{ matrix.platform }}
|
|
57
|
+
|
|
58
|
+
- name: Coverage
|
|
59
|
+
uses: codecov/codecov-action@v7
|
|
@@ -0,0 +1,112 @@
|
|
|
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
|
+
.vscode/
|
|
72
|
+
|
|
73
|
+
# Spyder project settings
|
|
74
|
+
.spyderproject
|
|
75
|
+
.spyproject
|
|
76
|
+
|
|
77
|
+
# Environments
|
|
78
|
+
.env
|
|
79
|
+
.venv
|
|
80
|
+
env
|
|
81
|
+
venv/
|
|
82
|
+
|
|
83
|
+
# IPython Notebook
|
|
84
|
+
.ipynb_checkpoints
|
|
85
|
+
|
|
86
|
+
# pyenv
|
|
87
|
+
.python-version
|
|
88
|
+
|
|
89
|
+
# ruff
|
|
90
|
+
.ruff_cache/
|
|
91
|
+
|
|
92
|
+
# OS
|
|
93
|
+
.DS_Store
|
|
94
|
+
.DS_Store?
|
|
95
|
+
._*
|
|
96
|
+
.Spotlight-V100
|
|
97
|
+
.Trashes
|
|
98
|
+
ehthumbs.db
|
|
99
|
+
Thumbs.db
|
|
100
|
+
|
|
101
|
+
# pytest-testmon
|
|
102
|
+
.testmondata*
|
|
103
|
+
|
|
104
|
+
# written by setuptools_scm
|
|
105
|
+
**/_version.py
|
|
106
|
+
|
|
107
|
+
# Emacs
|
|
108
|
+
\#*
|
|
109
|
+
*~
|
|
110
|
+
|
|
111
|
+
# Other directories
|
|
112
|
+
tmp/
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
@default:
|
|
2
|
+
@just --list
|
|
3
|
+
|
|
4
|
+
# Profile a test file.
|
|
5
|
+
test_profile:
|
|
6
|
+
mkdir prof
|
|
7
|
+
python -m cProfile -o prof/$(git rev-parse HEAD)_$(date +%Y%m%d).prof $(which pytest) tests/test_<file>.py
|
|
8
|
+
|
|
9
|
+
# uv pip install package with dev group dependencies
|
|
10
|
+
pip_install:
|
|
11
|
+
uv pip install --editable . --group dev
|
|
12
|
+
|
|
13
|
+
# Serve mkdocs
|
|
14
|
+
mkdocs:
|
|
15
|
+
mkdocs serve --watch docs
|
|
16
|
+
|
|
17
|
+
# Pre-commit ruff-check all files
|
|
18
|
+
pc_ruff:
|
|
19
|
+
pre-commit run ruff-check --all-files
|
|
20
|
+
|
|
21
|
+
# Pre-commit numpydoc all files
|
|
22
|
+
pc_npd:
|
|
23
|
+
pre-commit run numpydoc-validation --all-files
|
|
24
|
+
|
|
25
|
+
# Pre-commit blacken all files
|
|
26
|
+
pc_black:
|
|
27
|
+
pre-commit run blacken-docs --all-files
|
|
28
|
+
|
|
29
|
+
# Pre-commit prettier all files
|
|
30
|
+
pc_prettier:
|
|
31
|
+
pre-commit run prettier --all-files
|
|
32
|
+
|
|
33
|
+
# Pre-commit markdownlint-cli2 all files
|
|
34
|
+
pc_markdown:
|
|
35
|
+
pre-commit run markdownlint-cli2 --all-files
|
|
36
|
+
|
|
37
|
+
# Pre-commit pylint all files
|
|
38
|
+
pc_pylint:
|
|
39
|
+
pre-commit run pylint --all-files
|
|
40
|
+
|
|
41
|
+
# Pytest everything
|
|
42
|
+
pytest:
|
|
43
|
+
pytest --cov=src --cov-branch --numprocesses=logical
|
|
44
|
+
|
|
45
|
+
# Pytest with Matplotlib html report
|
|
46
|
+
pytest_mpl_html_report:
|
|
47
|
+
mkdir -p tmp/mpl
|
|
48
|
+
pytest tests/test_plotting.py --mpl-generate-summary html --mpl-results-path tmp/mpl
|
|
49
|
+
|
|
50
|
+
# Pytest update Matplotlib snapshots
|
|
51
|
+
pytest_mpl_update:
|
|
52
|
+
mkdir -p tests/__mpl_snapshots__/
|
|
53
|
+
pytest tests/test_plotting.py --mpl-generate-path=tests/__mpl_snapshots__
|
|
54
|
+
pytest tests/test_classes.py --mpl-generate-path=tests/__mpl_snapshots__
|
|
55
|
+
|
|
56
|
+
# Pytest update Syrupy snapshots
|
|
57
|
+
pytest_snapshot_update:
|
|
58
|
+
pytest --snapshot-update
|
|
59
|
+
|
|
60
|
+
# Pytest update Maplotlib and Syrupy snapshots
|
|
61
|
+
pytest_update:
|
|
62
|
+
just pytest_mpl_update
|
|
63
|
+
just pytest_snapshot_update
|
|
64
|
+
|
|
65
|
+
# uv sync and lock
|
|
66
|
+
uv_upgrade:
|
|
67
|
+
uv sync
|
|
68
|
+
uv lock --upgrade
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Configuration
|
|
2
|
+
config:
|
|
3
|
+
line-length:
|
|
4
|
+
line_length: 120
|
|
5
|
+
code_blocks: false
|
|
6
|
+
tables: false
|
|
7
|
+
html:
|
|
8
|
+
allowed_elements:
|
|
9
|
+
- div
|
|
10
|
+
- br
|
|
11
|
+
|
|
12
|
+
globs:
|
|
13
|
+
- "**/*.md"
|
|
14
|
+
|
|
15
|
+
ignores:
|
|
16
|
+
- "tmp/"
|
|
17
|
+
- "paper.md"
|
|
18
|
+
- ".venv/"
|
|
19
|
+
- ".github/CONTRIBUTING.md"
|
|
20
|
+
- ".napari-hub/DESCRIPTION.md"
|
|
21
|
+
|
|
22
|
+
fix: true
|
|
@@ -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,9 @@
|
|
|
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.
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
repos:
|
|
2
|
+
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
3
|
+
rev: v6.0.0
|
|
4
|
+
hooks:
|
|
5
|
+
- id: check-added-large-files
|
|
6
|
+
args: ["--maxkb=18384"]
|
|
7
|
+
- id: check-case-conflict
|
|
8
|
+
- id: check-docstring-first
|
|
9
|
+
- id: check-merge-conflict
|
|
10
|
+
- id: check-symlinks
|
|
11
|
+
- id: check-yaml
|
|
12
|
+
- id: debug-statements
|
|
13
|
+
- id: end-of-file-fixer
|
|
14
|
+
types: [python, yaml, markdown]
|
|
15
|
+
exclude: ^(tests/resources|tests/__snapshots__|\.napari-hub)/.*$
|
|
16
|
+
- id: mixed-line-ending
|
|
17
|
+
types: [python, yaml, markdown]
|
|
18
|
+
exclude: ^(tests/resources|tests/__snapshots__|\.napari-hub)/.*$
|
|
19
|
+
- id: name-tests-test
|
|
20
|
+
args: ["--pytest-test-first"]
|
|
21
|
+
- id: no-commit-to-branch
|
|
22
|
+
- id: requirements-txt-fixer
|
|
23
|
+
- id: trailing-whitespace
|
|
24
|
+
types: [python, yaml, markdown]
|
|
25
|
+
exclude: ^(tests/resources|tests/__snapshots__|\.napari-hub)/.*$
|
|
26
|
+
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
27
|
+
rev: v0.16.10
|
|
28
|
+
hooks:
|
|
29
|
+
- id: ruff
|
|
30
|
+
- repo: https://github.com/psf/black-pre-commit-mirror
|
|
31
|
+
rev: 26.10.0
|
|
32
|
+
hooks:
|
|
33
|
+
- id: black
|
|
34
|
+
- repo: https://github.com/tlambert03/napari-plugin-checks
|
|
35
|
+
rev: v0.3.0
|
|
36
|
+
hooks:
|
|
37
|
+
- id: napari-plugin-checks
|
|
38
|
+
- repo: https://github.com/codespell-project/codespell
|
|
39
|
+
rev: "v2.4.3"
|
|
40
|
+
hooks:
|
|
41
|
+
- id: codespell
|
|
42
|
+
additional_dependencies:
|
|
43
|
+
- tomli; python_version<'3.11'
|
|
44
|
+
- repo: https://github.com/numpy/numpydoc
|
|
45
|
+
rev: v1.11.0
|
|
46
|
+
hooks:
|
|
47
|
+
- id: numpydoc-validation
|
|
48
|
+
# exclude: ""
|
|
49
|
+
- repo: https://github.com/DavidAnson/markdownlint-cli2
|
|
50
|
+
rev: v0.23.3
|
|
51
|
+
hooks:
|
|
52
|
+
- id: markdownlint-cli2
|
|
53
|
+
args: []
|
|
54
|
+
# https://mypy.readthedocs.io/en/stable/
|
|
55
|
+
# you may wish to add this as well!
|
|
56
|
+
# - repo: https://github.com/pre-commit/mirrors-mypy
|
|
57
|
+
# rev: v1.9.0
|
|
58
|
+
# hooks:
|
|
59
|
+
# - id: mypy
|
|
60
|
+
- repo: local
|
|
61
|
+
hooks:
|
|
62
|
+
- id: pylint
|
|
63
|
+
args: ["--rcfile=.pylintrc.toml"]
|
|
64
|
+
name: Pylint
|
|
65
|
+
entry: python -m pylint
|
|
66
|
+
language: system
|
|
67
|
+
files: \.py$
|
|
68
|
+
ci:
|
|
69
|
+
autofix_prs: true
|
|
70
|
+
autofix_commit_msg: "[pre-commit.ci] Fixing issues with pre-commit"
|
|
71
|
+
autoupdate_schedule: monthly
|
|
72
|
+
autoupdate_commit_msg: "[pre-commit.ci] pre-commit-autoupdate"
|
|
73
|
+
skip: [pylint] # Optionally list ids of hooks to skip on CI
|