Skip to content

Fix path_length silently ignored in CalculateImageStats#393

Open
animmosmith wants to merge 1 commit into
mainfrom
363-path-length-not-propagated
Open

Fix path_length silently ignored in CalculateImageStats#393
animmosmith wants to merge 1 commit into
mainfrom
363-path-length-not-propagated

Conversation

@animmosmith

Copy link
Copy Markdown
Collaborator

Summary

  • CalculateImageStats.__call__ read the configured path_length via getattr(data['settings']['general'], 'path_length', 40). Since data['settings']['general'] is a plain dict, getattr never finds the key (dicts don't expose their contents as attributes), so this always silently returned the default 40 regardless of what was configured in config.toml. This affects the volume concentration (vc) and sample_volume outputs.
  • Every existing test happened to use path_length=40.0, so the bug produced no test failures.
  • Fixed by using plain dict access (general.get('path_length', 40)), consistent with how PerClassConcentration already reads it.
  • Added a regression test using a non-default path_length (123.0) that fails against the old code and passes against the fix.

This closes out #363, which asked for imx/imy (CCD pixel dimensions) to be propagated into nc_vc_from_stats — that part was already fixed by #369 for the related/duplicate issue #366, which derives imx/imy from the actual raw image shape rather than threading them through config. This PR fixes the path_length regression that #369 introduced along the way.

Test plan

  • New regression test fails on the pre-fix code, passes after the fix
  • pytest pyopia/tests/test_pipeline.py passes (4 passed)
  • flake8 shows no new issues

data['settings']['general'] is a plain dict, so
getattr(general, 'path_length', 40) always returned the default,
silently ignoring any path_length configured in config.toml when
calculating volume concentration (vc) and sample_volume. Every
existing test happened to use path_length=40, masking the bug.

Use general.get('path_length', 40) instead, and add a regression
test with a non-default path_length to catch this in future.

Fixes #363
@animmosmith animmosmith requested a review from nepstad June 18, 2026 15:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant