docs: def tk_to_cirq(tkcirc: Circuit, indexed_qubits: List[QubitId]) -> cirq.Circuit:
      """Converts a :math:`\\mathrm{t|ket}\\rangle` :py:class:`Circuit` object to a Cirq :py:class:`Circuit`.
      
      :param tkcirc: The input :math:`\\mathrm{t|ket}\\rangle` :py:class:`Circuit`
      :param indexed_qubits: Map from :math:`\\mathrm{t|ket}\\rangle` qubit indices to Cirq :py:class:`QubitId` s
      
      :return: The Cirq :py:class:`Circuit` corresponding to the input circuit
      """
  
      grid = tkcirc._int_routing_grid()
      qubits = _grid_to_qubits(grid)
      oplst = []
      slices = []
      for s in grid:
          news = set()
          for pair in s:
              if pair[0]>-1:
                  news.add(pair[0])
          slices.append(news)
      for s in slices:
          for v in s:
              op = tkcirc._unsigned_to_op(v)
              optype = op.get_type()
              if optype == OpType.Input or optype == OpType.Output:
                  continue
              try:
                  gatetype = _ops2cirq_mapping[optype]
              except KeyError as error:
                  raise NotImplementedError("Cannot convert tket Op to cirq gate: " + op.get_name()) from error
              n_qubits = op.get_n_inputs()
              qids = []
              for i in range(n_qubits):
                  qbit = qubits[(v,i)]
                  qids.append(indexed_qubits[qbit])
              params = op.get_params()
              if gatetype in _rotation_types:
                  cirqop = gatetype(exponent=params[0])(*qids)
              elif gatetype == cirq_common.MeasurementGate:
                  for q in qids:
                      cirqop = cirq_common.measure(q, key=op.get_desc())
              else:
                  cirqop = gatetype(*qids)
              oplst.append(cirqop)
  
      return cirq.Circuit.from_ops(*oplst)