code: def build_final_cols(y, z, agg, extended_aggregation):
      if not len(extended_aggregation or []):
          z = make_list(z)
          cols = y if not len(z) else z
          if agg is not None and agg != "raw":
              return [
                  "{}{}{}".format(col, CHART_JOINER_CHAR, agg)
                  for col in cols
              ]
          return cols
      return [
          "{}{}{}".format(
              ext_agg["col"], CHART_JOINER_CHAR, ext_agg["agg"]
          )
          for ext_agg in extended_aggregation
      ]
  
imports: import copy
  import numpy
  import pandas
  import dtale.global_state
  import dtale.pandas_util
  from dtale.column_analysis import handle_cleaners
  from dtale.constants import CHART_JOINER_CHAR
  from dtale.query import build_col_key, run_query
  from dtale.utils import ChartBuildingError, build_formatters, classify_type, find_dtype, find_dtype_formatter, flatten_lists, get_dtypes, json_int, make_list, triple_quote
label_desc: Use image node_id 13 for calling a global function with example usage: build_final_cols(y, z, agg, extended_aggregation) and returns: unknown, cols, unknown