code: def get_app(props=dict(), special=False, clear=False):
      app = dash.Dash(__name__)
  
      baseProps = get_props(rows=200)
  
      if special:
          for c in baseProps.get("columns"):
              if c["id"] == "bbb":
                  c["id"] = "b+bb"
              elif c["id"] == "ccc":
                  c["id"] = "c cc"
              elif c["id"] == "ddd":
                  c["id"] = "d:dd"
              elif c["id"] == "eee":
                  c["id"] = "e-ee"
              elif c["id"] == "fff":
                  c["id"] = "f_ff"
              elif c["id"] == "ggg":
                  c["id"] = "g.gg"
  
          for i in range(len(baseProps["data"])):
              d = baseProps["data"][i]
              d["b+bb"] = d["bbb"]
              d["c cc"] = d["ccc"]
              d["d:dd"] = d["ddd"]
              d["e-ee"] = d["eee"]
              d["f_ff"] = d["fff"]
              d["g.gg"] = d["ggg"]
  
      baseProps.update(dict(filter_action="native"))
      baseProps.update(props)
  
      if clear:
          app.layout = Div(
              [
                  DataTable(**baseProps),
                  Button(id="btn", children=["Clear filters"]),
              ]
          )
  
          @app.callback(
              Output("table", "filter_query"), Input("btn", "n_clicks")
          )
          def get_filter(n_clicks):
              return ""
  
      else:
          app.layout = DataTable(**baseProps)
  
      return app
  
file_path: dash/components/dash-table/tests/selenium/test_filter2.py
imports: import dash
  from dash.dependencies import Input, Output
  from utils import get_props
  from dash.dash_table import DataTable
  from dash.html import Div, Button
  from selenium.webdriver.common.action_chains import ActionChains
  import pytest
label_desc: Use image node_id 1 for calling a global function with example usage: get_app(props, special, clear) and returns: app, str