nmreval/src/gui_qt/io/nmrreader.py
dominik 8d148b639b BUGFIX: VFT;
change to src layout
2022-10-20 17:23:15 +02:00

35 lines
914 B
Python

from struct import unpack
from nmreval.io.nmrreader import NMRReader
from ..Qt import QtCore
class QNMRReader(QtCore.QObject):
data_read = QtCore.pyqtSignal(list)
file_ext = ['.nmr']
def __init__(self):
super().__init__()
self._reader = NMRReader()
def __call__(self, fname):
with fname.open('rb') as fp:
s16 = fp.read(16)
# copied from whichdb (Python 2.7) to look for magic value of dbhash
(magic,) = unpack("=l", s16[-4:])
if magic in (0x00061561, 0x61150600):
self._reader(fname, '-1')
else:
(magic,) = unpack('<16s', s16)
if magic.startswith(b'NMREVAL'):
self._reader(fname, str(magic[7:].rstrip(b'\x00'), 'utf8'))
return self
def exec(self):
data = self._reader.make_data()
self.data_read.emit([data])