npe2 0.4.1__tar.gz → 0.7.5__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 (137) hide show
  1. {npe2-0.4.1 → npe2-0.7.5}/.github/workflows/ci.yml +79 -20
  2. npe2-0.7.5/.github/workflows/test_all_plugins.yml +53 -0
  3. {npe2-0.4.1 → npe2-0.7.5}/.github/workflows/test_conversion.yml +8 -7
  4. {npe2-0.4.1 → npe2-0.7.5}/.github/workflows/update_changelog.yml +3 -3
  5. {npe2-0.4.1 → npe2-0.7.5}/.gitignore +3 -1
  6. npe2-0.7.5/.pre-commit-config.yaml +33 -0
  7. {npe2-0.4.1 → npe2-0.7.5}/CHANGELOG.md +210 -10
  8. npe2-0.7.5/Makefile +18 -0
  9. {npe2-0.4.1 → npe2-0.7.5}/PKG-INFO +37 -9
  10. {npe2-0.4.1 → npe2-0.7.5}/_docs/example_manifest.yaml +2 -0
  11. {npe2-0.4.1 → npe2-0.7.5}/_docs/render.py +4 -5
  12. {npe2-0.4.1 → npe2-0.7.5}/_docs/templates/_npe2_contributions.md.jinja +7 -5
  13. {npe2-0.4.1 → npe2-0.7.5}/_docs/templates/_npe2_manifest.md.jinja +5 -2
  14. {npe2-0.4.1 → npe2-0.7.5}/_docs/templates/_npe2_readers_guide.md.jinja +8 -6
  15. {npe2-0.4.1 → npe2-0.7.5}/_docs/templates/_npe2_sample_data_guide.md.jinja +8 -6
  16. {npe2-0.4.1 → npe2-0.7.5}/_docs/templates/_npe2_widgets_guide.md.jinja +19 -15
  17. {npe2-0.4.1 → npe2-0.7.5}/_docs/templates/_npe2_writers_guide.md.jinja +12 -9
  18. {npe2-0.4.1 → npe2-0.7.5}/docs/_config.yml +2 -2
  19. {npe2-0.4.1 → npe2-0.7.5}/docs/requirements.txt +1 -0
  20. npe2-0.7.5/pyproject.toml +169 -0
  21. {npe2-0.4.1 → npe2-0.7.5/src}/npe2/__init__.py +14 -8
  22. npe2-0.7.5/src/npe2/__main__.py +4 -0
  23. {npe2-0.4.1 → npe2-0.7.5/src}/npe2/_command_registry.py +7 -1
  24. {npe2-0.4.1 → npe2-0.7.5/src}/npe2/_dynamic_plugin.py +19 -10
  25. npe2-0.7.5/src/npe2/_inspection/__init__.py +13 -0
  26. npe2-0.7.5/src/npe2/_inspection/_compile.py +109 -0
  27. npe2-0.7.5/src/npe2/_inspection/_fetch.py +451 -0
  28. {npe2-0.4.1/npe2 → npe2-0.7.5/src/npe2/_inspection}/_from_npe1.py +48 -122
  29. npe2-0.7.5/src/npe2/_inspection/_setuputils.py +131 -0
  30. npe2-0.7.5/src/npe2/_inspection/_visitors.py +461 -0
  31. {npe2-0.4.1 → npe2-0.7.5/src}/npe2/_plugin_manager.py +208 -14
  32. npe2-0.7.5/src/npe2/_pydantic_compat.py +54 -0
  33. npe2-0.7.5/src/npe2/_pytest_plugin.py +104 -0
  34. npe2-0.7.5/src/npe2/_setuptools_plugin.py +204 -0
  35. npe2-0.7.5/src/npe2/cli.py +526 -0
  36. npe2-0.7.5/src/npe2/implements.py +112 -0
  37. npe2-0.7.5/src/npe2/implements.pyi +57 -0
  38. {npe2-0.4.1 → npe2-0.7.5/src}/npe2/io_utils.py +129 -18
  39. {npe2-0.4.1 → npe2-0.7.5/src}/npe2/manifest/_bases.py +12 -5
  40. {npe2-0.4.1 → npe2-0.7.5/src}/npe2/manifest/_npe1_adapter.py +22 -10
  41. {npe2-0.4.1 → npe2-0.7.5/src}/npe2/manifest/_package_metadata.py +31 -17
  42. {npe2-0.4.1 → npe2-0.7.5/src}/npe2/manifest/_validators.py +29 -11
  43. {npe2-0.4.1 → npe2-0.7.5/src}/npe2/manifest/contributions/__init__.py +3 -0
  44. {npe2-0.4.1 → npe2-0.7.5/src}/npe2/manifest/contributions/_commands.py +39 -40
  45. npe2-0.7.5/src/npe2/manifest/contributions/_configuration.py +148 -0
  46. npe2-0.7.5/src/npe2/manifest/contributions/_contributions.py +56 -0
  47. npe2-0.7.5/src/npe2/manifest/contributions/_icon.py +8 -0
  48. npe2-0.7.5/src/npe2/manifest/contributions/_json_schema.py +295 -0
  49. {npe2-0.4.1 → npe2-0.7.5/src}/npe2/manifest/contributions/_keybindings.py +7 -9
  50. {npe2-0.4.1 → npe2-0.7.5/src}/npe2/manifest/contributions/_menus.py +15 -5
  51. {npe2-0.4.1 → npe2-0.7.5/src}/npe2/manifest/contributions/_readers.py +5 -6
  52. {npe2-0.4.1 → npe2-0.7.5/src}/npe2/manifest/contributions/_sample_data.py +6 -8
  53. {npe2-0.4.1 → npe2-0.7.5/src}/npe2/manifest/contributions/_submenu.py +1 -2
  54. {npe2-0.4.1 → npe2-0.7.5/src}/npe2/manifest/contributions/_themes.py +9 -5
  55. {npe2-0.4.1 → npe2-0.7.5/src}/npe2/manifest/contributions/_widgets.py +11 -7
  56. {npe2-0.4.1 → npe2-0.7.5/src}/npe2/manifest/contributions/_writers.py +4 -4
  57. {npe2-0.4.1 → npe2-0.7.5/src}/npe2/manifest/schema.py +140 -45
  58. {npe2-0.4.1 → npe2-0.7.5/src}/npe2/manifest/utils.py +115 -49
  59. {npe2-0.4.1 → npe2-0.7.5/src}/npe2/plugin_manager.py +15 -5
  60. {npe2-0.4.1 → npe2-0.7.5/src}/npe2/types.py +14 -6
  61. {npe2-0.4.1 → npe2-0.7.5}/tests/conftest.py +71 -14
  62. npe2-0.7.5/tests/fixtures/my-compiled-plugin/my_module/__init__.py +0 -0
  63. npe2-0.7.5/tests/fixtures/my-compiled-plugin/my_module/_a.py +46 -0
  64. npe2-0.7.5/tests/fixtures/my-compiled-plugin/my_module/_b.py +32 -0
  65. npe2-0.7.5/tests/fixtures/my-compiled-plugin/setup.cfg +10 -0
  66. npe2-0.7.5/tests/npe1-plugin/npe1-plugin-0.0.1.dist-info/RECORD +5 -0
  67. npe2-0.7.5/tests/sample/_with_decorators.py +102 -0
  68. {npe2-0.4.1 → npe2-0.7.5}/tests/sample/my_plugin/napari.yaml +11 -7
  69. npe2-0.7.5/tests/test__io_utils.py +320 -0
  70. npe2-0.7.5/tests/test_all_plugins.py +25 -0
  71. {npe2-0.4.1 → npe2-0.7.5}/tests/test_cli.py +104 -5
  72. npe2-0.7.5/tests/test_compile.py +31 -0
  73. npe2-0.7.5/tests/test_config_contribution.py +111 -0
  74. {npe2-0.4.1 → npe2-0.7.5}/tests/test_contributions.py +9 -8
  75. {npe2-0.4.1 → npe2-0.7.5}/tests/test_conversion.py +40 -9
  76. {npe2-0.4.1 → npe2-0.7.5}/tests/test_docs.py +2 -0
  77. npe2-0.7.5/tests/test_fetch.py +105 -0
  78. npe2-0.7.5/tests/test_implements.py +78 -0
  79. {npe2-0.4.1 → npe2-0.7.5}/tests/test_manifest.py +66 -4
  80. {npe2-0.4.1 → npe2-0.7.5}/tests/test_npe1_adapter.py +16 -5
  81. {npe2-0.4.1 → npe2-0.7.5}/tests/test_package_meta.py +21 -0
  82. {npe2-0.4.1 → npe2-0.7.5}/tests/test_plugin_manager.py +56 -2
  83. npe2-0.7.5/tests/test_pytest_plugin.py +67 -0
  84. npe2-0.7.5/tests/test_setuptools_plugin.py +61 -0
  85. {npe2-0.4.1 → npe2-0.7.5}/tests/test_utils.py +56 -2
  86. {npe2-0.4.1 → npe2-0.7.5}/tests/test_validations.py +16 -17
  87. npe2-0.4.1/.github/workflows/test_all_plugins.yml +0 -75
  88. npe2-0.4.1/.pre-commit-config.yaml +0 -45
  89. npe2-0.4.1/MANIFEST.in +0 -9
  90. npe2-0.4.1/Makefile +0 -11
  91. npe2-0.4.1/docs/plugins/_npe2_contributions.md +0 -430
  92. npe2-0.4.1/docs/plugins/_npe2_manifest.md +0 -221
  93. npe2-0.4.1/docs/plugins/_npe2_readers_guide.md +0 -101
  94. npe2-0.4.1/docs/plugins/_npe2_sample_data_guide.md +0 -80
  95. npe2-0.4.1/docs/plugins/_npe2_widgets_guide.md +0 -181
  96. npe2-0.4.1/docs/plugins/_npe2_writers_guide.md +0 -173
  97. npe2-0.4.1/npe2/_version.py +0 -5
  98. npe2-0.4.1/npe2/cli.py +0 -191
  99. npe2-0.4.1/npe2/manifest/contributions/_configuration.py +0 -262
  100. npe2-0.4.1/npe2/manifest/contributions/_contributions.py +0 -30
  101. npe2-0.4.1/npe2/manifest/contributions/_icon.py +0 -8
  102. npe2-0.4.1/npe2.egg-info/PKG-INFO +0 -65
  103. npe2-0.4.1/npe2.egg-info/SOURCES.txt +0 -102
  104. npe2-0.4.1/npe2.egg-info/dependency_links.txt +0 -1
  105. npe2-0.4.1/npe2.egg-info/entry_points.txt +0 -2
  106. npe2-0.4.1/npe2.egg-info/not-zip-safe +0 -1
  107. npe2-0.4.1/npe2.egg-info/requires.txt +0 -36
  108. npe2-0.4.1/npe2.egg-info/top_level.txt +0 -1
  109. npe2-0.4.1/pyproject.toml +0 -25
  110. npe2-0.4.1/setup.cfg +0 -125
  111. npe2-0.4.1/tests/test_all_plugins.py +0 -51
  112. npe2-0.4.1/tests/test_io_utils.py +0 -66
  113. {npe2-0.4.1 → npe2-0.7.5}/.github/ISSUE_TEMPLATE.md +0 -0
  114. {npe2-0.4.1 → npe2-0.7.5}/.github/dependabot.yml +0 -0
  115. {npe2-0.4.1 → npe2-0.7.5}/.github_changelog_generator +0 -0
  116. {npe2-0.4.1 → npe2-0.7.5}/LICENSE +0 -0
  117. {npe2-0.4.1 → npe2-0.7.5}/README.md +0 -0
  118. {npe2-0.4.1 → npe2-0.7.5}/_docs/example_plugin/__init__.py +0 -0
  119. {npe2-0.4.1 → npe2-0.7.5}/_docs/example_plugin/some_module.py +0 -0
  120. {npe2-0.4.1 → npe2-0.7.5}/codecov.yml +0 -0
  121. {npe2-0.4.1 → npe2-0.7.5}/docs/_toc.yml +0 -0
  122. {npe2-0.4.1 → npe2-0.7.5}/docs/index.md +0 -0
  123. {npe2-0.4.1 → npe2-0.7.5/src}/npe2/manifest/__init__.py +0 -0
  124. {npe2-0.4.1 → npe2-0.7.5/src}/npe2/manifest/menus.py +0 -0
  125. {npe2-0.4.1 → npe2-0.7.5/src}/npe2/manifest/package_metadata.py +0 -0
  126. {npe2-0.4.1 → npe2-0.7.5/src}/npe2/py.typed +0 -0
  127. {npe2-0.4.1 → npe2-0.7.5}/tests/npe1-plugin/npe1-plugin-0.0.1.dist-info/METADATA +0 -0
  128. {npe2-0.4.1 → npe2-0.7.5}/tests/npe1-plugin/npe1-plugin-0.0.1.dist-info/entry_points.txt +0 -0
  129. {npe2-0.4.1 → npe2-0.7.5}/tests/npe1-plugin/npe1-plugin-0.0.1.dist-info/top_level.txt +0 -0
  130. {npe2-0.4.1 → npe2-0.7.5}/tests/npe1-plugin/npe1_module/__init__.py +0 -0
  131. {npe2-0.4.1 → npe2-0.7.5}/tests/npe1-plugin/setup.cfg +0 -0
  132. {npe2-0.4.1 → npe2-0.7.5}/tests/sample/my_plugin/__init__.py +0 -0
  133. {npe2-0.4.1 → npe2-0.7.5}/tests/sample/my_plugin-1.2.3.dist-info/METADATA +0 -0
  134. {npe2-0.4.1 → npe2-0.7.5}/tests/sample/my_plugin-1.2.3.dist-info/entry_points.txt +0 -0
  135. {npe2-0.4.1 → npe2-0.7.5}/tests/sample/my_plugin-1.2.3.dist-info/top_level.txt +0 -0
  136. {npe2-0.4.1 → npe2-0.7.5}/tests/test_pm_module.py +0 -0
  137. {npe2-0.4.1 → npe2-0.7.5}/tests/test_tmp_plugin.py +0 -0
@@ -9,19 +9,31 @@ on:
9
9
  pull_request: {}
10
10
  workflow_dispatch:
11
11
 
12
+ concurrency:
13
+ group: test-${{ github.ref }}
14
+ cancel-in-progress: true
15
+
12
16
  jobs:
17
+ check-manifest:
18
+ name: Check Manifest
19
+ runs-on: ubuntu-latest
20
+ steps:
21
+ - uses: actions/checkout@v4
22
+ - name: Check
23
+ run: pipx run check-manifest
13
24
 
14
25
  test:
15
- name: ${{ matrix.platform }} (${{ matrix.python-version }})
26
+ name: ${{ matrix.platform }} (${{ matrix.python-version }}) ${{ matrix.pydantic }}
16
27
  runs-on: ${{ matrix.platform }}
17
28
  strategy:
18
29
  fail-fast: false
19
30
  matrix:
20
- python-version: [3.8, 3.9, "3.10"]
31
+ python-version: [3.8, 3.9, "3.10", "3.11"]
21
32
  platform: [ubuntu-latest, macos-latest, windows-latest]
33
+ pydantic: ["pydantic<2", "pydantic>2"]
22
34
 
23
35
  steps:
24
- - uses: actions/checkout@v3
36
+ - uses: actions/checkout@v4
25
37
 
26
38
  - name: Set up Python ${{ matrix.python-version }}
27
39
  uses: actions/setup-python@v4
@@ -31,24 +43,28 @@ jobs:
31
43
  - name: Install dependencies
32
44
  run: |
33
45
  python -m pip install --upgrade pip
34
- pip install -e .[docs,testing]
46
+ pip install "${{ matrix.pydantic }}"
47
+ pip install -e .[json,docs,testing]
35
48
 
36
49
  - name: Test Main docs build
37
50
  run: pytest --color yes -m github_main_only
38
51
  - name: Test
39
- run: pytest --color yes --cov npe2 --cov-report xml --cov-report term-missing
52
+ run: |
53
+ coverage run --source=npe2 -m pytest --color yes
40
54
 
41
- - name: Coverage
42
- uses: codecov/codecov-action@v3
55
+ - name: Upload coverage as artifact
56
+ uses: actions/upload-artifact@v3
43
57
  with:
44
- fail_ci_if_error: true
58
+ name: coverage reports
59
+ path: |
60
+ ./.coverage.*
45
61
 
46
62
  test_napari:
47
63
  name: napari tests
48
64
  runs-on: ubuntu-latest
49
65
  steps:
50
- - uses: actions/checkout@v3
51
- - uses: actions/checkout@v3
66
+ - uses: actions/checkout@v4
67
+ - uses: actions/checkout@v4
52
68
  with:
53
69
  repository: napari/napari
54
70
  path: napari-from-github
@@ -56,14 +72,14 @@ jobs:
56
72
 
57
73
  - uses: actions/setup-python@v4
58
74
  with:
59
- python-version: '3.9'
75
+ python-version: "3.10"
60
76
  - name: Install
61
77
  run: |
62
78
  python -m pip install --upgrade pip
63
- python -m pip install -e ./napari-from-github
64
- python -m pip install -e .
79
+ python -m pip install -e ./napari-from-github -c "./napari-from-github/resources/constraints/constraints_py3.10.txt"
80
+ python -m pip install -e .[json]
65
81
  # bare minimum required to test napari/plugins
66
- python -m pip install pytest scikit-image[data] zarr xarray hypothesis matplotlib
82
+ python -m pip install pytest pytest-pretty scikit-image[data] zarr xarray hypothesis matplotlib
67
83
 
68
84
  - name: Run napari plugin headless tests
69
85
  run: pytest -W 'ignore::DeprecationWarning' napari/plugins napari/settings napari/layers napari/components
@@ -73,28 +89,70 @@ jobs:
73
89
  name: docs render
74
90
  runs-on: ubuntu-latest
75
91
  steps:
76
- - uses: actions/checkout@v3
92
+ - uses: actions/checkout@v4
77
93
  - uses: actions/setup-python@v4
78
94
  with:
79
- python-version: '3.x'
95
+ python-version: "3.x"
80
96
  - name: Build schema
81
97
  run: |
82
98
  python -m pip install --upgrade pip
83
- pip install -e .[docs]
99
+ pip install -e .[docs] check-jsonschema
84
100
  python -m npe2.manifest.schema > _schema.json
101
+ check-jsonschema --check-metaschema _schema.json
85
102
  - name: Test rendering docs
86
103
  run: python _docs/render.py
87
104
  env:
88
105
  NPE2_SCHEMA: "_schema.json"
89
106
 
107
+ upload_coverage:
108
+ needs: test
109
+ name: Upload coverage
110
+ if: always()
111
+ runs-on: ubuntu-latest
112
+ steps:
113
+ - uses: actions/checkout@v3
114
+
115
+ - uses: actions/setup-python@v4
116
+ with:
117
+ python-version: "3.x"
118
+ cache-dependency-path: setup.cfg
119
+ cache: 'pip'
120
+
121
+ - name: Install Dependencies
122
+ run: |
123
+ pip install --upgrade pip
124
+ pip install codecov
125
+
126
+ - name: Download coverage data
127
+ uses: actions/download-artifact@v3
128
+ with:
129
+ name: coverage reports
130
+ path: coverage
131
+
132
+ - name: combine coverage data
133
+ run: |
134
+ python -Im coverage combine coverage
135
+ python -Im coverage xml -o coverage.xml
136
+
137
+ # Report and write to summary.
138
+ python -Im coverage report --format=markdown --skip-empty --skip-covered >> $GITHUB_STEP_SUMMARY
139
+
140
+ - name: Upload coverage data
141
+ uses: codecov/codecov-action@v3
142
+ with:
143
+ fail_ci_if_error: true
144
+ token: ${{ secrets.CODECOV_TOKEN }}
145
+
90
146
  deploy:
91
147
  name: Deploy
92
148
  needs: test
93
149
  if: "success() && startsWith(github.ref, 'refs/tags/')"
94
150
  runs-on: ubuntu-latest
95
-
151
+ permissions:
152
+ contents: write
153
+ id-token: write
96
154
  steps:
97
- - uses: actions/checkout@v3
155
+ - uses: actions/checkout@v4
98
156
 
99
157
  - name: Set up Python
100
158
  uses: actions/setup-python@v4
@@ -112,8 +170,9 @@ jobs:
112
170
 
113
171
  - name: write schema
114
172
  run: |
115
- pip install -e .
173
+ pip install -e . check-jsonschema
116
174
  python -m npe2.manifest.schema > schema.json
175
+ check-jsonschema --check-metaschema schema.json
117
176
 
118
177
  - name: Build and publish
119
178
  run: twine upload dist/*
@@ -0,0 +1,53 @@
1
+ name: Test all plugins
2
+
3
+ on:
4
+ pull_request:
5
+ types: [ labeled ]
6
+ workflow_dispatch:
7
+
8
+ concurrency:
9
+ group: test-plugins-${{ github.ref }}
10
+ cancel-in-progress: true
11
+
12
+ jobs:
13
+ get-plugins:
14
+ if: github.event.label.name == 'test-all-plugins' || github.event_name == 'workflow_dispatch'
15
+ runs-on: ubuntu-latest
16
+ steps:
17
+ - id: plugin_names
18
+ run: echo "::set-output name=plugins::$(curl -s https://api.napari-hub.org/plugins | jq -c 'keys')"
19
+ outputs:
20
+ plugins: ${{ steps.plugin_names.outputs.plugins }}
21
+
22
+ test_all:
23
+ needs: get-plugins
24
+ name: ${{ matrix.plugin }}
25
+ runs-on: ubuntu-latest
26
+ strategy:
27
+ fail-fast: false
28
+ matrix:
29
+ plugin: ${{ fromJson(needs.get-plugins.outputs.plugins) }}
30
+ defaults:
31
+ run:
32
+ shell: bash -l {0}
33
+
34
+ steps:
35
+ - uses: actions/checkout@v4
36
+
37
+ - uses: tlambert03/setup-qt-libs@v1
38
+
39
+ - uses: conda-incubator/setup-miniconda@v3
40
+ with:
41
+ python-version: 3.9
42
+ miniforge-variant: Mambaforge
43
+ miniforge-version: latest
44
+ use-mamba: true
45
+
46
+ - name: Install npe2
47
+ run: pip install -e .[testing]
48
+
49
+ - run: sudo apt-get install -y xvfb
50
+ - name: Run tests
51
+ run: xvfb-run --auto-servernum pytest tests/test_all_plugins.py -s -v --color=yes
52
+ env:
53
+ TEST_PACKAGE_NAME: ${{ matrix.plugin }}
@@ -5,13 +5,14 @@ on:
5
5
  # pull_request:
6
6
  workflow_dispatch:
7
7
 
8
+ concurrency:
9
+ group: convert-${{ github.ref }}
10
+ cancel-in-progress: true
11
+
8
12
  jobs:
9
13
  get-plugins:
10
14
  runs-on: ubuntu-latest
11
15
  steps:
12
- - uses: styfle/cancel-workflow-action@0.9.1
13
- with:
14
- access_token: ${{ github.token }}
15
16
  - id: plugin_names
16
17
  run: echo "::set-output name=plugins::$(curl -s https://api.napari-hub.org/plugins | jq -c 'keys')"
17
18
  outputs:
@@ -49,7 +50,7 @@ jobs:
49
50
  echo "plugin_repo=$URL" >> $GITHUB_ENV
50
51
 
51
52
  - name: Checkout plugin repo
52
- uses: actions/checkout@v3
53
+ uses: actions/checkout@v4
53
54
  with:
54
55
  repository: ${{ env.plugin_repo }}
55
56
  path: 'plugin_repo'
@@ -60,7 +61,7 @@ jobs:
60
61
 
61
62
  - name: Test Conversion
62
63
  id: test-without-napari
63
- uses: GabrielBB/xvfb-action@v1
64
+ uses: aganders3/headless-gui@v1
64
65
  continue-on-error: true
65
66
  with:
66
67
  run: npe2 convert ./plugin_repo
@@ -72,13 +73,13 @@ jobs:
72
73
  - name: Test Conversion again with napari
73
74
  id: test-with-napari
74
75
  if: ${{ steps.test-without-napari.outcome == 'failure' }}
75
- uses: GabrielBB/xvfb-action@v1
76
+ uses: aganders3/headless-gui@v1
76
77
  with:
77
78
  run: npe2 convert ./plugin_repo
78
79
 
79
80
  - name: Test Conversion again with napari
80
81
  if: ${{ steps.test-without-napari.outcome == 'failure' && steps.test-with-napari.outcome == 'failure' }}
81
- uses: GabrielBB/xvfb-action@v1
82
+ uses: aganders3/headless-gui@v1
82
83
  with:
83
84
  # try without modifying directory
84
85
  run: npe2 convert -n ${{ matrix.plugin }}
@@ -11,7 +11,7 @@ jobs:
11
11
  runs-on: ubuntu-20.04
12
12
  steps:
13
13
  - name: Checkout
14
- uses: actions/checkout@v3
14
+ uses: actions/checkout@v4
15
15
  - name: "✏️ Generate release changelog"
16
16
  uses: heinrichreimer/github-changelog-generator-action@v2.3
17
17
  with:
@@ -19,9 +19,9 @@ jobs:
19
19
  token: ${{ secrets.GITHUB_TOKEN }}
20
20
  repo: napari/npe2
21
21
  - name: Create Pull Request
22
- uses: peter-evans/create-pull-request@v4
22
+ uses: peter-evans/create-pull-request@v5
23
23
  with:
24
24
  token: ${{ secrets.GITHUB_TOKEN }}
25
25
  commit-message: Automatic changelog update
26
- title: Automatic Changelog update
26
+ title: changelog ${{ github.event.inputs.next_tag }}
27
27
  branch: update-changelog
@@ -24,6 +24,7 @@ wheels/
24
24
  *.egg-info/
25
25
  .installed.cfg
26
26
  *.egg
27
+ .DS_Store
27
28
 
28
29
  # PyInstaller
29
30
  # Usually these files are written by a python script from a template
@@ -100,10 +101,11 @@ ENV/
100
101
 
101
102
  # mypy
102
103
  .mypy_cache/
104
+ .ruff_cache/
103
105
 
104
106
  # IDE settings
105
107
  .vscode/
106
- npe2/_version.py
108
+ src/npe2/_version.py
107
109
 
108
110
  # ignore everything that gets rendered from _docs
109
111
  docs/plugins/*.md
@@ -0,0 +1,33 @@
1
+ ci:
2
+ autoupdate_schedule: monthly
3
+ autofix_commit_msg: "style: [pre-commit.ci] auto fixes [...]"
4
+ autoupdate_commit_msg: "ci: [pre-commit.ci] autoupdate"
5
+
6
+ exclude: _docs/example_plugin/some_module.py
7
+
8
+ repos:
9
+ - repo: https://github.com/pre-commit/pre-commit-hooks
10
+ rev: v4.4.0
11
+ hooks:
12
+ - id: check-docstring-first
13
+ - id: end-of-file-fixer
14
+ - id: trailing-whitespace
15
+
16
+ - repo: https://github.com/psf/black
17
+ rev: 23.7.0
18
+ hooks:
19
+ - id: black
20
+
21
+ - repo: https://github.com/astral-sh/ruff-pre-commit
22
+ rev: v0.0.282
23
+ hooks:
24
+ - id: ruff
25
+
26
+ - repo: https://github.com/pre-commit/mirrors-mypy
27
+ rev: v1.4.1
28
+ hooks:
29
+ - id: mypy
30
+ additional_dependencies:
31
+ - types-toml
32
+ - types-PyYAML
33
+ exclude: npe2/implements.pyi|_docs/render.py
@@ -1,8 +1,212 @@
1
1
  # Changelog
2
2
 
3
- ## [0.4.1](https://github.com/napari/npe2/tree/0.4.1) (2022-06-13)
3
+ ## [v0.7.1](https://github.com/napari/npe2/tree/v0.7.1) (2023-07-16)
4
4
 
5
- [Full Changelog](https://github.com/napari/npe2/compare/v0.4.0...0.4.1)
5
+ [Full Changelog](https://github.com/napari/npe2/compare/v0.7.0...v0.7.1)
6
+
7
+ **Implemented enhancements:**
8
+
9
+ - feat: support python3.11 [\#293](https://github.com/napari/npe2/pull/293) ([tlambert03](https://github.com/tlambert03))
10
+ - add graph layer [\#292](https://github.com/napari/npe2/pull/292) ([JoOkuma](https://github.com/JoOkuma))
11
+
12
+ **Fixed bugs:**
13
+
14
+ - fix: use constraints in napari tests [\#298](https://github.com/napari/npe2/pull/298) ([Czaki](https://github.com/Czaki))
15
+ - Use full `plugin_name` when finding chosen `reader` rather than `startswith` [\#297](https://github.com/napari/npe2/pull/297) ([DragaDoncila](https://github.com/DragaDoncila))
16
+ - Change ArrayLike type to use read only properties [\#289](https://github.com/napari/npe2/pull/289) ([andy-sweet](https://github.com/andy-sweet))
17
+ - Bugfix: use .lower\(\) to make paths & pattern fnmatch case insensitive [\#275](https://github.com/napari/npe2/pull/275) ([psobolewskiPhD](https://github.com/psobolewskiPhD))
18
+
19
+ **Documentation:**
20
+
21
+ - Fix typo in `DynamicPlugin` [\#304](https://github.com/napari/npe2/pull/304) ([lucyleeow](https://github.com/lucyleeow))
22
+ - DOCS: Widget guide should consistently use parent=None kwarg in examples [\#302](https://github.com/napari/npe2/pull/302) ([GenevieveBuckley](https://github.com/GenevieveBuckley))
23
+
24
+ **Merged pull requests:**
25
+
26
+ - remove tomlpp [\#294](https://github.com/napari/npe2/pull/294) ([tlambert03](https://github.com/tlambert03))
27
+ - Use hatchling as build backend [\#282](https://github.com/napari/npe2/pull/282) ([tlambert03](https://github.com/tlambert03))
28
+
29
+ ## [v0.7.0](https://github.com/napari/npe2/tree/v0.7.0) (2023-04-14)
30
+
31
+ [Full Changelog](https://github.com/napari/npe2/compare/v0.6.2...v0.7.0)
32
+
33
+ **Fixed bugs:**
34
+
35
+ - fix: pass command registry to rdr.exec in io\_utils.\_read [\#285](https://github.com/napari/npe2/pull/285) ([tlambert03](https://github.com/tlambert03))
36
+ - fix: use logger instead of warning for TestPluginManager.discover [\#283](https://github.com/napari/npe2/pull/283) ([tlambert03](https://github.com/tlambert03))
37
+ - Add specific error when reader plugin was chosen but failed [\#276](https://github.com/napari/npe2/pull/276) ([DragaDoncila](https://github.com/DragaDoncila))
38
+
39
+ **Tests & CI:**
40
+
41
+ - Fix tests: use npe1 version \(0.1.2\) of napari-ndtiffs [\#277](https://github.com/napari/npe2/pull/277) ([psobolewskiPhD](https://github.com/psobolewskiPhD))
42
+ - ci: update pre-commit, use ruff and fix mypy [\#273](https://github.com/napari/npe2/pull/273) ([tlambert03](https://github.com/tlambert03))
43
+ - Switch from GabrielBB/xvfb-action to aganders3/headless-gui [\#269](https://github.com/napari/npe2/pull/269) ([Czaki](https://github.com/Czaki))
44
+
45
+ **Refactors:**
46
+
47
+ - refactor: use src layout and pyproject.toml [\#281](https://github.com/napari/npe2/pull/281) ([tlambert03](https://github.com/tlambert03))
48
+
49
+ **Documentation:**
50
+
51
+ - Fix link to magicgui objects.inv in intersphinx [\#270](https://github.com/napari/npe2/pull/270) ([melissawm](https://github.com/melissawm))
52
+
53
+ **Merged pull requests:**
54
+
55
+ - chore: changelog v0.7.0 [\#286](https://github.com/napari/npe2/pull/286) ([tlambert03](https://github.com/tlambert03))
56
+ - ci\(dependabot\): bump peter-evans/create-pull-request from 4 to 5 [\#284](https://github.com/napari/npe2/pull/284) ([dependabot[bot]](https://github.com/apps/dependabot))
57
+ - Pin pydantic bellow 2.0 [\#279](https://github.com/napari/npe2/pull/279) ([Czaki](https://github.com/Czaki))
58
+
59
+ ## [v0.6.2](https://github.com/napari/npe2/tree/v0.6.2) (2023-01-12)
60
+
61
+ [Full Changelog](https://github.com/napari/npe2/compare/v0.6.1...v0.6.2)
62
+
63
+ **Implemented enhancements:**
64
+
65
+ - Expose `syntax_style` [\#261](https://github.com/napari/npe2/pull/261) ([brisvag](https://github.com/brisvag))
66
+ - enable keybinding contribution [\#254](https://github.com/napari/npe2/pull/254) ([kne42](https://github.com/kne42))
67
+ - Add count of discovered plugins [\#248](https://github.com/napari/npe2/pull/248) ([Czaki](https://github.com/Czaki))
68
+ - fix: relax display name validation [\#242](https://github.com/napari/npe2/pull/242) ([tlambert03](https://github.com/tlambert03))
69
+ - feat: add more fetch sources [\#240](https://github.com/napari/npe2/pull/240) ([tlambert03](https://github.com/tlambert03))
70
+ - feat: add category [\#239](https://github.com/napari/npe2/pull/239) ([tlambert03](https://github.com/tlambert03))
71
+ - bug: ignore extra fields on manifest [\#237](https://github.com/napari/npe2/pull/237) ([tlambert03](https://github.com/tlambert03))
72
+ - feat: add icon to manifest [\#235](https://github.com/napari/npe2/pull/235) ([tlambert03](https://github.com/tlambert03))
73
+ - add visibility field [\#234](https://github.com/napari/npe2/pull/234) ([tlambert03](https://github.com/tlambert03))
74
+
75
+ **Fixed bugs:**
76
+
77
+ - Fix PackageMetadata validation error with extra provided field [\#256](https://github.com/napari/npe2/pull/256) ([aganders3](https://github.com/aganders3))
78
+ - fix: alternate fix for dotted plugin\_name [\#238](https://github.com/napari/npe2/pull/238) ([tlambert03](https://github.com/tlambert03))
79
+
80
+ **Tests & CI:**
81
+
82
+ - fix flaky fetch tests [\#255](https://github.com/napari/npe2/pull/255) ([nclack](https://github.com/nclack))
83
+
84
+ **Documentation:**
85
+
86
+ - Move to sphinx-design tabs [\#259](https://github.com/napari/npe2/pull/259) ([melissawm](https://github.com/melissawm))
87
+ - Fix a few broken links [\#258](https://github.com/napari/npe2/pull/258) ([melissawm](https://github.com/melissawm))
88
+
89
+ **Merged pull requests:**
90
+
91
+ - changelog v0.6.2 [\#268](https://github.com/napari/npe2/pull/268) ([github-actions[bot]](https://github.com/apps/github-actions))
92
+ - ci\(dependabot\): bump styfle/cancel-workflow-action from 0.10.1 to 0.11.0 [\#252](https://github.com/napari/npe2/pull/252) ([dependabot[bot]](https://github.com/apps/dependabot))
93
+ - ci\(dependabot\): bump styfle/cancel-workflow-action from 0.10.0 to 0.10.1 [\#246](https://github.com/napari/npe2/pull/246) ([dependabot[bot]](https://github.com/apps/dependabot))
94
+ - Add setuptools plugin to compile manifest at build [\#194](https://github.com/napari/npe2/pull/194) ([tlambert03](https://github.com/tlambert03))
95
+
96
+ ## [v0.6.1](https://github.com/napari/npe2/tree/v0.6.1) (2022-08-08)
97
+
98
+ [Full Changelog](https://github.com/napari/npe2/compare/v0.6.0...v0.6.1)
99
+
100
+ **Fixed bugs:**
101
+
102
+ - fix command id validation when dot in package name [\#230](https://github.com/napari/npe2/pull/230) ([tlambert03](https://github.com/tlambert03))
103
+
104
+ **Merged pull requests:**
105
+
106
+ - changelog v0.6.1 [\#231](https://github.com/napari/npe2/pull/231) ([tlambert03](https://github.com/tlambert03))
107
+
108
+ ## [v0.6.0](https://github.com/napari/npe2/tree/v0.6.0) (2022-08-07)
109
+
110
+ [Full Changelog](https://github.com/napari/npe2/compare/v0.5.2...v0.6.0)
111
+
112
+ **Implemented enhancements:**
113
+
114
+ - Add \(refactor\) configuration contribution, allowing plugins to declare a schema for their configurables [\#219](https://github.com/napari/npe2/pull/219) ([tlambert03](https://github.com/tlambert03))
115
+ - npe1 module ast visitor \(for faster fetch without install\) [\#217](https://github.com/napari/npe2/pull/217) ([tlambert03](https://github.com/tlambert03))
116
+ - Compile plugins using `npe2.implements` [\#186](https://github.com/napari/npe2/pull/186) ([tlambert03](https://github.com/tlambert03))
117
+
118
+ **Fixed bugs:**
119
+
120
+ - fix name validator to allow periods [\#227](https://github.com/napari/npe2/pull/227) ([tlambert03](https://github.com/tlambert03))
121
+ - fix: delay inspection of command params [\#223](https://github.com/napari/npe2/pull/223) ([tlambert03](https://github.com/tlambert03))
122
+ - Improve error message on schema validation [\#220](https://github.com/napari/npe2/pull/220) ([Czaki](https://github.com/Czaki))
123
+
124
+ **Tests & CI:**
125
+
126
+ - ci: remove fetch\_manifests [\#224](https://github.com/napari/npe2/pull/224) ([tlambert03](https://github.com/tlambert03))
127
+ - run io\_utils tests first [\#222](https://github.com/napari/npe2/pull/222) ([tlambert03](https://github.com/tlambert03))
128
+
129
+ **Merged pull requests:**
130
+
131
+ - v0.6.0 changelog [\#229](https://github.com/napari/npe2/pull/229) ([github-actions[bot]](https://github.com/apps/github-actions))
132
+ - build: remove magicgui dependency [\#218](https://github.com/napari/npe2/pull/218) ([tlambert03](https://github.com/tlambert03))
133
+
134
+ ## [v0.5.2](https://github.com/napari/npe2/tree/v0.5.2) (2022-07-24)
135
+
136
+ [Full Changelog](https://github.com/napari/npe2/compare/v0.5.1...v0.5.2)
137
+
138
+ **Implemented enhancements:**
139
+
140
+ - feat: deactivate on disable [\#212](https://github.com/napari/npe2/pull/212) ([tlambert03](https://github.com/tlambert03))
141
+ - feat: add register\_disposable [\#211](https://github.com/napari/npe2/pull/211) ([tlambert03](https://github.com/tlambert03))
142
+ - add back command enablement, category, short\_title, and icon [\#210](https://github.com/napari/npe2/pull/210) ([tlambert03](https://github.com/tlambert03))
143
+ - add version to cli [\#205](https://github.com/napari/npe2/pull/205) ([tlambert03](https://github.com/tlambert03))
144
+
145
+ **Fixed bugs:**
146
+
147
+ - Fix `npe2 list` when a dotted field key is empty [\#203](https://github.com/napari/npe2/pull/203) ([tlambert03](https://github.com/tlambert03))
148
+
149
+ **Refactors:**
150
+
151
+ - Split out `from_npe1` setuptools package inspection into new module [\#206](https://github.com/napari/npe2/pull/206) ([tlambert03](https://github.com/tlambert03))
152
+
153
+ **Documentation:**
154
+
155
+ - Fix documentation links [\#208](https://github.com/napari/npe2/pull/208) ([melissawm](https://github.com/melissawm))
156
+
157
+ **Merged pull requests:**
158
+
159
+ - changelog v0.5.2 [\#213](https://github.com/napari/npe2/pull/213) ([tlambert03](https://github.com/tlambert03))
160
+
161
+ ## [v0.5.1](https://github.com/napari/npe2/tree/v0.5.1) (2022-06-27)
162
+
163
+ [Full Changelog](https://github.com/napari/npe2/compare/v0.5.0...v0.5.1)
164
+
165
+ **Implemented enhancements:**
166
+
167
+ - Add PluginManager `dict()` method to export state of manager [\#197](https://github.com/napari/npe2/pull/197) ([tlambert03](https://github.com/tlambert03))
168
+ - Add `npe2 list` command to discover/display all currently installed plugins [\#192](https://github.com/napari/npe2/pull/192) ([tlambert03](https://github.com/tlambert03))
169
+
170
+ **Fixed bugs:**
171
+
172
+ - index npe1 stuff on `npe2 list` [\#198](https://github.com/napari/npe2/pull/198) ([tlambert03](https://github.com/tlambert03))
173
+
174
+ **Tests & CI:**
175
+
176
+ - Always mock cache in tests [\#199](https://github.com/napari/npe2/pull/199) ([tlambert03](https://github.com/tlambert03))
177
+
178
+ **Documentation:**
179
+
180
+ - Add mised theme type in description [\#200](https://github.com/napari/npe2/pull/200) ([Czaki](https://github.com/Czaki))
181
+ - Add docs clarifying menus `when` and `group` [\#195](https://github.com/napari/npe2/pull/195) ([tlambert03](https://github.com/tlambert03))
182
+ - Add docs about length requirements to display name [\#191](https://github.com/napari/npe2/pull/191) ([tlambert03](https://github.com/tlambert03))
183
+
184
+ **Merged pull requests:**
185
+
186
+ - changelog v0.5.1 [\#201](https://github.com/napari/npe2/pull/201) ([tlambert03](https://github.com/tlambert03))
187
+ - Remove typing-extensions imports [\#193](https://github.com/napari/npe2/pull/193) ([tlambert03](https://github.com/tlambert03))
188
+
189
+ ## [v0.5.0](https://github.com/napari/npe2/tree/v0.5.0) (2022-06-21)
190
+
191
+ [Full Changelog](https://github.com/napari/npe2/compare/v0.4.1...v0.5.0)
192
+
193
+ **Implemented enhancements:**
194
+
195
+ - Prevent runtime-arg checking on npe2.implements decorators by default [\#188](https://github.com/napari/npe2/pull/188) ([tlambert03](https://github.com/tlambert03))
196
+ - Add `npe2 fetch` command to cli to fetch remote manifests [\#185](https://github.com/napari/npe2/pull/185) ([tlambert03](https://github.com/tlambert03))
197
+ - allow `npe2 parse` to output to file, add format option [\#183](https://github.com/napari/npe2/pull/183) ([tlambert03](https://github.com/tlambert03))
198
+ - Add `npe1_shim` field to schema [\#182](https://github.com/napari/npe2/pull/182) ([tlambert03](https://github.com/tlambert03))
199
+ - allow `npe2.write` to take layer instances [\#181](https://github.com/napari/npe2/pull/181) ([tlambert03](https://github.com/tlambert03))
200
+ - Add `npe2pm` `TestPluginManager` fixture [\#180](https://github.com/napari/npe2/pull/180) ([tlambert03](https://github.com/tlambert03))
201
+ - Add `@npe.implements` decorators, for opt-in manifest validation and/or AST-based-generation [\#75](https://github.com/napari/npe2/pull/75) ([tlambert03](https://github.com/tlambert03))
202
+
203
+ **Fixed bugs:**
204
+
205
+ - Fail silently when caching throws `OSError` [\#184](https://github.com/napari/npe2/pull/184) ([DragaDoncila](https://github.com/DragaDoncila))
206
+
207
+ ## [v0.4.1](https://github.com/napari/npe2/tree/v0.4.1) (2022-06-13)
208
+
209
+ [Full Changelog](https://github.com/napari/npe2/compare/v0.4.0...v0.4.1)
6
210
 
7
211
  **Fixed bugs:**
8
212
 
@@ -10,7 +214,7 @@
10
214
 
11
215
  ## [v0.4.0](https://github.com/napari/npe2/tree/v0.4.0) (2022-06-13)
12
216
 
13
- [Full Changelog](https://github.com/napari/npe2/compare/v0.3.0...v0.4.0)
217
+ [Full Changelog](https://github.com/napari/npe2/compare/v0.3.0.rc0...v0.4.0)
14
218
 
15
219
  **Implemented enhancements:**
16
220
 
@@ -40,17 +244,13 @@
40
244
  - Add doc links to README [\#158](https://github.com/napari/npe2/pull/158) ([nclack](https://github.com/nclack))
41
245
  - Fix codeblock directive in docstring [\#156](https://github.com/napari/npe2/pull/156) ([melissawm](https://github.com/melissawm))
42
246
 
43
- **Merged pull requests:**
247
+ ## [v0.3.0.rc0](https://github.com/napari/npe2/tree/v0.3.0.rc0) (2022-04-05)
44
248
 
45
- - add changelog for v0.4.0 [\#177](https://github.com/napari/npe2/pull/177) ([tlambert03](https://github.com/tlambert03))
249
+ [Full Changelog](https://github.com/napari/npe2/compare/v0.3.0...v0.3.0.rc0)
46
250
 
47
251
  ## [v0.3.0](https://github.com/napari/npe2/tree/v0.3.0) (2022-04-05)
48
252
 
49
- [Full Changelog](https://github.com/napari/npe2/compare/v0.3.0.rc0...v0.3.0)
50
-
51
- ## [v0.3.0.rc0](https://github.com/napari/npe2/tree/v0.3.0.rc0) (2022-04-05)
52
-
53
- [Full Changelog](https://github.com/napari/npe2/compare/v0.2.2...v0.3.0.rc0)
253
+ [Full Changelog](https://github.com/napari/npe2/compare/v0.2.2...v0.3.0)
54
254
 
55
255
  **Implemented enhancements:**
56
256
 
npe2-0.7.5/Makefile ADDED
@@ -0,0 +1,18 @@
1
+ .PHONY: docs
2
+
3
+ docs:
4
+ rm -rf docs/plugins
5
+ python _docs/render.py
6
+ rm -rf ./napari
7
+ git clone --depth 1 --filter=blob:none --sparse -b update-plugin-docs https://github.com/tlambert03/napari.git
8
+ (cd napari && git sparse-checkout set docs/plugins)
9
+ cp napari/docs/plugins/* docs/plugins
10
+ rm -rf ./napari
11
+ jb build docs
12
+
13
+ # by default this will make a minor version bump (e.g v0.4.16 -> v0.4.17)
14
+ LAST := $(shell git tag -l | grep "v[0-9]+*" | awk '!/rc/' | sort -V | tail -1)
15
+ SINCE := $(shell git log -1 -s --format=%cd --date=format:'%Y-%m-%d' $(LAST))
16
+ NEXT := $(shell echo $(LAST) | awk -F. -v OFS=. '{$$NF += 1 ; print}')
17
+ changelog:
18
+ github_changelog_generator --future-release=$(NEXT) --since-commit=$(SINCE)