From 661332c3ce7562b30545ae1773d30a784bcbc0db Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Sun, 29 Jul 2018 23:22:26 +0200 Subject: o Support for resolving 'mpn' fields from digikey. Creates 'digikey-part-stub', can be used to download the entire part later on. --- src/ee/ds/__init__.py | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) (limited to 'src/ee/ds/__init__.py') diff --git a/src/ee/ds/__init__.py b/src/ee/ds/__init__.py index f71a7c6..14bbb91 100644 --- a/src/ee/ds/__init__.py +++ b/src/ee/ds/__init__.py @@ -144,7 +144,7 @@ class DataSet(object): self._assert_not_frozen() if not create: - raise Exception("No such type: {}:{}".format(object_type, key)) + raise Exception("No such object: {}:{}".format(object_type, key)) o = Object(self, ot, key) objects[key] = o @@ -179,11 +179,15 @@ class DataSet(object): def get_or_create_object(self, object_type: str, key: str) -> Object: return self._check_object(object_type, key, True) - def create_object(self, object_type: str, key: str) -> Object: + def create_object(self, object_type: str, key: str, replace=False) -> Object: self._assert_not_frozen() if self.has_object(object_type, key): - raise Exception("Object already exist: {}:{}".format(object_type, key)) + if not replace: + raise Exception("Object already exist: {}:{}".format(object_type, key)) + + ot, objects = self._check_object_type(object_type, False) + del self._objects_by_type[ot][key] return self._check_object(object_type, key, True) @@ -410,11 +414,14 @@ class LazyRwDataSet(object): cookie = self._dsm.cookie_for_ds(self._name) if cookie.exists(): - if not self._clean: - raise IOError("DataSet already exists: {}, cookie={}".format(self._name, cookie)) - self._dsm.remove(self._name) + if self._clean: + self._dsm.remove(self._name) + ds = DataSet() + else: + ds = self._dsm.load(self._name) + else: + ds = DataSet() - ds = DataSet() self._ds = ds return ds -- cgit v1.2.3