code: def _from_objects(cls, objects):
          
          vertices = ElementTransformSet(transform=id)
          out_edges = KeyTransformDict(transform=id)
          in_edges = KeyTransformDict(transform=id)
          for obj in objects:
              vertices.add(obj)
              out_edges[obj] = []
              in_edges[obj] = []
  
          # Edges are identified by simple integers, so
          # we can use plain dictionaries for mapping
          # edges to their heads and tails.
          edge_label = itertools.count()
          edges = set()
          head = {}
          tail = {}
  
          for referrer in vertices:
              for referent in gc.get_referents(referrer):
                  if referent not in vertices:
                      continue
                  edge = next(edge_label)
                  edges.add(edge)
                  tail[edge] = referrer
                  head[edge] = referent
                  out_edges[referrer].append(edge)
                  in_edges[referent].append(edge)
  
          return cls._raw(
              vertices=vertices,
              edges=edges,
              out_edges=out_edges,
              in_edges=in_edges,
              head=head,
              tail=tail,
          )
docs: Private constructor: create graph from the given Python objects.
  
          The constructor examines the referents of each given object to build up
          a graph showing the objects and their links.