From a9b6da943e303ca8162f5f8a73c41a5be472db29 Mon Sep 17 00:00:00 2001 From: Simon Birkholz Date: Tue, 4 Mar 2025 10:56:12 +0100 Subject: [PATCH] allow Measurement __init__ to take pathlib.Path --- cuvis/Measurement.py | 17 +++++++++++------ cuvis/SessionFile.py | 2 +- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/cuvis/Measurement.py b/cuvis/Measurement.py index 8caccaf..fd51461 100644 --- a/cuvis/Measurement.py +++ b/cuvis/Measurement.py @@ -3,6 +3,7 @@ import datetime import os import numpy as np +from pathlib import Path from ._cuvis_il import cuvis_il from .cuvis_aux import SDKException, SessionData, Capabilities, MeasurementFlags, SensorInfo, GPSData @@ -31,22 +32,26 @@ class Measurement(object): session_info: SessionData frame_id: int - def __init__(self, base: Union[int, str]): + def __init__(self, base: Union[int, str, Path]): self._handle = None self._session = None if isinstance(base, int): self._handle = base - elif isinstance(base, str) and os.path.exists(base): + elif isinstance(base, str) or isinstance(base, Path): + base = Path(base) + if not base.exists(): + raise FileNotFoundError( + 'Could not open Measurement. File does not exists.') + _ptr = cuvis_il.new_p_int() - if cuvis_il.status_ok != cuvis_il.cuvis_measurement_load(base, + if cuvis_il.status_ok != cuvis_il.cuvis_measurement_load(str(base), _ptr): raise SDKException() self._handle = cuvis_il.p_int_value(_ptr) else: - raise SDKException( - "Could not open Measurement! Either handle not" - " available or file not found!") + raise ValueError( + "Could not open Measurement! Unknown Input") self.refresh() pass diff --git a/cuvis/SessionFile.py b/cuvis/SessionFile.py index 0d3a7f4..8b842a8 100644 --- a/cuvis/SessionFile.py +++ b/cuvis/SessionFile.py @@ -23,7 +23,7 @@ def __init__(self, base: Union[Path, str]): raise SDKException() self._handle = cuvis_il.p_int_value(_ptr) else: - raise SDKException( + raise FileNotFoundError( "Could not open SessionFile File! File not found!") def get_measurement(self, frameNo: int = 0, itemtype: SessionItemType = SessionItemType.no_gaps) -> Optional[Measurement]: