---
title: dagcircuit (latest version)
description: API reference for qiskit.dagcircuit in the latest version of qiskit
source: https://eu-de.quantum.cloud.ibm.com/docs/en/api/qiskit/dagcircuit
---

# DAG Circuits

`qiskit.dagcircuit`

## Circuits as Directed Acyclic Graphs

|                                                                                                                                    |                                                                                                                                |
| ---------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
| [`DAGCircuit`](/docs/api/qiskit/qiskit.dagcircuit.DAGCircuit "qiskit.dagcircuit.DAGCircuit")()                                     | Quantum circuit as a directed acyclic graph.                                                                                   |
| [`DAGNode`](/docs/api/qiskit/qiskit.dagcircuit.DAGNode "qiskit.dagcircuit.DAGNode")(\[nid])                                        | Parent class for DAGOpNode, DAGInNode, and DAGOutNode.                                                                         |
| [`DAGOpNode`](/docs/api/qiskit/qiskit.dagcircuit.DAGOpNode "qiskit.dagcircuit.DAGOpNode")(op\[, qargs, cargs])                     | Object to represent an Instruction at a node in the DAGCircuit.                                                                |
| [`DAGInNode`](/docs/api/qiskit/qiskit.dagcircuit.DAGInNode "qiskit.dagcircuit.DAGInNode")(wire)                                    | Object to represent an incoming wire node in the DAGCircuit.                                                                   |
| [`DAGOutNode`](/docs/api/qiskit/qiskit.dagcircuit.DAGOutNode "qiskit.dagcircuit.DAGOutNode")(wire)                                 | Object to represent an outgoing wire node in the DAGCircuit.                                                                   |
| [`DAGDepNode`](/docs/api/qiskit/qiskit.dagcircuit.DAGDepNode "qiskit.dagcircuit.DAGDepNode")(\[type, op, name, qargs, cargs, ...]) | Object to represent the information at a node in the DAGDependency().                                                          |
| [`DAGDependency`](/docs/api/qiskit/qiskit.dagcircuit.DAGDependency "qiskit.dagcircuit.DAGDependency")()                            | Object to represent a quantum circuit as a Directed Acyclic Graph (DAG) via operation dependencies (i.e. lack of commutation). |

## Exceptions

### DAGCircuitError

*exception* `qiskit.dagcircuit.DAGCircuitError(*msg)`

[GitHub](https://github.com/Qiskit/qiskit/tree/stable/2.5/qiskit/dagcircuit/exceptions.py#L19-L29)

Bases: [`QiskitError`](/docs/api/qiskit/exceptions#qiskit.exceptions.QiskitError "qiskit.exceptions.QiskitError")

Base class for errors raised by the DAGCircuit object.

Set the error message.

### DAGDependencyError

*exception* `qiskit.dagcircuit.DAGDependencyError(*msg)`

[GitHub](https://github.com/Qiskit/qiskit/tree/stable/2.5/qiskit/dagcircuit/exceptions.py#L32-L42)

Bases: [`QiskitError`](/docs/api/qiskit/exceptions#qiskit.exceptions.QiskitError "qiskit.exceptions.QiskitError")

Base class for errors raised by the DAGDependency object.

Set the error message.

## Utilities

|                                                                                                               |                                                                                                                                         |
| ------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| [`BlockCollapser`](/docs/api/qiskit/qiskit.dagcircuit.BlockCollapser "qiskit.dagcircuit.BlockCollapser")(dag) | This class implements various strategies of consolidating blocks of nodes in a DAG (directed acyclic graph).                            |
| [`BlockCollector`](/docs/api/qiskit/qiskit.dagcircuit.BlockCollector "qiskit.dagcircuit.BlockCollector")(dag) | This class implements various strategies of dividing a DAG (directed acyclic graph) into blocks of nodes that satisfy certain criteria. |
| [`BlockSplitter`](/docs/api/qiskit/qiskit.dagcircuit.BlockSplitter "qiskit.dagcircuit.BlockSplitter")()       | Splits a block of nodes into sub-blocks over disjoint qubits.                                                                           |
