Files
aqtinstall/pyproject.toml
tsteven4 a8e5bec377 fix mypy configuration
correct spelling of types-requests for mypy.

add missing dependency for mypy to fix:
mypy: commands[0]> mypy --html-report build/mypy aqt
You must install the lxml package before you can run mypy with `--html-report`.
2025-12-15 07:09:25 -07:00

242 lines
5.9 KiB
TOML

[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]
requires = ["tox>=4.19"]
envlist = [
"mypy",
"check",
"3.10",
"3.11",
"3.12",
"3.13",
"3.14",
"docs",
"mprof",
"mypy",
"fil"
]
isolated_build = true
[tool.tox.env_run_base]
description = "Run test under {base_python}"
passenv = [
"GITHUB_*",
"PYTEST_ADDOPTS",
"COVERALLS_*",
]
extras = ["test", "check", "docs"]
commands = [["python", "-m", "pytest", "-vv"]]
[tool.tox.env.check]
extras = ["check"]
commands = [["check-manifest", "{toxinidir}"], ["flake8", "aqt", "tests"]]
[tool.tox.env.mypy]
extras = ["check"]
deps = ["lxml", "types-requests", "types-beautifulsoup4", "types-psutil"]
commands = [["mypy", "--html-report", "build/mypy", "aqt"]]
[tool.tox.env.docs]
extras = ["docs"]
commands = [
["sphinx-build", "{posargs:-E}", "-b", "html", "docs", "build/docs"],
["sphinx-build", "-W", "-b", "linkcheck", "docs", "build/docs"]
]
[tool.tox.env.mprof]
extras = ["test", "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"]
[tool.tox.env.fil]
extras = ["debug"]
commands = [
["fil-profile", "run", "-m", "aqt", "install-qt", "-O", "/tmp", "-d", "/tmp", "linux", "desktop", "6.8.1"]
]
deps = ["filprofiler"]
[tool.tox.env.coveralls]
deps = ["coveralls"]
skip_install = true
commands = [["coveralls", "[]"]]