code: def run_server(
      fetchers: List[exp.ExperimentFetcher],
      host: str = "127.0.0.1",
      port: int = 5005,
      debug: bool = False,
  ) -> None:
      """
      Runs the HiPlot server, given a list of ExperimentFetchers - functions that convert a URI into a :class:`hiplot.Experiment`
      """
      from flask import Flask, render_template, jsonify, request
      from flask_compress import Compress
  
      app = Flask(__name__)
  
      @app.route("/")
      def index() -> Any:  # pylint: disable=unused-variable
          template = get_index_html_template()
          return template
  
      @app.route("/data")
      def data() -> Any:  # pylint: disable=unused-variable
          uri = request.args.get("uri", type=str)
          assert uri is not None
          try:
              xp = load_xp_with_fetchers(fetchers, uri)
              xp.validate()
              return jsonify({"query": uri, "experiment": xp._asdict()})
          except NoFetcherFound as e:
              return jsonify(
                  {
                      "error": f"No fetcher found for this experiment: {e}"
                  }
              )
  
      Compress(app)
      app.run(debug=debug, host=host, port=port)
  
file_path: hiplot/hiplot/server.py
imports: import argparse
  import importlib
  import json
  import copy
  from typing import List, Any, Dict
  from .None import experiment
  from .fetchers import get_fetchers, MultipleFetcher, NoFetcherFound, load_xp_with_fetchers
  from .render import get_index_html_template, html_inlinize
  from .None import pkginfo
label_desc: Use image node_id 1 for calling a global function with example usage: run_server(fetchers, host, port, debug) and returns: template, jsonify, jsonify