Skip to content

Commit 6d4eb8d

Browse files
committed
πŸ”€ Merge branch 'devel'
2 parents 26f64c9 + edc8794 commit 6d4eb8d

38 files changed

Lines changed: 1849 additions & 468 deletions

β€Ž.github/workflows/lint.ymlβ€Ž

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,36 @@
1-
name: Code Linting πŸ”Žβš‘
1+
name: Linting πŸ“‘πŸ”Žβš‘
22

33
on:
44
push:
55
pull_request:
66
workflow_dispatch:
77

88
jobs:
9-
10-
lint:
9+
ruff:
1110
name: Ruff βš‘πŸ•΅
1211

1312
runs-on: ubuntu-latest
1413

1514
steps:
16-
1715
- name: πŸ“₯ Checkout repo
1816
uses: actions/checkout@v4
1917

2018
- name: Run Ruff checks ⚑
2119
uses: astral-sh/ruff-action@v3
2220
with:
2321
args: check
22+
23+
markdownlint:
24+
name: Markdownlint πŸ“‘πŸ•΅
25+
26+
runs-on: ubuntu-latest
27+
steps:
28+
- name: πŸ“₯ Checkout repo
29+
uses: actions/checkout@v4
30+
31+
- name: Run markdownlint-cli2-action πŸ“‘
32+
uses: DavidAnson/markdownlint-cli2-action@v22
33+
with:
34+
globs: |
35+
*.md
36+
!test/*.md

β€Ž.github/workflows/pytest-poetry.ymlβ€Ž

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ on:
77
push:
88
branches:
99
- master
10+
- devel
1011
tags:
1112
- "*-[0-9]+.*"
1213
pull_request:

β€Ž.github/workflows/pytest-python2.ymlβ€Ž

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ on:
55
push:
66
branches:
77
- master
8+
- devel
89
tags:
910
- "*-[0-9]+.*"
1011
pull_request:

β€Ž.gitignoreβ€Ž

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,3 +118,4 @@ docs/api/*
118118
docs/_build/*
119119
cover/*
120120
MANIFEST
121+
AGENTS.md

β€Ž.vscode/settings.jsonβ€Ž

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,71 @@
1010
"tables": false
1111
}
1212
},
13+
"cSpell.words": [
14+
"acitt",
15+
"bdvp",
16+
"bigstitcher",
17+
"biop",
18+
"caplog",
19+
"clij",
20+
"Dscijava",
21+
"flatfield",
22+
"Fluo",
23+
"Haase",
24+
"IJPB",
25+
"imageplus",
26+
"imarisconvert",
27+
"imglib",
28+
"imgplus",
29+
"interestpoint",
30+
"intermodes",
31+
"javax",
32+
"keyvalue",
33+
"Kheops",
34+
"labelimage",
35+
"listdir",
36+
"micrometa",
37+
"Morpholib",
38+
"multiresolution",
39+
"olefile",
40+
"omerotools",
41+
"ordereddict",
42+
"otsu",
43+
"pathtools",
44+
"phmax",
45+
"Prefs",
46+
"processingoptions",
47+
"PTBIOP",
48+
"PYENV",
49+
"pylint",
50+
"ransac",
51+
"relnotes",
52+
"renyi",
53+
"repartitions",
54+
"resultstable",
55+
"RETVAL",
56+
"roimanager",
57+
"rois",
58+
"rollingball",
59+
"scijava",
60+
"shanbhag",
61+
"SJLOG",
62+
"sjlogging",
63+
"smtpserver",
64+
"spimdata",
65+
"stardist",
66+
"stdv",
67+
"strtools",
68+
"subfolders",
69+
"subsampling",
70+
"sumpix",
71+
"TESTDATA",
72+
"thresholding",
73+
"trackmate",
74+
"virtualenv",
75+
"virtualfish",
76+
"voxelsizex",
77+
"voxelsizey",
78+
"voxelsizez"
79+
],
1380
}

β€ŽCHANGELOG.mdβ€Ž

Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,129 @@
22

33
# Changelog 🧾
44

5+
## 2.0.0
6+
7+
This major release brings a host of additions and breaking changes across
8+
multiple modules. For detailed information, please refer to the
9+
[API documentation][apidocs].
10+
11+
### Added ✨
12+
13+
#### New functions in `imcflibs.imagej.bioformats`
14+
15+
* `imcflibs.imagej.bioformats.get_reader` gets the reader used for opening a
16+
file, allowing support for multi series files, and gets the highest pyramid
17+
level for infos.
18+
19+
#### New functions in `imcflibs.imagej.bdv`
20+
21+
* `imcflibs.imagej.bdv.read_metadata_from_xml` allows reading metadata back
22+
from the xml of a H5/XML couple.
23+
24+
#### New functions in `imcflibs.imagej.misc`
25+
26+
* `imcflibs.imagej.misc.bytes_to_human_readable` converts size from bytes to a
27+
more readable format.
28+
29+
#### New functions in `imcflibs.imagej.trackmate`
30+
31+
* `imcflibs.imagej.trackmate.set_spotfilter` to set a TrackMate spot filter
32+
with specified filter key and values.
33+
34+
#### New functions in `imcflibs.imagej.pathtools`
35+
36+
* `imcflibs.imagej.pathtools.join_files_with_channel_suffix` to generate lists
37+
of filenames with channel suffixes, facilitating workflows where each
38+
channel is stored in a separate file.
39+
40+
### Changed ♻️
41+
42+
* Minimum required version for [python-micrometa] increased to `15.2.3`.
43+
44+
#### `imcflibs.imagej.bdv`
45+
46+
* `imcflibs.imagej.bdv.define_dataset_auto` does not split time points by
47+
default any more.
48+
* `imcflibs.imagej.bdv.define_dataset_manual` now supports passing a list of
49+
files (`list_files`) directly, enabling the use of explicit file lists in
50+
"show_list" mode rather than relying solely on file patterns.
51+
* `imcflibs.imagej.bdv.fuse_dataset_bdvp`:
52+
* Fix a bug and expose additional parameters.
53+
* Allow specifying the number of resolution levels, LZW compression, and the
54+
fusion method; update parameter names and documentation for clarity and
55+
flexibility.
56+
* `imcflibs.imagej.bdv.interest_points_registration`: Fix typo and add missing
57+
options.
58+
* `imcflibs.imagej.bdv.resave_as_h5`: use the correct processing options
59+
object and change the ImageJ command to "Resave as HDF5 (local)" for better
60+
accuracy.
61+
62+
#### `imcflibs.imagej.bioformats`
63+
64+
* `imcflibs.imagej.bioformats.import_image` now accepts importing a
65+
specified image region (crop). Also fix a spelling mistake.
66+
* `imcflibs.imagej.bioformats.get_stage_coords` returns the filename
67+
instead of full path.
68+
69+
#### `imcflibs.imagej.misc`
70+
71+
* `imcflibs.imagej.misc.run_imarisconvert`:
72+
* Now allows to select an output folder.
73+
* Adds pixel calibration to the converted file.
74+
* `imcflibs.imagej.misc.subtract_images` now validates the slice count is equal
75+
for both images.
76+
* `imcflibs.imagej.misc.save_image_with_extension`: fix issue with java path
77+
object.
78+
* `imcflibs.imagej.misc.save_image_in_format`: This method also accepts a new
79+
optional parameter `suffix`to append custom text to output filenames.
80+
81+
#### `imcflibs.imagej.objects3d`
82+
83+
* `imcflibs.imagej.objects3d.segment_3d_image`: add option to filter out 3D
84+
objects touching the image borders when creating a label image.
85+
86+
#### `imcflibs.imagej.resultstable`
87+
88+
* `imcflibs.imagej.resultstable.add_results_to_resultstable`:
89+
* Add support for writing values to specific rows in a results table.
90+
* Raise an error when provided values don't match target rows.
91+
* Update docstring description and examples.
92+
93+
#### `imcflibs.imagej.trackmate`
94+
95+
* Improve support for 3D data and fix an issue for diameter of objects to be
96+
found using TrackMate.
97+
98+
#### `imcflibs.omerotools`
99+
100+
* `imcflibs.omerotools.parse_url`: safely handle empty input strings, and strip
101+
the link to ignore trailing white spaces.
102+
103+
#### `imcflibs.pathtools`
104+
105+
* `imcflibs.pathtools.listdir_matching`:
106+
* Add support for recursive directory traversal.
107+
* Add `recursive` parameter to include files from subdirectories.
108+
109+
### Removed πŸ—‘οΈ
110+
111+
#### `imcflibs.imagej.objects3d`
112+
113+
* `imcflibs.imagej.objects3d.get_objects_within_intensity` has been removed as
114+
it is now present in the Image3D suite. The method
115+
`mcib3d.geom.Objects3DPopulation.getObjectsWithinIntensityRange` performs
116+
the same function as the removed method from this package.
117+
118+
### Documentation πŸ“
119+
120+
* Update `README.md` installation instructions to install imcflibs into a
121+
"vanilla" Fiji, including required dependencies.
122+
123+
### Interactive Tests πŸ§ͺ
124+
125+
* All interactive test files in `tests/interactive-imagej` are now `.py`, so
126+
that they can be dragged directly into a Fiji and run.
127+
5128
## 1.5.0
6129

7130
This release brings a lot of additions, not all changes and functions are
@@ -271,3 +394,5 @@ Utilities for filtering and thresholding.
271394
* `imcflibs.pathtools.listdir_matching` now has an additional optional argument
272395
`sort` (defaulting to `False`) to request the resulting list to be sorted.
273396
* Many improvements / clarifications in function docstrings.
397+
398+
[python-micrometa]: https://pypi.org/project/python-micrometa/

β€ŽDESC.mdβ€Ž

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,4 @@
1+
<!-- markdownlint-disable MD041 (first-line-heading) -->
2+
13
:snake::coffee::nut_and_bolt::wrench:
24
A collection of commonly used Python helper functions.

β€ŽDEVELOPMENT.mdβ€Ž

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ RELEASE_TAG=$(git tag -l "python-imcflibs-*" | tail -n 1)
3030
git push origin $RELEASE_TAG
3131
```
3232

33-
**IMPORTANT 2**: in case a **pre-releaes** was created, the last commit needs to
33+
**IMPORTANT 2**: in case a **pre-release** was created, the last commit needs to
3434
be discarded as the *release-script* places a wrong version / snapshot
3535
combination in the `pom.xml`:
3636

0 commit comments

Comments
Β (0)