from typing import List


def split_constraint_string(constraint_string: str) -> List[str]:
    """
    Splits a constraint string such as

    >=1.2.3, <4.0.0, 3.5.0

    into its subparts, and returns a list of strings.
    Notation such as exact match 3.5.0 will be converted to ==3.5.0
    """

    constraint: List[str] = []
    prefixes = (">=", ">", "<", "<=", "==")
    constraint_string = constraint_string.strip()
    if len(constraint_string) == 0:
        return constraint

    try:
        constraint = [x.strip() for x in constraint_string.split(',')]
        constraint = [x
                      if x.startswith(prefixes) else "=="+x
                      for x in constraint]
    except Exception:
        raise ValueError(
            f"Unable to parse dependency string: {constraint_string}")

    return constraint