import os
import datetime as dt
class ItemDescriptor():
def __init__(self, name=None, id=None, type=None, value=None, unit=None, label=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.unit = unit
self.label = label
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 = created_at
self.updated_at = updated_at
self.best_xdim = None
self.suggested_plotter = None
def to_html(self):
descr = "
%s: %s
" % (self.type, self.name)
descr += ""
descr += "- id: %s
" % (self.id)
descr += "- entity type: %s
" % (self.entity_type.value)
descr += "- data type: %s
" % (str(self.data_type))
descr += "- data shape: %s
" % (str(self.shape))
descr += "
"
descr += "definition: %s
" % (self.definition)
descr += "
"
descr += "- metadata id: %s
" % (self.metadata_id)
descr += "- source id: %s
" % (self.source_id)
descr += "
"
descr += "- created at: %s
" % (str(dt.datetime.fromtimestamp(self.created_at)) if self.created_at else "")
descr += "- updated at: %s
" % (str(dt.datetime.fromtimestamp(self.updated_at)) if self.updated_at else "")
descr += "
"
descr += ""
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 = "%s
" % name
descr += ""
descr += "- location: %s
" % (path if len(path) > 1 else ".")
descr += "- format: %s
" % (self.format)
descr += "- nix format version: %s
" % (str(self.version))
descr += "- file size: %.2f MB
" % (self.size)
descr += "
"
descr += "- File contents
"
descr += "- blocks: %i
" % self.block_count
descr += "- groups: %i
" % self.group_count
descr += "- data arrays: %i
" % self.data_array_count
descr += "- data frames: %i
" % self.data_frame_count
descr += "- tags: %i
" % self.tag_count
descr += "
"
descr += "- created at: %s
" % (str(dt.datetime.fromtimestamp(self.created_at)))
descr += "- updated at: %s
" % (str(dt.datetime.fromtimestamp(self.updated_at)))
descr += "
"
descr += ""
return descr