cellfinder 1.4.0a0__tar.gz → 1.5.0__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.

Potentially problematic release.


This version of cellfinder might be problematic. Click here for more details.

Files changed (72) hide show
  1. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/.github/workflows/test_and_deploy.yml +29 -5
  2. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/PKG-INFO +4 -3
  3. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder/core/classify/classify.py +2 -1
  4. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder/core/detect/filters/volume/ball_filter.py +4 -5
  5. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder/napari/curation.py +2 -2
  6. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder/napari/detect/detect.py +1 -1
  7. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder.egg-info/PKG-INFO +4 -3
  8. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder.egg-info/requires.txt +2 -1
  9. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/pyproject.toml +2 -1
  10. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/.github/workflows/test_include_guard.yaml +0 -0
  11. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/.gitignore +0 -0
  12. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/.napari/config.yml +0 -0
  13. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/CITATION.cff +0 -0
  14. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/LICENSE +0 -0
  15. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/MANIFEST.in +0 -0
  16. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/README.md +0 -0
  17. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder/__init__.py +0 -0
  18. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder/cli_migration_warning.py +0 -0
  19. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder/core/__init__.py +0 -0
  20. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder/core/classify/__init__.py +0 -0
  21. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder/core/classify/augment.py +0 -0
  22. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder/core/classify/cube_generator.py +0 -0
  23. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder/core/classify/resnet.py +0 -0
  24. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder/core/classify/tools.py +0 -0
  25. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder/core/config/__init__.py +0 -0
  26. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder/core/config/cellfinder.conf +0 -0
  27. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder/core/detect/__init__.py +0 -0
  28. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder/core/detect/detect.py +0 -0
  29. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder/core/detect/filters/__init__.py +0 -0
  30. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder/core/detect/filters/plane/__init__.py +0 -0
  31. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder/core/detect/filters/plane/classical_filter.py +0 -0
  32. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder/core/detect/filters/plane/plane_filter.py +0 -0
  33. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder/core/detect/filters/plane/tile_walker.py +0 -0
  34. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder/core/detect/filters/setup_filters.py +0 -0
  35. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder/core/detect/filters/volume/__init__.py +0 -0
  36. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder/core/detect/filters/volume/structure_detection.py +0 -0
  37. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder/core/detect/filters/volume/structure_splitting.py +0 -0
  38. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder/core/detect/filters/volume/volume_filter.py +0 -0
  39. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder/core/download/__init__.py +0 -0
  40. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder/core/download/cli.py +0 -0
  41. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder/core/download/download.py +0 -0
  42. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder/core/main.py +0 -0
  43. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder/core/tools/IO.py +0 -0
  44. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder/core/tools/__init__.py +0 -0
  45. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder/core/tools/array_operations.py +0 -0
  46. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder/core/tools/geometry.py +0 -0
  47. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder/core/tools/image_processing.py +0 -0
  48. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder/core/tools/prep.py +0 -0
  49. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder/core/tools/source_files.py +0 -0
  50. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder/core/tools/system.py +0 -0
  51. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder/core/tools/threading.py +0 -0
  52. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder/core/tools/tiff.py +0 -0
  53. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder/core/tools/tools.py +0 -0
  54. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder/core/train/__init__.py +0 -0
  55. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder/core/train/train_yml.py +0 -0
  56. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder/core/types.py +0 -0
  57. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder/napari/__init__.py +0 -0
  58. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder/napari/detect/__init__.py +0 -0
  59. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder/napari/detect/detect_containers.py +0 -0
  60. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder/napari/detect/thread_worker.py +0 -0
  61. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder/napari/input_container.py +0 -0
  62. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder/napari/napari.yaml +0 -0
  63. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder/napari/sample_data.py +0 -0
  64. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder/napari/train/__init__.py +0 -0
  65. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder/napari/train/train.py +0 -0
  66. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder/napari/train/train_containers.py +0 -0
  67. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder/napari/utils.py +0 -0
  68. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder.egg-info/SOURCES.txt +0 -0
  69. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder.egg-info/dependency_links.txt +0 -0
  70. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder.egg-info/entry_points.txt +0 -0
  71. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/cellfinder.egg-info/top_level.txt +0 -0
  72. {cellfinder-1.4.0a0 → cellfinder-1.5.0}/setup.cfg +0 -0
@@ -78,7 +78,7 @@ jobs:
78
78
  - name: Setup qtpy libraries
79
79
  uses: tlambert03/setup-qt-libs@v1
80
80
  # Setup VTK with headless display
81
- - uses: pyvista/setup-headless-display-action@v2
81
+ - uses: pyvista/setup-headless-display-action@v3
82
82
  # Run all tests
83
83
  - uses: neuroinformatics-unit/actions/test@v2
84
84
  with:
@@ -86,6 +86,15 @@ jobs:
86
86
  secret-codecov-token: ${{ secrets.CODECOV_TOKEN }}
87
87
  use-xvfb: true
88
88
 
89
+ - name: Notify slack on scheduled failure
90
+ if: failure() && github.event_name == 'schedule'
91
+ uses: ravsamhq/notify-slack-action@v2
92
+ with:
93
+ status: ${{ job.status }} # required
94
+ notify_when: 'failure'
95
+ env:
96
+ SLACK_WEBHOOK_URL: ${{ secrets.SLACK_NOTIFYBOT_WEBHOOK_URL }} # required
97
+
89
98
  test_numba_disabled:
90
99
  needs: [linting, manifest]
91
100
  name: Run tests with numba disabled
@@ -117,7 +126,7 @@ jobs:
117
126
  - name: Setup qtpy libraries
118
127
  uses: tlambert03/setup-qt-libs@v1
119
128
  # Setup VTK with headless display
120
- - uses: pyvista/setup-headless-display-action@v2
129
+ - uses: pyvista/setup-headless-display-action@v3
121
130
  # Run test suite with numba disabled
122
131
  - uses: neuroinformatics-unit/actions/test@v2
123
132
  with:
@@ -125,6 +134,15 @@ jobs:
125
134
  secret-codecov-token: ${{ secrets.CODECOV_TOKEN }}
126
135
  codecov-flags: "numba"
127
136
 
137
+ - name: Notify slack on scheduled failure
138
+ if: failure() && github.event_name == 'schedule'
139
+ uses: ravsamhq/notify-slack-action@v2
140
+ with:
141
+ status: ${{ job.status }} # required
142
+ notify_when: 'failure'
143
+ env:
144
+ SLACK_WEBHOOK_URL: ${{ secrets.SLACK_NOTIFYBOT_WEBHOOK_URL }} # required
145
+
128
146
  # Run brainglobe-workflows brainmapper-CLI tests to check for
129
147
  # breakages
130
148
  test_brainmapper_cli:
@@ -166,8 +184,9 @@ jobs:
166
184
  run: |
167
185
  python -m pytest --color=yes -v tests/brainmapper
168
186
 
187
+
169
188
  build_sdist_wheel:
170
- name: Build source distribution and wheel
189
+ name: Build source distribution
171
190
  needs: [test, test_numba_disabled]
172
191
  if: github.event_name == 'push' && github.ref_type == 'tag'
173
192
  runs-on: ubuntu-latest
@@ -180,6 +199,11 @@ jobs:
180
199
  if: github.event_name == 'push' && github.ref_type == 'tag'
181
200
  runs-on: ubuntu-latest
182
201
  steps:
183
- - uses: neuroinformatics-unit/actions/upload_pypi@v2
202
+ - uses: actions/download-artifact@v4
203
+ with:
204
+ name: artifact
205
+ path: dist
206
+ - uses: pypa/gh-action-pypi-publish@release/v1
184
207
  with:
185
- secret-pypi-key: ${{ secrets.TWINE_API_KEY }}
208
+ user: __token__
209
+ password: ${{ secrets.TWINE_API_KEY }}
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: cellfinder
3
- Version: 1.4.0a0
3
+ Version: 1.5.0
4
4
  Summary: Automated 3D cell detection in large microscopy images
5
5
  Author-email: "Adam Tyson, Christian Niedworok, Charly Rousseau" <code@adamltyson.com>
6
6
  License: BSD-3-Clause
@@ -32,7 +32,7 @@ Requires-Dist: numba
32
32
  Requires-Dist: numpy
33
33
  Requires-Dist: scikit-image
34
34
  Requires-Dist: scikit-learn
35
- Requires-Dist: keras==3.5.0
35
+ Requires-Dist: keras>=3.7.0
36
36
  Requires-Dist: torch!=2.4,>=2.1.0
37
37
  Requires-Dist: tifffile
38
38
  Requires-Dist: tqdm
@@ -47,6 +47,7 @@ Requires-Dist: pytest-timeout; extra == "dev"
47
47
  Requires-Dist: pytest; extra == "dev"
48
48
  Requires-Dist: tox; extra == "dev"
49
49
  Requires-Dist: pooch>=1; extra == "dev"
50
+ Requires-Dist: qt-niu; extra == "dev"
50
51
  Provides-Extra: napari
51
52
  Requires-Dist: brainglobe-napari-io; extra == "napari"
52
53
  Requires-Dist: magicgui; extra == "napari"
@@ -1,5 +1,6 @@
1
1
  import os
2
2
  from datetime import datetime
3
+ from pathlib import Path
3
4
  from typing import Any, Callable, Dict, List, Optional, Tuple
4
5
 
5
6
  import keras
@@ -68,7 +69,7 @@ def main(
68
69
  workers=workers,
69
70
  )
70
71
 
71
- if trained_model and trained_model.suffix == ".h5":
72
+ if trained_model and Path(trained_model).suffix == ".h5":
72
73
  print(
73
74
  "Weights provided in place of the model, "
74
75
  "loading weights into default model."
@@ -266,22 +266,21 @@ class BallFilter:
266
266
  """
267
267
  if self.volume.shape[0]:
268
268
  if self.volume.shape[0] < self.kernel_z_size:
269
- num_remaining_with_padding = 0
269
+ num_remaining_with_padding = self.volume.shape[0]
270
270
  else:
271
271
  num_remaining = self.kernel_z_size - (self.middle_z_idx + 1)
272
272
  num_remaining_with_padding = num_remaining + self.middle_z_idx
273
+ remaining_start = self.volume.shape[0] - num_remaining_with_padding
273
274
 
274
275
  self.volume = torch.cat(
275
- [self.volume[-num_remaining_with_padding:, :, :], planes],
276
+ [self.volume[remaining_start:, :, :], planes],
276
277
  dim=0,
277
278
  )
278
279
 
279
280
  if self.inside_brain_tiles is not None:
280
281
  self.inside_brain_tiles = torch.cat(
281
282
  [
282
- self.inside_brain_tiles[
283
- -num_remaining_with_padding:, :, :
284
- ],
283
+ self.inside_brain_tiles[remaining_start:, :, :],
285
284
  masks,
286
285
  ],
287
286
  dim=0,
@@ -8,11 +8,11 @@ from brainglobe_napari_io.cellfinder.utils import convert_layer_to_cells
8
8
  from brainglobe_utils.cells.cells import Cell
9
9
  from brainglobe_utils.general.system import delete_directory_contents
10
10
  from brainglobe_utils.IO.yaml import save_yaml
11
- from brainglobe_utils.qtpy.dialog import display_warning
12
- from brainglobe_utils.qtpy.interaction import add_button, add_combobox
13
11
  from magicgui.widgets import ProgressBar
14
12
  from napari.qt.threading import thread_worker
15
13
  from napari.utils.notifications import show_info
14
+ from qt_niu.dialog import display_warning
15
+ from qt_niu.interaction import add_button, add_combobox
16
16
  from qtpy import QtCore
17
17
  from qtpy.QtWidgets import (
18
18
  QComboBox,
@@ -38,7 +38,7 @@ MIN_PLANES_ANALYSE = 0
38
38
 
39
39
 
40
40
  def get_heavy_widgets(
41
- options: Dict[str, Any]
41
+ options: Dict[str, Any],
42
42
  ) -> Tuple[Callable, Callable, Callable]:
43
43
  # signal and other input are separated out from the main magicgui
44
44
  # parameter selections and are inserted as widget children in their own
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: cellfinder
3
- Version: 1.4.0a0
3
+ Version: 1.5.0
4
4
  Summary: Automated 3D cell detection in large microscopy images
5
5
  Author-email: "Adam Tyson, Christian Niedworok, Charly Rousseau" <code@adamltyson.com>
6
6
  License: BSD-3-Clause
@@ -32,7 +32,7 @@ Requires-Dist: numba
32
32
  Requires-Dist: numpy
33
33
  Requires-Dist: scikit-image
34
34
  Requires-Dist: scikit-learn
35
- Requires-Dist: keras==3.5.0
35
+ Requires-Dist: keras>=3.7.0
36
36
  Requires-Dist: torch!=2.4,>=2.1.0
37
37
  Requires-Dist: tifffile
38
38
  Requires-Dist: tqdm
@@ -47,6 +47,7 @@ Requires-Dist: pytest-timeout; extra == "dev"
47
47
  Requires-Dist: pytest; extra == "dev"
48
48
  Requires-Dist: tox; extra == "dev"
49
49
  Requires-Dist: pooch>=1; extra == "dev"
50
+ Requires-Dist: qt-niu; extra == "dev"
50
51
  Provides-Extra: napari
51
52
  Requires-Dist: brainglobe-napari-io; extra == "napari"
52
53
  Requires-Dist: magicgui; extra == "napari"
@@ -7,7 +7,7 @@ numba
7
7
  numpy
8
8
  scikit-image
9
9
  scikit-learn
10
- keras==3.5.0
10
+ keras>=3.7.0
11
11
  torch!=2.4,>=2.1.0
12
12
  tifffile
13
13
  tqdm
@@ -23,6 +23,7 @@ pytest-timeout
23
23
  pytest
24
24
  tox
25
25
  pooch>=1
26
+ qt-niu
26
27
 
27
28
  [napari]
28
29
  brainglobe-napari-io
@@ -30,7 +30,7 @@ dependencies = [
30
30
  "numpy",
31
31
  "scikit-image",
32
32
  "scikit-learn",
33
- "keras==3.5.0",
33
+ "keras>=3.7.0",
34
34
  "torch>=2.1.0,!=2.4",
35
35
  "tifffile",
36
36
  "tqdm",
@@ -52,6 +52,7 @@ dev = [
52
52
  "pytest",
53
53
  "tox",
54
54
  "pooch >= 1",
55
+ "qt-niu"
55
56
  ]
56
57
  napari = [
57
58
  "brainglobe-napari-io",
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes