diff --git a/file_handler.py b/file_handler.py index 209befe..7cb6284 100644 --- a/file_handler.py +++ b/file_handler.py @@ -1,11 +1,11 @@ import os import nixio as nix from enum import Enum +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) -> 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) -> None: super().__init__() self.name = name self.type = type @@ -14,6 +14,10 @@ class ItemDescriptor(): self.definition = definition self.value = value self.entity_type = entity_type + self.data_type = data_type + self.shape = shape + self.metadata_id = metadata + class FileDescriptor(): def __init__(self, filename, format, version, created_at, updated_at, size) -> None: super().__init__() @@ -83,6 +87,7 @@ class Singleton(type): cls._instances[cls] = super(Singleton, cls).__call__(*args, **kwargs) return cls._instances[cls] + class EntityBuffer(): def __init__(self) -> None: @@ -117,13 +122,9 @@ class FileHandler(metaclass=Singleton): self._nix_file = None self._file_requests = [] self._entity_buffer = EntityBuffer() + self._file_descriptor = None def open(self, filename): - """[summary] - - Args: - filename ([type]): [description] - """ self.close() if not os.path.exists(filename): @@ -157,8 +158,6 @@ class FileHandler(metaclass=Singleton): @property def file_descriptor(self): - - return ItemDescriptor() return self._file_descriptor @property @@ -210,6 +209,9 @@ 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 + itd.data_type = e.data_type if hasattr(e, "data_type") else None + itd.shape = e.shape if hasattr(e, "shape") else None infos.append(itd) # TODO set the value to something meaningful for the various entity types return infos