Source code for pleb
"""Run the data-combination diagnostics pipeline.
This package exposes a small public API for running the full pipeline,
running parameter scans, and applying FixDataset operations programmatically.
The implementation is refactored from the original notebooks and designed to
import quickly; heavy dependencies (GitPython, libstempo/pqc) are imported
lazily by entry points.
Examples:
Run the pipeline programmatically::
from pathlib import Path
from pleb import PipelineConfig, run_pipeline
cfg = PipelineConfig(
home_dir=Path("/data/epta"),
singularity_image=Path("/images/tempo2.sif"),
dataset_name="EPTA",
)
outputs = run_pipeline(cfg)
Run a parameter scan::
from pleb import PipelineConfig, run_param_scan
cfg = PipelineConfig(
home_dir=Path("/data/epta"),
singularity_image=Path("/images/tempo2.sif"),
dataset_name="EPTA",
param_scan_typical=True,
)
results = run_param_scan(cfg)
See Also:
pleb.pipeline.run_pipeline: Full pipeline implementation.
pleb.param_scan.run_param_scan: Parameter scan runner.
pleb.dataset_fix: FixDataset helpers.
"""
from __future__ import annotations
from .config import (
IngestConfig,
ParamScanConfig,
PipelineConfig,
QCReportConfig,
WorkflowRunConfig,
)
from .dataset_fix import FixDatasetConfig, fix_pulsar_dataset, write_fix_report
from .pulsar_analysis import BinaryAnalysisConfig, write_binary_analysis
[docs]
def run_pipeline(cfg: PipelineConfig):
"""Run the full data-combination pipeline.
This is a lightweight wrapper that lazily imports the heavy pipeline module.
Parameters
----------
cfg : PipelineConfig
Pipeline configuration.
Returns
-------
dict
Output-path mapping as returned by
:func:`pleb.pipeline.run_pipeline`.
See Also
--------
pleb.pipeline.run_pipeline: Full pipeline implementation.
"""
from .pipeline import run_pipeline as _run
return _run(cfg)
[docs]
def run_param_scan(cfg: PipelineConfig, **kwargs):
"""Run a parameter scan (fit-only) workflow.
This wrapper lazily imports the parameter scan module.
Parameters
----------
cfg : PipelineConfig
Pipeline configuration.
**kwargs
Forwarded to :func:`pleb.param_scan.run_param_scan`.
Returns
-------
dict
Output-path mapping produced by the scan.
See Also
--------
pleb.param_scan.run_param_scan: Full scan implementation.
"""
from .param_scan import run_param_scan as _run
return _run(cfg, **kwargs)
__all__ = [
"PipelineConfig",
"IngestConfig",
"ParamScanConfig",
"QCReportConfig",
"WorkflowRunConfig",
"run_pipeline",
"run_param_scan",
"FixDatasetConfig",
"fix_pulsar_dataset",
"write_fix_report",
"BinaryAnalysisConfig",
"write_binary_analysis",
]