From 325304c50f2d86c0a3951d5d3a97f68135178b49 Mon Sep 17 00:00:00 2001 From: Markus Unterwaditzer Date: Wed, 11 Oct 2017 12:01:52 +0200 Subject: [PATCH] Lazy-load component in item --- vdirsyncer/vobject.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/vdirsyncer/vobject.py b/vdirsyncer/vobject.py index 3e8c402..bba9b3a 100644 --- a/vdirsyncer/vobject.py +++ b/vdirsyncer/vobject.py @@ -14,12 +14,15 @@ class Item(object): def __init__(self, raw, component=None): assert isinstance(raw, str), type(raw) self._raw = raw + if component is not None: + self.__dict__['_component'] = component + @cached_property + def _component(self): try: - self._component = component or \ - native.parse_component(self.raw.encode('utf-8')) + return native.parse_component(self.raw.encode('utf-8')) except exceptions.VobjectParseError: - self._component = None + return None def with_uid(self, new_uid): if not self._component: