Expose integer isspecular and isextdet in pMMC - #130
Merged
Conversation
Owner
|
thanks, merged |
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.
This PR improves pMMC configuration parity with the MMC core/MMCLAB for two existing configuration fields.
Changes:
cfg.isspecularas an integer in pMMC instead of a boolean.cfg.isextdetthrough the pMMC Python config parser.Rationale:
The MMC core already supports integer-valued
isspecularmodes, including code paths that check forisspecular == 2. MMCLAB passes this scalar configuration value through without casting it to boolean, but pMMC currently parses it as a boolean, preventing Python users from selecting the full set of supported modes.The core also uses
isextdetfor external wide-field detector domains, but this field is not currently parsed by pMMC. Exposing it makes the Python wrapper more consistent with the core configuration structure and with MMCLAB behavior.Optionally, one could also parse
isextdetaspy::int_instead ofpy::bool_, becausemcconfig.isextdetis anintand MMCLAB accepts scalar numeric fields. But semantically it is a flag, andpy::bool_accepts PythonTrue/Falseand numeric truthiness. So it is mostly a matter of whether we want maximum consistency with the C field typeThis change should be backward compatible: existing boolean-style uses of
isspecularand omitted/defaultisextdetbehavior are unchanged.