Configuration

Configuration models for Phil’s imputation strategies.

class phil.imputation.config.CovarianceMatrix(*, matrix: list[list[float]], variables: list[str], citations: list[str])[source]

Bases: BaseModel

citations: list[str]
matrix: list[list[float]]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

variables: list[str]
class phil.imputation.config.CovariateSubset(*, predictors: list[str], citations: list[str])[source]

Bases: BaseModel

citations: list[str]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

predictors: list[str]
class phil.imputation.config.DomainKnowledge(*, covariate_subsets: dict[str, CovariateSubset] | None = None, covariance_matrix: CovarianceMatrix | None = None)[source]

Bases: BaseModel

covariance_matrix: CovarianceMatrix | None
covariate_subsets: dict[str, CovariateSubset] | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class phil.imputation.config.ImputationConfig(*, methods: list[str], modules: list[str], grids: list[ParameterGrid], domain_knowledge: DomainKnowledge | None = None)[source]

Bases: BaseModel

Configuration for imputation methods and parameter grids.

domain_knowledge: DomainKnowledge | None
grids: list[ParameterGrid]
methods: list[str]
model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

modules: list[str]
class phil.imputation.config.PreprocessingConfig(*, method: str, module: str = 'sklearn.preprocessing', params: dict[str, ~typing.Any] = <factory>)[source]

Bases: BaseModel

Configuration for data preprocessing steps.

method: str
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

module: str
params: dict[str, Any]

Collection of predefined configurations for Phil.

class phil.gallery.GridGallery[source]

Bases: object

Collection of imputation grids optimized for specific domains.

Citations: - Sampling/Multiverse: Wayland et al. (2025) - https://www.nature.com/articles/s41560-025-01871-0 - Finance: Gu, Kelly, & Xiu (2020) on ML for asset pricing and robust ML portfolios. - Healthcare: Stekhoven & Bühlmann (2011) on MissForest and Chen et al. (2023) on clinical imputation. - Marketing: Anand & Mamidi (2020) / Zhang et al. (2025) on ML for consumer analytics. - Engineering: Thomas & Rajabi (2021) and Idri et al. (2016) on systematic reviews of engineering data.

classmethod get(name: str) ImputationConfig[source]
class phil.gallery.GridMetadata(name: str, target_domain: str, intent: str, suitability: str, data_type_affinity: tuple[str, ...], time_complexity: str, scale_limits: str)[source]

Bases: object

Declarative, agent-readable metadata for a built-in imputation grid.

data_type_affinity: tuple[str, ...]
intent: str
name: str
scale_limits: str
suitability: str
target_domain: str
time_complexity: str
to_dict() dict[str, Any][source]
class phil.gallery.MagicGallery[source]

Bases: object

static get(method: str) BaseModel[source]
class phil.gallery.ProcessingGallery[source]

Bases: object

Collection of preprocessing configurations optimized for specific domains.

Citations: - Finance: RobustScaler for handling outliers in financial time series and asset data. - Marketing: TargetEncoder for high-cardinality features (e.g., zip codes, product IDs)

as discussed in Anand & Mamidi (2020).

classmethod get(name: str = 'default') dict[str, PreprocessingConfig][source]
phil.gallery.get_grid_metadata(name: str) GridMetadata | None[source]

Return metadata for a built-in grid, or None if unknown.

phil.gallery.grid_candidate_count(grid_name: str) int[source]

Number of ParameterGrid candidates for a built-in gallery grid.

phil.gallery.grid_scalability(grid_name: str) dict[str, Any][source]

Expose candidate count / KNN risk so agents can budget compute.

phil.gallery.list_grid_metadata() list[GridMetadata][source]

Return metadata for all agent-facing built-in grids (sorted by name).

phil.gallery.render_imputation_matrix() str[source]

Compile a Markdown comparison matrix from GRID_METADATA + live grids.