diff --git a/masque/ports.py b/masque/ports.py index 93310f7..ac48681 100644 --- a/masque/ports.py +++ b/masque/ports.py @@ -147,7 +147,7 @@ class Port(PivotableImpl, PositionableImpl, Mirrorable, Flippable, Copyable): """ Returns a human-readable description of the port's state including cardinal directions. """ - deg = numpy.rad2deg(self.rotation) if self.rotation is not None else "any" + deg = numpy.rad2deg(self.rotation) if self.rotation is not None else None cardinal = "" travel_dir = "" @@ -168,7 +168,8 @@ class Port(PivotableImpl, PositionableImpl, Mirrorable, Flippable, Copyable): if numpy.isclose((t_deg - closest_t + 180) % 360 - 180, 0, atol=1e-3): travel_dir = f" (Travel -> {dirs[closest_t]})" - return f"pos=({self.x:g}, {self.y:g}), rot={deg:g}{cardinal}{travel_dir}" + deg_text = 'any' if deg is None else f'{deg:g}' + return f"pos=({self.x:g}, {self.y:g}), rot={deg_text}{cardinal}{travel_dir}" def __repr__(self) -> str: if self.rotation is None: @@ -655,4 +656,3 @@ class PortList(metaclass=ABCMeta): raise PortError(msg) return translations[0], rotations[0], o_offsets[0] - diff --git a/masque/test/test_ports.py b/masque/test/test_ports.py index e1dab87..070bf8e 100644 --- a/masque/test/test_ports.py +++ b/masque/test/test_ports.py @@ -46,6 +46,11 @@ def test_port_measure_travel() -> None: assert rotation == pi +def test_port_describe_any_rotation() -> None: + p = Port((0, 0), None) + assert p.describe() == "pos=(0, 0), rot=any" + + def test_port_list_rename() -> None: class MyPorts(PortList): def __init__(self) -> None: