Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/hdfmap/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -65,8 +65,8 @@
'set_all_logging_level', 'version_info', 'module_info'
]

__version__ = "1.0.1"
__date__ = "2025/09/02"
__version__ = "1.0.2"
__date__ = "2025/09/25"


def version_info() -> str:
Expand Down
24 changes: 20 additions & 4 deletions src/hdfmap/hdfmap_class.py
Original file line number Diff line number Diff line change
Expand Up @@ -537,7 +537,8 @@ def generate_scannables_from_names(self, names: list[str]):
# self.generate_combined()

def first_last_scannables(self, first_names: list[str] = (),
last_names: list[str] = ()) -> tuple[dict[str, str], dict[str, str]]:
last_names: list[str] = (),
alt_names: dict[str, list[str]] | None = None) -> tuple[dict[str, str], dict[str, str]]:
"""
Returns default names from scannables
output first_names returns dict of N names, where N is the number of dimensions in scannable shape
Expand All @@ -546,12 +547,27 @@ def first_last_scannables(self, first_names: list[str] = (),

:param first_names: list of names of plottable axes in scannables
:param last_names: list of names of plottable values in scannables
:param alt_names: dict of alternative names for each plottable value
:return {first_names: path}, {last_names: path}
"""
all_names = list(first_names) + list(self.scannables.keys()) + list(last_names)
if alt_names is None:
alt_names = {}
list_names = list(first_names) + list(self.scannables.keys()) + list(last_names)
# check names are in scannables
warnings = [name for name in all_names if name not in self.scannables]
all_names = [name for name in all_names if name in self.scannables]
warnings = []
all_names = []
for name in list_names:
if name in self.scannables:
all_names.append(name)
elif name in alt_names:
alt_name = next((alt for alt in alt_names[name] if alt in self.scannables), None)
if alt_name:
all_names.append(alt_name)
else:
warnings.append(name)
else:
warnings.append(name)

for name in warnings:
logger.warning(f"name: '{name}' not in scannables")
# return correct number of values from start and end
Expand Down
10 changes: 8 additions & 2 deletions src/hdfmap/nexus.py
Original file line number Diff line number Diff line change
Expand Up @@ -268,9 +268,15 @@ def nexus_default_paths(self) -> tuple[list[str], list[str]]:
def nexus_default_names(self) -> tuple[dict[str, str], dict[str, str]]:
"""Return name of default axes and signal paths, as defined in scannables"""
axes_paths, signal_paths = self.nexus_default_paths()
axes_names = [self.datasets[path].name for path in axes_paths ]
axes_names = [self.datasets[path].name for path in axes_paths]
signal_names = [self.datasets[path].name for path in signal_paths]
return self.first_last_scannables(axes_names, signal_names)
# axes_names = [name for path in axes_paths for name in self.datasets[path].names]
# signal_names = [name for path in signal_paths for name in self.datasets[path].names]
alt_names = {
self.datasets[path].name: self.datasets[path].names
for path in axes_paths + signal_paths
}
return self.first_last_scannables(axes_names, signal_names, alt_names)

def generate_scannables_from_nxdata(self, hdf_file: h5py.File, use_auxiliary: bool = True):
"""Generate scannables from default NXdata, using axuiliary_names if available"""
Expand Down
2 changes: 2 additions & 0 deletions tests/create_test_files.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
(DIR + 'i16/1040323.nxs', 'i16 pilatus hkl scan, new nexus format'),
(DIR + 'i16/982681.nxs', 'i16 pil2m single point scan'),
(DIR + 'i16/928878.nxs', 'i16 merlin 2d delta gam calibration'),
(DIR + 'i16/1109527.nxs', 'i16 pilatus eta scan, new nexus format'),
(DIR + 'i16/processed/1090391_msmapper.nxs', 'msmapper volume'),
(DIR + 'i10/i10-608314.nxs', 'i10 pimte scan'),
(DIR + 'i10/i10-618365.nxs', 'i10 scan'),
Expand All @@ -26,6 +27,7 @@
(DIR + 'i10/i10-1-28428.nxs', 'i10-1 3D hysteresis example'),
(DIR + 'i10/i10-1-37436_xas_notebook.nxs', 'i10-1 XASproc example'),
(DIR + 'i06/i06-1-302762.nxs', 'i06 scan'),
(DIR + 'i06/i06-1-366107.nxs', 'i06 hkl scan'),
(DIR + 'i21/i21-157111.nxs', 'i21 xcam single point scan'),
(DIR + 'i21/i21-157116.nxs', 'i21 xcam multi point scan'),
(DIR + 'i13/i13-1-368910.nxs', 'i13 Excalibur axis scan'),
Expand Down
2 changes: 1 addition & 1 deletion tests/data/test_files.json

Large diffs are not rendered by default.