From 66ca140a66767cc453f0e59b3c4105ab3f43ba94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20tom=20W=C3=B6rden?= <h.tomwoerden@indiscale.com> Date: Fri, 20 Jan 2023 11:21:43 +0100 Subject: [PATCH] MAINT: make create_flat_list arg optional --- src/caoscrawler/crawl.py | 8 +++++--- unittests/test_tool.py | 6 ++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/caoscrawler/crawl.py b/src/caoscrawler/crawl.py index 3385a1b5..3b8ba58d 100644 --- a/src/caoscrawler/crawl.py +++ b/src/caoscrawler/crawl.py @@ -555,7 +555,7 @@ class Crawler(object): return False @staticmethod - def create_flat_list(ent_list: list[db.Entity], flat: set[db.Entity]): + def create_flat_list(ent_list: list[db.Entity], flat: Optional[set[db.Entity]]): """ Recursively adds entities and all their properties contained in ent_list to the output set flat. @@ -563,6 +563,8 @@ class Crawler(object): TODO: This function will be moved to pylib as it is also needed by the high level API. """ + if flat is None: + flat = set() flat.update(ent_list) for ent in ent_list: for p in ent.properties: @@ -577,6 +579,7 @@ class Crawler(object): if p.value not in flat: flat.add(p.value) Crawler.create_flat_list([p.value], flat) + return list(flat) def _has_missing_object_in_references(self, ident: Identifiable, referencing_entities: list): """ @@ -747,8 +750,7 @@ class Crawler(object): to_be_inserted: list[db.Entity] = [] to_be_updated: list[db.Entity] = [] flat = set() - Crawler.create_flat_list(ent_list, flat) - flat = list(flat) + flat = Crawler.create_flat_list(ent_list, flat) # TODO: can the following be removed at some point for ent in flat: diff --git a/unittests/test_tool.py b/unittests/test_tool.py index ff8998b9..e73477e5 100755 --- a/unittests/test_tool.py +++ b/unittests/test_tool.py @@ -713,8 +713,7 @@ def test_create_flat_list(): b = db.Record() a.add_property(name="a", value=a) a.add_property(name="b", value=b) - flat = set() - Crawler.create_flat_list([a], flat) + flat = Crawler.create_flat_list([a]) assert len(flat) == 2 assert a in flat assert b in flat @@ -722,8 +721,7 @@ def test_create_flat_list(): c.add_property(name="a", value=a) # This would caus recursion if it is not dealt with properly. a.add_property(name="c", value=c) - flat = set() - Crawler.create_flat_list([c], flat) + flat = Crawler.create_flat_list([c]) assert len(flat) == 3 assert a in flat assert b in flat -- GitLab