From 7d21a9d0727c4bc46ca2ee32c5287ecee0f2523f Mon Sep 17 00:00:00 2001
From: Jan Grewe <jan.grewe@g-node.org>
Date: Sat, 16 Jan 2021 18:11:06 +0100
Subject: [PATCH] [descriptors] extracted to separate file

---
 nixview/file_handler.py     | 90 +------------------------------------
 nixview/util/descriptors.py | 90 +++++++++++++++++++++++++++++++++++++
 2 files changed, 91 insertions(+), 89 deletions(-)
 create mode 100644 nixview/util/descriptors.py

diff --git a/nixview/file_handler.py b/nixview/file_handler.py
index aa4b558..21ece5c 100644
--- a/nixview/file_handler.py
+++ b/nixview/file_handler.py
@@ -2,96 +2,8 @@ import os
 import nixio as nix
 import numpy as np
 from enum import Enum
-import datetime as dt
-
-from numpy.core.defchararray import not_equal
-from nixview.constants import io_chunksize as chunksize
-
-
-class ItemDescriptor():
-    def __init__(self, name=None, id=None, type=None, value=None, definition=None, block_id=None, entity_type=None, shape=None, metadata=None, data_type=None, source_id=None, created_at=None, updated_at=None) -> None:
-        super().__init__()
-        self.name = name
-        self.type = type
-        self.id = id
-        self.block_id= block_id
-        self.definition = definition
-        self.value = value
-        self.entity_type = entity_type
-        self.data_type = data_type
-        self.shape = shape
-        self.metadata_id = metadata
-        self.source_id = source_id
-        self.created_at = None
-        self.updated_at = None
-        
-    def to_html(self):
-        descr = "<html><h4>%s: %s</h4>" % (self.type, self.name)
-        descr += "<ol style='list-style-type:none'>"
-        descr += "<li><small><b>id:</b> %s</small></li>" % (self.id)
-        descr += "<li><small><b>entity type:</b> %s</small></li>" % (self.entity_type.value)
-        descr += "<li><small><b>data type:</b> %s</small></li>" % (str(self.data_type))
-        descr += "<li><small><b>data shape:</b> %s</small></li>" % (str(self.shape))
-        descr += "<hr>"
-        descr += "<p><small><b>definition:</b> %s</small></p>" % (self.definition)
-        descr += "<hr>"
-        descr += "<li><small><b>metadata id:</b> %s</small></li>" % (self.metadata_id)
-        descr += "<li><small><b>source id:</b> %s</small></li>" % (self.source_id)
-        descr += "<hr>"
-        descr += "<li><small><b>created at:</b> %s</small></li>" % (str(dt.datetime.fromtimestamp(self.created_at)) if self.created_at else "")
-        descr += "<li><small><b>updated at:</b> %s</small></li>" % (str(dt.datetime.fromtimestamp(self.updated_at)) if self.updated_at else "")
-        descr += "</ol>"
-        
-        descr += "</html>"
-        return descr
-
-
-class FileDescriptor():
-    def __init__(self, filename, format, version, created_at, updated_at, size) -> None:
-        super().__init__()
-        self.name = filename
-        self.size = None
-        self.format = format
-        self.version = version
-        self.created_at = created_at
-        self.updated_at = updated_at
-        self.size = size
-        self.block_count = 0
-        self.data_array_count = 0
-        self.tag_count = 0
-        self.group_count = 0
-        self.data_frame_count = 0
-    
-    def toHtml(self):
-        def namAndPath(filename):
-            parts = filename.split(os.sep)
-            name = parts[-1]
-            path = ""
-            if len(parts) > 1:
-                path = os.sep.join(parts[:-1])
-            return name, path
-
-        name, path = namAndPath(self.name)
-        descr = "<html><h4>%s</h4>" % name
-        descr += "<ol style='list-style-type:none'>"
-        descr += "<li><small><b>location:</b> %s</small></li>" % (path if len(path) > 1 else ".")
-        descr += "<li><small><b>format:</b> %s</small></li>" % (self.format)
-        descr += "<li><small><b>nix format version:</b> %s</small></li>" % (str(self.version))
-        descr += "<li><small><b>file size:</b> %.2f MB</small></li>" % (self.size)
-        descr += "<hr>"
-        descr += "<li>File contents</li>"
-        descr += "<li><small><b>blocks:</b> %i</small></li>" % self.block_count
-        descr += "<li><small><b>groups:</b> %i</small></li>" % self.group_count
-        descr += "<li><small><b>data arrays:</b> %i</small></li>" % self.data_array_count
-        descr += "<li><small><b>data frames:</b> %i</small></li>" % self.data_frame_count
-        descr += "<li><small><b>tags:</b> %i</small></li>" % self.tag_count
-        descr += "<hr>"
-        descr += "<li><small><b>created at:</b> %s</small></li>" % (str(dt.datetime.fromtimestamp(self.created_at)))
-        descr += "<li><small><b>updated at:</b> %s</small></li>" % (str(dt.datetime.fromtimestamp(self.updated_at)))
-        descr += "</ol>"
-        descr += "</html>"
-        return descr
 
+from nixview.util.descriptors import FileDescriptor, ItemDescriptor
 
 class NodeType(Enum):
      Root = "root"
diff --git a/nixview/util/descriptors.py b/nixview/util/descriptors.py
new file mode 100644
index 0000000..b57615f
--- /dev/null
+++ b/nixview/util/descriptors.py
@@ -0,0 +1,90 @@
+import os
+import datetime as dt
+
+class ItemDescriptor():
+    def __init__(self, name=None, id=None, type=None, value=None, definition=None, block_id=None, entity_type=None, shape=None, metadata=None, data_type=None, source_id=None, created_at=None, updated_at=None) -> None:
+        super().__init__()
+        self.name = name
+        self.type = type
+        self.id = id
+        self.block_id= block_id
+        self.definition = definition
+        self.value = value
+        self.entity_type = entity_type
+        self.data_type = data_type
+        self.shape = shape
+        self.metadata_id = metadata
+        self.source_id = source_id
+        self.created_at = None
+        self.updated_at = None
+        
+    def to_html(self):
+        descr = "<html><h4>%s: %s</h4>" % (self.type, self.name)
+        descr += "<ol style='list-style-type:none'>"
+        descr += "<li><small><b>id:</b> %s</small></li>" % (self.id)
+        descr += "<li><small><b>entity type:</b> %s</small></li>" % (self.entity_type.value)
+        descr += "<li><small><b>data type:</b> %s</small></li>" % (str(self.data_type))
+        descr += "<li><small><b>data shape:</b> %s</small></li>" % (str(self.shape))
+        descr += "<hr>"
+        descr += "<p><small><b>definition:</b> %s</small></p>" % (self.definition)
+        descr += "<hr>"
+        descr += "<li><small><b>metadata id:</b> %s</small></li>" % (self.metadata_id)
+        descr += "<li><small><b>source id:</b> %s</small></li>" % (self.source_id)
+        descr += "<hr>"
+        descr += "<li><small><b>created at:</b> %s</small></li>" % (str(dt.datetime.fromtimestamp(self.created_at)) if self.created_at else "")
+        descr += "<li><small><b>updated at:</b> %s</small></li>" % (str(dt.datetime.fromtimestamp(self.updated_at)) if self.updated_at else "")
+        descr += "</ol>"
+        
+        descr += "</html>"
+        return descr
+    
+    def __str__(self) -> str:
+        return "Entity: %s, id: %s, type: %s " % (self.name, self.id, self.entity_type)
+
+
+class FileDescriptor():
+    def __init__(self, filename, format, version, created_at, updated_at, size) -> None:
+        super().__init__()
+        self.name = filename
+        self.size = None
+        self.format = format
+        self.version = version
+        self.created_at = created_at
+        self.updated_at = updated_at
+        self.size = size
+        self.block_count = 0
+        self.data_array_count = 0
+        self.tag_count = 0
+        self.group_count = 0
+        self.data_frame_count = 0
+    
+    def toHtml(self):
+        def namAndPath(filename):
+            parts = filename.split(os.sep)
+            name = parts[-1]
+            path = ""
+            if len(parts) > 1:
+                path = os.sep.join(parts[:-1])
+            return name, path
+
+        name, path = namAndPath(self.name)
+        descr = "<html><h4>%s</h4>" % name
+        descr += "<ol style='list-style-type:none'>"
+        descr += "<li><small><b>location:</b> %s</small></li>" % (path if len(path) > 1 else ".")
+        descr += "<li><small><b>format:</b> %s</small></li>" % (self.format)
+        descr += "<li><small><b>nix format version:</b> %s</small></li>" % (str(self.version))
+        descr += "<li><small><b>file size:</b> %.2f MB</small></li>" % (self.size)
+        descr += "<hr>"
+        descr += "<li>File contents</li>"
+        descr += "<li><small><b>blocks:</b> %i</small></li>" % self.block_count
+        descr += "<li><small><b>groups:</b> %i</small></li>" % self.group_count
+        descr += "<li><small><b>data arrays:</b> %i</small></li>" % self.data_array_count
+        descr += "<li><small><b>data frames:</b> %i</small></li>" % self.data_frame_count
+        descr += "<li><small><b>tags:</b> %i</small></li>" % self.tag_count
+        descr += "<hr>"
+        descr += "<li><small><b>created at:</b> %s</small></li>" % (str(dt.datetime.fromtimestamp(self.created_at)))
+        descr += "<li><small><b>updated at:</b> %s</small></li>" % (str(dt.datetime.fromtimestamp(self.updated_at)))
+        descr += "</ol>"
+        descr += "</html>"
+        return descr
+