code: def build_graph(steps):
      
  
      graph = Graph()
  
      for step in steps:
          graph.add_step(step)
  
      for step in steps:
          for dep in step.requires:
              graph.connect(step.name, dep)
  
          for parent in step.required_by:
              graph.connect(parent, step.name)
  
      return graph
docs: Builds a graph of steps.
      Args:
          steps (list): a list of :class:`Step` objects to execute.