code: def cmd_tr(self, x=None, y=None, xy=None, ch=None):
          
          viewer = self.get_viewer(ch)
          if viewer is None:
              self.log("No current viewer/channel.")
              return
  
          fx, fy, sxy = viewer.get_transforms()
  
          if x is None and y is None and xy is None:
              self.log("x=%s y=%s xy=%s" % (fx, fy, sxy))
  
          else:
              # turn these into True or False
              if x is None:
                  x = fx
              else:
                  x = (x != 0)
              if y is None:
                  y = fy
              else:
                  y = (y != 0)
              if xy is None:
                  xy = sxy
              else:
                  xy = (xy != 0)
  
              viewer.transform(x, y, xy)
docs: tr x=0|1 y=0|1 xy=0|1 ch=chname
  
          Transform the image for the given viewer/channel by flipping
          (x=1 and/or y=1) or swapping axes (xy=1).
          If no value is given, reports the current rotation.