niamoto.core.plugins.transformers.aggregation package¶
Submodules¶
niamoto.core.plugins.transformers.aggregation.binary_counter module¶
niamoto.core.plugins.transformers.aggregation.database_aggregator module¶
niamoto.core.plugins.transformers.aggregation.field_aggregator module¶
Plugin for aggregating fields from different sources.
- class niamoto.core.plugins.transformers.aggregation.field_aggregator.FieldConfig(*, source='occurrences', field, target, transformation='direct', units='', labels=<factory>, format=None)¶
Bases:
BaseModelConfiguration for a single field mapping.
This model defines how to extract and transform a field from a source.
- Parameters:
source (str)
field (str)
target (str)
transformation (Literal['direct', 'count', 'sum', 'stats'])
units (str)
labels (Dict[str, str])
format (Literal['boolean', 'url', 'text', 'number'] | None)
- model_config: ClassVar[ConfigDict] = {'json_schema_extra': {'example': {'field': 'full_name', 'format': 'text', 'source': 'occurrences', 'target': 'name', 'transformation': 'direct', 'units': ''}}}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- source: str¶
- field: str¶
- target: str¶
- transformation: Literal['direct', 'count', 'sum', 'stats']¶
- units: str¶
- labels: Dict[str, str]¶
- format: Literal['boolean', 'url', 'text', 'number'] | None¶
- classmethod validate_labels(v)¶
Convert list of labels to dictionary if needed.
- class niamoto.core.plugins.transformers.aggregation.field_aggregator.FieldAggregatorParams(*, fields)¶
Bases:
BaseModelParameters for field aggregator plugin.
This model validates the complete parameter set for the field aggregator.
- Parameters:
fields (List[FieldConfig])
- model_config: ClassVar[ConfigDict] = {'json_schema_extra': {'description': 'Aggregate multiple fields from different sources into a unified output'}}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- fields: List[FieldConfig]¶
- class niamoto.core.plugins.transformers.aggregation.field_aggregator.FieldAggregatorConfig(*, plugin='field_aggregator', source=None, params)¶
Bases:
PluginConfigComplete configuration for field aggregator plugin.
- Parameters:
plugin (Literal['field_aggregator'])
source (str | None)
params (FieldAggregatorParams)
- plugin: Literal['field_aggregator']¶
- params: FieldAggregatorParams¶
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class niamoto.core.plugins.transformers.aggregation.field_aggregator.FieldAggregator(db, registry=None)¶
Bases:
TransformerPluginField aggregator transformer.
- config_model¶
alias of
FieldAggregatorConfig
- param_schema¶
alias of
FieldAggregatorParams
- output_structure: Dict[str, str] | None = {'*': 'dict'}¶
- validate_config(config)¶
Validate configuration and return validated config.
- Parameters:
config (Dict[str, Any])
- Return type:
- transform(data, config)¶
Transform data according to configuration.
- Parameters:
data (DataFrame | Dict[str, DataFrame])
config (Dict[str, Any])
- Return type:
Dict[str, Any]