From c7d9575e168b75bd16f2a7cc304d136fed045cec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20tom=20W=C3=B6rden?= <h.tomwoerden@indiscale.com> Date: Thu, 6 Feb 2020 15:12:57 +0100 Subject: [PATCH] update --- src/caosadvancedtools/export_related.py | 1 + src/caosadvancedtools/import_from_xml.py | 39 +++++++++++++++--------- src/caosadvancedtools/table_converter.py | 7 +++-- 3 files changed, 31 insertions(+), 16 deletions(-) diff --git a/src/caosadvancedtools/export_related.py b/src/caosadvancedtools/export_related.py index ebc3dac5..1c32106a 100644 --- a/src/caosadvancedtools/export_related.py +++ b/src/caosadvancedtools/export_related.py @@ -35,6 +35,7 @@ import os import caosdb as db from caosdb.apiutils import retrieve_entities_with_ids from caosdb.common.datatype import get_id_of_datatype, is_reference +from lxml import etree def get_ids_of_related_entities(entity): diff --git a/src/caosadvancedtools/import_from_xml.py b/src/caosadvancedtools/import_from_xml.py index 29c97ad7..8e17d8e0 100644 --- a/src/caosadvancedtools/import_from_xml.py +++ b/src/caosadvancedtools/import_from_xml.py @@ -35,7 +35,7 @@ import caosdb as db from caosmodels.data_model import DataModel from lxml import etree -from export_related import apply_to_ids +RERUN = False def create_dummy_file(text="Please ask the administrator for this file."): @@ -76,22 +76,27 @@ def main(filename): # TODO why is this necessary? new_files = [] + print(files) - for fi in files: - new = db.File(file=fi.file, path=fi.path, name=fi.name, id=fi.id, - description=fi.description) + if not RERUN: + for fi in files: + new = db.File(file=fi.file, path=fi.path, name=fi.name, id=fi.id, + description=fi.description) - for p in fi.parents: - new.add_parent(p) - new_files.append(new) - - files = new_files + for p in fi.parents: + new.add_parent(p) + new_files.append(new) + else: + for fi in files: + new = db.File(path=fi.path, id=fi.id) + new_files.append(new) # remove entities of the model from the container for el in model+files: cont.remove(el) - cont.remove(fi) + + files = new_files id_mapping = {} @@ -105,9 +110,15 @@ def main(filename): # insert files - for i, el in enumerate(files): - id_mapping[el.id] = el - el.insert(unique=False) + if not RERUN: + for i, el in enumerate(files): + print(el) + r = el.insert(unique=False) + print(r) + else: + for i, el in enumerate(files): + el.id = None + el.retrieve() def replace_by_new(old): if old in id_mapping: @@ -118,7 +129,7 @@ def main(filename): # set the ids of already inserted entities in the container for el in cont: - apply_to_ids(el, replace_by_new) + el.apply_to_ids(replace_by_new) cont.insert(unique=False) diff --git a/src/caosadvancedtools/table_converter.py b/src/caosadvancedtools/table_converter.py index c2d0ac38..76f4dfcd 100644 --- a/src/caosadvancedtools/table_converter.py +++ b/src/caosadvancedtools/table_converter.py @@ -24,9 +24,8 @@ import argparse import re import sys -import pandas as pd - import caosdb as db +import pandas as pd def from_tsv(filename, recordtype): @@ -81,6 +80,10 @@ def from_table(spreadsheet, recordtype): rec.add_parent(name=recordtype) for key, value in row.iteritems(): + if key.lower() == "description": + rec.description = value + continue + if (pd.notnull(value) and (not isinstance(value, str) or value.strip() != "")): regexp = r"(.*)\[(.*)\].*" -- GitLab