code: def rationalize(flt: float, denominators: Set[int] = None) -> Fraction:
      
      if denominators is None:
          denominators = _DENOMINATORS
      frac = Fraction.from_float(flt).limit_denominator()
      if frac.denominator not in denominators:
          raise ValueError('Cannot rationalize')
      return frac
docs: Convert a floating point number to a Fraction with a small
      denominator.
  
      Args:
          flt:            A floating point number
          denominators:   Collection of standard denominators. Default is
              1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 16, 32, 64, 128, 256, 512,
              1024, 2048, 4096, 8192
  
      Raises:
          ValueError:     If cannot rationalize float