From b686f3dd001f30fbe115506489babe8edf1dd82d Mon Sep 17 00:00:00 2001 From: Sven Augustin Date: Tue, 5 Jul 2022 09:15:00 +0200 Subject: [PATCH 1/3] workaround for older python/jungfrau_utils versions --- slic/gui/widgets/jfmodcoords.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/slic/gui/widgets/jfmodcoords.py b/slic/gui/widgets/jfmodcoords.py index 726786e2..7909134d 100644 --- a/slic/gui/widgets/jfmodcoords.py +++ b/slic/gui/widgets/jfmodcoords.py @@ -1,7 +1,12 @@ import re import numpy as np from matplotlib import pyplot as plt -from jungfrau_utils.geometry import detector_geometry + +try: + from jungfrau_utils.geometry import detector_geometry +except ImportError: + print("could not import detector_geometry from jungfrau_utils") + detector_geometry = {} JF_PATTERN = r"(JF)(\d{2})(T)(\d{2})(V)(\d{2})" From f34d873e2f8032ce76812c89abc8d83da8fbc3f0 Mon Sep 17 00:00:00 2001 From: Sven Augustin Date: Tue, 5 Jul 2022 09:15:15 +0200 Subject: [PATCH 2/3] workaround for older python/jungfrau_utils versions --- slic/core/acquisition/fakeacquisition.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/slic/core/acquisition/fakeacquisition.py b/slic/core/acquisition/fakeacquisition.py index 9632279a..d1d11509 100644 --- a/slic/core/acquisition/fakeacquisition.py +++ b/slic/core/acquisition/fakeacquisition.py @@ -9,7 +9,11 @@ from slic.utils import typename from .baseacquisition import BaseAcquisition from slic.core.acquisition.detcfg import DetectorConfig -from jungfrau_utils.geometry import detector_geometry + +try: + from jungfrau_utils.geometry import detector_geometry +except ImportError: + detector_geometry = {} class FakeAcquisition(BaseAcquisition): From bb78b7ba2473adf2e5c06bd0d56733a31627f50b Mon Sep 17 00:00:00 2001 From: Sven Augustin Date: Tue, 5 Jul 2022 14:44:33 +0200 Subject: [PATCH 3/3] added terminal title and rich pretty printing --- slic/__init__.py | 10 ++++++++++ slic/utils/richcfg.py | 28 ++++++++++++++++++++++++++++ slic/utils/termtitle.py | 6 ++++++ 3 files changed, 44 insertions(+) create mode 100644 slic/utils/richcfg.py create mode 100644 slic/utils/termtitle.py diff --git a/slic/__init__.py b/slic/__init__.py index ec13bf76..be2adc83 100644 --- a/slic/__init__.py +++ b/slic/__init__.py @@ -3,10 +3,20 @@ from . import core from . import devices from . import utils +from .utils.termtitle import termtitle as _termtitle +_termtitle("⊚slic") + from .utils.logcfg import logcfg as _logcfg _logcfg() from .utils.pvpreload import pvpreload as _pvpreload _pvpreload() +#TODO: add rich to dependency list +try: + from .utils.richcfg import richcfg as _richcfg + _richcfg() +except Exception as e: + print("setting up rich failed:", e) + diff --git a/slic/utils/richcfg.py b/slic/utils/richcfg.py new file mode 100644 index 00000000..8f895aa7 --- /dev/null +++ b/slic/utils/richcfg.py @@ -0,0 +1,28 @@ +from IPython import get_ipython + +import rich +import rich.pretty + + +def richcfg(): + rich.pretty.install() + replace_ipython_inspect() + + +def replace_ipython_inspect(): + ipy = get_ipython() + if ipy is None: + return + + def _inspect(obj, oname="", formatter=None, info=None, detail_level=0, enable_html_pager=True, omit_sections=()): + if isinstance(obj, type): + title = f"{obj.__module__}.{obj.__name__}" + else: + title = f"{oname} = {obj}" + methods = (detail_level > 0) + rich.inspect(obj, title=title, methods=methods) + + ipy.inspector.pinfo = _inspect + + + diff --git a/slic/utils/termtitle.py b/slic/utils/termtitle.py new file mode 100644 index 00000000..86a01128 --- /dev/null +++ b/slic/utils/termtitle.py @@ -0,0 +1,6 @@ + +def termtitle(title): + title = "\33]0;" + str(title) + "\a" + print(title, end="", flush=True) + +