code: def flip(polys, size, flip_x=False, flip_y=False):
      """Flip polygons according to image flipping directions.
  
      Parameters
      ----------
      polys : list of numpy.ndarray
          Numpy.ndarray with shape (N, 2) where N is the number of bounding boxes.
          The second axis represents points of the polygons.
          Specifically, these are :math:`(x, y)`.
      size : tuple
          Tuple of length 2: (width, height).
      flip_x : bool
          Whether flip horizontally.
      flip_y : type
          Whether flip vertically.
  
      Returns
      -------
      list of numpy.ndarray
          Flipped polygons with original shape.
      """
      if not len(size) == 2:
          raise ValueError(
              "size requires length 2 tuple, given {}".format(len(size))
          )
      width, height = size
      polys = copy.deepcopy(polys)
      if flip_y:
          for poly in polys:
              poly[:, 1] = height - poly[:, 1]
      if flip_x:
          for poly in polys:
              poly[:, 0] = width - poly[:, 0]
      return polys
  
imports: import copy
  import numpy
  from PIL import Image
  from ..mscoco.utils import try_import_pycocotools
label_desc: Use image node_id 1 for calling a global function with example usage: flip(polys, size, flip_x, flip_y) and returns: polys