From 0d2cad4e49af1367f55c8ecafbb05a53b53118d2 Mon Sep 17 00:00:00 2001 From: VavoTK Date: Wed, 28 Sep 2022 16:10:32 +0400 Subject: [PATCH 1/2] fixing duplicate skip and success items issue --- src/superannotate/lib/app/interface/sdk_interface.py | 2 +- src/superannotate/lib/core/usecases/items.py | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/superannotate/lib/app/interface/sdk_interface.py b/src/superannotate/lib/app/interface/sdk_interface.py index 35985af6c..6d060fff0 100644 --- a/src/superannotate/lib/app/interface/sdk_interface.py +++ b/src/superannotate/lib/app/interface/sdk_interface.py @@ -3058,7 +3058,7 @@ def add_items_to_subset( :param subset: a name of an existing/new subset to associate items with. New subsets will be automatically created. :type subset: str - :param items: – list of items metadata. Required keys are 'name' and 'path' + :param items: – list of items metadata. Required keys are 'name' and 'path' if the 'id' key is not provided in the dict. :type items: list of dicts Request Example: diff --git a/src/superannotate/lib/core/usecases/items.py b/src/superannotate/lib/core/usecases/items.py index ba68ffc90..fd62ab591 100644 --- a/src/superannotate/lib/core/usecases/items.py +++ b/src/superannotate/lib/core/usecases/items.py @@ -833,7 +833,7 @@ def __init__( self.project = project self.subset_name = subset_name self.items = items - self.results = {"failed": [], "skipped": [], "succeeded": []} + self.results = {"succeeded":[],"failed": [], "skipped": []} self.item_ids = [] self.path_separated = defaultdict(dict) self._backend_client = backend_client @@ -969,7 +969,7 @@ def __query(self, path, items): queried_items = queried_items.data # Adding the images missing from specified folder to 'skipped' tmp = {item["name"]: item for item in items["items"]} - tmp_q = (x.name for x in queried_items) + tmp_q = set([x.name for x in queried_items]) for i, val in tmp.items(): if i not in tmp_q: @@ -997,7 +997,7 @@ def validate_items( filtered_items = self.__filter_duplicates() if len(filtered_items) != len(self.items): self.reporter.log_info( - f"Dropping duplicates found {len(filtered_items)} / {len(self.items)} unique items" + f"Dropping duplicates. Found {len(filtered_items)} / {len(self.items)} unique items" ) self.items = filtered_items self.items = self.__filter_invalid_items() From fa9c6807da07f7066b1285bd48058702947a8296 Mon Sep 17 00:00:00 2001 From: VavoTK Date: Wed, 28 Sep 2022 16:15:23 +0400 Subject: [PATCH 2/2] make validate --- src/superannotate/lib/core/usecases/items.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/superannotate/lib/core/usecases/items.py b/src/superannotate/lib/core/usecases/items.py index 0c0cd3316..8d72bf6e7 100644 --- a/src/superannotate/lib/core/usecases/items.py +++ b/src/superannotate/lib/core/usecases/items.py @@ -833,7 +833,7 @@ def __init__( self.project = project self.subset_name = subset_name self.items = items - self.results = {"succeeded":[],"failed": [], "skipped": []} + self.results = {"succeeded": [], "failed": [], "skipped": []} self.item_ids = [] self.path_separated = defaultdict(dict) self._backend_client = backend_client @@ -969,7 +969,7 @@ def __query(self, path, items): queried_items = queried_items.data # Adding the images missing from specified folder to 'skipped' tmp = {item["name"]: item for item in items["items"]} - tmp_q = set([x.name for x in queried_items]) + tmp_q = {x.name for x in queried_items} for i, val in tmp.items(): if i not in tmp_q: