## build_multi_value_map_list()


Build a list of MultiValueMap objects from a pandas DataFrame.


Usage

``` python
build_multi_value_map_list(
    df,
    source_cols,
    target_cols,
    valid_from_col="valid_from",
    valid_to_col="valid_to",
    default_value=None
)
```


Iterates through the DataFrame rows to create mapping objects that map values from multiple source columns to multiple target columns.


## Parameters


`df: pd.DataFrame`  
DataFrame where each row represents a mapping.

`source_cols: Sequence[str]`  
Column names for source values.

`target_cols: Sequence[str]`  
Column names for target values.

`valid_from_col: str = ``"valid_from"`  
Optional column name for validity start date. Defaults to "valid_from".

`valid_to_col: str = ``"valid_to"`  
Optional column name for validity end date. Defaults to "valid_to".

`default_value: str | None = None`  
Optional catch-all target value. When provided, a final MultiValueMap with source `"regex:.*"` for every source component is appended so that source-value tuples not listed in the DataFrame resolve to this value instead of remaining unmapped. Defaults to None (no catch-all).


## Returns


`list[MultiValueMap]`  
List of MultiValueMap objects created from the DataFrame.


## Raises


`ValueError`  
If DataFrame is empty or required columns are missing.

`TypeError`  
If source or target columns contain non-string values.


## Examples


``` python
    >>> import pandas as pd
    >>> data = {
    ...     'country': ['DE', 'CH'],
    ...     'currency_src': ['LC', 'LC'],
    ...     'currency_tgt': ['EUR', 'CHF'],
    ...     'region_tgt': ['EU', 'Non-EU']
    ... }
    >>> df = pd.DataFrame(data)
    >>> maps = build_multi_value_map_list(
    ...     df,
    ...     ['country', 'currency_src'],
    ...     ['currency_tgt', 'region_tgt']
    ... )
    >>> len(maps)
```

    2

``` python
    >>> maps[0].source
```

    ('DE', 'LC')

``` python
    >>> maps[0].target
```

    ('EUR', 'EU')
