@@ -520,6 +520,26 @@ def to_openqasm(self, **kws: Any) -> str:
520
520
"""
521
521
return self .to_qiskit ().qasm (** kws ) # type: ignore
522
522
523
+ @classmethod
524
+ def from_openqasm (
525
+ cls , qasmstr : str , circuit_params : Optional [Dict [str , Any ]] = None
526
+ ) -> "AbstractCircuit" :
527
+ from qiskit .circuit import QuantumCircuit
528
+
529
+ qiskit_circ = QuantumCircuit .from_qasm_str (qasmstr )
530
+ c = cls .from_qiskit (qiskit_circ , circuit_params = circuit_params )
531
+ return c
532
+
533
+ @classmethod
534
+ def from_openqasm_file (
535
+ cls , file : str , circuit_params : Optional [Dict [str , Any ]] = None
536
+ ) -> "AbstractCircuit" :
537
+ from qiskit .circuit import QuantumCircuit
538
+
539
+ qiskit_circ = QuantumCircuit .from_qasm_file (file )
540
+ c = cls .from_qiskit (qiskit_circ , circuit_params = circuit_params )
541
+ return c
542
+
523
543
def draw (self , ** kws : Any ) -> Any :
524
544
"""
525
545
Visualise the circuit.
@@ -543,7 +563,11 @@ def draw(self, **kws: Any) -> Any:
543
563
544
564
@classmethod
545
565
def from_qiskit (
546
- cls , qc : Any , n : Optional [int ] = None , inputs : Optional [List [float ]] = None
566
+ cls ,
567
+ qc : Any ,
568
+ n : Optional [int ] = None ,
569
+ inputs : Optional [List [float ]] = None ,
570
+ circuit_params : Optional [Dict [str , Any ]] = None ,
547
571
) -> "AbstractCircuit" :
548
572
"""
549
573
Import Qiskit QuantumCircuit object as a ``tc.Circuit`` object.
@@ -571,7 +595,7 @@ def from_qiskit(
571
595
if n is None :
572
596
n = qc .num_qubits
573
597
574
- return qiskit2tc (qc .data , n , inputs , is_dm = cls .is_dm ) # type: ignore
598
+ return qiskit2tc (qc .data , n , inputs , is_dm = cls .is_dm , circuit_params = circuit_params ) # type: ignore
575
599
576
600
def vis_tex (self , ** kws : Any ) -> str :
577
601
"""
0 commit comments