---
title: dagcircuit (v2.1)
description: API reference for qiskit.dagcircuit in qiskit v2.1
source: https://eu-de.quantum.cloud.ibm.com/docs/en/api/qiskit/2.1/dagcircuit
---

# DAG Circuits

`qiskit.dagcircuit`

## Circuits as Directed Acyclic Graphs

|                                                                                                                                        |                                                                                                          |
| -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
| [`DAGCircuit`](/docs/api/qiskit/2.1/qiskit.dagcircuit.DAGCircuit "qiskit.dagcircuit.DAGCircuit")                                       | Quantum circuit as a directed acyclic graph.                                                             |
| [`DAGNode`](/docs/api/qiskit/2.1/qiskit.dagcircuit.DAGNode "qiskit.dagcircuit.DAGNode")                                                | Parent class for DAGOpNode, DAGInNode, and DAGOutNode.                                                   |
| [`DAGOpNode`](/docs/api/qiskit/2.1/qiskit.dagcircuit.DAGOpNode "qiskit.dagcircuit.DAGOpNode")                                          | Object to represent an Instruction at a node in the DAGCircuit.                                          |
| [`DAGInNode`](/docs/api/qiskit/2.1/qiskit.dagcircuit.DAGInNode "qiskit.dagcircuit.DAGInNode")                                          | Object to represent an incoming wire node in the DAGCircuit.                                             |
| [`DAGOutNode`](/docs/api/qiskit/2.1/qiskit.dagcircuit.DAGOutNode "qiskit.dagcircuit.DAGOutNode")                                       | Object to represent an outgoing wire node in the DAGCircuit.                                             |
| [`DAGDepNode`](/docs/api/qiskit/2.1/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/2.1/qiskit.dagcircuit.DAGDependency "qiskit.dagcircuit.DAGDependency")()                            | Object to represent a quantum circuit as a Directed Acyclic Graph (DAG) via operation dependencies (i.e. |

## Exceptions

### DAGCircuitError

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

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

Bases: [`QiskitError`](/docs/api/qiskit/2.1/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.1/qiskit/dagcircuit/exceptions.py#L32-L42)

Bases: [`QiskitError`](/docs/api/qiskit/2.1/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/2.1/qiskit.dagcircuit.BlockCollapser "qiskit.dagcircuit.BlockCollapser")(dag) | This class implements various strategies of consolidating blocks of nodes in a DAG (direct acyclic graph).                            |
| [`BlockCollector`](/docs/api/qiskit/2.1/qiskit.dagcircuit.BlockCollector "qiskit.dagcircuit.BlockCollector")(dag) | This class implements various strategies of dividing a DAG (direct acyclic graph) into blocks of nodes that satisfy certain criteria. |
| [`BlockSplitter`](/docs/api/qiskit/2.1/qiskit.dagcircuit.BlockSplitter "qiskit.dagcircuit.BlockSplitter")()       | Splits a block of nodes into sub-blocks over disjoint qubits.                                                                         |
