diff --git a/logic/page_logic.py b/logic/page_logic.py
index 480b3c4ca834cabf8ea2db28829cbee141477763..3fc0ccb830218941a76d67469e49cd8f7fb5556c 100644
--- a/logic/page_logic.py
+++ b/logic/page_logic.py
@@ -91,7 +91,7 @@ def generate_page(md: MachineData, widget):
         measurement_spec_list = list(md.measurement_specs)
         selected_measurement_spec = st.selectbox('Measurement Spec', measurement_spec_list)
         if selected_measurement_spec is not None:
-            f = matplot.create_basic_stacked_subplots(md, measurement_type=selected_measurement_spec)
+            f = matplot.create_basic_stacked_subplots(md, measurement_spec=selected_measurement_spec)
             st.write(f)
 
     else:
diff --git a/pages/upload.py b/pages/upload.py
index 6e5665ce5eab7a3a51b8e540d5057ef4ab680730..2a3445f2e7cb73c9f9d42296a246f2aae8355c40 100644
--- a/pages/upload.py
+++ b/pages/upload.py
@@ -4,6 +4,7 @@ import tempfile
 
 import streamlit as st
 from mdata.file_formats.csv import read_machine_data
+from mdata.file_formats.csv.shared import HeaderFormatLiterals
 from mdata.file_formats.hdf import read_machine_data_h5
 
 from logic.switch_page import switch_page
@@ -15,7 +16,7 @@ import_type = st.selectbox('Import Type', ['csv', 'hdf'])
 
 files = {}
 if import_type == 'csv':
-    csv_header_upload = st.file_uploader("Upload a header csv or json file", type=['.csv', '.json'])
+    csv_header_upload = st.file_uploader("Upload a header csv, json or yaml file", type=['.csv', '.json', '.yaml'])
     csv_data_upload = st.file_uploader("Upload a data csv file", type='.csv')
     files['csv_header_upload'] = csv_header_upload
     files['csv_data_upload'] = csv_data_upload
@@ -41,11 +42,13 @@ def import_hdf(h5f):
 
 # @st.experimental_memo
 def import_csv(hf, df):
-    header_format = None
+    header_format: HeaderFormatLiterals = 'csv'
     if 'csv' in hf.type:
         header_format = 'csv'
     elif 'json' in hf.type:
         header_format = 'json'
+    elif 'yaml' in hf.type:
+        header_format = 'yaml'
     assert header_format is not None
     return read_machine_data(hf.getvalue(), df.getvalue(), validity_checking=True, header_format=header_format)
 
diff --git a/poetry.lock b/poetry.lock
index 58257c339ad5693e3621140f525507e8c6e2d823..281dc5e4dcef29640e9dfe8654093bb5968393b8 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -990,6 +990,7 @@ immutabledict = "*"
 matplotlib = "*"
 pandas = {version = "^2.0", extras = ["clipboard", "computation", "excel", "hdf5", "output-formatting", "performance", "postgresql"]}
 plotly = "^5.15"
+pyyaml = "*"
 seaborn = "*"
 tsdownsample = "^0.1.2"
 
@@ -997,7 +998,7 @@ tsdownsample = "^0.1.2"
 type = "git"
 url = "https://git-ce.rwth-aachen.de/machine-data/mdata.git"
 reference = "master"
-resolved_reference = "c0cf73e120cbabe34972e7a2c456535fa500d615"
+resolved_reference = "bf163467f1cdf5b4cf9c05ea5141f53264884a27"
 
 [[package]]
 name = "mdurl"
@@ -2458,4 +2459,4 @@ testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "p
 [metadata]
 lock-version = "2.0"
 python-versions = "^3.11"
-content-hash = "dbe71029ebbbcba313c432f16698bdddd10375d3b90298bf656dffd186115e5a"
+content-hash = "c44474c07e2f6dc70616251d41127d31e1c5d726a6ba1a4c57d14cb325c9612f"
diff --git a/pyproject.toml b/pyproject.toml
index 2cff4cd81dcc160afb301afe00b6f993139039d6..383b390ca93d1149cb060ef25596bc87e619106b 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -13,7 +13,6 @@ python = "^3.11"
 streamlit = "^1.25"
 cvxopt = "^1.3"
 # mdata = "^0.1.2"
-pyyaml = "*"
 mdata = { git = "https://git-ce.rwth-aachen.de/machine-data/mdata.git", branch = "master" }
 #mdata = [
 #    { platform = "linux", git = "https://git-ce.rwth-aachen.de/leah.tgu/mdata.git", branch = "master" },