code: def _gates_from_cli(opts, gate_opt):
      
      gates = {}
      if getattr(opts, gate_opt) is None:
          return gates
      for gate in getattr(opts, gate_opt):
          try:
              ifo, central_time, half_dur, taper_dur = gate.split(':')
              central_time = float(central_time)
              half_dur = float(half_dur)
              taper_dur = float(taper_dur)
          except ValueError:
              raise ValueError("--gate {} not formatted correctly; ".format(
                  gate) + "see help")
          try:
              gates[ifo].append((central_time, half_dur, taper_dur))
          except KeyError:
              gates[ifo] = [(central_time, half_dur, taper_dur)]
      return gates
docs: Parses the given `gate_opt` into something understandable by
      `strain.gate_data`.