docs: def edge_iterator(edges=[], edges_fn=None):
      """Yield documents from edge for loading into ArangoDB"""
  
      for edge in itertools.chain(edges, files.read_edges(edges_fn)):
  
          subj = copy.deepcopy(edge["edge"]["subject"])
          subj_id = str(utils._create_hash_from_doc(subj))
          subj["_key"] = subj_id
          obj = copy.deepcopy(edge["edge"]["object"])
  
          obj_id = str(utils._create_hash_from_doc(obj))
          obj["_key"] = obj_id
          relation = copy.deepcopy(edge["edge"]["relation"])
  
          relation["_from"] = f"nodes/{subj_id}"
          relation["_to"] = f"nodes/{obj_id}"
  
          # Create edge _key
          relation_hash = copy.deepcopy(relation)
          relation_hash.pop("edge_dt", None)
          relation_hash.pop("edge_hash", None)
          relation_hash.pop("nanopub_dt", None)
          relation_hash.pop("nanopub_url", None)
          relation_hash.pop("subject_canon", None)
          relation_hash.pop("object_canon", None)
          relation_hash.pop("public_flag", None)
          relation_hash.pop("metadata", None)
  
          relation_id = str(utils._create_hash_from_doc(relation_hash))
          relation["_key"] = relation_id
  
          if edge.get("nanopub_id", None):
              if "metadata" not in relation:
                  relation["metadata"] = {}
              relation["metadata"]["nanopub_id"] = edge["nanopub_id"]
  
          yield ("nodes", subj)
          yield ("nodes", obj)
          yield ("edges", relation)