diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 6a113c6b..2f131037 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -9,7 +9,7 @@ repos:
- id: end-of-file-fixer
- id: trailing-whitespace
- repo: https://github.com/pycqa/isort
- rev: 5.13.2
+ rev: 6.0.1
hooks:
- id: isort
name: isort (python)
diff --git a/docs/digital/examples/ghz.py b/docs/digital/examples/ghz.py
index 72e739d4..5279fd2a 100644
--- a/docs/digital/examples/ghz.py
+++ b/docs/digital/examples/ghz.py
@@ -11,9 +11,10 @@
# %%
import math
-from bloqade import qasm2
from kirin.dialects import ilist
+from bloqade import qasm2
+
# %% [markdown]
# ## Simple Linear Depth Implementation of a GHZ State Preparation Circuit
#
diff --git a/docs/digital/examples/ghz_linear_circuit.svg b/docs/digital/examples/ghz_linear_circuit.svg
index 23534a6b..51e5a0d4 100644
--- a/docs/digital/examples/ghz_linear_circuit.svg
+++ b/docs/digital/examples/ghz_linear_circuit.svg
@@ -83,4 +83,4 @@
-
\ No newline at end of file
+
diff --git a/docs/digital/examples/ghz_log_circuit.svg b/docs/digital/examples/ghz_log_circuit.svg
index 0a02c60c..c08fa14a 100644
--- a/docs/digital/examples/ghz_log_circuit.svg
+++ b/docs/digital/examples/ghz_log_circuit.svg
@@ -88,4 +88,4 @@
-
\ No newline at end of file
+
diff --git a/docs/digital/examples/pauli_exponentiation.svg b/docs/digital/examples/pauli_exponentiation.svg
index bd6cbcdc..833d71ba 100644
--- a/docs/digital/examples/pauli_exponentiation.svg
+++ b/docs/digital/examples/pauli_exponentiation.svg
@@ -144,4 +144,4 @@
-
\ No newline at end of file
+
diff --git a/docs/digital/examples/qaoa.py b/docs/digital/examples/qaoa.py
index 574d74f3..9391b672 100644
--- a/docs/digital/examples/qaoa.py
+++ b/docs/digital/examples/qaoa.py
@@ -9,9 +9,10 @@
import kirin
import networkx as nx
-from bloqade import qasm2
from kirin.dialects import py, ilist
+from bloqade import qasm2
+
pi = math.pi
# %% [markdown]
diff --git a/docs/digital/examples/qft.svg b/docs/digital/examples/qft.svg
index 7e8f26b9..50bd563b 100644
--- a/docs/digital/examples/qft.svg
+++ b/docs/digital/examples/qft.svg
@@ -87,4 +87,4 @@
-
\ No newline at end of file
+
diff --git a/src/bloqade/analysis/address/analysis.py b/src/bloqade/analysis/address/analysis.py
index ea08b3f5..9ce84f83 100644
--- a/src/bloqade/analysis/address/analysis.py
+++ b/src/bloqade/analysis/address/analysis.py
@@ -2,10 +2,11 @@
from dataclasses import field
from kirin import ir, interp
-from bloqade.types import QubitType
from kirin.analysis import Forward, const
from kirin.analysis.forward import ForwardFrame
+from bloqade.types import QubitType
+
from .lattice import Address
diff --git a/src/bloqade/analysis/schedule.py b/src/bloqade/analysis/schedule.py
index d6e7c7b1..e6ea71b8 100644
--- a/src/bloqade/analysis/schedule.py
+++ b/src/bloqade/analysis/schedule.py
@@ -13,6 +13,7 @@
)
from kirin.analysis import Forward, ForwardFrame
from kirin.dialects import func
+
from bloqade.analysis import address
from bloqade.qasm2.parse.print import Printer
diff --git a/src/bloqade/noise/native/_wrappers.py b/src/bloqade/noise/native/_wrappers.py
index f6f4aea9..9f43306e 100644
--- a/src/bloqade/noise/native/_wrappers.py
+++ b/src/bloqade/noise/native/_wrappers.py
@@ -1,8 +1,9 @@
from typing import Any
-from bloqade.noise import native
from kirin.dialects import ilist
from kirin.lowering import wraps
+
+from bloqade.noise import native
from bloqade.qasm2.types import Qubit
diff --git a/src/bloqade/noise/native/stmts.py b/src/bloqade/noise/native/stmts.py
index ca4e2f40..1e78e01a 100644
--- a/src/bloqade/noise/native/stmts.py
+++ b/src/bloqade/noise/native/stmts.py
@@ -1,6 +1,7 @@
from kirin import ir, types
from kirin.decl import info, statement
from kirin.dialects import ilist
+
from bloqade.qasm2.types import QubitType
from ._dialect import dialect
diff --git a/src/bloqade/qasm2/dialects/core/address.py b/src/bloqade/qasm2/dialects/core/address.py
index bbe7703c..f7505b52 100644
--- a/src/bloqade/qasm2/dialects/core/address.py
+++ b/src/bloqade/qasm2/dialects/core/address.py
@@ -1,4 +1,5 @@
from kirin import interp
+
from bloqade.analysis.address import (
Address,
NotQubit,
diff --git a/src/bloqade/qasm2/dialects/core/emit.py b/src/bloqade/qasm2/dialects/core/emit.py
index a92bfcf8..783a44fb 100644
--- a/src/bloqade/qasm2/dialects/core/emit.py
+++ b/src/bloqade/qasm2/dialects/core/emit.py
@@ -1,4 +1,5 @@
from kirin import interp
+
from bloqade.qasm2.parse import ast
from bloqade.qasm2.emit.main import EmitQASM2Main, EmitQASM2Frame
diff --git a/src/bloqade/qasm2/dialects/core/stmts.py b/src/bloqade/qasm2/dialects/core/stmts.py
index f48096da..661f97cf 100644
--- a/src/bloqade/qasm2/dialects/core/stmts.py
+++ b/src/bloqade/qasm2/dialects/core/stmts.py
@@ -1,5 +1,6 @@
from kirin import ir, types
from kirin.decl import info, statement
+
from bloqade.qasm2.types import BitType, CRegType, QRegType, QubitType
from ._dialect import dialect
diff --git a/src/bloqade/qasm2/dialects/core/typeinfer.py b/src/bloqade/qasm2/dialects/core/typeinfer.py
index 1c03890f..ce1315e7 100644
--- a/src/bloqade/qasm2/dialects/core/typeinfer.py
+++ b/src/bloqade/qasm2/dialects/core/typeinfer.py
@@ -1,6 +1,7 @@
from kirin import types, interp
from kirin.analysis import TypeInference
from kirin.dialects import py
+
from bloqade.qasm2.types import CRegType, QRegType, QubitType
from ._dialect import dialect
diff --git a/src/bloqade/qasm2/dialects/expr/emit.py b/src/bloqade/qasm2/dialects/expr/emit.py
index 28e7354b..2d3c84ea 100644
--- a/src/bloqade/qasm2/dialects/expr/emit.py
+++ b/src/bloqade/qasm2/dialects/expr/emit.py
@@ -1,9 +1,10 @@
from typing import Literal
from kirin import interp
+from kirin.emit.exceptions import EmitError
+
from bloqade.qasm2.parse import ast
from bloqade.qasm2.types import QubitType
-from kirin.emit.exceptions import EmitError
from bloqade.qasm2.emit.gate import EmitQASM2Gate, EmitQASM2Frame
from . import stmts
diff --git a/src/bloqade/qasm2/dialects/glob.py b/src/bloqade/qasm2/dialects/glob.py
index f88232b5..f7d6c758 100644
--- a/src/bloqade/qasm2/dialects/glob.py
+++ b/src/bloqade/qasm2/dialects/glob.py
@@ -1,6 +1,7 @@
from kirin import ir, types, interp
from kirin.decl import info, statement
from kirin.dialects import ilist
+
from bloqade.qasm2.parse import ast
from bloqade.qasm2.types import QRegType
from bloqade.qasm2.emit.gate import EmitQASM2Gate, EmitQASM2Frame
diff --git a/src/bloqade/qasm2/dialects/indexing.py b/src/bloqade/qasm2/dialects/indexing.py
index cc6aa661..9bc913f1 100644
--- a/src/bloqade/qasm2/dialects/indexing.py
+++ b/src/bloqade/qasm2/dialects/indexing.py
@@ -10,6 +10,7 @@
from kirin import ir, types
from kirin.lowering import Result, FromPythonAST, LoweringState
from kirin.exceptions import DialectLoweringError
+
from bloqade.qasm2.types import BitType, CRegType, QRegType, QubitType
from bloqade.qasm2.dialects import core
diff --git a/src/bloqade/qasm2/dialects/noise.py b/src/bloqade/qasm2/dialects/noise.py
index 986bf687..962b2e03 100644
--- a/src/bloqade/qasm2/dialects/noise.py
+++ b/src/bloqade/qasm2/dialects/noise.py
@@ -1,5 +1,6 @@
from kirin import ir, types
from kirin.decl import info, statement
+
from bloqade.qasm2.types import QubitType
dialect = ir.Dialect("qasm2.noise")
diff --git a/src/bloqade/qasm2/dialects/parallel.py b/src/bloqade/qasm2/dialects/parallel.py
index 0fc6a2a3..4f64aa84 100644
--- a/src/bloqade/qasm2/dialects/parallel.py
+++ b/src/bloqade/qasm2/dialects/parallel.py
@@ -4,6 +4,7 @@
from kirin.decl import info, statement
from kirin.analysis import ForwardFrame
from kirin.dialects import ilist
+
from bloqade.qasm2.parse import ast
from bloqade.qasm2.types import QubitType
from bloqade.qasm2.emit.gate import EmitQASM2Gate, EmitQASM2Frame
diff --git a/src/bloqade/qasm2/dialects/uop/emit.py b/src/bloqade/qasm2/dialects/uop/emit.py
index d8bf6e3d..e3ded03f 100644
--- a/src/bloqade/qasm2/dialects/uop/emit.py
+++ b/src/bloqade/qasm2/dialects/uop/emit.py
@@ -1,4 +1,5 @@
from kirin import interp
+
from bloqade.qasm2.parse import ast
from bloqade.qasm2.emit.gate import EmitQASM2Gate, EmitQASM2Frame
diff --git a/src/bloqade/qasm2/dialects/uop/schedule.py b/src/bloqade/qasm2/dialects/uop/schedule.py
index 14b77e94..15955ec4 100644
--- a/src/bloqade/qasm2/dialects/uop/schedule.py
+++ b/src/bloqade/qasm2/dialects/uop/schedule.py
@@ -1,5 +1,6 @@
from kirin import interp
from kirin.analysis import ForwardFrame
+
from bloqade.analysis.schedule import DagScheduleAnalysis
from . import stmts
diff --git a/src/bloqade/qasm2/dialects/uop/stmts.py b/src/bloqade/qasm2/dialects/uop/stmts.py
index e76076a1..f0740be3 100644
--- a/src/bloqade/qasm2/dialects/uop/stmts.py
+++ b/src/bloqade/qasm2/dialects/uop/stmts.py
@@ -1,5 +1,6 @@
from kirin import ir
from kirin.decl import info, statement
+
from bloqade.qasm2.types import QubitType
from bloqade.qasm2.dialects.expr.stmts import PyNum
diff --git a/src/bloqade/qasm2/emit/base.py b/src/bloqade/qasm2/emit/base.py
index 178edbb1..af49503c 100644
--- a/src/bloqade/qasm2/emit/base.py
+++ b/src/bloqade/qasm2/emit/base.py
@@ -5,6 +5,7 @@
from kirin import ir, idtable
from kirin.emit import EmitABC, EmitError, EmitFrame
from typing_extensions import Self
+
from bloqade.qasm2.parse import ast
StmtType = TypeVar("StmtType", bound=ast.Node)
diff --git a/src/bloqade/qasm2/emit/gate.py b/src/bloqade/qasm2/emit/gate.py
index a71c03c1..2f978e07 100644
--- a/src/bloqade/qasm2/emit/gate.py
+++ b/src/bloqade/qasm2/emit/gate.py
@@ -1,9 +1,10 @@
from dataclasses import field, dataclass
from kirin import ir, types, interp
-from bloqade.types import QubitType
from kirin.dialects import py, func, ilist
from kirin.ir.dialect import Dialect as Dialect
+
+from bloqade.types import QubitType
from bloqade.qasm2.parse import ast
from .base import EmitError, EmitQASM2Base, EmitQASM2Frame
diff --git a/src/bloqade/qasm2/emit/main.py b/src/bloqade/qasm2/emit/main.py
index ba615d2e..07f0180a 100644
--- a/src/bloqade/qasm2/emit/main.py
+++ b/src/bloqade/qasm2/emit/main.py
@@ -3,6 +3,7 @@
from kirin import ir, interp
from kirin.dialects import cf, scf, func
from kirin.ir.dialect import Dialect as Dialect
+
from bloqade.qasm2.parse import ast
from .base import EmitQASM2Base, EmitQASM2Frame
diff --git a/src/bloqade/qasm2/emit/target.py b/src/bloqade/qasm2/emit/target.py
index 657b81d4..b36e9008 100644
--- a/src/bloqade/qasm2/emit/target.py
+++ b/src/bloqade/qasm2/emit/target.py
@@ -4,6 +4,7 @@
from rich.console import Console
from kirin.analysis import CallGraph
from kirin.dialects import ilist
+
from bloqade.qasm2.parse import ast, pprint
from bloqade.qasm2.passes.fold import QASM2Fold
from bloqade.qasm2.passes.glob import GlobalToParallel
diff --git a/src/bloqade/qasm2/groups.py b/src/bloqade/qasm2/groups.py
index 78a32da9..84361eff 100644
--- a/src/bloqade/qasm2/groups.py
+++ b/src/bloqade/qasm2/groups.py
@@ -1,6 +1,7 @@
from kirin import ir, passes
from kirin.prelude import structural_no_opt
from kirin.dialects import scf, func, ilist, lowering
+
from bloqade.qasm2.dialects import (
uop,
core,
diff --git a/src/bloqade/qasm2/parse/lowering.py b/src/bloqade/qasm2/parse/lowering.py
index 0f523c56..4d18a64c 100644
--- a/src/bloqade/qasm2/parse/lowering.py
+++ b/src/bloqade/qasm2/parse/lowering.py
@@ -4,6 +4,7 @@
from kirin.dialects import cf, func, ilist
from kirin.lowering import LoweringState
from kirin.exceptions import DialectLoweringError
+
from bloqade.qasm2.types import CRegType, QRegType
from bloqade.qasm2.dialects import uop, core, expr, glob, noise, parallel
diff --git a/src/bloqade/qasm2/passes/fold.py b/src/bloqade/qasm2/passes/fold.py
index c35d1f6b..afb1b880 100644
--- a/src/bloqade/qasm2/passes/fold.py
+++ b/src/bloqade/qasm2/passes/fold.py
@@ -20,6 +20,7 @@
from kirin.dialects import scf, ilist
from kirin.ir.method import Method
from kirin.rewrite.abc import RewriteResult
+
from bloqade.qasm2.dialects import expr
diff --git a/src/bloqade/qasm2/passes/glob.py b/src/bloqade/qasm2/passes/glob.py
index 6b27738e..e07d1dac 100644
--- a/src/bloqade/qasm2/passes/glob.py
+++ b/src/bloqade/qasm2/passes/glob.py
@@ -5,12 +5,13 @@
from kirin import ir
from kirin.rewrite import cse, dce, walk, result
-from bloqade.analysis import address
from kirin.passes.abc import Pass
from kirin.passes.fold import Fold
-from bloqade.qasm2.rewrite import GlobalToUOpRule, GlobalToParallelRule
from kirin.rewrite.fixpoint import Fixpoint
+from bloqade.analysis import address
+from bloqade.qasm2.rewrite import GlobalToUOpRule, GlobalToParallelRule
+
class GlobalToUOP(Pass):
"""Pass to convert Global gates into single gates.
diff --git a/src/bloqade/qasm2/passes/noise.py b/src/bloqade/qasm2/passes/noise.py
index 66f63eee..be055683 100644
--- a/src/bloqade/qasm2/passes/noise.py
+++ b/src/bloqade/qasm2/passes/noise.py
@@ -2,7 +2,6 @@
from kirin import ir
from kirin.passes import Pass
-from bloqade.noise import native
from kirin.rewrite import (
Walk,
Chain,
@@ -11,8 +10,10 @@
DeadCodeElimination,
CommonSubexpressionElimination,
)
-from bloqade.analysis import address
from kirin.rewrite.result import RewriteResult
+
+from bloqade.noise import native
+from bloqade.analysis import address
from bloqade.qasm2.rewrite.heuristic_noise import NoiseRewriteRule
diff --git a/src/bloqade/qasm2/passes/parallel.py b/src/bloqade/qasm2/passes/parallel.py
index 99b18f2e..0fcd415b 100644
--- a/src/bloqade/qasm2/passes/parallel.py
+++ b/src/bloqade/qasm2/passes/parallel.py
@@ -19,6 +19,7 @@
result,
)
from kirin.analysis import const
+
from bloqade.analysis import address, schedule
from bloqade.qasm2.rewrite import (
MergePolicyABC,
diff --git a/src/bloqade/qasm2/passes/py2qasm.py b/src/bloqade/qasm2/passes/py2qasm.py
index 30d2c519..b87c52e0 100644
--- a/src/bloqade/qasm2/passes/py2qasm.py
+++ b/src/bloqade/qasm2/passes/py2qasm.py
@@ -6,6 +6,7 @@
from kirin.dialects import py, math
from kirin.rewrite.abc import RewriteRule
from kirin.rewrite.result import RewriteResult
+
from bloqade.qasm2.dialects import core, expr
diff --git a/src/bloqade/qasm2/passes/qasm2py.py b/src/bloqade/qasm2/passes/qasm2py.py
index 6b820447..9b0fa794 100644
--- a/src/bloqade/qasm2/passes/qasm2py.py
+++ b/src/bloqade/qasm2/passes/qasm2py.py
@@ -8,6 +8,7 @@
from kirin.dialects import py, math
from kirin.rewrite.abc import RewriteRule
from kirin.rewrite.result import RewriteResult
+
from bloqade.qasm2.dialects import core, expr
diff --git a/src/bloqade/qasm2/rewrite/desugar.py b/src/bloqade/qasm2/rewrite/desugar.py
index 098ccd49..3129cab5 100644
--- a/src/bloqade/qasm2/rewrite/desugar.py
+++ b/src/bloqade/qasm2/rewrite/desugar.py
@@ -4,6 +4,7 @@
from kirin.passes import Pass
from kirin.rewrite import abc, walk, result
from kirin.dialects import py
+
from bloqade.qasm2.dialects import core
diff --git a/src/bloqade/qasm2/rewrite/glob.py b/src/bloqade/qasm2/rewrite/glob.py
index 8a0124da..92f8a2d9 100644
--- a/src/bloqade/qasm2/rewrite/glob.py
+++ b/src/bloqade/qasm2/rewrite/glob.py
@@ -2,9 +2,10 @@
from dataclasses import dataclass
from kirin import ir
-from bloqade import qasm2
from kirin.rewrite import abc, result
from kirin.dialects import py, ilist
+
+from bloqade import qasm2
from bloqade.analysis import address
from bloqade.qasm2.dialects import glob
diff --git a/src/bloqade/qasm2/rewrite/heuristic_noise.py b/src/bloqade/qasm2/rewrite/heuristic_noise.py
index af088aea..6180ccef 100644
--- a/src/bloqade/qasm2/rewrite/heuristic_noise.py
+++ b/src/bloqade/qasm2/rewrite/heuristic_noise.py
@@ -2,9 +2,10 @@
from dataclasses import field, dataclass
from kirin import ir
-from bloqade.noise import native
from kirin.rewrite import abc as result_abc, result
from kirin.dialects import py, ilist
+
+from bloqade.noise import native
from bloqade.analysis import address
from bloqade.qasm2.dialects import uop, core, glob, parallel
diff --git a/src/bloqade/qasm2/rewrite/native_gates.py b/src/bloqade/qasm2/rewrite/native_gates.py
index eaf00e9f..7d4840c4 100644
--- a/src/bloqade/qasm2/rewrite/native_gates.py
+++ b/src/bloqade/qasm2/rewrite/native_gates.py
@@ -12,12 +12,13 @@
from kirin import ir
from kirin.rewrite import abc, result
from kirin.dialects import py
-from bloqade.qasm2.dialects import uop, expr
from cirq.circuits.qasm_output import QasmUGate
from cirq.transformers.target_gatesets.compilation_target_gateset import (
CompilationTargetGateset,
)
+from bloqade.qasm2.dialects import uop, expr
+
# rydeberg gate sets
class RydbergTargetGateset(cirq.CZTargetGateset):
diff --git a/src/bloqade/qasm2/rewrite/parallel_to_uop.py b/src/bloqade/qasm2/rewrite/parallel_to_uop.py
index 6b59dede..a9e58199 100644
--- a/src/bloqade/qasm2/rewrite/parallel_to_uop.py
+++ b/src/bloqade/qasm2/rewrite/parallel_to_uop.py
@@ -3,6 +3,7 @@
from kirin import ir
from kirin.rewrite import abc, result
+
from bloqade.analysis import address
from bloqade.qasm2.dialects import uop, parallel
diff --git a/src/bloqade/qasm2/rewrite/register.py b/src/bloqade/qasm2/rewrite/register.py
index ffdf574d..3784d6f0 100644
--- a/src/bloqade/qasm2/rewrite/register.py
+++ b/src/bloqade/qasm2/rewrite/register.py
@@ -1,6 +1,7 @@
from kirin import ir
from kirin.dialects import py
from kirin.rewrite.abc import RewriteRule, RewriteResult
+
from bloqade.qasm2.dialects import core
diff --git a/src/bloqade/qasm2/rewrite/uop_to_parallel.py b/src/bloqade/qasm2/rewrite/uop_to_parallel.py
index 03548764..e8a3be72 100644
--- a/src/bloqade/qasm2/rewrite/uop_to_parallel.py
+++ b/src/bloqade/qasm2/rewrite/uop_to_parallel.py
@@ -5,8 +5,9 @@
from kirin import ir
from kirin.rewrite import abc as rewrite_abc
from kirin.dialects import py, ilist
-from bloqade.analysis import address
from kirin.analysis.const import lattice
+
+from bloqade.analysis import address
from bloqade.qasm2.dialects import uop, core, parallel
from bloqade.analysis.schedule import StmtDag
diff --git a/src/bloqade/qasm2/types.py b/src/bloqade/qasm2/types.py
index a40ff4b4..827bfde0 100644
--- a/src/bloqade/qasm2/types.py
+++ b/src/bloqade/qasm2/types.py
@@ -1,4 +1,5 @@
from kirin import types
+
from bloqade.types import Qubit as Qubit, QubitType as QubitType
diff --git a/src/bloqade/qbraid/lowering.py b/src/bloqade/qbraid/lowering.py
index f957fda6..45fed722 100644
--- a/src/bloqade/qbraid/lowering.py
+++ b/src/bloqade/qbraid/lowering.py
@@ -2,9 +2,10 @@
from dataclasses import field, dataclass
from kirin import ir, types, passes
+from kirin.dialects import func, ilist
+
from bloqade import noise, qasm2
from bloqade.qbraid import schema
-from kirin.dialects import func, ilist
from bloqade.qasm2.dialects import glob, parallel
diff --git a/src/bloqade/qbraid/simulation_result.py b/src/bloqade/qbraid/simulation_result.py
index 519f91e2..c797b8e1 100644
--- a/src/bloqade/qbraid/simulation_result.py
+++ b/src/bloqade/qbraid/simulation_result.py
@@ -7,6 +7,7 @@
import pandas as pd
from pandas import DataFrame
+
from bloqade.visual.animation.runtime import qpustate as vis_qpustate
from .schema import NoiseModel
diff --git a/src/bloqade/squin/groups.py b/src/bloqade/squin/groups.py
index 62b093d2..e9ec82a6 100644
--- a/src/bloqade/squin/groups.py
+++ b/src/bloqade/squin/groups.py
@@ -1,6 +1,7 @@
from kirin import ir, passes
from kirin.prelude import structural_no_opt
from kirin.dialects import ilist
+
from bloqade.qasm2.rewrite.desugar import IndexingDesugarPass
from . import op, wire, qubit
diff --git a/src/bloqade/squin/qubit.py b/src/bloqade/squin/qubit.py
index c950d552..9ed80d31 100644
--- a/src/bloqade/squin/qubit.py
+++ b/src/bloqade/squin/qubit.py
@@ -11,9 +11,10 @@
from kirin import ir, types
from kirin.decl import info, statement
-from bloqade.types import Qubit, QubitType
from kirin.dialects import ilist
from kirin.lowering import wraps
+
+from bloqade.types import Qubit, QubitType
from bloqade.squin.op.types import Op, OpType
dialect = ir.Dialect("squin.qubit")
diff --git a/src/bloqade/squin/wire.py b/src/bloqade/squin/wire.py
index 3caac41e..9578181d 100644
--- a/src/bloqade/squin/wire.py
+++ b/src/bloqade/squin/wire.py
@@ -8,6 +8,7 @@
from kirin import ir, types
from kirin.decl import info, statement
+
from bloqade.types import QubitType
from .op.types import OpType
diff --git a/src/bloqade/stim/dialects/aux/emit.py b/src/bloqade/stim/dialects/aux/emit.py
index 57b047eb..be4aa0cb 100644
--- a/src/bloqade/stim/dialects/aux/emit.py
+++ b/src/bloqade/stim/dialects/aux/emit.py
@@ -1,5 +1,6 @@
from kirin.emit import EmitStrFrame
from kirin.interp import MethodTable, impl
+
from bloqade.stim.emit.stim import EmitStimMain
from . import stmts
diff --git a/src/bloqade/stim/dialects/collapse/emit.py b/src/bloqade/stim/dialects/collapse/emit.py
index b6a41180..be96f2b2 100644
--- a/src/bloqade/stim/dialects/collapse/emit.py
+++ b/src/bloqade/stim/dialects/collapse/emit.py
@@ -1,5 +1,6 @@
from kirin.emit import EmitStrFrame
from kirin.interp import MethodTable, impl
+
from bloqade.stim.emit.stim import EmitStimMain
from . import stmts
diff --git a/src/bloqade/stim/dialects/gate/emit.py b/src/bloqade/stim/dialects/gate/emit.py
index d39013c8..e0e28631 100644
--- a/src/bloqade/stim/dialects/gate/emit.py
+++ b/src/bloqade/stim/dialects/gate/emit.py
@@ -1,5 +1,6 @@
from kirin.emit import EmitStrFrame
from kirin.interp import MethodTable, impl
+
from bloqade.stim.emit.stim import EmitStimMain
from . import stmts
diff --git a/src/bloqade/stim/dialects/gate/stmts/base.py b/src/bloqade/stim/dialects/gate/stmts/base.py
index 59910eac..cae7beba 100644
--- a/src/bloqade/stim/dialects/gate/stmts/base.py
+++ b/src/bloqade/stim/dialects/gate/stmts/base.py
@@ -1,5 +1,6 @@
from kirin import ir, types
from kirin.decl import info, statement
+
from bloqade.stim.dialects.aux import RecordType
diff --git a/src/bloqade/stim/dialects/noise/emit.py b/src/bloqade/stim/dialects/noise/emit.py
index a83218c6..e4c2b8b0 100644
--- a/src/bloqade/stim/dialects/noise/emit.py
+++ b/src/bloqade/stim/dialects/noise/emit.py
@@ -1,5 +1,6 @@
from kirin.emit import EmitStrFrame
from kirin.interp import MethodTable, impl
+
from bloqade.stim.emit.stim import EmitStimMain
from . import stmts
diff --git a/test/qasm2/passes/test_global_to_parallel.py b/test/qasm2/passes/test_global_to_parallel.py
index 996604bb..3b147636 100644
--- a/test/qasm2/passes/test_global_to_parallel.py
+++ b/test/qasm2/passes/test_global_to_parallel.py
@@ -1,9 +1,10 @@
from typing import List
from kirin import ir, types
-from bloqade import qasm2
from kirin.rewrite import Walk, Fixpoint, CommonSubexpressionElimination
from kirin.dialects import py, func, ilist
+
+from bloqade import qasm2
from bloqade.test_utils import assert_methods
from bloqade.qasm2.passes.glob import GlobalToParallel
diff --git a/test/qasm2/passes/test_global_to_uop.py b/test/qasm2/passes/test_global_to_uop.py
index 39f6f424..dafe6f2a 100644
--- a/test/qasm2/passes/test_global_to_uop.py
+++ b/test/qasm2/passes/test_global_to_uop.py
@@ -1,9 +1,10 @@
from typing import List
from kirin import ir, types
-from bloqade import qasm2
from kirin.rewrite import Walk, Fixpoint, CommonSubexpressionElimination
from kirin.dialects import py, func
+
+from bloqade import qasm2
from bloqade.test_utils import assert_methods
from bloqade.qasm2.passes.glob import GlobalToUOP
diff --git a/test/qasm2/passes/test_heuristic_noise.py b/test/qasm2/passes/test_heuristic_noise.py
index dc714030..e2bfd54f 100644
--- a/test/qasm2/passes/test_heuristic_noise.py
+++ b/test/qasm2/passes/test_heuristic_noise.py
@@ -1,9 +1,10 @@
from kirin import ir, types
+from kirin.dialects import func, ilist
+from kirin.dialects.py import constant
+
from bloqade import qasm2
from bloqade.noise import native
-from kirin.dialects import func, ilist
from bloqade.analysis import address
-from kirin.dialects.py import constant
from bloqade.test_utils import assert_nodes
from bloqade.qasm2.dialects import uop, core, glob, parallel
from bloqade.qasm2.passes.noise import NoisePass
diff --git a/test/qasm2/passes/test_parallel_to_uop.py b/test/qasm2/passes/test_parallel_to_uop.py
index f4dc33bf..c3e2c59e 100644
--- a/test/qasm2/passes/test_parallel_to_uop.py
+++ b/test/qasm2/passes/test_parallel_to_uop.py
@@ -1,8 +1,9 @@
from typing import List
from kirin import ir, types
-from bloqade import qasm2
from kirin.dialects import py, func
+
+from bloqade import qasm2
from bloqade.test_utils import assert_methods
from bloqade.qasm2.passes.parallel import ParallelToUOp
diff --git a/test/qasm2/test_count.py b/test/qasm2/test_count.py
index cfebeb4c..598b68bb 100644
--- a/test/qasm2/test_count.py
+++ b/test/qasm2/test_count.py
@@ -1,6 +1,7 @@
from kirin import passes
-from bloqade import qasm2
from kirin.dialects import py, ilist
+
+from bloqade import qasm2
from bloqade.analysis.address import (
NotQubit,
AddressReg,
diff --git a/test/qasm2/test_inline.py b/test/qasm2/test_inline.py
index 1372e35a..a53aeb65 100644
--- a/test/qasm2/test_inline.py
+++ b/test/qasm2/test_inline.py
@@ -1,7 +1,8 @@
import textwrap
-from bloqade import qasm2
from kirin.dialects import ilist
+
+from bloqade import qasm2
from bloqade.qasm2.dialects import glob, noise, inline, parallel
diff --git a/test/qasm2/test_native.py b/test/qasm2/test_native.py
index 8c5d4ad7..f8e32101 100644
--- a/test/qasm2/test_native.py
+++ b/test/qasm2/test_native.py
@@ -7,8 +7,9 @@
import cirq.contrib.qasm_import as qasm_import
import cirq.circuits.qasm_output as qasm_output
from pytest import mark
-from bloqade import qasm2
from kirin.rewrite import walk
+
+from bloqade import qasm2
from bloqade.qasm2.rewrite.native_gates import (
RydbergGateSetRewriteRule,
one_qubit_gate_to_u3_angles,
diff --git a/test/qbraid/test_lowering.py b/test/qbraid/test_lowering.py
index 57886f49..f398749d 100644
--- a/test/qbraid/test_lowering.py
+++ b/test/qbraid/test_lowering.py
@@ -3,11 +3,12 @@
from typing import List
from kirin import ir, types
-from bloqade import qasm2
from rich.console import Console
+from kirin.dialects import func, ilist
+
+from bloqade import qasm2
from bloqade.noise import native
from bloqade.qbraid import schema, lowering
-from kirin.dialects import func, ilist
from bloqade.qasm2.dialects import parallel
diff --git a/test/qbraid/test_target.py b/test/qbraid/test_target.py
index ea16490c..5d238223 100644
--- a/test/qbraid/test_target.py
+++ b/test/qbraid/test_target.py
@@ -1,7 +1,8 @@
from typing import Optional
-from bloqade import qasm2
from kirin.dialects import ilist
+
+from bloqade import qasm2
from bloqade.qbraid.target import qBraid
diff --git a/test/stim/dialects/stim/emit/base.py b/test/stim/dialects/stim/emit/base.py
index 3e8731bd..ca552fea 100644
--- a/test/stim/dialects/stim/emit/base.py
+++ b/test/stim/dialects/stim/emit/base.py
@@ -1,4 +1,5 @@
from kirin import ir
+
from bloqade.stim.emit import EmitStimMain
emit = EmitStimMain()
diff --git a/test/test_serialization.py b/test/test_serialization.py
index 01632cea..e26620cb 100644
--- a/test/test_serialization.py
+++ b/test/test_serialization.py
@@ -2,6 +2,7 @@
import numpy as np
import pandas as pd
+
from bloqade.qbraid.simulation_result import QuEraSimulationResult
from bloqade.visual.animation.gate_event import GateEvent
from bloqade.visual.animation.runtime.aod import AODMoveEvent
diff --git a/test/visual/test_utils.py b/test/visual/test_utils.py
index efdac21f..cfd5f7ac 100644
--- a/test/visual/test_utils.py
+++ b/test/visual/test_utils.py
@@ -2,6 +2,7 @@
import numpy as np
import pytest
+
from bloqade.visual.animation.runtime import utils