mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-04-19 18:40:01 +02:00
added support for ~ expansion
This commit is contained in:
parent
071a1c9f98
commit
57e0fd805e
@ -95,6 +95,7 @@ class Detector(CppDetectorApi):
|
|||||||
|
|
||||||
@config.setter
|
@config.setter
|
||||||
def config(self, fname):
|
def config(self, fname):
|
||||||
|
fname = ut.make_string_path(fname)
|
||||||
self.loadConfig(fname)
|
self.loadConfig(fname)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
@ -119,6 +120,7 @@ class Detector(CppDetectorApi):
|
|||||||
|
|
||||||
@parameters.setter
|
@parameters.setter
|
||||||
def parameters(self, fname):
|
def parameters(self, fname):
|
||||||
|
fname = ut.make_string_path(fname)
|
||||||
self.loadParameters(fname)
|
self.loadParameters(fname)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
@ -359,6 +361,7 @@ class Detector(CppDetectorApi):
|
|||||||
|
|
||||||
@fpath.setter
|
@fpath.setter
|
||||||
def fpath(self, path):
|
def fpath(self, path):
|
||||||
|
path = ut.make_string_path(path)
|
||||||
self.setFilePath(path)
|
self.setFilePath(path)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
@ -589,6 +592,7 @@ class Detector(CppDetectorApi):
|
|||||||
|
|
||||||
@trimbits.setter
|
@trimbits.setter
|
||||||
def trimbits(self, fname):
|
def trimbits(self, fname):
|
||||||
|
fname = ut.make_string_path(fname)
|
||||||
self.loadTrimbits(fname)
|
self.loadTrimbits(fname)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
@ -1040,6 +1044,7 @@ class Detector(CppDetectorApi):
|
|||||||
|
|
||||||
@pattern.setter
|
@pattern.setter
|
||||||
def pattern(self, fname):
|
def pattern(self, fname):
|
||||||
|
fname = ut.make_string_path(fname)
|
||||||
self.setPattern(fname)
|
self.setPattern(fname)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
@ -8,6 +8,8 @@ from collections import namedtuple
|
|||||||
import _slsdet #C++ lib
|
import _slsdet #C++ lib
|
||||||
import functools
|
import functools
|
||||||
import datetime as dt
|
import datetime as dt
|
||||||
|
import pathlib
|
||||||
|
import os
|
||||||
|
|
||||||
Geometry = namedtuple('Geometry', ['x', 'y'])
|
Geometry = namedtuple('Geometry', ['x', 'y'])
|
||||||
|
|
||||||
@ -77,6 +79,7 @@ def element(func):
|
|||||||
return element_if_equal(func(self, *args, **kwargs))
|
return element_if_equal(func(self, *args, **kwargs))
|
||||||
return wrapper
|
return wrapper
|
||||||
|
|
||||||
|
|
||||||
def eiger_register_to_time(register):
|
def eiger_register_to_time(register):
|
||||||
"""
|
"""
|
||||||
Decode register value and return time in s. Values are stored in
|
Decode register value and return time in s. Values are stored in
|
||||||
@ -93,3 +96,15 @@ def make_timedelta(t):
|
|||||||
return t
|
return t
|
||||||
else:
|
else:
|
||||||
return dt.timedelta(seconds=t)
|
return dt.timedelta(seconds=t)
|
||||||
|
|
||||||
|
def make_string_path(path):
|
||||||
|
"""
|
||||||
|
Accepts either a pathlib.Path or a string, expands ~ to user and convert
|
||||||
|
Path to str
|
||||||
|
"""
|
||||||
|
if isinstance(path, pathlib.Path):
|
||||||
|
return path.expanduser().as_posix()
|
||||||
|
elif isinstance(path, str):
|
||||||
|
return os.path.expanduser(path)
|
||||||
|
else:
|
||||||
|
raise ValueError("Cannot convert argument to posix path")
|
@ -7,6 +7,7 @@ Testing functions from utils.py
|
|||||||
import pytest
|
import pytest
|
||||||
from slsdet.utils import *
|
from slsdet.utils import *
|
||||||
import datetime as dt
|
import datetime as dt
|
||||||
|
import pathlib
|
||||||
|
|
||||||
def test_iterable():
|
def test_iterable():
|
||||||
assert is_iterable(5) == False
|
assert is_iterable(5) == False
|
||||||
@ -93,4 +94,23 @@ def test_make_timedelta_from_timedelta():
|
|||||||
t = dt.timedelta(minutes=1)
|
t = dt.timedelta(minutes=1)
|
||||||
r = make_timedelta(t)
|
r = make_timedelta(t)
|
||||||
assert 60 == r.total_seconds()
|
assert 60 == r.total_seconds()
|
||||||
assert r == dt.timedelta(minutes=1)
|
assert r == dt.timedelta(minutes=1)
|
||||||
|
|
||||||
|
|
||||||
|
def test_make_string_path_from_Path():
|
||||||
|
pathstr = "/some/temp/path"
|
||||||
|
p = pathlib.Path(pathstr)
|
||||||
|
r = make_string_path(p)
|
||||||
|
assert isinstance(r, str)
|
||||||
|
assert r == p.as_posix()
|
||||||
|
assert r == pathstr
|
||||||
|
|
||||||
|
def test_make_string_path_expand_user():
|
||||||
|
pathstr = "~/tmp/virtual.config"
|
||||||
|
home = pathlib.Path.home()
|
||||||
|
expanded_str = pathstr.replace('~', home.as_posix())
|
||||||
|
p = pathlib.Path(pathstr)
|
||||||
|
rp = make_string_path(p)
|
||||||
|
rs = make_string_path(pathstr)
|
||||||
|
assert rp == expanded_str
|
||||||
|
assert rs == expanded_str
|
Loading…
x
Reference in New Issue
Block a user