Source code for quantinuum_schemas.models.hypertket_config
"""Configuration options for HyperTKET compilation."""fromenumimportEnumfromtypingimportAnnotated,Literal,Optional,UnionfrompydanticimportBaseModel,FieldclassRewriteSearchConfig(BaseModel):"""Configuration for compilation passes that search for a circuit rewrite."""enable_rewrite_search:bool=TrueclassBruteForceOrderConfig(BaseModel):"""Ordering config for BruteForceOrder."""ordering_method:Literal["BruteForceOrder"]="BruteForceOrder"classConstrainedOptOrderConfig(BaseModel):"""Ordering config for ConstrainedOptOrder."""ordering_method:Literal["ConstrainedOptOrder"]="ConstrainedOptOrder"time_limit:Annotated[int,Field(ge=0)]=(600# Not clear from OR-Tools docs if this can be 0.)n_threads:Annotated[int,Field(ge=1)]=1hint:Optional[list[int]]=NoneclassLocalGreedyOrderConfig(BaseModel):"""Ordering config for LocalGreedyOrder."""ordering_method:Literal["LocalGreedyOrder"]="LocalGreedyOrder"classLocalGreedyFirstNodeSearchOrderConfig(BaseModel):"""Ordering config for LocalGreedyFirstNodeSearchOrder."""ordering_method:Literal["LocalGreedyFirstNodeSearchOrder"]=("LocalGreedyFirstNodeSearchOrder")classCustomOrderConfig(BaseModel):"""Ordering config for CustomOrder."""ordering_method:Literal["CustomOrder"]="CustomOrder"order:list[int]classDefaultOrderConfig(BaseModel):"""Ordering config for DefaultOrder."""ordering_method:Literal["DefaultOrder"]="DefaultOrder"OrderingConfig=Union[BruteForceOrderConfig,ConstrainedOptOrderConfig,LocalGreedyOrderConfig,LocalGreedyFirstNodeSearchOrderConfig,CustomOrderConfig,DefaultOrderConfig,]classDualStrat(Enum):"""Strategy for dual circuit compilation."""SINGLE=0DUAL=1AUTO=2classQubitReuseConfig(BaseModel):"""Configuration for qubit reuse compilation pass."""enable_qubit_reuse:bool=Falseordering_config:Annotated[OrderingConfig,Field(discriminator="ordering_method")]=DefaultOrderConfig()min_qubits:Optional[Annotated[int,Field(ge=0)]]=Nonedual_circuit_strategy:Optional[DualStrat]=None
[docs]classHyperTketConfig(BaseModel):"""Configuration for HyperTKET compilation."""rewrite_search_config:RewriteSearchConfig=RewriteSearchConfig()qubit_reuse_config:Optional[QubitReuseConfig]=None