docs: def union(self, other, rename=False):
          '''
          Union/add two topologies together to form a larger topology.
  
          If rename is False, the method assumes that node names 
          don't clash (i.e., you've called addNodeLabelPrefix or 
          you've explicitly chosen names to avoid clashes).  
          If rename is True, nodes/links are relabeled such that the
          new "prefix" for each node is the graph name (i.e., for graph
          name A, node h1 is renamed A_h1).
          
          This method returns a new Topology object and does not modify
          either topology used for unioning.
          '''
          if rename:
              self.nxgraph = Topology.__relabel_graph(self.__nxgraph, self.name)
              other.nxgraph = Topology.__relabel_graph(other.__nxgraph, other.name)
          nxgraph = nx.union(self.nxgraph, other.nxgraph, name="{}_{}".format(self.name, other.name))
          newtopo = Topology(nxgraph=nxgraph, name="{}_{}".format(self.name, other.name))
          return newtopo