napari-plugin-manager 0.1.6__tar.gz → 0.1.7__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 (57) hide show
  1. {napari_plugin_manager-0.1.6 → napari_plugin_manager-0.1.7}/.github/dependabot.yml +2 -0
  2. {napari_plugin_manager-0.1.6 → napari_plugin_manager-0.1.7}/.github/workflows/deploy_docs.yml +6 -6
  3. {napari_plugin_manager-0.1.6 → napari_plugin_manager-0.1.7}/.github/workflows/test_and_deploy.yml +17 -22
  4. {napari_plugin_manager-0.1.6 → napari_plugin_manager-0.1.7}/.gitignore +3 -0
  5. napari_plugin_manager-0.1.7/.pre-commit-config.yaml +23 -0
  6. {napari_plugin_manager-0.1.6 → napari_plugin_manager-0.1.7}/Makefile +1 -1
  7. {napari_plugin_manager-0.1.6 → napari_plugin_manager-0.1.7}/PKG-INFO +9 -35
  8. {napari_plugin_manager-0.1.6 → napari_plugin_manager-0.1.7}/README.md +2 -2
  9. napari_plugin_manager-0.1.7/codecov.yml +24 -0
  10. {napari_plugin_manager-0.1.6 → napari_plugin_manager-0.1.7}/docs/conf.py +53 -53
  11. {napari_plugin_manager-0.1.6 → napari_plugin_manager-0.1.7}/pyproject.toml +48 -24
  12. {napari_plugin_manager-0.1.6 → napari_plugin_manager-0.1.7}/src/napari_plugin_manager/_tests/conftest.py +10 -10
  13. {napari_plugin_manager-0.1.6 → napari_plugin_manager-0.1.7}/src/napari_plugin_manager/_tests/test_installer_process.py +123 -82
  14. {napari_plugin_manager-0.1.6 → napari_plugin_manager-0.1.7}/src/napari_plugin_manager/_tests/test_npe2api.py +12 -11
  15. {napari_plugin_manager-0.1.6 → napari_plugin_manager-0.1.7}/src/napari_plugin_manager/_tests/test_qt_plugin_dialog.py +91 -93
  16. {napari_plugin_manager-0.1.6 → napari_plugin_manager-0.1.7}/src/napari_plugin_manager/_tests/test_utils.py +7 -7
  17. {napari_plugin_manager-0.1.6 → napari_plugin_manager-0.1.7}/src/napari_plugin_manager/_version.py +16 -3
  18. {napari_plugin_manager-0.1.6 → napari_plugin_manager-0.1.7}/src/napari_plugin_manager/base_qt_package_installer.py +144 -68
  19. {napari_plugin_manager-0.1.6 → napari_plugin_manager-0.1.7}/src/napari_plugin_manager/base_qt_plugin_dialog.py +176 -157
  20. {napari_plugin_manager-0.1.6 → napari_plugin_manager-0.1.7}/src/napari_plugin_manager/npe2api.py +3 -3
  21. {napari_plugin_manager-0.1.6 → napari_plugin_manager-0.1.7}/src/napari_plugin_manager/qt_package_installer.py +44 -16
  22. {napari_plugin_manager-0.1.6 → napari_plugin_manager-0.1.7}/src/napari_plugin_manager/qt_plugin_dialog.py +40 -30
  23. {napari_plugin_manager-0.1.6 → napari_plugin_manager-0.1.7}/src/napari_plugin_manager/qt_warning_dialog.py +5 -3
  24. {napari_plugin_manager-0.1.6 → napari_plugin_manager-0.1.7}/src/napari_plugin_manager/qt_widgets.py +3 -3
  25. {napari_plugin_manager-0.1.6 → napari_plugin_manager-0.1.7}/src/napari_plugin_manager/styles.qss +30 -13
  26. {napari_plugin_manager-0.1.6 → napari_plugin_manager-0.1.7}/src/napari_plugin_manager/utils.py +3 -3
  27. {napari_plugin_manager-0.1.6 → napari_plugin_manager-0.1.7}/src/napari_plugin_manager.egg-info/PKG-INFO +9 -35
  28. {napari_plugin_manager-0.1.6 → napari_plugin_manager-0.1.7}/src/napari_plugin_manager.egg-info/SOURCES.txt +1 -0
  29. {napari_plugin_manager-0.1.6 → napari_plugin_manager-0.1.7}/src/napari_plugin_manager.egg-info/requires.txt +6 -1
  30. {napari_plugin_manager-0.1.6 → napari_plugin_manager-0.1.7}/tox.ini +4 -4
  31. napari_plugin_manager-0.1.6/.pre-commit-config.yaml +0 -30
  32. {napari_plugin_manager-0.1.6 → napari_plugin_manager-0.1.7}/LICENSE +0 -0
  33. {napari_plugin_manager-0.1.6 → napari_plugin_manager-0.1.7}/RELEASE.md +0 -0
  34. {napari_plugin_manager-0.1.6 → napari_plugin_manager-0.1.7}/docs/__init__.py +0 -0
  35. {napari_plugin_manager-0.1.6 → napari_plugin_manager-0.1.7}/docs/_static/custom.css +0 -0
  36. {napari_plugin_manager-0.1.6 → napari_plugin_manager-0.1.7}/docs/_static/favicon/logo-noborder-180.png +0 -0
  37. {napari_plugin_manager-0.1.6 → napari_plugin_manager-0.1.7}/docs/_static/favicon/logo-silhouette-192.png +0 -0
  38. {napari_plugin_manager-0.1.6 → napari_plugin_manager-0.1.7}/docs/_static/favicon/logo-silhouette-dark-light.svg +0 -0
  39. {napari_plugin_manager-0.1.6 → napari_plugin_manager-0.1.7}/docs/_templates/navbar-project.html +0 -0
  40. {napari_plugin_manager-0.1.6 → napari_plugin_manager-0.1.7}/docs/_toc.yml +0 -0
  41. {napari_plugin_manager-0.1.6 → napari_plugin_manager-0.1.7}/docs/developers/contributing.md +0 -0
  42. {napari_plugin_manager-0.1.6 → napari_plugin_manager-0.1.7}/docs/index.md +0 -0
  43. {napari_plugin_manager-0.1.6 → napari_plugin_manager-0.1.7}/images/description.png +0 -0
  44. {napari_plugin_manager-0.1.6 → napari_plugin_manager-0.1.7}/images/direct-entry.png +0 -0
  45. {napari_plugin_manager-0.1.6 → napari_plugin_manager-0.1.7}/images/filter.png +0 -0
  46. {napari_plugin_manager-0.1.6 → napari_plugin_manager-0.1.7}/images/import-export.png +0 -0
  47. {napari_plugin_manager-0.1.6 → napari_plugin_manager-0.1.7}/images/install.png +0 -0
  48. {napari_plugin_manager-0.1.6 → napari_plugin_manager-0.1.7}/images/logo.png +0 -0
  49. {napari_plugin_manager-0.1.6 → napari_plugin_manager-0.1.7}/images/status.png +0 -0
  50. {napari_plugin_manager-0.1.6 → napari_plugin_manager-0.1.7}/images/uninstall.png +0 -0
  51. {napari_plugin_manager-0.1.6 → napari_plugin_manager-0.1.7}/images/update.png +0 -0
  52. {napari_plugin_manager-0.1.6 → napari_plugin_manager-0.1.7}/setup.cfg +0 -0
  53. {napari_plugin_manager-0.1.6 → napari_plugin_manager-0.1.7}/src/napari_plugin_manager/__init__.py +0 -0
  54. {napari_plugin_manager-0.1.6 → napari_plugin_manager-0.1.7}/src/napari_plugin_manager/_tests/__init__.py +0 -0
  55. {napari_plugin_manager-0.1.6 → napari_plugin_manager-0.1.7}/src/napari_plugin_manager/_tests/test_base_installer_process.py +0 -0
  56. {napari_plugin_manager-0.1.6 → napari_plugin_manager-0.1.7}/src/napari_plugin_manager.egg-info/dependency_links.txt +0 -0
  57. {napari_plugin_manager-0.1.6 → napari_plugin_manager-0.1.7}/src/napari_plugin_manager.egg-info/top_level.txt +0 -0
@@ -4,6 +4,8 @@ updates:
4
4
  directory: "/"
5
5
  schedule:
6
6
  interval: "monthly"
7
+ commit-message:
8
+ prefix: "ci(dependabot):"
7
9
  groups:
8
10
  github-actions:
9
11
  patterns:
@@ -26,13 +26,13 @@ jobs:
26
26
 
27
27
  steps:
28
28
  - name: Clone repo
29
- uses: actions/checkout@v4
29
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
30
30
 
31
- - uses: actions/setup-python@v5
31
+ - uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
32
32
  with:
33
33
  python-version: "3.10"
34
34
 
35
- - uses: tlambert03/setup-qt-libs@v1
35
+ - uses: tlambert03/setup-qt-libs@19e4ef2d781d81f5f067182e228b54ec90d23b76 # v1.8
36
36
 
37
37
  - name: Install Dependencies
38
38
  run: |
@@ -41,7 +41,7 @@ jobs:
41
41
  python -m pip install -e ".[docs]"
42
42
 
43
43
  - name: Build Docs
44
- uses: aganders3/headless-gui@v2
44
+ uses: aganders3/headless-gui@f85dd6316993505dfc5f21839d520ae440c84816 # v2.2
45
45
  with:
46
46
  run: make docs
47
47
 
@@ -50,11 +50,11 @@ jobs:
50
50
 
51
51
  # At a minimum this job should upload artifacts using actions/upload-pages-artifact
52
52
  - name: Upload GitHub Pages artifact
53
- uses: actions/upload-pages-artifact@v3
53
+ uses: actions/upload-pages-artifact@56afc609e74202658d3ffba0e8f6dda462b719fa # v3.0.1
54
54
  with:
55
55
  name: github-pages
56
56
  path: docs/_build
57
57
 
58
58
  - name: Deploy to GitHub Pages
59
59
  id: deployment
60
- uses: actions/deploy-pages@v4 # or specific "vX.X.X" version tag for this action
60
+ uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # v4.0.5
@@ -53,24 +53,24 @@ jobs:
53
53
  napari: repo
54
54
 
55
55
  steps:
56
- - uses: actions/checkout@v4
56
+ - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
57
57
 
58
58
  - name: Set up Python ${{ matrix.python-version }} - pip
59
59
  if: matrix.tool == 'pip'
60
- uses: actions/setup-python@v5
60
+ uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
61
61
  with:
62
62
  python-version: ${{ matrix.python-version }}
63
63
 
64
64
  - name: Set up Python ${{ matrix.python-version }} - conda
65
65
  if: matrix.tool == 'conda'
66
- uses: conda-incubator/setup-miniconda@v3
66
+ uses: conda-incubator/setup-miniconda@835234971496cad1653abb28a638a281cf32541f # v3.2.0
67
67
  with:
68
68
  miniforge-version: latest
69
69
  channels: conda-forge
70
70
  conda-remove-defaults: "true"
71
71
  python-version: ${{ matrix.python-version }}
72
72
 
73
- - uses: tlambert03/setup-qt-libs@v1
73
+ - uses: tlambert03/setup-qt-libs@19e4ef2d781d81f5f067182e228b54ec90d23b76 # v1.8
74
74
 
75
75
  # strategy borrowed from vispy for installing opengl libs on windows
76
76
  - name: Install Windows OpenGL
@@ -95,7 +95,7 @@ jobs:
95
95
 
96
96
  - name: Test with tox - pip
97
97
  if: matrix.tool == 'pip'
98
- uses: aganders3/headless-gui@v2
98
+ uses: aganders3/headless-gui@f85dd6316993505dfc5f21839d520ae440c84816 # v2.2
99
99
  with:
100
100
  run: python -m tox
101
101
  env:
@@ -103,12 +103,9 @@ jobs:
103
103
  NAPARI: ${{ matrix.napari }}
104
104
  TOOL: ${{ matrix.tool }}
105
105
  FORCE_COLOR: 1
106
- # Only supported pyside6 is not supported on py312, py313
107
- TOX_SKIP_ENV: ".*py31[23].*PySide6"
108
-
109
106
  - name: Test with tox - conda
110
107
  if: matrix.tool == 'conda'
111
- uses: aganders3/headless-gui@v2
108
+ uses: aganders3/headless-gui@f85dd6316993505dfc5f21839d520ae440c84816 # v2.2
112
109
  with:
113
110
  shell: bash -el {0}
114
111
  run: python -m tox
@@ -119,11 +116,11 @@ jobs:
119
116
  FORCE_COLOR: 1
120
117
  # Only supported pyside2 and pyside6 are not supported on py312, py313
121
118
  # no Qt backends supported by conda-forge on py313
122
- TOX_SKIP_ENV: ".*py31[23].*PySide[26]|.*py313.*conda"
119
+ TOX_SKIP_ENV: ".*py31[23].*PySide2|.*py313.*conda"
120
+
123
121
 
124
-
125
122
  - name: Upload coverage data
126
- uses: actions/upload-artifact@v4
123
+ uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
127
124
  with:
128
125
  name: coverage reports ${{ matrix.platform }} py ${{ matrix.python-version }} ${{ matrix.tool }} ${{ matrix.napari }}
129
126
  include-hidden-files: true
@@ -140,9 +137,9 @@ jobs:
140
137
  if: always()
141
138
  runs-on: ubuntu-latest
142
139
  steps:
143
- - uses: actions/checkout@v4
140
+ - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
144
141
 
145
- - uses: actions/setup-python@v5
142
+ - uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
146
143
  with:
147
144
  python-version: "3.x"
148
145
  cache-dependency-path: pyproject.toml
@@ -154,7 +151,7 @@ jobs:
154
151
  pip install codecov
155
152
 
156
153
  - name: Download coverage data
157
- uses: actions/download-artifact@v4
154
+ uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
158
155
  with:
159
156
  pattern: coverage reports*
160
157
  path: coverage
@@ -170,7 +167,7 @@ jobs:
170
167
  python -Im coverage report --format=markdown --skip-empty --skip-covered >> "$GITHUB_STEP_SUMMARY"
171
168
 
172
169
  - name: Upload coverage data
173
- uses: codecov/codecov-action@v5
170
+ uses: codecov/codecov-action@18283e04ce6e62d37312384ff67231eb8fd56d24 # v5.4.3
174
171
  with:
175
172
  fail_ci_if_error: true
176
173
  use_oidc: ${{ github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository) }}
@@ -178,17 +175,15 @@ jobs:
178
175
 
179
176
  deploy:
180
177
  # this will run when you have tagged a commit, starting with "v*"
181
- # and requires that you have put your twine API key in your
182
- # github secrets (see readme for details)
183
- needs: [test]
178
+ # needs: [test]
184
179
  runs-on: ubuntu-latest
185
180
  if: contains(github.ref, 'tags')
186
181
  permissions:
187
182
  id-token: write
188
183
  steps:
189
- - uses: actions/checkout@v4
184
+ - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
190
185
  - name: Set up Python
191
- uses: actions/setup-python@v5
186
+ uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
192
187
  with:
193
188
  python-version: "3.x"
194
189
  - name: Install dependencies
@@ -200,4 +195,4 @@ jobs:
200
195
  git tag
201
196
  python -m build
202
197
  - name: Publish package distributions to PyPI
203
- uses: pypa/gh-action-pypi-publish@release/v1
198
+ uses: pypa/gh-action-pypi-publish@76f52bc884231f62b9a034ebfe128415bbaabdfc # v1.12.4
@@ -8,6 +8,7 @@ __pycache__/
8
8
 
9
9
  # Distribution / packaging
10
10
  .Python
11
+ .venv/
11
12
  env/
12
13
  build/
13
14
  develop-eggs/
@@ -119,3 +120,5 @@ target/
119
120
  # Images
120
121
  docs/images/
121
122
 
123
+ # UV Lockfiles
124
+ uv.lock
@@ -0,0 +1,23 @@
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
+ exclude: ^constructor-manager-ui/src/constructor_manager_ui/style/images.py
7
+ - id: end-of-file-fixer
8
+ exclude: ^constructor-manager-ui/src/constructor_manager_ui/style/images.py
9
+ - id: trailing-whitespace
10
+ exclude: ^constructor-manager-ui/src/constructor_manager_ui/style/images.py
11
+ - repo: https://github.com/astral-sh/ruff-pre-commit
12
+ rev: v0.12.7
13
+ hooks:
14
+ - id: ruff-check
15
+ args: [--fix]
16
+ - id: ruff-format
17
+ - repo: https://github.com/python-jsonschema/check-jsonschema
18
+ rev: 0.33.2
19
+ hooks:
20
+ - id: check-github-workflows
21
+
22
+ ci:
23
+ autoupdate_schedule: monthly
@@ -22,7 +22,7 @@ docs-xvfb:
22
22
 
23
23
  docs: clean docs-build
24
24
 
25
- serve:
25
+ serve:
26
26
  python -m http.server -d $(docs_dir)/_build
27
27
  # Implies noplot, but no clean - call 'make clean' manually if needed
28
28
  # Autogenerated paths need to be ignored to prevent reload loops
@@ -1,45 +1,15 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: napari-plugin-manager
3
- Version: 0.1.6
3
+ Version: 0.1.7
4
4
  Summary: Install plugins for napari, in napari.
5
5
  Author-email: napari team <napari-steering-council@googlegroups.com>
6
- License: BSD 3-Clause License
7
-
8
- Copyright (c) 2018, Napari
9
- All rights reserved.
10
-
11
- Redistribution and use in source and binary forms, with or without
12
- modification, are permitted provided that the following conditions are met:
13
-
14
- * Redistributions of source code must retain the above copyright notice, this
15
- list of conditions and the following disclaimer.
16
-
17
- * Redistributions in binary form must reproduce the above copyright notice,
18
- this list of conditions and the following disclaimer in the documentation
19
- and/or other materials provided with the distribution.
20
-
21
- * Neither the name of the copyright holder nor the names of its
22
- contributors may be used to endorse or promote products derived from
23
- this software without specific prior written permission.
24
-
25
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
26
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
28
- DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
29
- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
30
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
31
- SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
32
- CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
33
- OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
34
- OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
35
-
6
+ License-Expression: BSD-3-Clause
36
7
  Project-URL: homepage, https://github.com/napari/napari-plugin-manager
37
8
  Classifier: Development Status :: 3 - Alpha
38
9
  Classifier: Environment :: X11 Applications :: Qt
39
10
  Classifier: Framework :: napari
40
11
  Classifier: Intended Audience :: Education
41
12
  Classifier: Intended Audience :: Science/Research
42
- Classifier: License :: OSI Approved :: BSD License
43
13
  Classifier: Programming Language :: C
44
14
  Classifier: Programming Language :: Python
45
15
  Classifier: Programming Language :: Python :: 3 :: Only
@@ -59,6 +29,7 @@ Classifier: Operating System :: MacOS
59
29
  Requires-Python: >=3.10
60
30
  Description-Content-Type: text/markdown
61
31
  License-File: LICENSE
32
+ Requires-Dist: napari
62
33
  Requires-Dist: npe2
63
34
  Requires-Dist: qtpy
64
35
  Requires-Dist: superqt
@@ -67,11 +38,14 @@ Requires-Dist: packaging
67
38
  Provides-Extra: dev
68
39
  Requires-Dist: PyQt6; extra == "dev"
69
40
  Requires-Dist: pre-commit; extra == "dev"
41
+ Provides-Extra: uv
42
+ Requires-Dist: uv; extra == "uv"
70
43
  Provides-Extra: testing
44
+ Requires-Dist: napari-plugin-manager[uv]; extra == "testing"
71
45
  Requires-Dist: coverage; extra == "testing"
72
46
  Requires-Dist: flaky; extra == "testing"
73
47
  Requires-Dist: pytest; extra == "testing"
74
- Requires-Dist: pytest-qt; extra == "testing"
48
+ Requires-Dist: pytest-qt<4.5; extra == "testing"
75
49
  Requires-Dist: virtualenv; extra == "testing"
76
50
  Provides-Extra: docs
77
51
  Requires-Dist: sphinx>6; extra == "docs"
@@ -102,7 +76,7 @@ The `napari-plugin-manager` used to be part of the [napari] codebase before the
102
76
  series. It's now maintained as a separate project and package to allow uncoupled iterations outside
103
77
  of the `napari` release cycle.
104
78
 
105
- Future work will allow other applications with a plugin ecosytem to customize and
79
+ Future work will allow other applications with a plugin ecosytem to customize and
106
80
  use the `plugin-manager`. This package remains under active development and contributions
107
81
  are very welcome. Please [open an issue] to discuss potential improvements.
108
82
 
@@ -191,7 +165,7 @@ a restart to be properly configured.
191
165
 
192
166
  ### Installing a plugin via direct entry
193
167
 
194
- You can also install a napari plugin or any other package via the direct entry option. The following steps
168
+ You can also install a napari plugin or any other package via the direct entry option. The following steps
195
169
  correspond to the options and buttons located at the **bottom of the dialog**.
196
170
 
197
171
  1. You can type either the name of the package, a url to the resource or drag and drop a compressed file
@@ -17,7 +17,7 @@ The `napari-plugin-manager` used to be part of the [napari] codebase before the
17
17
  series. It's now maintained as a separate project and package to allow uncoupled iterations outside
18
18
  of the `napari` release cycle.
19
19
 
20
- Future work will allow other applications with a plugin ecosytem to customize and
20
+ Future work will allow other applications with a plugin ecosytem to customize and
21
21
  use the `plugin-manager`. This package remains under active development and contributions
22
22
  are very welcome. Please [open an issue] to discuss potential improvements.
23
23
 
@@ -106,7 +106,7 @@ a restart to be properly configured.
106
106
 
107
107
  ### Installing a plugin via direct entry
108
108
 
109
- You can also install a napari plugin or any other package via the direct entry option. The following steps
109
+ You can also install a napari plugin or any other package via the direct entry option. The following steps
110
110
  correspond to the options and buttons located at the **bottom of the dialog**.
111
111
 
112
112
  1. You can type either the name of the package, a url to the resource or drag and drop a compressed file
@@ -0,0 +1,24 @@
1
+ ignore:
2
+ - napari_plugin_manager/_version.py
3
+ coverage:
4
+ status:
5
+ project:
6
+ default: false
7
+ library:
8
+ target: auto
9
+ paths: ['!.*/_tests/.*']
10
+ threshold: 1%
11
+ tests:
12
+ target: auto
13
+ paths: ['.*/_tests/.*']
14
+ threshold: 1% # coverage can drop by up to 1% while still posting success
15
+ patch:
16
+ default:
17
+ threshold: 1%
18
+ target: 0%
19
+ codecov:
20
+ notify:
21
+ after_n_builds: 1
22
+ comment:
23
+ require_changes: true # if true: only post the PR comment if coverage changes
24
+ after_n_builds: 1
@@ -19,16 +19,16 @@ from napari_plugin_manager._version import (
19
19
  )
20
20
 
21
21
  release = napari_plugin_manager_version
22
- if "dev" in release: # noqa: SIM108
23
- version = "dev"
22
+ if 'dev' in release: # noqa: SIM108
23
+ version = 'dev'
24
24
  else:
25
25
  version = release
26
26
 
27
27
  # -- Project information -----------------------------------------------------
28
28
 
29
- project = "napari-plugin-manager"
30
- copyright = "2024, The napari team" # noqa: A001
31
- author = "The napari team"
29
+ project = 'napari-plugin-manager'
30
+ copyright = '2024, The napari team' # noqa: A001
31
+ author = 'The napari team'
32
32
 
33
33
  # -- General configuration ---------------------------------------------------
34
34
 
@@ -37,22 +37,22 @@ author = "The napari team"
37
37
  # ones.
38
38
 
39
39
  extensions = [
40
- "sphinx.ext.intersphinx",
41
- "sphinx_external_toc",
42
- "myst_nb",
43
- "sphinx.ext.viewcode",
44
- "sphinx_favicon",
45
- "sphinx_copybutton",
40
+ 'sphinx.ext.intersphinx',
41
+ 'sphinx_external_toc',
42
+ 'myst_nb',
43
+ 'sphinx.ext.viewcode',
44
+ 'sphinx_favicon',
45
+ 'sphinx_copybutton',
46
46
  ]
47
47
 
48
- external_toc_path = "_toc.yml"
48
+ external_toc_path = '_toc.yml'
49
49
 
50
50
  # -- Options for HTML output -------------------------------------------------
51
51
 
52
52
  # The theme to use for HTML and HTML Help pages. See the documentation for
53
53
  # a list of builtin themes.
54
54
  #
55
- html_theme = "napari_sphinx_theme"
55
+ html_theme = 'napari_sphinx_theme'
56
56
 
57
57
  # # Define the json_url for our version switcher.
58
58
  # json_url = "https://napari.org/dev/_static/version_switcher.json"
@@ -63,88 +63,88 @@ html_theme = "napari_sphinx_theme"
63
63
  # version_match = release
64
64
 
65
65
  html_theme_options = {
66
- "external_links": [{"name": "napari", "url": "https://napari.org"}],
67
- "github_url": "https://github.com/napari/napari-plugin-manager",
68
- "navbar_start": ["navbar-logo", "navbar-project"],
69
- "navbar_end": ["navbar-icon-links"],
66
+ 'external_links': [{'name': 'napari', 'url': 'https://napari.org'}],
67
+ 'github_url': 'https://github.com/napari/napari-plugin-manager',
68
+ 'navbar_start': ['navbar-logo', 'navbar-project'],
69
+ 'navbar_end': ['navbar-icon-links'],
70
70
  # "switcher": {
71
71
  # "json_url": json_url,
72
72
  # "version_match": version_match,
73
73
  # },
74
- "navbar_persistent": [],
75
- "header_links_before_dropdown": 6,
76
- "secondary_sidebar_items": ["page-toc"],
77
- "pygments_light_style": "napari",
78
- "pygments_dark_style": "napari",
74
+ 'navbar_persistent': [],
75
+ 'header_links_before_dropdown': 6,
76
+ 'secondary_sidebar_items': ['page-toc'],
77
+ 'pygments_light_style': 'napari',
78
+ 'pygments_dark_style': 'napari',
79
79
  }
80
80
 
81
81
  # Add any paths that contain custom static files (such as style sheets) here,
82
82
  # relative to this directory. They are copied after the builtin static files,
83
83
  # so a file named "default.css" will overwrite the builtin "default.css".
84
- html_static_path = ["_static"]
85
- html_logo = "images/logo.png"
86
- html_sourcelink_suffix = ""
87
- html_title = "napari plugin manager"
84
+ html_static_path = ['_static']
85
+ html_logo = 'images/logo.png'
86
+ html_sourcelink_suffix = ''
87
+ html_title = 'napari plugin manager'
88
88
 
89
89
  favicons = [
90
90
  {
91
91
  # the SVG is the "best" and contains code to detect OS light/dark mode
92
- "static-file": "favicon/logo-silhouette-dark-light.svg",
93
- "type": "image/svg+xml",
92
+ 'static-file': 'favicon/logo-silhouette-dark-light.svg',
93
+ 'type': 'image/svg+xml',
94
94
  },
95
95
  {
96
96
  # Safari in Oct. 2022 does not support SVG
97
97
  # an ICO would work as well, but PNG should be just as good
98
98
  # setting sizes="any" is needed for Chrome to prefer the SVG
99
- "sizes": "any",
100
- "static-file": "favicon/logo-silhouette-192.png",
99
+ 'sizes': 'any',
100
+ 'static-file': 'favicon/logo-silhouette-192.png',
101
101
  },
102
102
  {
103
103
  # this is used on iPad/iPhone for "Save to Home Screen"
104
104
  # apparently some other apps use it as well
105
- "rel": "apple-touch-icon",
106
- "sizes": "180x180",
107
- "static-file": "favicon/logo-noborder-180.png",
105
+ 'rel': 'apple-touch-icon',
106
+ 'sizes': '180x180',
107
+ 'static-file': 'favicon/logo-noborder-180.png',
108
108
  },
109
109
  ]
110
110
 
111
111
  html_css_files = [
112
- "custom.css",
112
+ 'custom.css',
113
113
  ]
114
114
 
115
115
  intersphinx_mapping = {
116
- "python": ["https://docs.python.org/3", None],
117
- "numpy": ["https://numpy.org/doc/stable/", None],
118
- "napari_plugin_engine": [
119
- "https://napari-plugin-engine.readthedocs.io/en/latest/",
120
- "https://napari-plugin-engine.readthedocs.io/en/latest/objects.inv",
116
+ 'python': ['https://docs.python.org/3', None],
117
+ 'numpy': ['https://numpy.org/doc/stable/', None],
118
+ 'napari_plugin_engine': [
119
+ 'https://napari-plugin-engine.readthedocs.io/en/latest/',
120
+ 'https://napari-plugin-engine.readthedocs.io/en/latest/objects.inv',
121
121
  ],
122
- "napari": [
123
- "https://napari.org/dev",
124
- "https://napari.org/dev/objects.inv",
122
+ 'napari': [
123
+ 'https://napari.org/dev',
124
+ 'https://napari.org/dev/objects.inv',
125
125
  ],
126
126
  }
127
127
 
128
128
  myst_enable_extensions = [
129
- "colon_fence",
130
- "dollarmath",
131
- "substitution",
132
- "tasklist",
129
+ 'colon_fence',
130
+ 'dollarmath',
131
+ 'substitution',
132
+ 'tasklist',
133
133
  ]
134
134
 
135
135
  myst_heading_anchors = 4
136
- suppress_warnings = ["etoc.toctree"]
136
+ suppress_warnings = ['etoc.toctree']
137
137
 
138
138
  # Add any paths that contain templates here, relative to this directory.
139
- templates_path = ["_templates"]
139
+ templates_path = ['_templates']
140
140
 
141
141
  # List of patterns, relative to source directory, that match files and
142
142
  # directories to ignore when looking for source files.
143
143
  # This pattern also affects html_static_path and html_extra_path.
144
144
  exclude_patterns = [
145
- "_build",
146
- "Thumbs.db",
147
- ".DS_Store",
148
- ".jupyter_cache",
149
- "jupyter_execute",
145
+ '_build',
146
+ 'Thumbs.db',
147
+ '.DS_Store',
148
+ '.jupyter_cache',
149
+ 'jupyter_execute',
150
150
  ]