Skip to content

compiler

Compiler for declarative pipeline specs.

compile_processes

compile_processes(spec: PipelineSpec) -> list[Any]

Compile a PipelineSpec into an ordered list of Process instances.

Source code in cltk/pipeline/compiler.py
def compile_processes(spec: PipelineSpec) -> list[Any]:
    """Compile a PipelineSpec into an ordered list of Process instances."""
    steps = _resolve_steps(spec)
    processes: list[Any] = []
    for step in steps:
        if not step.enabled:
            continue
        process_cls = ProcessRegistry.get_process(step.id)
        config = dict(step.config)
        if spec.language and "glottolog_id" not in config:
            config["glottolog_id"] = spec.language
        if spec.step_overrides and step.id in spec.step_overrides:
            config.update(spec.step_overrides[step.id])
        processes.append(process_cls(**config))
    return processes

compile_pipeline

compile_pipeline(spec: PipelineSpec) -> Pipeline

Compile a PipelineSpec into a Pipeline instance.

Source code in cltk/pipeline/compiler.py
def compile_pipeline(spec: PipelineSpec) -> Pipeline:
    """Compile a PipelineSpec into a Pipeline instance."""
    steps = _resolve_steps(spec)
    compiled = Pipeline(
        processes=compile_processes(spec),
        glottolog_id=spec.language,
        spec=PipelineSpec(
            preset=spec.preset,
            language=spec.language,
            steps=steps,
            step_overrides=spec.step_overrides,
            meta=spec.meta,
        ),
    )
    return compiled