pyqres.core¶
核心操作类¶
Operation¶
- class pyqres.core.operation.Operation(reg_list=None, param_list=None, temp_reg_list=None, submodules=None, **kwargs)[源代码]¶
基类:
objectBase class for all quantum operations.
Two concrete subclasses: - Primitive: leaf node with known resource cost (T-count, etc.) - Composite: decomposes into sub-operations via program_list
Primitive¶
- class pyqres.core.operation.Primitive(reg_list=None, param_list=None, temp_reg_list=None, submodules=None, **kwargs)[源代码]¶
基类:
OperationLeaf operation with known resource cost. Cannot be further decomposed.
Composite¶
StandardComposite¶
AbstractComposite¶
注册表¶
OperationRegistry¶
元数据¶
RegisterMetadata¶
ProgramMetadata¶
访问者¶
TCounter¶
TDepthCounter¶
TreeRenderer¶
- class pyqres.core.visitor.TreeRenderer(fold_modules=None)[源代码]¶
基类:
objectVisitor that renders an Operation tree as an indented tree structure.
Used by
Operation.__repr__()to generate a hierarchical text representation of an operation and its children. Supports folding (hiding) of specific module subtrees.Example output:
Toffoli: QRegs(q0[1], q1[1], q2[1]) CNOT: QRegs(q0[1], q1[1]) CNOT: QRegs(q1[1], q2[1]) CNOT: QRegs(q0[1], q1[1])
- text¶
Accumulated rendered text.
- indent¶
Current indentation level (in spaces).
- fold_modules¶
List of operation names to fold (hide their children).
- folding¶
Whether currently inside a folded subtree.
Whether current node should be hidden.
示例
>>> from pyqres.primitives import Toffoli >>> from pyqres.core.metadata import RegisterMetadata >>> RegisterMetadata.push_register_metadata() >>> RegisterMetadata.get_register_metadata().declare_register('q0', 1) >>> RegisterMetadata.get_register_metadata().declare_register('q1', 1) >>> RegisterMetadata.get_register_metadata().declare_register('q2', 1) >>> t = Toffoli(['q0', 'q1', 'q2']) >>> renderer = TreeRenderer() >>> t.traverse(renderer) >>> print(renderer.text)
- __init__(fold_modules=None)[源代码]¶
Initialize the renderer.
- 参数:
fold_modules -- List of operation names to fold. Children of these operations will not be rendered.
- enter(node)[源代码]¶
Called when entering a node during traversal.
Increases indent level and manages folding state.
- 参数:
node -- The Operation node being entered.
- exit(node)[源代码]¶
Called when exiting a node during traversal.
Decreases indent level and resets folding state when leaving a folded module.
- 参数:
node -- The Operation node being exited.
- visit(node, dagger_ctx=False, controllers_ctx=None)[源代码]¶
Visit a node and render its string representation.
Calls
node.render_this()to get the formatted string for this node, then appends it to the accumulated text.- 参数:
node -- The Operation node to visit.
dagger_ctx -- Whether the node is being traversed in dagger mode.
controllers_ctx -- Current controller context from parent nodes.
PlainRenderer¶
- class pyqres.core.visitor.PlainRenderer(fold_modules=None)[源代码]¶
基类:
objectVisitor that renders an Operation tree as plain text.
Similar to TreeRenderer but uses
plain_render_this()which provides a simpler output format. Used byOperation.__str__().Example output:
Toffoli: QRegs(q0[1], q1[1], q2[1]) CNOT: QRegs(q0[1], q1[1]) CNOT: QRegs(q1[1], q2[1]) CNOT: QRegs(q0[1], q1[1])
- text¶
Accumulated rendered text.
- indent¶
Current indentation level (in spaces).
- fold_modules¶
List of operation names to fold (hide their children).
- folding¶
Whether currently inside a folded subtree.
Whether current node should be hidden.
- __init__(fold_modules=None)[源代码]¶
Initialize the renderer.
- 参数:
fold_modules -- List of operation names to fold. Children of these operations will not be rendered.
- enter(node)[源代码]¶
Called when entering a node during traversal.
Increases indent level and manages folding state.
- 参数:
node -- The Operation node being entered.
- exit(node)[源代码]¶
Called when exiting a node during traversal.
Decreases indent level and resets folding state when leaving a folded module.
- 参数:
node -- The Operation node being exited.
- visit(node, dagger_ctx=False, controllers_ctx=None)[源代码]¶
Visit a node and render its plain string representation.
Calls
node.plain_render_this()to get the formatted string for this node, then appends it to the accumulated text.- 参数:
node -- The Operation node to visit.
dagger_ctx -- Whether the node is being traversed in dagger mode.
controllers_ctx -- Current controller context from parent nodes.