parq_blockmodel.schema.service.SchemaService#
- class parq_blockmodel.schema.service.SchemaService(geometry, schema=None, engine_initializer=None, intrinsic_volume_column='volume')[source]#
Manages schema, geometry, and df-eval operations for a block model.
This service provides stateful operations that depend on both a schema and geometry context. It handles: - Intrinsic operations (e.g., volume calculation) - Available df-eval operations (schema + intrinsic) - Calculated column classification - Application of df-eval operations and validation
- Parameters:
geometry (RegularGeometry) – The block model geometry.
schema (DataFrameSchema or None) – Optional pandera schema.
engine_initializer (Callable, optional) – Optional callable to customize the df-eval Engine. Signature: Callable[[Engine], Engine].
intrinsic_volume_column (str, default "volume") – Name of the intrinsic volume column.
- __init__(geometry, schema=None, engine_initializer=None, intrinsic_volume_column='volume')[source]#
Initialize the schema service.
- Parameters:
geometry (RegularGeometry) – The block model geometry.
schema (DataFrameSchema, optional) – Pandera schema for validation and calculated columns.
engine_initializer (Callable, optional) – Optional engine configuration function.
intrinsic_volume_column (str, default "volume") – Name for the intrinsic volume column.
Methods
__init__(geometry[, schema, ...])Initialize the schema service.
apply_df_eval_operations(dataframe[, operations])Apply df-eval operations including alias, decimals, and expressions.
apply_intrinsic_operations(dataframe, operations)Apply intrinsic operations to a DataFrame.
Get all available df-eval operations (schema + intrinsic).
calculated_attribute_flags(calculated_columns)Classify calculated columns as attributes or positional.
Extract schema column names in definition order.
Get intrinsic df-eval operations (e.g., volume calculation).
report_schema_metadata(selected_columns)Extract metadata descriptions for reporting.
Get attribute classification flags from schema metadata.
validate_chunk(dataframe)Validate and coerce a DataFrame chunk against the schema.
Attributes
INTRINSIC_VOLUME_COLUMNPOSITION_COLUMNS- apply_df_eval_operations(dataframe, operations=None)[source]#
Apply df-eval operations including alias, decimals, and expressions.
Pipeline order: 1. Apply alias transforms (rename columns) 2. Apply decimals transforms (round output) 3. Apply df-eval operations (expr/lookup/function)
- Parameters:
dataframe (pd.DataFrame) – Input DataFrame to transform.
operations (dict[str, dict[str, Any]], optional) – Pre-extracted operations. If None, extracted from schema.
- Returns:
Transformed DataFrame with all operations applied.
- Return type:
pd.DataFrame
- Raises:
ImportError – If df-eval or pandera is not installed.
- apply_intrinsic_operations(dataframe, operations)[source]#
Apply intrinsic operations to a DataFrame.
- Parameters:
dataframe (pd.DataFrame) – Input DataFrame.
operations (dict[str, dict[str, Any]]) – Operations to apply.
- Returns:
DataFrame with operations applied.
- Return type:
pd.DataFrame
- available_df_eval_operations()[source]#
Get all available df-eval operations (schema + intrinsic).
- Returns:
Combined operations from schema and intrinsic sources.
- Return type:
dict[str, dict[str, Any]]
- calculated_attribute_flags(calculated_columns)[source]#
Classify calculated columns as attributes or positional.
- Parameters:
calculated_columns (list[str]) – List of available calculated column names.
- Returns:
Mapping of column names to is_attribute boolean.
- Return type:
dict[str, bool]
- get_schema_column_names()[source]#
Extract schema column names in definition order.
- Returns:
Column names from schema, or empty list if no schema.
- Return type:
list[str]
- intrinsic_df_eval_operations()[source]#
Get intrinsic df-eval operations (e.g., volume calculation).
- Returns:
Operations not from schema but built into the model (e.g., volume).
- Return type:
dict[str, dict[str, Any]]
- report_schema_metadata(selected_columns)[source]#
Extract metadata descriptions for reporting.
- Parameters:
selected_columns (list[str]) – Column names to extract descriptions for.
- Returns:
(column_descriptions, dataset_metadata) tuples or (None, None).
- Return type:
tuple[dict[str, str], dict[str, str]]
- schema_column_attribute_flags()[source]#
Get attribute classification flags from schema metadata.
- Returns:
Mapping of column names to is_attribute boolean.
- Return type:
dict[str, bool]
- validate_chunk(dataframe)[source]#
Validate and coerce a DataFrame chunk against the schema.
- Parameters:
dataframe (pd.DataFrame) – Chunk to validate.
- Returns:
Validated (and possibly coerced) DataFrame.
- Return type:
pd.DataFrame
- Raises:
ValueError – If no schema is available.
pandera.errors.SchemaErrors – If validation fails.