content: [project]
  name = "aqtinstall"
  description = "Another unofficial Qt installer"
  license = {text = "MIT License"}
  authors = [
      {name = "Hiroshi Miura", email = "miurahr@linux.com"},
  ]
  classifiers = [
      "Development Status :: 4 - Beta",
      "Environment :: Console",
      "Environment :: X11 Applications :: Qt",
      "Intended Audience :: Developers",
      "License :: OSI Approved :: MIT License",
      "Operating System :: MacOS :: MacOS X",
      "Operating System :: Microsoft :: Windows",
      "Operating System :: POSIX",
      "Operating System :: POSIX :: Linux",
      "Programming Language :: Python",
      "Programming Language :: C++",
      "Topic :: Software Development",
      "Topic :: Software Development :: Libraries",
  ]
  requires-python = ">=3.9"
  dependencies = [
      "bs4",  # canonical name is beautifulsoup4
      "defusedxml",
      "humanize",
      "patch-ng",
      "py7zr>=0.22.0",
      "requests>=2.31.0",
      "semantic-version",
      "texttable",
  ]
  dynamic = ["version", "readme"]
  
  [tool.setuptools]
  packages = ["aqt"]
  
  [tool.setuptools.dynamic]
  readme = {file = ["README.rst"]}
  
  [tool.setuptools.package-data]
  aqt = ["*.yml", "*.ini"]
  
  [project.scripts]
  aqt = "aqt.__main__:main"
  
  [project.optional-dependencies]
  test = [
      "pytest>=6.0",
      "pytest-pep8",
      "pytest-cov",
      "pytest-remotedata>=0.4.1",
      "pytest-socket",
      "pytest-timeout",
      "pympler",
  ]
  check = [
      "mypy>=1.10.0",
      "flake8>=6.0.0,<8.0.0",
      "flake8-black",
      "flake8-colors",
      "flake8-isort>=6.0.0,<7.0.0",
      "flake8-pyi",
      "flake8-typing-imports",
      "docutils",
      "check-manifest",
      "readme-renderer",
      "pygments",
      "packaging",
      "pylint",
      "types-requests",
  ]
  docs = [
      "sphinx>=7.0",
      "sphinx_rtd_theme>=1.3",
      "sphinx-py3doc-enhanced-theme>=2.4",
  ]
  debug = [
      "pytest-leaks",
  ]
  
  [project.urls]
  Documentation = "https://aqtinstall.readthedocs.io/"
  "Bug Tracker" = "https://github.com/miurahr/aqtinstall/issues"
  Wiki = "https://github.com/miurahr/aqtinstall/wiki"
  Source = "https://github.com/miurahr/aqtinstall"
  Changelog = "https://aqtinstall.readthedocs.io/en/latest/CHANGELOG.html"
  
  [build-system]
  requires = ["setuptools>=61", "wheel", "setuptools_scm[toml]>=6.4"]
  build-backend = "setuptools.build_meta"
  
  [tool.setuptools_scm]
  local_scheme = "no-local-version"
  write_to = "aqt/version.py"
  write_to_template = """
  __version__ = \"{version}\"
  """
  tag_regex = "^(?P<prefix>v)?(?P<version>[^\\+]+)(?P<suffix>.*)?$"
  
  [tool.check-manifest]
  ignore = ["aqt/version.py","azure-pipelines.yml", ".readthedocs.yml", "ci/*"]
  
  [tool.coverage.run]
  branch = true
  parallel = true
  source = ["aqt", "tests"]
  
  [tool.coverage.report]
  show_missing = true
  exclude_lines = ["if __name__ == .__main__.:", "pragma: no-cover", "@abstract", "def __repr__"]
  
  [tool.pylint]
  max-line-length = 125
  
  [tool.black]
  line-length = 125
  target-version = ['py313']
  
  [tool.isort]
  line_length = 125
  known_first_party = "aqt"
  known_third_party = ["docutils", "flake8", "pyannotate_runtime", "pytest", "pytz", "requests", "setuptools", "sphinx", "yaml", "packaging"]
  multi_line_output = 3
  include_trailing_comma = true
  force_grid_wrap = 0
  use_parentheses = true
  ensure_newline_before_comments = true
  
  [tool.mypy]
  # Untyped definitions and calls are disable in default
  check_untyped_defs = false
  disallow_incomplete_defs = false
  disallow_untyped_calls = false
  disallow_untyped_defs = false
  disallow_untyped_decorators = false
  # not a all 3rd party package has type hints
  ignore_missing_imports = true
  # Optional check: implicit check enabled in mypy 0.980 or before
  strict_optional = true
  implicit_optional = false
  # Enable incremental mode and use sqlite cache
  incremental = true
  sqlite_cache = true
  # Enables PEP 420 style namespace packages
  namespace_packages = true
  # Control error output
  pretty = true
  color_output = true
  show_error_context = false
  show_column_numbers = true
  error_summary = true
  # configuring warnings
  warn_no_return = true
  warn_redundant_casts = true
  warn_return_any = true
  warn_unreachable = true
  warn_unused_ignores = true
  
  # TODO: Remove this `ignore_missing_imports` and add type stubs.
  # See https://mypy.readthedocs.io/en/stable/running_mypy.html#missing-imports
  [[tool.mypy.overrides]]
  module = "texttable"
  ignore_missing_imports = true
  
  [tool.pytest.ini_options]
  minversion = "6.0"
  testpaths = ["tests"]
  python_files = "test*.py"
  norecursedirs = [".git", "_build", "tmp", ".eggs"]
  timeout = 480
  markers = [
      "unit: mark a test as an unit test.",
      "enable_socket : mark a test with enabling socket.",
      "remote_data: mark a test with remote data.",
  ]
  
  [tool.tox]
  legacy_tox_ini = """
  [tox]
  envlist = check, docs, py{39,310,311,312,313}, mprof, fil, mypy
  isolated_build = True
  
  [testenv]
  passenv =
      GITHUB*
      APPVEYOR*
      TRAVIS*
      COVERALLS_*
      PYTEST_ADDOPTS
  extras = test, check, docs
  commands =
      python -m pytest -vv
  
  [testenv:check]
  basepython = python3.13
  extras = check
  commands =
      check-manifest {toxinidir}
      flake8 aqt tests
  
  [testenv:mypy]
  basepython = python3.13
  extras = check
  commands = mypy aqt
  deps =
      types-requests
      types-beautifulsoup4
      types-psutil
  
  [testenv:docs]
  basepython = python3.13
  extras = docs
  commands =
      sphinx-build {posargs:-E} -W -b html docs build/docs
      sphinx-build -W -b linkcheck docs build/docs
  
  [testenv:mprof]
  basepython = python3.13
  extras = debug
  commands =
      mprof run --multiprocess python -m aqt install-qt -O /tmp -d /tmp linux desktop 6.8.1
      mprof plot --output memory-profile.png
  deps =
      memory_profiler
      matplotlib
  
  [testenv:fil]
  basepython = python3.13
  extras = debug
  commands =
      fil-profile run -m aqt install-qt -O /tmp -d /tmp linux desktop 6.8.1
  deps =
      filprofiler
  
  [testenv:coveralls]
  deps =
      coveralls
  skip_install = true
  commands =
      coveralls []
  
  [gh-actions]
  python =
      3.9: py39
      3.10: py310
      3.11: py311
      3.12: py312
      3.13: py313
  """
  