Source code for pyuff_ustb.common
"""Module containing common utility functions, such as getting the right Uff-class from
a string and vice-versa."""
from typing import Type, Union
from pyuff_ustb.objects import (
Apodization,
BeamformedData,
ChannelData,
CurvilinearArray,
CurvilinearMatrixArray,
LinearArray,
LinearScan,
MatrixArray,
Phantom,
Point,
Probe,
Pulse,
Scan,
SectorScan,
Uff,
Wave,
Wavefront,
Window,
)
# Used to get class from class name in attrs
_name2class = {
"uff": Uff,
"uff.apodization": Apodization,
"uff.beamformed_data": BeamformedData,
"uff.channel_data": ChannelData,
"uff.curvilinear_array": CurvilinearArray,
"uff.curvilinear_matrix_array": CurvilinearMatrixArray,
"uff.linear_array": LinearArray,
"uff.matrix_array": MatrixArray,
"uff.phantom": Phantom,
"uff.point": Point,
"uff.probe": Probe,
"uff.pulse": Pulse,
"uff.sector_scan": SectorScan,
"uff.scan": Scan,
"uff.linear_scan": LinearScan,
"uff.wave": Wave,
"uff.wavefront": Wavefront,
"uff.window": Window,
}
# Used to get class name from class
_class2name = {v: k for k, v in _name2class.items()}
[docs]
def get_class_from_name(name: Union[str, bytes]) -> Union[Type[Uff], None]:
if isinstance(name, bytes):
name = name.decode("utf-8")
return _name2class.get(name, None)
[docs]
def get_name_from_class(cls: Type[Uff]) -> str:
return _class2name[cls]