diff --git a/CHANGELOG.md b/CHANGELOG.md index e138410ba..2fc51fbae 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -52,6 +52,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/). ## [3.6.0] ### Added +- new kit module `bluesky` for working with `bluesky-in-a-box` data / directories - `Data.norm_for_each`: easier norm-by-axis syntax - `kit.from_list_of_objects`: convenience method for grabbing an channel/variable/axis/etc. using multiple specifiers - `Data.get_var`: get variable object by index, name, or variable itself diff --git a/WrightTools/datasets/__init__.py b/WrightTools/datasets/__init__.py index 942357f58..10d3a0036 100644 --- a/WrightTools/datasets/__init__.py +++ b/WrightTools/datasets/__init__.py @@ -91,6 +91,7 @@ def _from_directory(self, dirname, prefix=""): wt5 = DatasetContainer() wt5._from_files(here / "wt5" / "v1.0.0", prefix="v1p0p0_") wt5._from_files(here / "wt5" / "v1.0.1", prefix="v1p0p1_") +wt5._from_files(here / "wt5" / "v1.0.3", prefix="v1p0p3_") # --- pretty namespace ---------------------------------------------------------------------------- diff --git a/WrightTools/datasets/wt5/v1.0.3/shg_andor.wt5 b/WrightTools/datasets/wt5/v1.0.3/shg_andor.wt5 new file mode 100644 index 000000000..bca86e0e6 Binary files /dev/null and b/WrightTools/datasets/wt5/v1.0.3/shg_andor.wt5 differ diff --git a/WrightTools/kit/__init__.py b/WrightTools/kit/__init__.py index d6a608427..9a8fa608d 100644 --- a/WrightTools/kit/__init__.py +++ b/WrightTools/kit/__init__.py @@ -15,3 +15,5 @@ from ._unicode import * from ._utilities import * from ._glob import * + +from . import _bluesky as bluesky diff --git a/WrightTools/kit/_bluesky.py b/WrightTools/kit/_bluesky.py new file mode 100644 index 000000000..da0e7815f --- /dev/null +++ b/WrightTools/kit/_bluesky.py @@ -0,0 +1,278 @@ +""" +Helpers and containers for data structures in the Wright Group's Bluesky deployment +https://github.com/wright-group/bluesky-in-a-box/ +""" + +import re +import json +import datetime +import pathlib +import logging +from numpy import prod +from typing import NamedTuple, Generator, Iterable + +from ._array import joint_shape +from .._open import open as wt5_open + +logger = logging.getLogger(__name__) + +__folder_parts__ = [ + r"(?P\d\d\d\d-\d\d-\d\d)", + r"(?P