Fix name generation for parameter in ChannelTuple
Explanation of changes
My proposed fix for #373 (closed).
Motivation of changes
ChannelTuple also has no name
attribute, so I've used short_name
in _generate_long_name()
and _generate_name()
.
I'm not sure what the rationale with (on line 1408):
# Remove the parent name in the case where the parent name is also present in
# the child names
for i, _ in enumerate(subnames):
for j in range(i):
subnames[i] = subnames[i].replace(subnames[j] + "_", "")
was but I've removed this part since presumably short_name
won't contain the parent name?
In any case, the old code can accidentally remove part of a settable name just because it matches a submodule/parameter name. E.g. a parameter named 'sensor_error_value', will be renamed in the dataset to just 'sensor_value' if the root instrument or a parent module name is called 'error' for whatever reason.
Also, the logic of the old code only checked the immediate parameters of the channels in a ChannelTuple. I've made it also recurse through each channel, like the current logic for submodules.
I have not run the test suite.
Merge checklist
See also merge request guidelines
-
Merge request has been reviewed (in-depth by a knowledgeable contributor), and is approved by a project maintainer. -
New code is covered by unit tests (or N/A). -
New code is documented and docstrings use numpydoc format (or N/A). -
New functionality: considered making private instead of extending public API (or N/A). -
Public API changed: added @deprecated
(or N/A). -
Newly added/adjusted documentation and docstrings render properly (or N/A). -
Pipeline fix or dependency update: post in #software-for-developers
channel to mergemain
back in or update local packages (or N/A). -
Tested on hardware (or N/A). -
CHANGELOG.md
andAUTHORS.md
have been updated (or N/A). -
Windows tests in CI pipeline pass (manually triggered by maintainers before merging). - Maintainers do not hit Auto-merge, we need to actively check as manual tests do not block pipeline
For reference, the issues workflow is described in the contribution guidelines.