Enhance get_type_map to support deepcopy option and improve extensions handling #2075
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.
Cline-assisted
fix #1958
I have addressed the performance issue in
PoseEstimationSeries
creation by making two key changes:Modified
pynwb.get_type_map()
(insrc/pynwb/__init__.py
):copy
parameter (boolean, defaults toTrue
).copy=False
is passed, this function now returns a direct reference to theTypeMap
instead of adeepcopy
. This is crucial for performance-sensitive internal calls.rtype
in the@docval
decorator fromtuple
toTypeMap
.Modified
NWBMixin._get_type_map()
(insrc/pynwb/core.py
):pynwb.get_type_map(copy=False)
.deepcopy
operation on theTypeMap
is avoided in these frequent, performance-critical operations, directly resolving the slowdown.These changes prevent the unnecessary and costly duplication of the
TypeMap
object, particularly when creating complex objects likePoseEstimationSeries
with many attributes, thus restoring the expected performance.