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(construction_threshold: "float | Literal['auto']" = 'auto', neighborhood: 'str' = 'node', sparsify: 'bool' = False, sparsify_epsilon: 'float' = 1.0, sparsify_seed: 'int' = 42, sparsify_sketch_dim: 'int | None' = None, sparsify_sample_count: 'int | None' = None, sparsify_pcg_tol: 'float' = 1e-06, sparsify_max_iter: 'int' = 1000, construction: "Literal['minhash', 'exact']" = 'minhash', minhash_d: 'int' = 256, minhash_seed: 'int' = 42)[source]

Bases: object

construction: Literal['minhash', 'exact'] = 'minhash'
construction_threshold: float | Literal['auto'] = 'auto'
minhash_d: int = 256
minhash_seed: int = 42
neighborhood: str = 'node'
sparsify: bool = False
sparsify_epsilon: float = 1.0
sparsify_max_iter: int = 1000
sparsify_pcg_tol: float = 1e-06
sparsify_sample_count: int | None = None
sparsify_seed: int = 42
sparsify_sketch_dim: int | None = None
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.ProjectionSpec(method: "Literal['jl', 'pca']" = 'jl', dimensions: 'list[int]' = <factory>, seeds: 'list[int]' = <factory>, center: 'bool' = True)[source]

Bases: object

center: bool = True
dimensions: list[int]
method: Literal['jl', 'pca'] = 'jl'
seeds: list[int]
class pulsar.config.PulsarConfig(data: 'str', impute: 'dict[str, ImputeSpec]', encode: 'dict[str, EncodeSpec]', drop_columns: 'list[str]', pca: 'PCASpec' = <factory>, projection: 'ProjectionSpec' = <factory>, ball_mapper: 'BallMapperSpec' = <factory>, cosmic_graph: 'CosmicGraphSpec' = <factory>, 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
projection: ProjectionSpec
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.

pulsar.config.normalize_construction_threshold(value: Any) float | Literal['auto'][source]