From 39184f9dfe33f6b431bb4d1fd87f80b4f009b7a7 Mon Sep 17 00:00:00 2001 From: Manideep3969 Date: Mon, 24 Aug 2026 10:41:00 +0530 Subject: [PATCH] fix(#58): add | None to type annotations for fields defaulting to None Dataclass fields that default to None but were typed without Optional cause AttributeError when accessed on default instances and confuse static type checkers. Add `| None` to all 10 such fields across fusion.py, scheduling.py, transpiler.py, and autotuning.py. --- src/qc_compiler/autotuning.py | 4 ++-- src/qc_compiler/fusion.py | 8 ++++---- src/qc_compiler/scheduling.py | 2 +- src/qc_compiler/transpiler.py | 6 +++--- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/qc_compiler/autotuning.py b/src/qc_compiler/autotuning.py index 7b17c8c..b909ade 100644 --- a/src/qc_compiler/autotuning.py +++ b/src/qc_compiler/autotuning.py @@ -86,13 +86,13 @@ class AutotuneResult: top_k_configs: Top-k configurations by estimated fidelity. """ - best_config: TranspileConfig = None + best_config: TranspileConfig | None = None best_estimated_fidelity: float = 0.0 all_results: dict[str, float] = field(default_factory=dict) measured_fidelities: dict[str, float] = field(default_factory=dict) circuits_evaluated: int = 0 search_space_size: int = 0 - best_circuit: QuantumCircuit = None + best_circuit: QuantumCircuit | None = None top_k_configs: list[TranspileConfig] = field(default_factory=list) @property diff --git a/src/qc_compiler/fusion.py b/src/qc_compiler/fusion.py index 8927912..d2e00bc 100644 --- a/src/qc_compiler/fusion.py +++ b/src/qc_compiler/fusion.py @@ -58,10 +58,10 @@ class FusionResult: improvement: Fidelity improvement (after - before). """ - original_circuit: QuantumCircuit = None - optimized_circuit: QuantumCircuit = None - original_metrics: CircuitMetrics = None - optimized_metrics: CircuitMetrics = None + original_circuit: QuantumCircuit | None = None + optimized_circuit: QuantumCircuit | None = None + original_metrics: CircuitMetrics | None = None + optimized_metrics: CircuitMetrics | None = None chains_fused: int = 0 total_gates_before: int = 0 total_gates_after: int = 0 diff --git a/src/qc_compiler/scheduling.py b/src/qc_compiler/scheduling.py index 5779342..a3b2d37 100644 --- a/src/qc_compiler/scheduling.py +++ b/src/qc_compiler/scheduling.py @@ -53,7 +53,7 @@ class ScheduleResult: depth_optimized: Circuit depth with the chosen method. """ - circuit: QuantumCircuit = None + circuit: QuantumCircuit | None = None idle_times: dict[int, float] = field(default_factory=dict) estimated_fidelity_asap: float = 0.0 estimated_fidelity_alap: float = 0.0 diff --git a/src/qc_compiler/transpiler.py b/src/qc_compiler/transpiler.py index 7686f7f..8d30485 100644 --- a/src/qc_compiler/transpiler.py +++ b/src/qc_compiler/transpiler.py @@ -79,8 +79,8 @@ class QCompilerResult: config: The OptimizerConfig used. """ - original_circuit: QuantumCircuit = None - optimized_circuit: QuantumCircuit = None + original_circuit: QuantumCircuit | None = None + optimized_circuit: QuantumCircuit | None = None fidelity_before: float = 0.0 fidelity_after: float = 0.0 fusion_result: FusionResult | None = None @@ -91,7 +91,7 @@ class QCompilerResult: batch_plan: BatchPlan | None = None subcircuits: list[QuantumCircuit] | None = None passes_applied: list[str] = field(default_factory=list) - config: OptimizerConfig = None + config: OptimizerConfig | None = None @property def fidelity_improvement(self) -> float: