docs: def feeds(ctx, assets, pricethreshold, maxage):
      """ Price Feed Overview
      """
      import builtins
  
      witnesses = Witnesses(bitshares_instance=ctx.bitshares)
  
      def test_price(p, ref):
          if math.fabs(float(p / ref) - 1.0) > pricethreshold / 100.0:
              return click.style(str(p), fg="red")
          elif math.fabs(float(p / ref) - 1.0) > pricethreshold / 2.0 / 100.0:
              return click.style(str(p), fg="yellow")
          else:
              return click.style(str(p), fg="green")
  
      def price_diff(p, ref):
          d = (float(p) - float(ref)) / float(ref) * 100
          if math.fabs(d) >= 5:
              color = "red"
          elif math.fabs(d) >= 2.5:
              color = "yellow"
          else:
              color = "green"
          return click.style("{:8.2f}%".format(d), fg=color)
  
      def test_date(d):
          t = d.replace(tzinfo=None)
          now = datetime.utcnow()
          if now < t + timedelta(minutes=maxage):
              return click.style(str(t), fg="green")
          if now < t + timedelta(minutes=maxage / 2.0):
              return click.style(str(t), fg="yellow")
          else:
              return click.style(str(t), fg="red")
  
      output = ""
      for asset in tqdm(assets):
          t = PrettyTable(
              [
                  "Asset",
                  "Producer",
                  "Active Witness",
                  "Date",
                  "Settlement Price",
                  "Core Exchange Price",
                  "MCR",
                  "SSPR",
                  "delta",
              ]
          )
          t.align = "c"
          t.align["Producer"] = "l"
          asset = Asset(asset, full=True, bitshares_instance=ctx.bitshares)
          current_feed = asset.feed
          feeds = asset.feeds
          producingwitnesses = builtins.set()
          witness_accounts = [x["witness_account"] for x in witnesses]
          for feed in tqdm(feeds):
              producingwitnesses.add(feed["producer"]["id"])
              t.add_row(
                  [
                      asset["symbol"],
                      feed["producer"]["name"],
                      click.style(
                          "X" if feed["producer"]["id"] in witness_accounts else "",
                          bold=True,
                      ),
                      test_date(feed["date"]),
                      test_price(
                          feed["settlement_price"], current_feed["settlement_price"]
                      ),
                      test_price(
                          feed["core_exchange_rate"], current_feed["core_exchange_rate"]
                      ),
                      feed["maintenance_collateral_ratio"] / 10,
                      feed["maximum_short_squeeze_ratio"] / 10,
                      price_diff(
                          feed["core_exchange_rate"], current_feed["core_exchange_rate"]
                      ),
                  ]
              )
          for missing in builtins.set(witness_accounts).difference(producingwitnesses):
              witness = Witness(missing)
              t.add_row(
                  [
                      click.style(asset["symbol"], bg="red"),
                      click.style(witness.account["name"], bg="red"),
                      click.style(
                          "X" if feed["producer"]["id"] in witness_accounts else "",
                          bold=True,
                      ),
                      click.style(str(datetime(1970, 1, 1))),
                      click.style("missing", bg="red"),
                      click.style("missing", bg="red"),
                      click.style("missing", bg="red"),
                      click.style("missing", bg="red"),
                      click.style("missing", bg="red"),
                  ]
              )
          output += t.get_string(sortby="Date", reversesort=True)
          output += "\n"
      click.echo(output)