code: def push_supply(self, tokens):
          
          logger.debug("Pushing supply data: %s" % tokens)
  
          bus = self.case.buses[tokens["bus_no"] - 1]
          n_generators = len([g for g in self.case.generators if g.bus == bus])
  
          if n_generators == 0:
              logger.error("No generator at bus [%s] for matching supply" % bus)
              return
          elif n_generators > 1:
              g = [g for g in self.case.generators if g.bus == bus][0]
              logger.warning(
                  "More than one generator at bus [%s] for demand. Using the "
                  "first one [%s]." % (bus, g)
              )
          else:
              g = [g for g in self.case.generators if g.bus == bus][0]
  
          g.pcost_model = "poly"
          g.poly_coeffs = (
              tokens["p_fixed"],
              tokens["p_proportional"],
              tokens["p_quadratic"]
          )
docs: Adds OPF and CPF data to a Generator.