content: [build-system]
  requires = ["setuptools>=42", "wheel", "setuptools_scm[toml]>=3.4"]
  build-backend = "setuptools.build_meta"
  
  [tool.setuptools_scm]
  write_to = "tqdm/_dist_ver.py"
  write_to_template = "__version__ = '{version}'\n"
  
  [tool.setuptools.packages.find]
  exclude = ["benchmarks", "examples", "tests", "wiki", "docs", "feedstock"]
  
  [project.urls]
  homepage = "https://tqdm.github.io"
  repository = "https://github.com/tqdm/tqdm"
  changelog = "https://tqdm.github.io/releases"
  wiki = "https://github.com/tqdm/tqdm/wiki"
  
  [project]
  name = "tqdm"
  dynamic = ["version"]
  maintainers = [{name = "tqdm developers", email = "devs@tqdm.ml"}]
  description = "Fast, Extensible Progress Meter"
  readme = "README.rst"
  requires-python = ">=3.7"
  keywords = ["progressbar", "progressmeter", "progress", "bar", "meter", "rate", "eta", "console", "terminal", "time"]
  license = {text = "MPL-2.0 AND MIT"}
  # Trove classifiers (https://pypi.org/pypi?%3Aaction=list_classifiers)
  classifiers = [
      "Development Status :: 5 - Production/Stable",
      "Environment :: Console",
      "Environment :: MacOS X",
      "Environment :: Other Environment",
      "Environment :: Win32 (MS Windows)",
      "Environment :: X11 Applications",
      "Framework :: IPython",
      "Framework :: Jupyter",
      "Intended Audience :: Developers",
      "Intended Audience :: Education",
      "Intended Audience :: End Users/Desktop",
      "Intended Audience :: Other Audience",
      "Intended Audience :: System Administrators",
      "License :: OSI Approved :: MIT License",
      "License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)",
      "Operating System :: MacOS",
      "Operating System :: MacOS :: MacOS X",
      "Operating System :: Microsoft",
      "Operating System :: Microsoft :: MS-DOS",
      "Operating System :: Microsoft :: Windows",
      "Operating System :: POSIX",
      "Operating System :: POSIX :: BSD",
      "Operating System :: POSIX :: BSD :: FreeBSD",
      "Operating System :: POSIX :: Linux",
      "Operating System :: POSIX :: SunOS/Solaris",
      "Operating System :: Unix",
      "Programming Language :: Python",
      "Programming Language :: Python :: 3",
      "Programming Language :: Python :: 3.7",
      "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",
      "Programming Language :: Python :: 3 :: Only",
      "Programming Language :: Python :: Implementation",
      "Programming Language :: Python :: Implementation :: IronPython",
      "Programming Language :: Python :: Implementation :: PyPy",
      "Programming Language :: Unix Shell",
      "Topic :: Desktop Environment",
      "Topic :: Education :: Computer Aided Instruction (CAI)",
      "Topic :: Education :: Testing",
      "Topic :: Office/Business",
      "Topic :: Other/Nonlisted Topic",
      "Topic :: Software Development :: Build Tools",
      "Topic :: Software Development :: Libraries",
      "Topic :: Software Development :: Libraries :: Python Modules",
      "Topic :: Software Development :: Pre-processors",
      "Topic :: Software Development :: User Interfaces",
      "Topic :: System :: Installation/Setup",
      "Topic :: System :: Logging",
      "Topic :: System :: Monitoring",
      "Topic :: System :: Shells",
      "Topic :: Terminals",
      "Topic :: Utilities"]
  dependencies = ['colorama; platform_system == "Windows"']
  
  [project.optional-dependencies]
  dev = ["pytest>=6", "pytest-cov", "pytest-timeout", "pytest-asyncio>=0.24", "nbval"]
  discord = ["requests"]
  slack = ["slack-sdk"]
  telegram = ["requests"]
  notebook = ["ipywidgets>=6"]
  
  [project.scripts]
  tqdm = "tqdm.cli:main"
  
  [tool.flake8]
  max_line_length = 99
  exclude = [".git", "__pycache__", "build", "dist", ".eggs", ".asv", ".tox", ".ipynb_checkpoints"]
  
  [tool.yapf]
  spaces_before_comment = [15, 20]
  arithmetic_precedence_indication = true
  allow_split_before_dict_value = false
  coalesce_brackets = true
  column_limit = 99
  each_dict_entry_on_separate_line = false
  space_between_ending_comma_and_closing_bracket = false
  split_before_named_assigns = false
  split_before_closing_bracket = false
  blank_line_before_nested_class_or_def = false
  
  [tool.isort]
  line_length = 99
  multi_line_output = 4
  known_first_party = ["tqdm", "tests"]
  
  [tool.pytest.ini_options]
  minversion = "6.0"
  timeout = 30
  log_level = "INFO"
  markers = ["asyncio", "slow"]
  python_files = ["tests_*.py", "tests_*.ipynb"]
  testpaths = ["tests"]
  addopts = "-v --tb=short -rxs -W=error --durations=0 --durations-min=0.1 --asyncio-mode=strict"
  asyncio_default_fixture_loop_scope = "function"
  
  [tool.coverage.run]
  branch = true
  include = ["tqdm/*"]
  omit = [
      "tqdm/contrib/bells.py",
      "tqdm/contrib/slack.py",
      "tqdm/contrib/discord.py",
      "tqdm/contrib/telegram.py",
      "tqdm/contrib/utils_worker.py"]
  relative_files = true
  disable_warnings = ["include-ignored"]
  [tool.coverage.report]
  show_missing = true
  