/ releasenotes / notes / dont-deepcopy-components-tools-b1be7ef7b4365116.yaml
dont-deepcopy-components-tools-b1be7ef7b4365116.yaml
1  ---
2  enhancements:
3    - |
4      Updated pipeline execution logic to use a new utility method `_deepcopy_with_exceptions`, which attempts to deep copy an object and safely falls back to the original object if copying fails.
5      Additionally `_deepcopy_with_exceptions` skips deep-copying of `Component`, `Tool`, and `Toolset` instances when used as runtime parameters.
6      This prevents errors and unintended behavior caused by trying to deepcopy objects that contain non-copyable attributes (e.g. Jinja2 templates, clients).
7      Previously, standard `deepcopy` was used on inputs and outputs which occasionally lead to errors since certain Python objects cannot be deepcopied.