Source code for uniqc.compile.converter

"""OriginIR and OpenQASM2 format conversion utilities.

This module provides bidirectional conversion between OriginIR and
OpenQASM2 quantum circuit representations.
"""

__all__ = ["convert_oir_to_qasm", "convert_qasm_to_oir"]
from uniqc._error_hints import format_enriched_message
from uniqc.exceptions import CircuitTranslationError

from .originir import OriginIR_BaseParser
from .qasm import OpenQASM2_BaseParser


[docs] def convert_oir_to_qasm(originir_str: str) -> str: """ Convert OriginIR to OpenQASM2. """ try: originir_parser = OriginIR_BaseParser() originir_parser.parse(originir_str) return originir_parser.to_qasm() except Exception as e: raise CircuitTranslationError( format_enriched_message(f"Failed to convert OriginIR to OpenQASM2: {e}", "compilation") ) from e
[docs] def convert_qasm_to_oir(qasm_str: str) -> str: """ Convert OpenQASM2 to OriginIR. """ try: qasm_parser = OpenQASM2_BaseParser() qasm_parser.parse(qasm_str) return qasm_parser.to_originir() except Exception as e: raise CircuitTranslationError( format_enriched_message(f"Failed to convert OpenQASM2 to OriginIR: {e}", "compilation") ) from e