code: def safe_add_edge(graph, u, v, key, attr_dict, **attr):
      
      if key < 0:
          graph.add_edge(u, v, key=key, attr_dict=attr_dict, **attr)
      else:
          graph.add_edge(u, v, attr_dict=attr_dict, **attr)
docs: Adds an edge while preserving negative keys, and paying no respect to positive ones
  
      :param pybel.BELGraph graph: A BEL Graph
      :param tuple u: The source BEL node
      :param tuple v: The target BEL node
      :param int key: The edge key. If less than zero, corresponds to an unqualified edge, else is disregarded
      :param dict attr_dict: The edge data dictionary
      :param dict attr: Edge data to assign via keyword arguments