from typing import List
from typing import Dict
from typing import Optional
from typing import Tuple


def search(
    indicator_list: List[Dict[str, str]], name: str
) -> Optional[Tuple[float, str]]:
    """
    Return a value of a name in the list of indicators

    :param indicator_list: list with the dictionaries with the indicators
    :param name: name to search for

    :returns: the value related to the name or None if missing
    >>> ind = [{'unit': 'MWh/yr', 'name': 'Total energy production',
    ...         'value': '2887254.54'},
    ...        {'unit': 'Million of EUR', 'name': 'Total setup costs',
    ...         'value': '6137'},
    ...        {'unit': '-', 'name': 'Number of installed systems',
    ...         'value': '1022847'},
    ...        {'unit': 'EUR/kWh', 'name': 'Levelized Cost of Energy',
    ...         'value': '0.17'}]
    >>> search(ind, 'Total energy production')
    (2887254.54, 'MWh/yr')
    """
    for dic in indicator_list:
        if dic["name"] == name:
            return float(dic["value"]), dic["unit"]
    return None