|
@@ -28,6 +28,13 @@ _LOGGER = logging.getLogger(__name__)
|
|
|
|
|
|
|
|
|
def _event_prop_equal(prop_a, prop_b) -> bool:
|
|
|
+ if isinstance(prop_a, icalendar.prop.vDDDLists):
|
|
|
+
|
|
|
+ return (
|
|
|
+ all(_event_prop_equal(*pair) for pair in zip(prop_a.dts, prop_b.dts))
|
|
|
+ and len(prop_a.dts) == len(prop_b.dts)
|
|
|
+ and prop_a.params == prop_b.params
|
|
|
+ )
|
|
|
if isinstance(prop_a, (icalendar.prop.vDDDTypes, icalendar.prop.vCategory)):
|
|
|
|
|
|
return type(prop_a) == type(prop_b) and vars(prop_a) == vars(prop_b)
|
|
@@ -41,13 +48,7 @@ def _events_equal(event_a: icalendar.cal.Event, event_b: icalendar.cal.Event) ->
|
|
|
prop_b = event_b[key]
|
|
|
if not _event_prop_equal(prop_a, prop_b):
|
|
|
_LOGGER.debug(
|
|
|
- "%s/%s: %r(%r) != %r(%r)",
|
|
|
- event_a["UID"],
|
|
|
- key,
|
|
|
- prop_a,
|
|
|
- vars(prop_a),
|
|
|
- prop_b,
|
|
|
- vars(prop_b),
|
|
|
+ "%s/%s: %r != %r", event_a["UID"], key, prop_a, prop_b,
|
|
|
)
|
|
|
return False
|
|
|
return True
|