From 5b472be0ed3a2cf6d27811a9ffd1b2cf8b3d36ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20tom=20W=C3=B6rden?= <h.tomwoerden@indiscale.com> Date: Thu, 24 Nov 2022 13:57:25 +0100 Subject: [PATCH] MAINT: allow to set is_referenced_by via yaml --- src/caoscrawler/identifiable_adapters.py | 9 ++++++++- .../single_file_test_data/identifiables.yml | 4 ++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/caoscrawler/identifiable_adapters.py b/src/caoscrawler/identifiable_adapters.py index acbc1952..35f56126 100644 --- a/src/caoscrawler/identifiable_adapters.py +++ b/src/caoscrawler/identifiable_adapters.py @@ -420,7 +420,14 @@ class CaosDBIdentifiableAdapter(IdentifiableAdapter): for key, value in identifiable_data.items(): rt = db.RecordType().add_parent(key) for prop_name in value: - rt.add_property(name=prop_name) + if isinstance(prop_name, str): + rt.add_property(name=prop_name) + elif isinstance(prop_name, dict): + for k, v in prop_name.items(): + rt.add_property(name=k, value=v) + else: + NotImplementedError("YAML is not structured correctly") + self.register_identifiable(key, rt) def register_identifiable(self, name: str, definition: db.RecordType): diff --git a/unittests/test_directories/single_file_test_data/identifiables.yml b/unittests/test_directories/single_file_test_data/identifiables.yml index e32746d5..c6f82be3 100644 --- a/unittests/test_directories/single_file_test_data/identifiables.yml +++ b/unittests/test_directories/single_file_test_data/identifiables.yml @@ -5,3 +5,7 @@ Keyword: Project: - project_id - title +Unknown: + - propa + - is_referenced_by: [Some] + -- GitLab