2025-03-27 14:51:37 +08:00

61 lines
1.4 KiB
Python

from typing import List
from tbwk.RawOpener import unpack, Block
from tbwk.Measurement import Measurement
class Worksheet:
measurements: List[Measurement] = None
def __init__(self):
self.measurements = []
def __len__(self) -> int:
""" Returns the number of measurements within the worksheet. """
return len(self.measurements)
def __iter__(self):
for measurement in self.measurements:
yield measurement
def add_measurement(self, measurement: Measurement) -> None:
"""
Adds a measurement to the worksheet
:param measurement:
:return:
"""
self.measurements.append(measurement)
def import_worksheet(filename: str) -> Worksheet:
"""
imports a given filename and creates a tbwk.Worksheet object.
:param filename:
:return:
"""
with open(filename, "rb") as fh:
content = fh.read()
if content is None:
raise FileNotFoundError(f"File {filename} was not found.")
# Unpack the file
blocks = unpack(content)
# Start loading the worksheet with found data.
worksheet = Worksheet()
# Add measurements
for block in blocks:
if block.type == Block.Measurement:
# Add a measurement block
measurement = Measurement.from_block(block)
worksheet.add_measurement(measurement)
# ToDo: Import data from other blocks, too.
return worksheet