[file handler] add FileDescriptor
This commit is contained in:
parent
4088b96861
commit
49d6749ecd
@ -14,6 +14,51 @@ class ItemDescriptor():
|
|||||||
self.definition = definition
|
self.definition = definition
|
||||||
self.value = value
|
self.value = value
|
||||||
self.entity_type = entity_type
|
self.entity_type = 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 = "<html><h4>%s</h4>" % name
|
||||||
|
descr += "<ol style='list-style-type:none'>"
|
||||||
|
descr += "<li><small><b>location:</b> %s</small></li>" % (path if len(path) > 1 else ".")
|
||||||
|
descr += "<li><small><b>format:</b> %s</small></li>" % (self.format)
|
||||||
|
descr += "<li><small><b>nix format version:</b> %s</small></li>" % (str(self.version))
|
||||||
|
descr += "<li><small><b>file size:</b> %.2f MB</small></li>" % (self.size)
|
||||||
|
descr += "<hr>"
|
||||||
|
descr += "<li>File contents</li>"
|
||||||
|
descr += "<li><small><b>blocks:</b> %i</small></li>" % self.block_count
|
||||||
|
descr += "<li><small><b>groups:</b> %i</small></li>" % self.group_count
|
||||||
|
descr += "<li><small><b>data arrays:</b> %i</small></li>" % self.data_array_count
|
||||||
|
descr += "<li><small><b>data frames:</b> %i</small></li>" % self.data_frame_count
|
||||||
|
descr += "<li><small><b>tags:</b> %i</small></li>" % self.tag_count
|
||||||
|
descr += "<hr>"
|
||||||
|
descr += "<li><small><b>created at:</b> %s</small></li>" % (str(dt.datetime.fromtimestamp(self.created_at)))
|
||||||
|
descr += "<li><small><b>updated at:</b> %s</small></li>" % (str(dt.datetime.fromtimestamp(self.updated_at)))
|
||||||
|
descr += "</ol>"
|
||||||
|
descr += "</html>"
|
||||||
|
return descr
|
||||||
|
|
||||||
|
|
||||||
class NodeType(Enum):
|
class NodeType(Enum):
|
||||||
@ -86,6 +131,16 @@ class FileHandler(metaclass=Singleton):
|
|||||||
try:
|
try:
|
||||||
self._nix_file = nix.File.open(filename, nix.FileMode.ReadOnly)
|
self._nix_file = nix.File.open(filename, nix.FileMode.ReadOnly)
|
||||||
self._filename = filename
|
self._filename = filename
|
||||||
|
self._file_descriptor = FileDescriptor(self.filename, self._nix_file.format, self._nix_file.version,
|
||||||
|
self._nix_file.created_at, self._nix_file.updated_at, os.path.getsize(self.filename)/1e+6)
|
||||||
|
self.file_descriptor.block_count = len(self._nix_file.blocks)
|
||||||
|
for b in self._nix_file.blocks:
|
||||||
|
self.file_descriptor.data_array_count += len(b.data_arrays)
|
||||||
|
self.file_descriptor.group_count += len(b.groups)
|
||||||
|
self.file_descriptor.tag_count += len(b.tags)
|
||||||
|
self.file_descriptor.tag_count += len(b.multi_tags)
|
||||||
|
if hasattr(b, "data_frames"):
|
||||||
|
self.file_descriptor.data_frame_count += len(b.data_frames)
|
||||||
return True, "Successfully opened file %s." % filename.split(os.sep)[-1]
|
return True, "Successfully opened file %s." % filename.split(os.sep)[-1]
|
||||||
except RuntimeError as e:
|
except RuntimeError as e:
|
||||||
return False, "Failed to open file %s! \n Error message is: %s" % (filename, e)
|
return False, "Failed to open file %s! \n Error message is: %s" % (filename, e)
|
||||||
@ -100,9 +155,11 @@ class FileHandler(metaclass=Singleton):
|
|||||||
self._file_requests = []
|
self._file_requests = []
|
||||||
self._entity_buffer.clear()
|
self._entity_buffer.clear()
|
||||||
|
|
||||||
|
@property
|
||||||
def file_descriptor(self):
|
def file_descriptor(self):
|
||||||
|
|
||||||
return ItemDescriptor()
|
return ItemDescriptor()
|
||||||
|
return self._file_descriptor
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def is_valid(self):
|
def is_valid(self):
|
||||||
|
Loading…
Reference in New Issue
Block a user