From 8241e608548dc4e1c44f9f8598b76d82e2c8f250 Mon Sep 17 00:00:00 2001
From: Timm Fitschen <t.fitschen@indiscale.com>
Date: Fri, 24 Apr 2020 15:05:47 +0200
Subject: [PATCH] FIX: missing uploads due to unchanged checksum

---
 .gitlab-ci.yml                               |  2 +-
 src/caosadvancedtools/export_related.py      |  3 ++-
 src/caosadvancedtools/import_from_xml.py     | 28 +++-----------------
 src/caosadvancedtools/pandoc_header_tools.py |  4 +--
 4 files changed, 8 insertions(+), 29 deletions(-)
 mode change 100644 => 100755 src/caosadvancedtools/export_related.py
 mode change 100644 => 100755 src/caosadvancedtools/import_from_xml.py

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 81614024..8d44f3e1 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -104,5 +104,5 @@ style:
   stage: style
   image: $CI_REGISTRY_IMAGE
   script:
-      - autopep8 -r --diff --exit-code .
+      - autopep8 -ar --diff --exit-code .
   allow_failure: true
diff --git a/src/caosadvancedtools/export_related.py b/src/caosadvancedtools/export_related.py
old mode 100644
new mode 100755
index 5b41c97e..b9fa75d0
--- a/src/caosadvancedtools/export_related.py
+++ b/src/caosadvancedtools/export_related.py
@@ -110,7 +110,7 @@ def main(rec_id):
             try:
                 el.download(target)
                 print("Downloaded:", target)
-            except:
+            except BaseException:
                 print("Failed download of:", target)
 
     for ent in cont:
@@ -128,6 +128,7 @@ def defineParser():
         '-i',
         '--id',
         type=int,
+        required=True,
         help='the id of the record that shall be copied and then changed')
 
     return parser
diff --git a/src/caosadvancedtools/import_from_xml.py b/src/caosadvancedtools/import_from_xml.py
old mode 100644
new mode 100755
index 6de31f5f..9b5c7fcf
--- a/src/caosadvancedtools/import_from_xml.py
+++ b/src/caosadvancedtools/import_from_xml.py
@@ -58,6 +58,7 @@ def main(filename, rerun=False):
 
     for el in cont:
         if isinstance(el, db.File):
+            el._checksum = None
             target = os.path.join("downloads", el.path[1:])
 
             if os.path.exists(target):
@@ -69,32 +70,11 @@ def main(filename, rerun=False):
         if (isinstance(el, db.Property) or isinstance(el, db.RecordType)):
             model.append(el)
 
-    # create new file objects and replace the existing one
-    # TODO why is this necessary?
-
-    new_files = []
-    print(files)
-
-    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)
-    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)
 
-    files = new_files
-
     id_mapping = {}
 
     for el in model+files:
@@ -108,12 +88,10 @@ def main(filename, rerun=False):
     # insert files
 
     if not rerun:
-        for i, el in enumerate(files):
-            print(el)
+        for _, el in enumerate(files):
             r = el.insert(unique=False)
-            print(r)
     else:
-        for i, el in enumerate(files):
+        for _, el in enumerate(files):
             el.id = None
             el.retrieve()
 
diff --git a/src/caosadvancedtools/pandoc_header_tools.py b/src/caosadvancedtools/pandoc_header_tools.py
index 4c6dfb21..262defd2 100644
--- a/src/caosadvancedtools/pandoc_header_tools.py
+++ b/src/caosadvancedtools/pandoc_header_tools.py
@@ -147,7 +147,7 @@ it is not at the beginning, it must be preceded by a blank line.
             raise ParseErrorsInHeader(filename, e)
         # except yaml.error.MarkedYAMLError as e:
         #     raise NoValidHeader(filename)
-        if type(yaml_part) != dict:
+        if not isinstance(yaml_part, dict):
             raise NoValidHeader(filename)
         return (found_1, found_2, clean_header(yaml_part))
 
@@ -229,7 +229,7 @@ def clean_header(header):
 
     for k, v in header.items():
         # Plain string is put into list
-        if type(v) == str:
+        if isinstance(v, str):
             header[k] = [v]
 
     return header
-- 
GitLab