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.