From 85f0c273f422a244f04b2bb9b4fe6fff34a9d418 Mon Sep 17 00:00:00 2001 From: JungNam-Kim <110320676+JungNam-Kim@users.noreply.github.com> Date: Wed, 18 Dec 2024 20:06:22 +0900 Subject: [PATCH] Fix: Correct DeviceModel.clone implementation to align with constructor - Description *Updated the DeviceModel.clone method to correctly unpack self._parameters using **self._parameters when creating a new instance. *Ensured compatibility with DeviceModel.__init__, which expects **parameters instead of a single dictionary. *Verified that Netlist.copy_to uses the updated clone method to avoid errors during circuit cloning. *Resolved TypeError: DeviceModel.__init__() takes 3 positional arguments but 4 were given. - Impact * Fixes issues with circuit cloning in Circuit.clone when DeviceModel instances are involved. * Prevents runtime errors related to parameter passing during cloning. * Improves robustness and correctness of cloning functionality in PySpice-based models. --- PySpice/Spice/Netlist.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PySpice/Spice/Netlist.py b/PySpice/Spice/Netlist.py index 96fbc733..0d54eb3d 100644 --- a/PySpice/Spice/Netlist.py +++ b/PySpice/Spice/Netlist.py @@ -162,7 +162,7 @@ def __init__(self, name, modele_type, **parameters): def clone(self): # Fixme: clone parameters ??? - return self.__class__(self._name, self._model_type, self._parameters) + return self.__class__(self._name, self._model_type, **self._parameters) ##############################################