{"payload":{"allShortcutsEnabled":false,"fileTree":{"qiskit/transpiler/passes/utils":{"items":[{"name":"__init__.py","path":"qiskit/transpiler/passes/utils/__init__.py","contentType":"file"},{"name":"barrier_before_final_measurements.py","path":"qiskit/transpiler/passes/utils/barrier_before_final_measurements.py","contentType":"file"},{"name":"block_to_matrix.py","path":"qiskit/transpiler/passes/utils/block_to_matrix.py","contentType":"file"},{"name":"check_gate_direction.py","path":"qiskit/transpiler/passes/utils/check_gate_direction.py","contentType":"file"},{"name":"check_map.py","path":"qiskit/transpiler/passes/utils/check_map.py","contentType":"file"},{"name":"contains_instruction.py","path":"qiskit/transpiler/passes/utils/contains_instruction.py","contentType":"file"},{"name":"control_flow.py","path":"qiskit/transpiler/passes/utils/control_flow.py","contentType":"file"},{"name":"convert_conditions_to_if_ops.py","path":"qiskit/transpiler/passes/utils/convert_conditions_to_if_ops.py","contentType":"file"},{"name":"dag_fixed_point.py","path":"qiskit/transpiler/passes/utils/dag_fixed_point.py","contentType":"file"},{"name":"error.py","path":"qiskit/transpiler/passes/utils/error.py","contentType":"file"},{"name":"filter_op_nodes.py","path":"qiskit/transpiler/passes/utils/filter_op_nodes.py","contentType":"file"},{"name":"fixed_point.py","path":"qiskit/transpiler/passes/utils/fixed_point.py","contentType":"file"},{"name":"gate_direction.py","path":"qiskit/transpiler/passes/utils/gate_direction.py","contentType":"file"},{"name":"gates_basis.py","path":"qiskit/transpiler/passes/utils/gates_basis.py","contentType":"file"},{"name":"merge_adjacent_barriers.py","path":"qiskit/transpiler/passes/utils/merge_adjacent_barriers.py","contentType":"file"},{"name":"minimum_point.py","path":"qiskit/transpiler/passes/utils/minimum_point.py","contentType":"file"},{"name":"remove_barriers.py","path":"qiskit/transpiler/passes/utils/remove_barriers.py","contentType":"file"},{"name":"remove_final_measurements.py","path":"qiskit/transpiler/passes/utils/remove_final_measurements.py","contentType":"file"},{"name":"unroll_forloops.py","path":"qiskit/transpiler/passes/utils/unroll_forloops.py","contentType":"file"}],"totalCount":19},"qiskit/transpiler/passes":{"items":[{"name":"analysis","path":"qiskit/transpiler/passes/analysis","contentType":"directory"},{"name":"basis","path":"qiskit/transpiler/passes/basis","contentType":"directory"},{"name":"calibration","path":"qiskit/transpiler/passes/calibration","contentType":"directory"},{"name":"layout","path":"qiskit/transpiler/passes/layout","contentType":"directory"},{"name":"optimization","path":"qiskit/transpiler/passes/optimization","contentType":"directory"},{"name":"routing","path":"qiskit/transpiler/passes/routing","contentType":"directory"},{"name":"scheduling","path":"qiskit/transpiler/passes/scheduling","contentType":"directory"},{"name":"synthesis","path":"qiskit/transpiler/passes/synthesis","contentType":"directory"},{"name":"utils","path":"qiskit/transpiler/passes/utils","contentType":"directory"},{"name":"__init__.py","path":"qiskit/transpiler/passes/__init__.py","contentType":"file"}],"totalCount":10},"qiskit/transpiler":{"items":[{"name":"passes","path":"qiskit/transpiler/passes","contentType":"directory"},{"name":"preset_passmanagers","path":"qiskit/transpiler/preset_passmanagers","contentType":"directory"},{"name":"__init__.py","path":"qiskit/transpiler/__init__.py","contentType":"file"},{"name":"basepasses.py","path":"qiskit/transpiler/basepasses.py","contentType":"file"},{"name":"coupling.py","path":"qiskit/transpiler/coupling.py","contentType":"file"},{"name":"exceptions.py","path":"qiskit/transpiler/exceptions.py","contentType":"file"},{"name":"instruction_durations.py","path":"qiskit/transpiler/instruction_durations.py","contentType":"file"},{"name":"layout.py","path":"qiskit/transpiler/layout.py","contentType":"file"},{"name":"passmanager.py","path":"qiskit/transpiler/passmanager.py","contentType":"file"},{"name":"passmanager_config.py","path":"qiskit/transpiler/passmanager_config.py","contentType":"file"},{"name":"target.py","path":"qiskit/transpiler/target.py","contentType":"file"},{"name":"timing_constraints.py","path":"qiskit/transpiler/timing_constraints.py","contentType":"file"}],"totalCount":12},"qiskit":{"items":[{"name":"assembler","path":"qiskit/assembler","contentType":"directory"},{"name":"circuit","path":"qiskit/circuit","contentType":"directory"},{"name":"compiler","path":"qiskit/compiler","contentType":"directory"},{"name":"converters","path":"qiskit/converters","contentType":"directory"},{"name":"dagcircuit","path":"qiskit/dagcircuit","contentType":"directory"},{"name":"passmanager","path":"qiskit/passmanager","contentType":"directory"},{"name":"primitives","path":"qiskit/primitives","contentType":"directory"},{"name":"providers","path":"qiskit/providers","contentType":"directory"},{"name":"pulse","path":"qiskit/pulse","contentType":"directory"},{"name":"qasm","path":"qiskit/qasm","contentType":"directory"},{"name":"qasm2","path":"qiskit/qasm2","contentType":"directory"},{"name":"qasm3","path":"qiskit/qasm3","contentType":"directory"},{"name":"qobj","path":"qiskit/qobj","contentType":"directory"},{"name":"qpy","path":"qiskit/qpy","contentType":"directory"},{"name":"quantum_info","path":"qiskit/quantum_info","contentType":"directory"},{"name":"result","path":"qiskit/result","contentType":"directory"},{"name":"scheduler","path":"qiskit/scheduler","contentType":"directory"},{"name":"synthesis","path":"qiskit/synthesis","contentType":"directory"},{"name":"transpiler","path":"qiskit/transpiler","contentType":"directory"},{"name":"utils","path":"qiskit/utils","contentType":"directory"},{"name":"visualization","path":"qiskit/visualization","contentType":"directory"},{"name":"VERSION.txt","path":"qiskit/VERSION.txt","contentType":"file"},{"name":"__init__.py","path":"qiskit/__init__.py","contentType":"file"},{"name":"exceptions.py","path":"qiskit/exceptions.py","contentType":"file"},{"name":"user_config.py","path":"qiskit/user_config.py","contentType":"file"},{"name":"version.py","path":"qiskit/version.py","contentType":"file"}],"totalCount":26},"":{"items":[{"name":".azure","path":".azure","contentType":"directory"},{"name":".binder","path":".binder","contentType":"directory"},{"name":".cargo","path":".cargo","contentType":"directory"},{"name":".github","path":".github","contentType":"directory"},{"name":"crates","path":"crates","contentType":"directory"},{"name":"docs","path":"docs","contentType":"directory"},{"name":"examples","path":"examples","contentType":"directory"},{"name":"qiskit","path":"qiskit","contentType":"directory"},{"name":"releasenotes","path":"releasenotes","contentType":"directory"},{"name":"test","path":"test","contentType":"directory"},{"name":"tools","path":"tools","contentType":"directory"},{"name":".editorconfig","path":".editorconfig","contentType":"file"},{"name":".git-blame-ignore-revs","path":".git-blame-ignore-revs","contentType":"file"},{"name":".gitignore","path":".gitignore","contentType":"file"},{"name":".local-spellings","path":".local-spellings","contentType":"file"},{"name":".mailmap","path":".mailmap","contentType":"file"},{"name":".mergify.yml","path":".mergify.yml","contentType":"file"},{"name":".stestr.conf","path":".stestr.conf","contentType":"file"},{"name":"CITATION.bib","path":"CITATION.bib","contentType":"file"},{"name":"CODE_OF_CONDUCT.md","path":"CODE_OF_CONDUCT.md","contentType":"file"},{"name":"CONTRIBUTING.md","path":"CONTRIBUTING.md","contentType":"file"},{"name":"Cargo.lock","path":"Cargo.lock","contentType":"file"},{"name":"Cargo.toml","path":"Cargo.toml","contentType":"file"},{"name":"DEPRECATION.md","path":"DEPRECATION.md","contentType":"file"},{"name":"LICENSE.txt","path":"LICENSE.txt","contentType":"file"},{"name":"MAINTAINING.md","path":"MAINTAINING.md","contentType":"file"},{"name":"MANIFEST.in","path":"MANIFEST.in","contentType":"file"},{"name":"Makefile","path":"Makefile","contentType":"file"},{"name":"README.md","path":"README.md","contentType":"file"},{"name":"SECURITY.md","path":"SECURITY.md","contentType":"file"},{"name":"asv.conf.json","path":"asv.conf.json","contentType":"file"},{"name":"azure-pipelines.yml","path":"azure-pipelines.yml","contentType":"file"},{"name":"constraints.txt","path":"constraints.txt","contentType":"file"},{"name":"pyproject.toml","path":"pyproject.toml","contentType":"file"},{"name":"qiskit_bot.yaml","path":"qiskit_bot.yaml","contentType":"file"},{"name":"requirements-dev.txt","path":"requirements-dev.txt","contentType":"file"},{"name":"requirements-optional.txt","path":"requirements-optional.txt","contentType":"file"},{"name":"requirements.txt","path":"requirements.txt","contentType":"file"},{"name":"rust-toolchain.toml","path":"rust-toolchain.toml","contentType":"file"},{"name":"setup.py","path":"setup.py","contentType":"file"},{"name":"tox.ini","path":"tox.ini","contentType":"file"}],"totalCount":41}},"fileTreeProcessingTime":22.137688999999998,"foldersToFetch":[],"repo":{"id":83821669,"defaultBranch":"main","name":"qiskit","ownerLogin":"Qiskit","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2017-03-03T17:02:42.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/30696987?v=4","public":true,"private":false,"isOrgOwned":true},"symbolsExpanded":false,"treeExpanded":true,"refInfo":{"name":"main","listCacheKey":"v0:1710785011.0","canEdit":false,"refType":"branch","currentOid":"43381ae1b159c01b55159d2dc1e8a65970b72746"},"path":"qiskit/transpiler/passes/utils/remove_final_measurements.py","currentUser":null,"blob":{"rawLines":["# This code is part of Qiskit.","#","# (C) Copyright IBM 2017, 2019.","#","# This code is licensed under the Apache License, Version 2.0. You may","# obtain a copy of this license in the LICENSE.txt file in the root directory","# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0.","#","# Any modifications or derivative works of this code must retain this","# copyright notice, and modified files need to carry a notice indicating","# that they have been altered from the originals.","","\"\"\"Remove final measurements and barriers at the end of a circuit.\"\"\"","","from qiskit.transpiler.basepasses import TransformationPass","from qiskit.dagcircuit import DAGOpNode","","","class RemoveFinalMeasurements(TransformationPass):"," \"\"\"Remove final measurements and barriers at the end of a circuit.",""," This pass removes final barriers and final measurements, as well as all"," unused classical registers and bits they are connected to."," Measurements and barriers are considered final if they are"," followed by no other operations (aside from other measurements or barriers.)",""," Classical registers are removed iff they reference at least one bit"," that has become unused by the circuit as a result of the operation, and all"," of their other bits are also unused. Separately, classical bits are removed"," iff they have become unused by the circuit as a result of the operation,"," or they appear in a removed classical register, but do not appear"," in a classical register that will remain."," \"\"\"",""," def _calc_final_ops(self, dag):"," final_op_types = {\"measure\", \"barrier\"}"," final_ops = []",""," to_visit = [next(dag.predecessors(dag.output_map[qubit])) for qubit in dag.qubits]"," barrier_encounters_remaining = {}",""," while to_visit:"," node = to_visit.pop()"," if not isinstance(node, DAGOpNode):"," continue"," if node.op.name == \"barrier\":"," # Barrier is final if all children are final, so we track"," # how many times we still need to encounter each barrier"," # via a child node."," if node not in barrier_encounters_remaining:"," barrier_encounters_remaining[node] = sum("," 1 for _ in dag.quantum_successors(node)"," )"," if barrier_encounters_remaining[node] - 1 > 0:"," # We've encountered the barrier, but not (yet) via all children."," # Record the encounter, and bail!"," barrier_encounters_remaining[node] -= 1"," continue"," if node.name in final_op_types:"," # Current node is either a measure, or a barrier with all final op children."," final_ops.append(node)"," to_visit.extend(dag.quantum_predecessors(node))",""," return final_ops",""," def run(self, dag):"," \"\"\"Run the RemoveFinalMeasurements pass on `dag`.",""," Args:"," dag (DAGCircuit): the DAG to be optimized.",""," Returns:"," DAGCircuit: the optimized DAG."," \"\"\""," final_ops = self._calc_final_ops(dag)"," if not final_ops:"," return dag",""," # remove final measure and barrier operations from DAG, keeping track"," # of their clbits"," clbits_with_final_measures = set()"," for node in final_ops:"," for carg in node.cargs:"," clbits_with_final_measures.add(carg)"," dag.remove_op_node(node)",""," # ignore any non-idle clbits now that all final op nodes are removed"," idle_wires = set(dag.idle_wires())"," clbits_with_final_measures &= idle_wires",""," if not clbits_with_final_measures:"," # no idle wires to remove"," return dag",""," # determine bits of all registers where register is now idle"," # as a result of the removal."," idle_register_bits = set()"," busy_register_bits = set()"," for creg in dag.cregs.values():"," clbits = set(creg)"," if not clbits.isdisjoint(clbits_with_final_measures) and clbits.issubset(idle_wires):"," # register contains a newly idle bit, and all other bits are idle."," idle_register_bits |= clbits"," else:"," # register does not contain a newly idle bit, or contains other busy bits"," # and thus should not be removed."," busy_register_bits |= clbits",""," # note: `clbits_with_final_measure` is needed here to account for loose"," # bits not in any register."," bits_to_remove = (clbits_with_final_measures | idle_register_bits) - busy_register_bits",""," dag.remove_clbits(*bits_to_remove)"," return dag"],"stylingDirectives":[[{"start":0,"end":30,"cssClass":"pl-c"}],[{"start":0,"end":1,"cssClass":"pl-c"}],[{"start":0,"end":31,"cssClass":"pl-c"}],[{"start":0,"end":1,"cssClass":"pl-c"}],[{"start":0,"end":70,"cssClass":"pl-c"}],[{"start":0,"end":77,"cssClass":"pl-c"}],[{"start":0,"end":71,"cssClass":"pl-c"}],[{"start":0,"end":1,"cssClass":"pl-c"}],[{"start":0,"end":69,"cssClass":"pl-c"}],[{"start":0,"end":72,"cssClass":"pl-c"}],[{"start":0,"end":49,"cssClass":"pl-c"}],[],[{"start":0,"end":69,"cssClass":"pl-s"}],[],[{"start":0,"end":4,"cssClass":"pl-k"},{"start":5,"end":11,"cssClass":"pl-s1"},{"start":12,"end":22,"cssClass":"pl-s1"},{"start":23,"end":33,"cssClass":"pl-s1"},{"start":34,"end":40,"cssClass":"pl-k"},{"start":41,"end":59,"cssClass":"pl-v"}],[{"start":0,"end":4,"cssClass":"pl-k"},{"start":5,"end":11,"cssClass":"pl-s1"},{"start":12,"end":22,"cssClass":"pl-s1"},{"start":23,"end":29,"cssClass":"pl-k"},{"start":30,"end":39,"cssClass":"pl-v"}],[],[],[{"start":0,"end":5,"cssClass":"pl-k"},{"start":6,"end":29,"cssClass":"pl-v"},{"start":30,"end":48,"cssClass":"pl-v"}],[{"start":4,"end":70,"cssClass":"pl-s"}],[{"start":0,"end":0,"cssClass":"pl-s"}],[{"start":0,"end":75,"cssClass":"pl-s"}],[{"start":0,"end":62,"cssClass":"pl-s"}],[{"start":0,"end":62,"cssClass":"pl-s"}],[{"start":0,"end":80,"cssClass":"pl-s"}],[{"start":0,"end":0,"cssClass":"pl-s"}],[{"start":0,"end":71,"cssClass":"pl-s"}],[{"start":0,"end":79,"cssClass":"pl-s"}],[{"start":0,"end":79,"cssClass":"pl-s"}],[{"start":0,"end":76,"cssClass":"pl-s"}],[{"start":0,"end":69,"cssClass":"pl-s"}],[{"start":0,"end":45,"cssClass":"pl-s"}],[{"start":0,"end":7,"cssClass":"pl-s"}],[],[{"start":4,"end":7,"cssClass":"pl-k"},{"start":8,"end":23,"cssClass":"pl-en"},{"start":24,"end":28,"cssClass":"pl-s1"},{"start":30,"end":33,"cssClass":"pl-s1"}],[{"start":8,"end":22,"cssClass":"pl-s1"},{"start":23,"end":24,"cssClass":"pl-c1"},{"start":26,"end":35,"cssClass":"pl-s"},{"start":37,"end":46,"cssClass":"pl-s"}],[{"start":8,"end":17,"cssClass":"pl-s1"},{"start":18,"end":19,"cssClass":"pl-c1"}],[],[{"start":8,"end":16,"cssClass":"pl-s1"},{"start":17,"end":18,"cssClass":"pl-c1"},{"start":20,"end":24,"cssClass":"pl-en"},{"start":25,"end":28,"cssClass":"pl-s1"},{"start":29,"end":41,"cssClass":"pl-en"},{"start":42,"end":45,"cssClass":"pl-s1"},{"start":46,"end":56,"cssClass":"pl-s1"},{"start":57,"end":62,"cssClass":"pl-s1"},{"start":66,"end":69,"cssClass":"pl-k"},{"start":70,"end":75,"cssClass":"pl-s1"},{"start":76,"end":78,"cssClass":"pl-c1"},{"start":79,"end":82,"cssClass":"pl-s1"},{"start":83,"end":89,"cssClass":"pl-s1"}],[{"start":8,"end":36,"cssClass":"pl-s1"},{"start":37,"end":38,"cssClass":"pl-c1"}],[],[{"start":8,"end":13,"cssClass":"pl-k"},{"start":14,"end":22,"cssClass":"pl-s1"}],[{"start":12,"end":16,"cssClass":"pl-s1"},{"start":17,"end":18,"cssClass":"pl-c1"},{"start":19,"end":27,"cssClass":"pl-s1"},{"start":28,"end":31,"cssClass":"pl-en"}],[{"start":12,"end":14,"cssClass":"pl-k"},{"start":15,"end":18,"cssClass":"pl-c1"},{"start":19,"end":29,"cssClass":"pl-en"},{"start":30,"end":34,"cssClass":"pl-s1"},{"start":36,"end":45,"cssClass":"pl-v"}],[{"start":16,"end":24,"cssClass":"pl-k"}],[{"start":12,"end":14,"cssClass":"pl-k"},{"start":15,"end":19,"cssClass":"pl-s1"},{"start":20,"end":22,"cssClass":"pl-s1"},{"start":23,"end":27,"cssClass":"pl-s1"},{"start":28,"end":30,"cssClass":"pl-c1"},{"start":31,"end":40,"cssClass":"pl-s"}],[{"start":16,"end":73,"cssClass":"pl-c"}],[{"start":16,"end":72,"cssClass":"pl-c"}],[{"start":16,"end":35,"cssClass":"pl-c"}],[{"start":16,"end":18,"cssClass":"pl-k"},{"start":19,"end":23,"cssClass":"pl-s1"},{"start":24,"end":27,"cssClass":"pl-c1"},{"start":28,"end":30,"cssClass":"pl-c1"},{"start":31,"end":59,"cssClass":"pl-s1"}],[{"start":20,"end":48,"cssClass":"pl-s1"},{"start":49,"end":53,"cssClass":"pl-s1"},{"start":55,"end":56,"cssClass":"pl-c1"},{"start":57,"end":60,"cssClass":"pl-en"}],[{"start":24,"end":25,"cssClass":"pl-c1"},{"start":26,"end":29,"cssClass":"pl-k"},{"start":30,"end":31,"cssClass":"pl-s1"},{"start":32,"end":34,"cssClass":"pl-c1"},{"start":35,"end":38,"cssClass":"pl-s1"},{"start":39,"end":57,"cssClass":"pl-en"},{"start":58,"end":62,"cssClass":"pl-s1"}],[],[{"start":16,"end":18,"cssClass":"pl-k"},{"start":19,"end":47,"cssClass":"pl-s1"},{"start":48,"end":52,"cssClass":"pl-s1"},{"start":54,"end":55,"cssClass":"pl-c1"},{"start":56,"end":57,"cssClass":"pl-c1"},{"start":58,"end":59,"cssClass":"pl-c1"},{"start":60,"end":61,"cssClass":"pl-c1"}],[{"start":20,"end":84,"cssClass":"pl-c"}],[{"start":20,"end":53,"cssClass":"pl-c"}],[{"start":20,"end":48,"cssClass":"pl-s1"},{"start":49,"end":53,"cssClass":"pl-s1"},{"start":55,"end":57,"cssClass":"pl-c1"},{"start":58,"end":59,"cssClass":"pl-c1"}],[{"start":20,"end":28,"cssClass":"pl-k"}],[{"start":12,"end":14,"cssClass":"pl-k"},{"start":15,"end":19,"cssClass":"pl-s1"},{"start":20,"end":24,"cssClass":"pl-s1"},{"start":25,"end":27,"cssClass":"pl-c1"},{"start":28,"end":42,"cssClass":"pl-s1"}],[{"start":16,"end":92,"cssClass":"pl-c"}],[{"start":16,"end":25,"cssClass":"pl-s1"},{"start":26,"end":32,"cssClass":"pl-en"},{"start":33,"end":37,"cssClass":"pl-s1"}],[{"start":16,"end":24,"cssClass":"pl-s1"},{"start":25,"end":31,"cssClass":"pl-en"},{"start":32,"end":35,"cssClass":"pl-s1"},{"start":36,"end":56,"cssClass":"pl-en"},{"start":57,"end":61,"cssClass":"pl-s1"}],[],[{"start":8,"end":14,"cssClass":"pl-k"},{"start":15,"end":24,"cssClass":"pl-s1"}],[],[{"start":4,"end":7,"cssClass":"pl-k"},{"start":8,"end":11,"cssClass":"pl-en"},{"start":12,"end":16,"cssClass":"pl-s1"},{"start":18,"end":21,"cssClass":"pl-s1"}],[{"start":8,"end":57,"cssClass":"pl-s"}],[{"start":0,"end":0,"cssClass":"pl-s"}],[{"start":0,"end":13,"cssClass":"pl-s"}],[{"start":0,"end":54,"cssClass":"pl-s"}],[{"start":0,"end":0,"cssClass":"pl-s"}],[{"start":0,"end":16,"cssClass":"pl-s"}],[{"start":0,"end":42,"cssClass":"pl-s"}],[{"start":0,"end":11,"cssClass":"pl-s"}],[{"start":8,"end":17,"cssClass":"pl-s1"},{"start":18,"end":19,"cssClass":"pl-c1"},{"start":20,"end":24,"cssClass":"pl-s1"},{"start":25,"end":40,"cssClass":"pl-en"},{"start":41,"end":44,"cssClass":"pl-s1"}],[{"start":8,"end":10,"cssClass":"pl-k"},{"start":11,"end":14,"cssClass":"pl-c1"},{"start":15,"end":24,"cssClass":"pl-s1"}],[{"start":12,"end":18,"cssClass":"pl-k"},{"start":19,"end":22,"cssClass":"pl-s1"}],[],[{"start":8,"end":77,"cssClass":"pl-c"}],[{"start":8,"end":25,"cssClass":"pl-c"}],[{"start":8,"end":34,"cssClass":"pl-s1"},{"start":35,"end":36,"cssClass":"pl-c1"},{"start":37,"end":40,"cssClass":"pl-en"}],[{"start":8,"end":11,"cssClass":"pl-k"},{"start":12,"end":16,"cssClass":"pl-s1"},{"start":17,"end":19,"cssClass":"pl-c1"},{"start":20,"end":29,"cssClass":"pl-s1"}],[{"start":12,"end":15,"cssClass":"pl-k"},{"start":16,"end":20,"cssClass":"pl-s1"},{"start":21,"end":23,"cssClass":"pl-c1"},{"start":24,"end":28,"cssClass":"pl-s1"},{"start":29,"end":34,"cssClass":"pl-s1"}],[{"start":16,"end":42,"cssClass":"pl-s1"},{"start":43,"end":46,"cssClass":"pl-en"},{"start":47,"end":51,"cssClass":"pl-s1"}],[{"start":12,"end":15,"cssClass":"pl-s1"},{"start":16,"end":30,"cssClass":"pl-en"},{"start":31,"end":35,"cssClass":"pl-s1"}],[],[{"start":8,"end":76,"cssClass":"pl-c"}],[{"start":8,"end":18,"cssClass":"pl-s1"},{"start":19,"end":20,"cssClass":"pl-c1"},{"start":21,"end":24,"cssClass":"pl-en"},{"start":25,"end":28,"cssClass":"pl-s1"},{"start":29,"end":39,"cssClass":"pl-en"}],[{"start":8,"end":34,"cssClass":"pl-s1"},{"start":38,"end":48,"cssClass":"pl-s1"}],[],[{"start":8,"end":10,"cssClass":"pl-k"},{"start":11,"end":14,"cssClass":"pl-c1"},{"start":15,"end":41,"cssClass":"pl-s1"}],[{"start":12,"end":37,"cssClass":"pl-c"}],[{"start":12,"end":18,"cssClass":"pl-k"},{"start":19,"end":22,"cssClass":"pl-s1"}],[],[{"start":8,"end":68,"cssClass":"pl-c"}],[{"start":8,"end":37,"cssClass":"pl-c"}],[{"start":8,"end":26,"cssClass":"pl-s1"},{"start":27,"end":28,"cssClass":"pl-c1"},{"start":29,"end":32,"cssClass":"pl-en"}],[{"start":8,"end":26,"cssClass":"pl-s1"},{"start":27,"end":28,"cssClass":"pl-c1"},{"start":29,"end":32,"cssClass":"pl-en"}],[{"start":8,"end":11,"cssClass":"pl-k"},{"start":12,"end":16,"cssClass":"pl-s1"},{"start":17,"end":19,"cssClass":"pl-c1"},{"start":20,"end":23,"cssClass":"pl-s1"},{"start":24,"end":29,"cssClass":"pl-s1"},{"start":30,"end":36,"cssClass":"pl-en"}],[{"start":12,"end":18,"cssClass":"pl-s1"},{"start":19,"end":20,"cssClass":"pl-c1"},{"start":21,"end":24,"cssClass":"pl-en"},{"start":25,"end":29,"cssClass":"pl-s1"}],[{"start":12,"end":14,"cssClass":"pl-k"},{"start":15,"end":18,"cssClass":"pl-c1"},{"start":19,"end":25,"cssClass":"pl-s1"},{"start":26,"end":36,"cssClass":"pl-en"},{"start":37,"end":63,"cssClass":"pl-s1"},{"start":65,"end":68,"cssClass":"pl-c1"},{"start":69,"end":75,"cssClass":"pl-s1"},{"start":76,"end":84,"cssClass":"pl-en"},{"start":85,"end":95,"cssClass":"pl-s1"}],[{"start":16,"end":82,"cssClass":"pl-c"}],[{"start":16,"end":34,"cssClass":"pl-s1"},{"start":38,"end":44,"cssClass":"pl-s1"}],[{"start":12,"end":16,"cssClass":"pl-k"}],[{"start":16,"end":89,"cssClass":"pl-c"}],[{"start":16,"end":49,"cssClass":"pl-c"}],[{"start":16,"end":34,"cssClass":"pl-s1"},{"start":38,"end":44,"cssClass":"pl-s1"}],[],[{"start":8,"end":79,"cssClass":"pl-c"}],[{"start":8,"end":35,"cssClass":"pl-c"}],[{"start":8,"end":22,"cssClass":"pl-s1"},{"start":23,"end":24,"cssClass":"pl-c1"},{"start":26,"end":52,"cssClass":"pl-s1"},{"start":53,"end":54,"cssClass":"pl-c1"},{"start":55,"end":73,"cssClass":"pl-s1"},{"start":75,"end":76,"cssClass":"pl-c1"},{"start":77,"end":95,"cssClass":"pl-s1"}],[],[{"start":8,"end":11,"cssClass":"pl-s1"},{"start":12,"end":25,"cssClass":"pl-en"},{"start":26,"end":27,"cssClass":"pl-c1"},{"start":27,"end":41,"cssClass":"pl-s1"}],[{"start":8,"end":14,"cssClass":"pl-k"},{"start":15,"end":18,"cssClass":"pl-s1"}]],"colorizedLines":null,"csv":null,"csvError":null,"dependabotInfo":{"showConfigurationBanner":false,"configFilePath":null,"networkDependabotPath":"/Qiskit/qiskit/network/updates","dismissConfigurationNoticePath":"/settings/dismiss-notice/dependabot_configuration_notice","configurationNoticeDismissed":null},"displayName":"remove_final_measurements.py","displayUrl":"https://github.com/Qiskit/qiskit/blob/main/qiskit/transpiler/passes/utils/remove_final_measurements.py?raw=true","headerInfo":{"blobSize":"4.61 KB","deleteTooltip":"You must be signed in to make or propose changes","editTooltip":"You must be signed in to make or propose changes","ghDesktopPath":"https://desktop.github.com","isGitLfs":false,"onBranch":true,"shortPath":"c3179e2","siteNavLoginPath":"/login?return_to=https%3A%2F%2Fgithub.com%2FQiskit%2Fqiskit%2Fblob%2Fmain%2Fqiskit%2Ftranspiler%2Fpasses%2Futils%2Fremove_final_measurements.py","isCSV":false,"isRichtext":false,"toc":null,"lineInfo":{"truncatedLoc":"114","truncatedSloc":"95"},"mode":"file"},"image":false,"isCodeownersFile":null,"isPlain":false,"isValidLegacyIssueTemplate":false,"issueTemplate":null,"discussionTemplate":null,"language":"Python","languageID":303,"large":false,"planSupportInfo":{"repoIsFork":null,"repoOwnedByCurrentUser":null,"requestFullPath":"/Qiskit/qiskit/blob/main/qiskit/transpiler/passes/utils/remove_final_measurements.py","showFreeOrgGatedFeatureMessage":null,"showPlanSupportBanner":null,"upgradeDataAttributes":null,"upgradePath":null},"publishBannersInfo":{"dismissActionNoticePath":"/settings/dismiss-notice/publish_action_from_dockerfile","releasePath":"/Qiskit/qiskit/releases/new?marketplace=true","showPublishActionBanner":false},"rawBlobUrl":"https://github.com/Qiskit/qiskit/raw/main/qiskit/transpiler/passes/utils/remove_final_measurements.py","renderImageOrRaw":false,"richText":null,"renderedFileInfo":null,"shortPath":null,"symbolsEnabled":true,"tabSize":4,"topBannersInfo":{"overridingGlobalFundingFile":false,"globalPreferredFundingPath":null,"showInvalidCitationWarning":false,"citationHelpUrl":"https://docs.github.com/github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github/about-citation-files","actionsOnboardingTip":null},"truncated":false,"viewable":true,"workflowRedirectUrl":null,"symbols":{"timed_out":false,"not_analyzed":false,"symbols":[{"name":"RemoveFinalMeasurements","kind":"class","ident_start":663,"ident_end":686,"extent_start":657,"extent_end":4716,"fully_qualified_name":"RemoveFinalMeasurements","ident_utf16":{"start":{"line_number":18,"utf16_col":6},"end":{"line_number":18,"utf16_col":29}},"extent_utf16":{"start":{"line_number":18,"utf16_col":0},"end":{"line_number":113,"utf16_col":18}}},{"name":"_calc_final_ops","kind":"function","ident_start":1506,"ident_end":1521,"extent_start":1502,"extent_end":2861,"fully_qualified_name":"RemoveFinalMeasurements._calc_final_ops","ident_utf16":{"start":{"line_number":34,"utf16_col":8},"end":{"line_number":34,"utf16_col":23}},"extent_utf16":{"start":{"line_number":34,"utf16_col":4},"end":{"line_number":63,"utf16_col":24}}},{"name":"run","kind":"function","ident_start":2871,"ident_end":2874,"extent_start":2867,"extent_end":4716,"fully_qualified_name":"RemoveFinalMeasurements.run","ident_utf16":{"start":{"line_number":65,"utf16_col":8},"end":{"line_number":65,"utf16_col":11}},"extent_utf16":{"start":{"line_number":65,"utf16_col":4},"end":{"line_number":113,"utf16_col":18}}}]}},"copilotInfo":null,"copilotAccessAllowed":false,"csrf_tokens":{"/Qiskit/qiskit/branches":{"post":"KpcknRG64SNfVZsA07ucieBtwQUVaNG86xlCArZUW2l6L72EGdZvwZ7vgCGnCbwpBEyxs6YAz1RFToAQdIAP4g"},"/repos/preferences":{"post":"AwEJAj7HvQbxtoR6Rtkt-dE01ydfcTkbOGCfxzECbe2stdxMEb3NDmZS1DOVHocobXlLoNT_pFuw3kV35kjnzw"}}},"title":"qiskit/qiskit/transpiler/passes/utils/remove_final_measurements.py at main ยท Qiskit/qiskit"}