From 07f3c53953a9ea47edc881d3543de8e674681fa4 Mon Sep 17 00:00:00 2001 From: Felix Stupp Date: Sun, 24 Sep 2023 14:19:45 +0200 Subject: [PATCH] Component._encode: merge parameters Signed-off-by: Felix Stupp --- src/icalendar/cal.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/icalendar/cal.py b/src/icalendar/cal.py index cfe7e31..2535680 100644 --- a/src/icalendar/cal.py +++ b/src/icalendar/cal.py @@ -144,13 +144,14 @@ class Component(CaselessDict): klass = types_factory.for_property(name) obj = klass(value) if parameters: - if isinstance(parameters, dict): - params = Parameters() - for key, item in parameters.items(): - params[key] = item - parameters = params - assert isinstance(parameters, Parameters) - obj.params = parameters + if not hasattr(obj, "params"): + obj.params = Parameters() + for key, item in parameters.items(): + if item is None: + if key in obj.params: + del obj.params[key] + else: + obj.params[key] = item return obj def add(self, name, value, parameters=None, encode=1):