pyqres.dsl

Schema 校验

SchemaValidator

class pyqres.dsl.schema.SchemaValidator[源代码]

基类:object

Validates YAML composite operation definitions.

Checks: - Required fields present (name, impl) - Type consistency (register types, parameter types) - $name references point to declared qregs/params - impl operations reference known operations (primitives or composites) - controllers format is valid

VALID_REGISTER_TYPES = {'Boolean', 'General', 'Rational', 'SignedInteger', 'UnsignedInteger'}
VALID_PARAM_TYPES = {'array', 'bool', 'callable', 'float', 'int', 'object', 'op_instance', 'operation', 'qram', 'qram_ref', 'str', 'symbol'}
__init__()[源代码]
validate(definitions, known_operations=None)[源代码]

Validate a list of YAML composite definitions.

参数:
  • definitions (List[Dict[str, Any]]) -- List of YAML operation definitions

  • known_operations (Optional[Set[str]]) -- Set of known operation names (primitives + previously defined composites)

返回类型:

List[ValidationError]

ValidationError

exception pyqres.dsl.schema.ValidationError(path, message)[源代码]

基类:object

A single validation error.

__init__(path, message)[源代码]
pyqres.dsl.schema.validate_yaml_definitions(definitions, known_operations=None)[源代码]

Convenience function to validate YAML definitions.

返回类型:

List[ValidationError]

代码生成

CodeGenerator

class pyqres.dsl.codegen.CodeGenerator[源代码]

基类:object

Generate Python Composite subclasses from YAML composite definitions.

Handles: - $name variable substitution - Controllers (all_ones, nonzero, bit, value) - Dagger modifiers - Temporary registers lifecycle - Computed parameters - traverse_override for special patterns - Loops (loop, loop_reverse) - Conditionals (if) - Comments

STANDARD_IMPORTS = ['from ..core.operation import {base_class}', 'from ..core.registry import OperationRegistry', 'from ..core.utils import merge_controllers', 'import math']
generate(definition)[源代码]

Generate a Python class from a YAML composite definition.

返回类型:

GeneratedClass

generate_file_content(gen_class)[源代码]

Generate complete file content for a generated class.

返回类型:

str

GeneratedClass

class pyqres.dsl.codegen.GeneratedClass(name, base_class, imports, class_code, dependencies)[源代码]

基类:object

Container for a generated Python class.

name: str
base_class: str
imports: List[str]
class_code: str
dependencies: List[str]
__init__(name, base_class, imports, class_code, dependencies)
pyqres.dsl.codegen.generate_class(definition)[源代码]

Convenience function to generate a class from definition.

返回类型:

GeneratedClass

编译器

DSLCompiler

class pyqres.dsl.compiler.DSLCompiler(library_paths=None)[源代码]

基类:object

Compiles YAML composite definitions to Python source files.

Usage:

compiler = DSLCompiler() result = compiler.compile_directory("schemas/composites/")

With libraries:

compiler = DSLCompiler(library_paths=["pyqres/lib/arithmetic/"]) result = compiler.compile_file("my_algorithm.yml")

__init__(library_paths=None)[源代码]
get_library_operation(name)[源代码]

Get a library operation definition by name.

返回类型:

Optional[Dict[str, Any]]

compile_file(yaml_path, output_dir=None)[源代码]

Compile a single YAML file to Python classes.

返回类型:

List[GeneratedClass]

compile_directory(schema_dir, output_dir=None)[源代码]

Compile all YAML files in a directory.

返回类型:

List[GeneratedClass]

compile_all(schema_base_dir=None, output_dir=None)[源代码]

Compile all YAML composite definitions.

参数:
  • schema_base_dir (Optional[str]) -- Base directory containing schemas/ subdirectory.

  • output_dir (Optional[str]) -- Directory to write generated files to.

返回类型:

List[GeneratedClass]

CompilationError

exception pyqres.dsl.compiler.CompilationError[源代码]

基类:Exception

Raised when compilation fails.

pyqres.dsl.compiler.compile_yaml(yaml_path, output_dir=None)[源代码]

Convenience function to compile a YAML file.

返回类型:

List[GeneratedClass]

pyqres.dsl.compiler.compile_all_schemas(output_dir=None)[源代码]

Convenience function to compile all schemas.

返回类型:

List[GeneratedClass]

完整性检查

CompletenessChecker

class pyqres.dsl.checker.CompletenessChecker[源代码]

基类:object

Validates completeness of composite operation definitions.

Checks that all referenced operations exist as either primitives (in OperationRegistry) or composites (defined in YAML).

__init__()[源代码]
add_definition(defn, source=None)[源代码]

Add a composite operation definition to the graph.

add_definitions(definitions, source=None)[源代码]

Add multiple definitions.

load_from_directory(schema_dir)[源代码]

Load all definitions from a directory of YAML files.

Skips subdirectories named 'demos/' (used for example schemas).

check()[源代码]

Perform completeness check.

返回类型:

CompletenessReport

get_dependency_order()[源代码]

Get topological order for generating code.

返回类型:

List[str]

get_tree(operation_name, depth=0, max_depth=10)[源代码]

Get a tree representation of an operation's dependencies.

返回类型:

str

CompletenessReport

class pyqres.dsl.checker.CompletenessReport(total_defined, composites_defined, missing_operations, circular_dependencies, is_valid)[源代码]

基类:object

Report on operation definition completeness.

total_defined: int
composites_defined: int
missing_operations: List[str]
circular_dependencies: List[List[str]]
is_valid: bool
__init__(total_defined, composites_defined, missing_operations, circular_dependencies, is_valid)

DependencyNode

class pyqres.dsl.checker.DependencyNode(name, is_primitive, is_defined, dependencies=<factory>, dependents=<factory>, definition_source=None)[源代码]

基类:object

Node in the operation dependency graph.

name: str
is_primitive: bool
is_defined: bool
dependencies: Set[str]
dependents: Set[str]
definition_source: str | None = None
__init__(name, is_primitive, is_defined, dependencies=<factory>, dependents=<factory>, definition_source=None)
pyqres.dsl.checker.check_completeness(definitions)[源代码]

Convenience function to check completeness of definitions.

返回类型:

CompletenessReport

pyqres.dsl.checker.check_directory(schema_dir)[源代码]

Convenience function to check a directory of YAML files.

返回类型:

CompletenessReport