diff --git a/file_handler.py b/file_handler.py index 7cb6284..e0ebe66 100644 --- a/file_handler.py +++ b/file_handler.py @@ -5,7 +5,7 @@ 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) -> None: + 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) -> None: super().__init__() self.name = name self.type = type @@ -17,6 +17,14 @@ class ItemDescriptor(): self.data_type = data_type self.shape = shape self.metadata_id = metadata + self.source_id = source_id + + def to_html(self): + descr = "

%s: %s

" % (self.type, self.name) + + descr += "" + return descr + class FileDescriptor(): def __init__(self, filename, format, version, created_at, updated_at, size) -> None: @@ -123,6 +131,7 @@ class FileHandler(metaclass=Singleton): self._file_requests = [] self._entity_buffer = EntityBuffer() self._file_descriptor = None + self._file_version = None def open(self, filename): self.close() @@ -142,6 +151,7 @@ class FileHandler(metaclass=Singleton): self.file_descriptor.tag_count += len(b.multi_tags) if hasattr(b, "data_frames"): self.file_descriptor.data_frame_count += len(b.data_frames) + self._file_version = self._nix_file.version return True, "Successfully opened file %s." % filename.split(os.sep)[-1] except RuntimeError as e: return False, "Failed to open file %s! \n Error message is: %s" % (filename, e) @@ -149,12 +159,13 @@ class FileHandler(metaclass=Singleton): return False, "Failed to open file %s! \n Error message is: %s\n Probably no nix file?!" % (filename, e) def close(self): - # TODO check if there are any pending file requests! if self._nix_file is not None and self._nix_file.is_open(): self._nix_file.close() self._nix_file = None self._file_requests = [] self._entity_buffer.clear() + self._file_descriptor = None + self._file_version = None @property def file_descriptor(self): @@ -209,9 +220,12 @@ class FileHandler(metaclass=Singleton): for e in entities: self._entity_buffer.put(e) itd = ItemDescriptor(e.name, e.id, e.type, definition=e.definition, entity_type=entity_type, block_id=block_id) - itd.metadata_id = e.metadata if hasattr(e, "metadata") else None + section = e.metadata if hasattr(e, "metadata") else None + itd.metadata_id = section.id if section is not None else None itd.data_type = e.data_type if hasattr(e, "data_type") else None itd.shape = e.shape if hasattr(e, "shape") else None + src = e.source if hasattr(e, "source") else None + itd.source_id = src.id if src is not None else None infos.append(itd) # TODO set the value to something meaningful for the various entity types return infos