[ItemDescriptor] add sources fix metadata id

This commit is contained in:
Jan Grewe 2021-01-06 23:14:47 +01:00
parent 1718fd89ca
commit fcbd0091ad

View File

@ -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 = "<html><h4>%s: %s</h4>" % (self.type, self.name)
descr += "</html>"
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