diff --git a/docs/qudi_hira_analysis/data_handler.html b/docs/qudi_hira_analysis/data_handler.html index d77ae81..c543e02 100644 --- a/docs/qudi_hira_analysis/data_handler.html +++ b/docs/qudi_hira_analysis/data_handler.html @@ -183,15 +183,40 @@
qudi_hira_analysis.data_handler
qudi_hira_analysis.data_handler
qudi_hira_analysis.data_handler
-def data_folder_tree(self)
+def data_folder_tree(self, print_tree: bool = True) ‑> str | None
Print a tree of the data folder.
Print or return a string tree of the data folder.
+print_tree
str
def data_folder_tree(self):
- """ Print a tree of the data folder. """
- for line in self.__tree(self.data_folder_path):
- print(line)
+def data_folder_tree(self, print_tree: bool = True) -> str | None:
+ """
+ Print or return a string tree of the data folder.
+
+ Args:
+ print_tree: Whether to print the tree or return it as a string (default: True).
+
+ Returns:
+ str: The tree as a string if `print_tree is False.
+ """
+ return self.__print_or_return_tree(self.data_folder_path, print_tree=print_tree)
-def figure_folder_tree(self)
+def figure_folder_tree(self, print_tree: bool = True) ‑> str | None
Print a tree of the figure folder.
Print or return a string tree of the figure folder.
+print_tree
str
def figure_folder_tree(self):
- """ Print a tree of the figure folder. """
- for line in self.__tree(self.figure_folder_path):
- print(line)
+def figure_folder_tree(self, print_tree: bool = True) -> str | None:
+ """
+ Print or return a string tree of the figure folder.
+
+ Args:
+ print_tree: Whether to print the tree or return it as a string (default: True).
+
+ Returns:
+ str: The tree as a string if `print_tree is False.
+ """
+ return self.__print_or_return_tree(self.figure_folder_path, print_tree=print_tree)
diff --git a/docs/qudi_hira_analysis/index.html b/docs/qudi_hira_analysis/index.html
index 7c776aa..d50bae2 100644
--- a/docs/qudi_hira_analysis/index.html
+++ b/docs/qudi_hira_analysis/index.html
@@ -2000,15 +2000,40 @@ Examples
# i.e. space because last, └── , above so no more |
yield from self.__tree(path, prefix=prefix + extension)
- def data_folder_tree(self):
- """ Print a tree of the data folder. """
- for line in self.__tree(self.data_folder_path):
- print(line)
+ def __print_or_return_tree(self, folder: Path, print_tree: bool) -> str | None:
+ """ Print or return a tree of the data and figure folders. """
+ if print_tree:
+ for line in self.__tree(folder):
+ print(line)
+ else:
+ tree = ""
+ for line in self.__tree(folder):
+ tree += line + "\n"
+ return tree
+
+ def data_folder_tree(self, print_tree: bool = True) -> str | None:
+ """
+ Print or return a string tree of the data folder.
+
+ Args:
+ print_tree: Whether to print the tree or return it as a string (default: True).
+
+ Returns:
+ str: The tree as a string if `print_tree is False.
+ """
+ return self.__print_or_return_tree(self.data_folder_path, print_tree=print_tree)
+
+ def figure_folder_tree(self, print_tree: bool = True) -> str | None:
+ """
+ Print or return a string tree of the figure folder.
- def figure_folder_tree(self):
- """ Print a tree of the figure folder. """
- for line in self.__tree(self.figure_folder_path):
- print(line)
+ Args:
+ print_tree: Whether to print the tree or return it as a string (default: True).
+
+ Returns:
+ str: The tree as a string if `print_tree is False.
+ """
+ return self.__print_or_return_tree(self.figure_folder_path, print_tree=print_tree)
def _get_measurement_filepaths(
self,
@@ -2051,7 +2076,7 @@ Examples
pulsed_measurement_data: dict[str: MeasurementDataclass] = {}
- for ts in timestamps:
+ for idx, ts in enumerate(timestamps):
pm, lp, rt = None, None, None
for filepath in filtered_filepaths:
@@ -2067,6 +2092,9 @@ Examples
if lp and pm and rt:
break
+ if not (lp and pm and rt):
+ raise IOError(f"File '{filtered_filepaths[idx]}' is not a valid pulsed measurement.")
+
pulsed_measurement_data[ts] = (
MeasurementDataclass(
timestamp=datetime.datetime.strptime(ts, self.timestamp_format_str),
@@ -2205,33 +2233,67 @@ Ancestors
Methods
-def data_folder_tree(self)
+def data_folder_tree(self, print_tree: bool = True) ‑> str | None
-
-
Print a tree of the data folder.
+Print or return a string tree of the data folder.
+Args
+
+print_tree
+- Whether to print the tree or return it as a string (default: True).
+
+Returns
+
+str
+- The tree as a string if `print_tree is False.
+
Expand source code
-def data_folder_tree(self):
- """ Print a tree of the data folder. """
- for line in self.__tree(self.data_folder_path):
- print(line)
+def data_folder_tree(self, print_tree: bool = True) -> str | None:
+ """
+ Print or return a string tree of the data folder.
+
+ Args:
+ print_tree: Whether to print the tree or return it as a string (default: True).
+
+ Returns:
+ str: The tree as a string if `print_tree is False.
+ """
+ return self.__print_or_return_tree(self.data_folder_path, print_tree=print_tree)
-def figure_folder_tree(self)
+def figure_folder_tree(self, print_tree: bool = True) ‑> str | None
-
-
Print a tree of the figure folder.
+Print or return a string tree of the figure folder.
+Args
+
+print_tree
+- Whether to print the tree or return it as a string (default: True).
+
+Returns
+
+str
+- The tree as a string if `print_tree is False.
+
Expand source code
-def figure_folder_tree(self):
- """ Print a tree of the figure folder. """
- for line in self.__tree(self.figure_folder_path):
- print(line)
+def figure_folder_tree(self, print_tree: bool = True) -> str | None:
+ """
+ Print or return a string tree of the figure folder.
+
+ Args:
+ print_tree: Whether to print the tree or return it as a string (default: True).
+
+ Returns:
+ str: The tree as a string if `print_tree is False.
+ """
+ return self.__print_or_return_tree(self.figure_folder_path, print_tree=print_tree)
diff --git a/qudi_hira_analysis/data_handler.py b/qudi_hira_analysis/data_handler.py
index 37078f4..3311e14 100644
--- a/qudi_hira_analysis/data_handler.py
+++ b/qudi_hira_analysis/data_handler.py
@@ -155,15 +155,40 @@ def __tree(self, dir_path: Path, prefix: str = ''):
# i.e. space because last, └── , above so no more |
yield from self.__tree(path, prefix=prefix + extension)
- def data_folder_tree(self):
- """ Print a tree of the data folder. """
- for line in self.__tree(self.data_folder_path):
- print(line)
+ def __print_or_return_tree(self, folder: Path, print_tree: bool) -> str | None:
+ """ Print or return a tree of the data and figure folders. """
+ if print_tree:
+ for line in self.__tree(folder):
+ print(line)
+ else:
+ tree = ""
+ for line in self.__tree(folder):
+ tree += line + "\n"
+ return tree
+
+ def data_folder_tree(self, print_tree: bool = True) -> str | None:
+ """
+ Print or return a string tree of the data folder.
+
+ Args:
+ print_tree: Whether to print the tree or return it as a string (default: True).
- def figure_folder_tree(self):
- """ Print a tree of the figure folder. """
- for line in self.__tree(self.figure_folder_path):
- print(line)
+ Returns:
+ str: The tree as a string if `print_tree is False.
+ """
+ return self.__print_or_return_tree(self.data_folder_path, print_tree=print_tree)
+
+ def figure_folder_tree(self, print_tree: bool = True) -> str | None:
+ """
+ Print or return a string tree of the figure folder.
+
+ Args:
+ print_tree: Whether to print the tree or return it as a string (default: True).
+
+ Returns:
+ str: The tree as a string if `print_tree is False.
+ """
+ return self.__print_or_return_tree(self.figure_folder_path, print_tree=print_tree)
def _get_measurement_filepaths(
self,
@@ -206,7 +231,7 @@ def __load_qudi_measurements_into_dataclass(
pulsed_measurement_data: dict[str: MeasurementDataclass] = {}
- for ts in timestamps:
+ for idx, ts in enumerate(timestamps):
pm, lp, rt = None, None, None
for filepath in filtered_filepaths:
@@ -222,6 +247,9 @@ def __load_qudi_measurements_into_dataclass(
if lp and pm and rt:
break
+ if not (lp and pm and rt):
+ raise IOError(f"File '{filtered_filepaths[idx]}' is not a valid pulsed measurement.")
+
pulsed_measurement_data[ts] = (
MeasurementDataclass(
timestamp=datetime.datetime.strptime(ts, self.timestamp_format_str),
diff --git a/tests/test_loading.py b/tests/test_loading.py
index a776fbb..7b50fe0 100644
--- a/tests/test_loading.py
+++ b/tests/test_loading.py
@@ -25,6 +25,10 @@ def test_pulsedmeasurement_load(self):
self.assertAlmostEqual(odmr.data["Controlled variable(Hz)"][0], 2.850000000000000e+09)
self.assertAlmostEqual(odmr.data["Signal"][0], 1.091035609573383e+00)
+ def test_pulsedmeasurement_load_with_fail(self):
+ with self.assertRaises(IOError):
+ self.dh.load_measurements(measurement_str="ramsey", pulsed=True)
+
def test_spectrometer_load(self):
spectrometry = self.dh.load_measurements(measurement_str="Spectrometry")
spectrum = spectrometry['20230306-2324-19']
@@ -115,3 +119,11 @@ def test_measurement_dataclass(self):
self.assertIn("Approx. measurement time (s)", odmr.pulsed.measurement.params)
self.assertEqual(odmr.get_param_from_filename(unit="dBm"), 22.0)
+
+ def test_data_folder_tree(self):
+ tree = self.dh.data_folder_tree(print_tree=False)
+ self.assertIn("PulsedMeasurement", tree)
+
+ def test_figure_folder_tree(self):
+ tree = self.dh.figure_folder_tree(print_tree=False)
+ self.assertEqual("", tree)
\ No newline at end of file