Bump version: 1.1.4 -> 1.2.0 - #35
Merged
Merged
Conversation
A minor bump rather than a patch: several fixes since v1.1.4 change results, not just internals. Right-hemisphere queries move by one voxel in both IsocortexCoordinateProjector and angle.find_closest_streamline, project_volume no longer writes its sentinel into the caller's array, and an invalid `kind`/`scale` or an unordered lookup column now raises ValueError where it used to return zeros or the wrong voxels. .bumpversion.cfg went away in the uv conversion, so pyproject.toml is edited by hand and uv.lock relocked to match. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Prepares the v1.2.0 release. Version is bumped in
pyproject.toml(the only place itlives, since
.bumpversion.cfgwas removed in the uv conversion) anduv.lockisrelocked to match.
A minor bump rather than a patch: several fixes since v1.1.4 change results, not just
internals, so downstream analysis code should not pick this up silently from a
~=1.1.0pin.
Results that change
IsocortexCoordinateProjectornowreflects the micron coordinate and takes the voxel that mirrored point falls in, so
the voxel that picks the streamline and the coordinate that measures depth along it
always agree (IsocortexCoordinateProjector reflects voxels and coordinates by conventions that differ by one voxel #27).
angle.find_closest_streamlinemirrors correctly at the midlinein both directions (find_closest_streamline accepts resolution but does not use it to voxelise #23, find_closest_streamline mirrors hemispheres one voxel out, and skips the midline plane #33).
project_volumeno longer corrupts the caller's array. Themax/minsentinelis written into the gathered copy instead of
volume.flat[0](project_volume silently corrupts the caller's volume #20).path_ordering, not the 3-D volume lookup (project_path_ordered_data cannot run against the current-generation assets #22).Silent-wrong behaviour now raises
kindorscaleraisesValueErrorinstead of returning zeros or hittingUnboundLocalError(Unrecognised arguments fail silently or obscurely #21).ValueErrornaming the first out-of-order entry,rather than letting
searchsortedreturn wrong voxels.Other fixes
BoundaryFinderkeeps an absent region's empty boundary 2-D so reflection is ano-op (region_boundaries crashes when reflecting a region absent from the atlas #25); empty masks and an unraw regex separator fixed.
project_coordinatesnamesprojection_filewhen it needs one (IsocortexCoordinateProjector without projection_file fails obscurely on first use #24).metrics(The layer key list has three independent definitions #26).Performance
_matching_voxel_indicesresolves membership from the binary search instead of afull-column scan, and the ordering check is memoised per array — this was 12.5 s per
coordinate against the 61.9M-row
closest_surface_voxel_lookup.h5.Packaging and tests
uv_buildbackend); packaging regressions from thatconversion fixed, documentation URL added to project metadata.
the projector classes are testable without the multi-hundred-MB assets. CI gates PRs
on x86-64 and ARM64 across Python 3.9 and 3.13. An opt-in
real_datatier assertsthe fixture's format claims against the real files.
Verification
uv run pytest: 366 passed, 36 skipped (the skips are the opt-inreal_datatier).python -m buildproducesccf_streamlines-1.2.0.tar.gzand the matching wheel;installed into a clean environment, all nine modules import and
__version__reports
1.2.0.Merging this and publishing a
v1.2.0GitHub release triggerspython-publish.yml,which builds and uploads to PyPI via trusted publishing.
🤖 Generated with Claude Code