code: def q15(lineitem, supplier):
      lineitem_filtered = lineitem[
          (lineitem["L_SHIPDATE"] >= md.Timestamp("1996-01-01"))
          & (
              lineitem["L_SHIPDATE"]
              < (md.Timestamp("1996-01-01") + md.DateOffset(months=3))
          )
      ]
      lineitem_filtered["REVENUE_PARTS"] = lineitem_filtered[
          "L_EXTENDEDPRICE"
      ] * (1.0 - lineitem_filtered["L_DISCOUNT"])
      lineitem_filtered = lineitem_filtered.loc[
          :, ["L_SUPPKEY", "REVENUE_PARTS"]
      ]
      revenue_table = (
          lineitem_filtered.groupby(
              "L_SUPPKEY", as_index=False, sort=False
          )
          .agg(
              TOTAL_REVENUE=md.NamedAgg(
                  column="REVENUE_PARTS", aggfunc="sum"
              )
          )
          .rename(columns={"L_SUPPKEY": "SUPPLIER_NO"})
      )
      max_revenue = revenue_table["TOTAL_REVENUE"].max()
      revenue_table = revenue_table[
          revenue_table["TOTAL_REVENUE"] == max_revenue
      ]
      supplier_filtered = supplier.loc[
          :, ["S_SUPPKEY", "S_NAME", "S_ADDRESS", "S_PHONE"]
      ]
      total = supplier_filtered.merge(
          revenue_table,
          left_on="S_SUPPKEY",
          right_on="SUPPLIER_NO",
          how="inner",
      )
      total = total.loc[
          :,
          [
              "S_SUPPKEY",
              "S_NAME",
              "S_ADDRESS",
              "S_PHONE",
              "TOTAL_REVENUE",
          ],
      ]
      print(total.execute())
  
imports: import argparse
  import functools
  import time
  from typing import Callable, List, Optional, Set, Union
  import mars
  import mars.dataframe
label_desc: Use image node_id 24 for calling a global function with example usage: q15(lineitem, supplier) without return types