diff --git a/.idea/gimp-python-wrappers.iml b/.idea/gimp-python-wrappers.iml index 8437fe6..91dacbb 100644 --- a/.idea/gimp-python-wrappers.iml +++ b/.idea/gimp-python-wrappers.iml @@ -2,7 +2,7 @@ - + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index 9de2865..8b71b19 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -3,5 +3,5 @@ - + \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 3e4480a..7df8f17 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +3.2 +=== + +* Fixed procedure registration if the same list of arguments was reused for multiple plug-in procedures. + + 3.1 === diff --git a/generate-pdb-stubs/generate-pdb-stubs.py b/generate-pdb-stubs/generate-pdb-stubs.py index d6ea335..7645ee5 100644 --- a/generate-pdb-stubs/generate-pdb-stubs.py +++ b/generate-pdb-stubs/generate-pdb-stubs.py @@ -13,7 +13,6 @@ from gi.repository import Gimp gi.require_version('GimpUi', '3.0') from gi.repository import GimpUi -from gi.repository import GLib from gi.repository import GObject import stubgen diff --git a/wrappers/procedure.py b/wrappers/procedure.py index 51024ff..32b53a3 100644 --- a/wrappers/procedure.py +++ b/wrappers/procedure.py @@ -199,24 +199,26 @@ def _parse_and_check_parameters(parameters): processed_parameters = {} for param in parameters: - if isinstance(param, list): - if len(param) < 2: + processed_param = list(param) + + if isinstance(processed_param, list): + if len(processed_param) < 2: raise ValueError( ('The list describing an argument or a return value must contain' ' at least two elements - type and name')) - if not isinstance(param[0], str): + if not isinstance(processed_param[0], str): raise TypeError('The type of the argument or return value must be a string') - if not isinstance(param[1], str): + if not isinstance(processed_param[1], str): raise TypeError('The name of the argument or return value must be a string') - name = param.pop(1).replace('_', '-') + name = processed_param.pop(1).replace('_', '-') if name in processed_parameters: raise ValueError(f'Argument or return value named "{name}" was already specified') - processed_parameters[name] = list(param) + processed_parameters[name] = processed_param else: raise TypeError('Only lists are allowed when specifying an argument or return value')