def edges_from_edges_string(edges_string):
    """Create a graph from a DOT string:
    
    * use : "A -> B -> C" to indicate edge between A and B and B and C
    * can also use '-' : "A - B" 
    * group of edges separated by ';' : 'A - B - C ; D - C '
    
    A -> B
    
    Parameters
    ----------
    edges_string: string
        representation of the graph
    
    Returns
    -------
    corresponding list of edges
    """

    def try_int_convert(s):
        try:
            r = int(s)
        except ValueError:
            return s
        return r

    edges = [tuple(x.split("-")) for x in edges_string.replace(" ", "").replace("->", "-").split(";") if x != ""]
    edges = [tuple([try_int_convert(s) for s in x]) for x in edges]

    return edges