From 30f4568899bbdba2add3f3130a29776697ff9cb9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20tom=20W=C3=B6rden?= <henrik@trineo.org> Date: Thu, 16 May 2019 23:09:55 +0200 Subject: [PATCH] more parsing of headers --- src/caosadvancedtools/cfood.py | 14 ++--------- src/caosadvancedtools/read_md_header.py | 33 +++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 12 deletions(-) diff --git a/src/caosadvancedtools/cfood.py b/src/caosadvancedtools/cfood.py index 70f0a7b8..a66b007a 100644 --- a/src/caosadvancedtools/cfood.py +++ b/src/caosadvancedtools/cfood.py @@ -56,10 +56,11 @@ class AbstractCFood(object): self.use_cache = use_cache def treat_match(self, crawled_file, match): + print(crawled_file) + entities = self.create_identifiables(crawled_file, match) for key, identifiable in entities.items(): - print(identifiable) if identifiable is None: print("THIS IS STRANGE") @@ -70,19 +71,11 @@ class AbstractCFood(object): if self.use_cache: identifiable_cache = Cache() identifier = Cache.hash_entity(identifiable) - print("look for '{}' in Cache".format(identifiable.get_parents()[0])) - print(identifiable) cached_id = identifiable_cache.check_existing(identifier) if cached_id is not None: - print(cached_id) - print("found Entity '{}' in Cache".format( - identifiable.get_parents()[0])) existing = db.execute_query("FIND {}".format(cached_id), unique=True) - else: - print("did not found Entity '{}' in Cache".format( - identifiable.get_parents()[0])) # Nothing in cache or cache not used. Check in CaosDB @@ -92,12 +85,9 @@ class AbstractCFood(object): # No record matching the identifiable was found. Insert the record if existing is None: - print(key, "does not exist") identifiable.insert() - print(key, "inserted") entities[key] = identifiable else: - print(key, "exists") entities[key] = existing if self.use_cache and cached_id is None: diff --git a/src/caosadvancedtools/read_md_header.py b/src/caosadvancedtools/read_md_header.py index f185a38f..5c4e50b1 100644 --- a/src/caosadvancedtools/read_md_header.py +++ b/src/caosadvancedtools/read_md_header.py @@ -28,6 +28,7 @@ import os import re +import caosdb as db import yaml TEMPLATEHEADER = """ @@ -193,3 +194,35 @@ def _add_header(filename): with open(filename, "w") as f: f.write(localheader) f.writelines(textlines) + + +def parse_responsibles(header): + people = [] + for person in header["responsible"]: + firstname = person.split(" ")[0] + lastname = person.split(" ")[1] + p = db.Record() + p.add_parent("Person") + p.add_property("lastname", lastname) + p.add_property("firstname", firstname) + people.append(p) + + return people + + +def reference_data_files(entity, header): + for glob in header["data"]: + for dfile in find_file_for_fileglob(glob): + entity.add_property("data", dfile) + + +def find_file_for_fileglob(glob): + # TODO this probalby needs to be extended for different kinds of glob + res = db.execute_query("FIND file which is stored at {}".format(glob)) + + +def find_records_referencing_files(glob): + # is it possible to reference the "data records"? anything might + # reference this file + db.execute_query("FIND Record which references file which is stored + at") -- GitLab