code: def run(
          self,
          inputs: Dict[str, Union[float, Iterable]],
          covers: Dict[str, Union[float, Iterable]],
          torch_size: Optional[int] = None,
      ) -> Union[float, Iterable]:
          
          # Abort run if covers does not match our expected cover set
          if len(covers) != len(self.cover_nodes):
              raise ValueError("Incorrect number of cover values.")
  
          # Set the cover node values
          for node_name, val in covers.items():
              self.nodes[node_name]["value"] = val
  
          return super().run(inputs, torch_size)
docs: Executes the FIB over a particular set of inputs and returns the
          result.
          Args:
              inputs: Input set where keys are the names of input nodes in the
                GrFN and each key points to a set of input values (or just one).
          Returns:
              A set of outputs from executing the GrFN, one for every set of
              inputs.