[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 = "^(?Pv)?(?P[^\\+]+)(?P.*)?$" [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", "[]"]]