code: def elliptical(cls, shape, pixel_scale, major_axis_radius_arcsec, axis_ratio, phi, centre=(0., 0.),
                     invert=False):
          
          mask = mask_util.mask_elliptical_from_shape_pixel_scale_and_radius(shape, pixel_scale, major_axis_radius_arcsec,
                                                                            axis_ratio, phi, centre)
          if invert: mask = np.invert(mask)
          return cls(array=mask.astype('bool'), pixel_scale=pixel_scale)
docs: Setup a mask where unmasked pixels are within an ellipse of an input arc second major-axis and centre.
  
          Parameters
          ----------
          shape: (int, int)
              The (y,x) shape of the mask in units of pixels.
          pixel_scale: float
              The arc-second to pixel conversion factor of each pixel.
          major_axis_radius_arcsec : float
              The major-axis (in arc seconds) of the ellipse within which pixels are unmasked.
          axis_ratio : float
              The axis-ratio of the ellipse within which pixels are unmasked.
          phi : float
              The rotation angle of the ellipse within which pixels are unmasked, (counter-clockwise from the positive \
               x-axis).
          centre: (float, float)
              The centre of the ellipse used to mask pixels.