def METHOD_NAME(text: str) -> tuple[Optional[str], bool]:
    """
    This is intended as a locale safe way to parse a float.
    It supports various types of floats.
    Example
    -------
    >>> _check_float('3.14')
    3.14, True
    >>> _check_float('2,557')
    2,557, True
    """
    value = None
    is_valid = False
    try:
        value = float(text)
        is_valid = True
    except ValueError:
        #'2,557'
        if ',' not in text:  # not valid
            pass
        elif '.' in text and ',' in text:  # might be valid; 1,234.56  -> 1.234,56
            # not supported
            pass
        else:
            text2 = text.replace(',', '.')
            value = float(text2)
            is_valid = True
    except Exception:
        pass
    return value, is_valid