Files
aqtinstall/pyproject.toml
tsteven4 3f2f59d488 appease mypy Version no-untyped-call (#864)
* appease mypy Version no-untyped-call

Without the type hint we get:
error: Call to untyped function "Version" in typed
context  [no-untyped-call]

Note that our Version is derived from semantic_version, which
doesn't have type hints.

* mark class definition __init__ functions -> None.

This prevents reviewdog from generating an no-untyped-call warning
when a new instance of the class is created.  This behavior is
a time bomb.  reviewdog flags the warning at the line the new instance
was added, which is within the scope of the diffs, but the problem lies
elsewhere, in the class definition.

* fix mypy import-untyped error.
2024-12-21 10:02:21 +09:00

252 lines
5.8 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>=1.16",
"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 = ['py312']
[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.12
extras = check
commands =
check-manifest {toxinidir}
flake8 aqt tests
[testenv:mypy]
basepython = python3.12
extras = check
commands = mypy aqt
deps =
types-requests
types-beautifulsoup4
types-psutil
[testenv:docs]
basepython = python3.12
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.12
extras = debug
commands =
mprof run --multiprocess python -m aqt install-qt -O /tmp -d /tmp linux desktop 6.2.1
mprof plot --output memory-profile.png
deps =
memory_profiler
matplotlib
[testenv:fil]
basepython = python3.12
extras = debug
commands =
fil-profile run -m aqt install-qt -O /tmp -d /tmp linux desktop 6.2.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
"""