code: def from_dict(self, graph_dict):
          
  
          self.reset_graph()
          for new_node in graph_dict:
              self.add_node(new_node)
          for ind_node, dep_nodes in graph_dict.items():
              if not isinstance(dep_nodes, collections.Iterable):
                  raise TypeError('%s: dict values must be lists' % ind_node)
              for dep_node in dep_nodes:
                  self.add_edge(ind_node, dep_node)
docs: Reset the graph and build it from the passed dictionary.
  
          The dictionary takes the form of {node_name: [directed edges]}
  
          Args:
              graph_dict (dict): The dictionary used to create the graph.
  
          Raises:
              TypeError: Raised if the value of items in the dict are not lists.