Files
aqtinstall/pyproject.toml
2022-11-20 15:20:27 +09:00

254 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.7"
dependencies = [
"bs4", # canonical name is beautifulsoup4
"defusedxml",
"humanize",
"patch>=1.16",
"py7zr>=0.20.2",
"requests>2.20.0",
"semantic-version",
"texttable",
]
dynamic = ["version", "readme"]
[tool.setuptools]
packages = ["aqt"]
[tool.setuptools.dynamic]
readme = {file = ["README.rst"]}
[tool.setuptools.package-data]
aqt = ["*.yml", "*.json", "*.ini"]
[project.scripts]
aqt = "aqt.__main__:main"
[project.optional-dependencies]
test = [
"pytest>=6.0",
"pytest-pep8",
"pytest-remotedata",
"pytest-cov",
"pytest-socket",
"pytest-leaks",
"pytest-timeout",
"pympler",
]
check = [
"mypy>=0.990",
"flake8<6",
"flake8-black",
"flake8-colors",
"flake8-isort>=4.2.0,<5.0.0",
"flake8-pyi",
"flake8-typing-imports",
"docutils",
"check-manifest",
"readme-renderer",
"pygments",
"packaging",
]
docs = [
"sphinx>=5.0",
"sphinx_rtd_theme",
"sphinx-py3doc-enhanced-theme",
]
[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.black]
line-length = 125
target-version = ['py39']
[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{37,38,39,310,311}, py39d, mprof, fil, mypy
isolated_build = True
[testenv]
passenv =
GITHUB_*
APPVEYOR APPVEYOR_*
TRAVIS TRAVIS_*
COVERALLS_*
PYTEST_ADDOPTS
extras = test, check, docs
commands =
python -m pytest -vv
[testenv:check]
basepython = python3.9
extras = check
commands =
check-manifest {toxinidir}
flake8 aqt tests
[testenv:mypy]
basepython = python3.9
extras = check
commands = mypy aqt
deps =
types-requests
types-beautifulsoup4
types-psutil
[testenv:docs]
basepython = python3.9
extras = docs
commands =
sphinx-build {posargs:-E} -W -b html docs build/docs
sphinx-build -W -b linkcheck docs build/docs
[testenv:py39d]
basepython = python3.9d
extras = test
commands =
python3.9-dbg -m pytest -v --no-cov -R : -k "test_install"
deps =
pytest
pytest-leaks
pytest-remotedata
pytest-socket
pytest-cov
[testenv:mprof]
basepython = python3.9
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.9
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.8: py38
3.9: py39, docs, check, mypy
3.10: py310
3.11: py311
"""