code: def with_empty_graph(cls, molecule, name="bonds",
                           edge_weight_name=None,
                           edge_weight_units=None):
          
  
          if edge_weight_name and (edge_weight_units is None):
              raise ValueError("Please specify units associated "
                               "with your edge weights. Can be "
                               "empty string if arbitrary or "
                               "dimensionless.")
  
          # construct graph with one node per site
          # graph attributes don't change behavior of graph,
          # they're just for book-keeping
          graph = nx.MultiDiGraph(edge_weight_name=edge_weight_name,
                                  edge_weight_units=edge_weight_units,
                                  name=name)
          graph.add_nodes_from(range(len(molecule)))
  
          graph_data = json_graph.adjacency_data(graph)
  
          return cls(molecule, graph_data=graph_data)
docs: Constructor for MoleculeGraph, returns a MoleculeGraph
          object with an empty graph (no edges, only nodes defined
          that correspond to Sites in Molecule).
  
          :param molecule (Molecule):
          :param name (str): name of graph, e.g. "bonds"
          :param edge_weight_name (str): name of edge weights,
          e.g. "bond_length" or "exchange_constant"
          :param edge_weight_units (str): name of edge weight units
          e.g. "Å" or "eV"
          :return (MoleculeGraph):