Configuration

The configuration model is loaded from YAML in pulsar.config.load_config.

PulsarConfig — W&B sweep-inspired YAML config loader.

Sweep parameters support three specification styles:

values: [2, 3, 5] → use list directly range: {min: 0.1, max: 1.0, steps: 10} → np.linspace distribution: {type: uniform, min: 0.1, max: 1.0} → (reserved for random search)

class pulsar.config.BallMapperSpec(epsilons: 'list[float]' = <factory>)[source]

Bases: object

epsilons: list[float]
class pulsar.config.CosmicGraphSpec(threshold: "float | Literal['auto']" = 'auto', neighborhood: 'str' = 'node')[source]

Bases: object

neighborhood: str = 'node'
threshold: float | Literal['auto'] = 'auto'
class pulsar.config.EncodeSpec(method: 'str', max_categories: 'int | None' = None)[source]

Bases: object

max_categories: int | None = None
method: str
class pulsar.config.ImputeSpec(method: 'str', seed: 'int' = 42)[source]

Bases: object

method: str
seed: int = 42
class pulsar.config.PCASpec(dimensions: 'list[int]' = <factory>, seeds: 'list[int]' = <factory>)[source]

Bases: object

dimensions: list[int]
seeds: list[int]
class pulsar.config.PulsarConfig(data: 'str', impute: 'dict[str, ImputeSpec]', encode: 'dict[str, EncodeSpec]', drop_columns: 'list[str]', pca: 'PCASpec', ball_mapper: 'BallMapperSpec', cosmic_graph: 'CosmicGraphSpec', n_reps: 'int' = 4, run_name: 'str' = '')[source]

Bases: object

ball_mapper: BallMapperSpec
cosmic_graph: CosmicGraphSpec
data: str
drop_columns: list[str]
encode: dict[str, EncodeSpec]
impute: dict[str, ImputeSpec]
n_reps: int = 4
pca: PCASpec
run_name: str = ''
pulsar.config.config_to_yaml(cfg: PulsarConfig) str[source]

Serialize a PulsarConfig to a reproducible YAML string.

Inverse of load_config; every field is written explicitly so the resulting YAML can recreate the exact same pipeline run.

pulsar.config.load_config(path_or_dict: str | dict) PulsarConfig[source]

Load a PulsarConfig from a YAML file path or a raw dict.