Support preplot imports in additional formats.

This adds support for SPS v1, SPS v2.1, custom fixed-width,
CSV and custom sailline info preplot imports.
This commit is contained in:
D. Berge
2024-05-03 11:44:32 +02:00
parent 7e1023f6e8
commit 3488c8bf4d

View File

@@ -1,9 +1,19 @@
import fwr import fwr
import delimited
""" """
Preplot importing functions. Preplot importing functions.
""" """
def is_fixed_width (file):
fixed_width_types = [ "sps1", "sps21", "p190", "fixed-width" ]
return type(file) == dict and "type" in file and file["type"] in fixed_width_types
def is_delimited (file):
delimited_types = [ "csv", "p111", "x-sl+csv" ]
return type(file) == dict and "type" in file and file["type"] in delimited_types
def from_file (file, realpath = None): def from_file (file, realpath = None):
""" """
Return a list of dicts, where each dict has the structure: Return a list of dicts, where each dict has the structure:
@@ -23,12 +33,20 @@ def from_file (file, realpath = None):
""" """
filepath = realpath or file["path"] filepath = realpath or file["path"]
if is_fixed_width(file):
records = fwr.from_file(filepath, file) records = fwr.from_file(filepath, file)
elif is_delimited(file):
records = delimited.from_file(filepath, file)
else:
return "Unrecognised file format"
if type(records) == str: if type(records) == str:
# This is an error message # This is an error message
return records return records
if file.get("type") == "x-sl+csv":
return records
lines = [] lines = []
line_names = set([r["line_name"] for r in records]) line_names = set([r["line_name"] for r in records])
for line_name in line_names: for line_name in line_names: