Source code for baseband.guppi.file_info
# Licensed under the GPLv3 - see LICENSE
"""The GuppiFileReaderInfo property.
Overrides what can be gotten from the first header.
"""
from ..base.file_info import FileReaderInfo, info_item
__all__ = ['GUPPIFileReaderInfo']
[docs]class GUPPIFileReaderInfo(FileReaderInfo):
# Get sample_rate from header rather than calculate it from frame_rate
# and samples_per_frame, since we need to correct for overlap.
attr_names = list(FileReaderInfo.attr_names)
attr_names.insert(attr_names.index('format')+1, 'pktfmt')
attr_names.insert(attr_names.index('samples_per_frame')+1, 'overlap')
attr_names = tuple(attr_names)
"""Attributes that the container provides."""
overlap = info_item(needs='header0', doc=(
'Number of complete samples that overlap between frames.'))
sample_rate = info_item(needs='header0', doc=(
'Number of complete samples per second.'))
@info_item(needs='header0')
def pktfmt(self):
"""Packet format for the data."""
pktfmt = self.header0['PKTFMT']
if pktfmt not in self.header0.supported_formats:
self.warnings['pktfmt'] = (f'Unknown pktfmt {pktfmt!r}. '
f'Assuming channels are stored first.')
return pktfmt