[file handler] add dtype and shape fields to ItemDescriptor

This commit is contained in:
Jan Grewe 2021-01-06 15:52:24 +01:00
parent 5acf2f9f14
commit 2a7e459eda

View File

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