content: import io
  import os
  from setuptools import setup, find_packages
  
  main_ns = {}
  exec(open("dash/version.py", encoding="utf-8").read(), main_ns)  # pylint: disable=exec-used, consider-using-with
  
  
  def read_req_file(req_type):
      with open(os.path.join("requirements", f"{req_type}.txt"), encoding="utf-8") as fp:
          requires = (line.strip() for line in fp)
          return [req for req in requires if req and not req.startswith("#")]
  
  
  setup(
      name="dash",
      version=main_ns["__version__"],
      author="Chris Parmer",
      author_email="chris@plotly.com",
      packages=find_packages(exclude=["tests*"]),
      include_package_data=True,
      license="MIT",
      description=(
          "A Python framework for building reactive web-apps. "
          "Developed by Plotly."
      ),
      long_description=io.open("README.md", encoding="utf-8").read(),  # pylint: disable=consider-using-with
      long_description_content_type="text/markdown",
      install_requires=read_req_file("install"),
      python_requires=">=3.8",
      extras_require={
          "async": read_req_file("async"),
          "ci": read_req_file("ci"),
          "dev": read_req_file("dev"),
          "testing": read_req_file("testing"),
          "celery": read_req_file("celery"),
          "diskcache": read_req_file("diskcache"),
          "compress": read_req_file("compress"),
          "cloud": read_req_file("cloud"),
          "ag-grid": read_req_file("ag-grid")
      },
      entry_points={
          "console_scripts": [
              "dash-generate-components = "
              "dash.development.component_generator:cli",
              "renderer = dash.development.build_process:renderer",
              "dash-update-components = dash.development.update_components:cli",
              "plotly = dash._plotly_cli:cli"
          ],
          "pytest11": ["dash = dash.testing.plugin"],
      },
      url="https://plotly.com/dash",
      project_urls={
          "Documentation": "https://dash.plotly.com",
          "Source": "https://github.com/plotly/dash",
          "Issue Tracker": "https://github.com/plotly/dash/issues",
      },
      classifiers=[
          "Development Status :: 5 - Production/Stable",
          "Environment :: Web Environment",
          "Framework :: Dash",
          "Framework :: Flask",
          "Intended Audience :: Developers",
          "Intended Audience :: Education",
          "Intended Audience :: Financial and Insurance Industry",
          "Intended Audience :: Healthcare Industry",
          "Intended Audience :: Manufacturing",
          "Intended Audience :: Science/Research",
          "License :: OSI Approved :: MIT License",
          "Programming Language :: Python",
          "Programming Language :: Python :: 3",
          "Programming Language :: Python :: 3.8",
          "Programming Language :: Python :: 3.9",
          "Programming Language :: Python :: 3.10",
          "Programming Language :: Python :: 3.11",
          "Programming Language :: Python :: 3.12",
          "Topic :: Database :: Front-Ends",
          "Topic :: Office/Business :: Financial :: Spreadsheet",
          "Topic :: Scientific/Engineering :: Visualization",
          "Topic :: Software Development :: Libraries :: Application Frameworks",
          "Topic :: Software Development :: Widget Sets",
      ],
      data_files=[
          # like `jupyter nbextension install --sys-prefix`
          ("share/jupyter/nbextensions/dash", [
              "dash/nbextension/main.js",
          ]),
          # like `jupyter nbextension enable --sys-prefix`
          ("etc/jupyter/nbconfig/notebook.d", [
              "dash/nbextension/dash.json"
          ]),
          # Place jupyterlab extension in extension directory
          ("share/jupyter/lab/extensions", [
              "dash/labextension/dist/dash-jupyterlab.tgz"
          ]),
      ],
  )
  