diff --git a/src/borg/item.pyx b/src/borg/item.pyx index a97a423c9..7a3c4a8ac 100644 --- a/src/borg/item.pyx +++ b/src/borg/item.pyx @@ -40,15 +40,21 @@ class PropDict: __slots__ = ("_dict", ) # avoid setting attributes not supported by properties def __init__(self, data_dict=None, internal_dict=None, **kw): + self._dict = {} + if internal_dict is None: + pass # nothing to do + elif isinstance(internal_dict, dict): + self.update_internal(internal_dict) + else: + raise TypeError("internal_dict must be a dict") if data_dict is None: data = kw - elif not isinstance(data_dict, dict): - raise TypeError("data_dict must be dict") - else: + elif isinstance(data_dict, dict): data = data_dict - self._dict = {} - self.update_internal(internal_dict or {}) - self.update(data) + else: + raise TypeError("data_dict must be a dict") + if data: + self.update(data) def update(self, d): for k, v in d.items():