Files

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

210 lines
5.8 KiB
INI
Raw Permalink Normal View History

2021-05-27 17:16:54 -04:00
[metadata]
name = qemu
2021-05-27 17:16:55 -04:00
version = file:VERSION
2021-05-27 17:16:54 -04:00
maintainer = QEMU Developer Team
maintainer_email = qemu-devel@nongnu.org
url = https://www.qemu.org/
download_url = https://www.qemu.org/download/
description = QEMU Python Build, Debug and SDK tooling.
long_description = file:PACKAGE.rst
long_description_content_type = text/x-rst
classifiers =
Development Status :: 3 - Alpha
License :: OSI Approved :: GNU General Public License v2 (GPLv2)
Natural Language :: English
Operating System :: OS Independent
Programming Language :: Python :: 3 :: Only
2021-05-27 17:17:14 -04:00
Programming Language :: Python :: 3.9
Programming Language :: Python :: 3.10
2022-12-02 19:52:34 -05:00
Programming Language :: Python :: 3.11
2023-10-06 15:52:43 -04:00
Programming Language :: Python :: 3.12
2024-06-26 19:22:30 -04:00
Programming Language :: Python :: 3.13
Typing :: Typed
2021-05-27 17:16:54 -04:00
[options]
2025-04-25 14:07:10 +02:00
python_requires = >= 3.9
2021-05-27 17:16:54 -04:00
packages =
2022-03-30 13:28:10 -04:00
qemu.qmp
2021-05-27 17:16:54 -04:00
qemu.machine
qemu.utils
2021-05-27 17:17:00 -04:00
[options.package_data]
* = py.typed
[options.extras_require]
2023-02-09 19:31:42 -05:00
# Remember to update tests/minreqs.txt if changing anything below:
devel =
2021-09-15 12:29:52 -04:00
avocado-framework >= 90.0
2023-05-10 23:54:14 -04:00
distlib >= 0.3.6
2023-05-16 11:59:36 +02:00
flake8 >= 5.0.4
2021-06-02 20:37:16 -04:00
fusepy >= 2.0.4
isort >= 5.1.2
mypy >= 1.4.0
2023-05-16 11:59:36 +02:00
pylint >= 2.17.3
pylint != 3.2.4; python_version<"3.9"
2021-05-27 17:17:14 -04:00
tox >= 3.18.0
2021-08-24 03:37:42 +05:30
urwid >= 2.1.2
urwid-readline >= 0.13
2021-08-24 03:37:45 +05:30
Pygments >= 2.9.0
2025-06-04 16:03:52 -04:00
sphinx >= 3.4.3
2021-06-02 20:37:16 -04:00
# Provides qom-fuse functionality
fuse =
fusepy >= 2.0.4
2022-03-30 13:28:11 -04:00
# QMP TUI dependencies
2021-08-24 03:37:42 +05:30
tui =
urwid >= 2.1.2
urwid-readline >= 0.13
2021-08-24 03:37:45 +05:30
Pygments >= 2.9.0
2021-08-24 03:37:42 +05:30
2021-06-02 20:37:05 -04:00
[options.entry_points]
console_scripts =
qom = qemu.utils.qom:main
qom-set = qemu.utils.qom:QOMSet.entry_point
qom-get = qemu.utils.qom:QOMGet.entry_point
qom-list = qemu.utils.qom:QOMList.entry_point
qom-tree = qemu.utils.qom:QOMTree.entry_point
qom-fuse = qemu.utils.qom_fuse:QOMFuse.entry_point [fuse]
qemu-ga-client = qemu.utils.qemu_ga_client:main
2022-03-30 13:28:10 -04:00
qmp-shell = qemu.qmp.qmp_shell:main
qmp-shell-wrap = qemu.qmp.qmp_shell:main_wrap
2022-03-30 13:28:11 -04:00
qmp-tui = qemu.qmp.qmp_tui:main [tui]
2021-06-02 20:37:05 -04:00
2021-05-27 17:17:02 -04:00
[flake8]
2022-12-02 19:52:32 -05:00
# Prefer pylint's bare-except checks to flake8's
extend-ignore = E722
2021-05-27 17:17:03 -04:00
exclude = __pycache__,
2021-05-27 17:17:02 -04:00
2021-05-27 17:17:05 -04:00
[mypy]
strict = True
2025-04-25 14:07:10 +02:00
python_version = 3.9
2021-05-27 17:17:06 -04:00
namespace_packages = True
2022-05-25 20:09:13 -04:00
warn_unused_ignores = False
2021-05-27 17:17:05 -04:00
[mypy-qemu.utils.qom_fuse]
2021-06-02 20:37:15 -04:00
# fusepy has no type stubs:
allow_subclassing_any = True
2022-03-30 13:28:11 -04:00
[mypy-qemu.qmp.qmp_tui]
2021-08-24 03:37:43 +05:30
# urwid and urwid_readline have no type stubs:
allow_subclassing_any = True
# The following missing import directives are because these libraries do not
# provide type stubs. Allow them on an as-needed basis for mypy.
2021-06-02 20:37:15 -04:00
[mypy-fuse]
2021-08-24 03:37:43 +05:30
ignore_missing_imports = True
2023-08-08 10:03:42 +02:00
[mypy-tomli]
ignore_missing_imports = True
[mypy-tomllib]
ignore_missing_imports = True
2021-08-24 03:37:43 +05:30
[mypy-urwid]
ignore_missing_imports = True
[mypy-urwid_readline]
2021-06-02 20:37:15 -04:00
ignore_missing_imports = True
2021-08-24 03:37:45 +05:30
[mypy-pygments]
ignore_missing_imports = True
2023-05-10 23:54:11 -04:00
2023-05-10 23:54:14 -04:00
[mypy-distlib]
ignore_missing_imports = True
[mypy-distlib.scripts]
ignore_missing_imports = True
2023-05-10 23:54:14 -04:00
[mypy-distlib.version]
ignore_missing_imports = True
[mypy-pip._vendor.distlib]
ignore_missing_imports = True
[mypy-pip._vendor.distlib.scripts]
ignore_missing_imports = True
[mypy-pip._vendor.distlib.version]
ignore_missing_imports = True
2021-05-27 17:17:00 -04:00
[pylint.messages control]
# Disable the message, report, category or checker with the given id(s). You
# can either give multiple identifiers separated by comma (,) or put this
# option multiple times (only on the command line, not in the configuration
# file where it should appear only once). You can also use "--disable=all" to
# disable everything first and then reenable specific checks. For example, if
# you want to run only the similarities checker, you can use "--disable=all
# --enable=similarities". If you want to run only the classes checker, but have
# no Warning level messages displayed, use "--disable=all --enable=classes
# --disable=W".
2021-09-16 14:22:48 -04:00
disable=consider-using-f-string,
consider-using-with,
too-many-arguments,
too-many-positional-arguments,
too-many-function-args, # mypy handles this with less false positives.
too-many-instance-attributes,
2021-09-15 12:29:46 -04:00
no-member, # mypy also handles this better.
2021-05-27 17:17:00 -04:00
[pylint.basic]
# Good variable names which should always be accepted, separated by a comma.
good-names=i,
j,
k,
ex,
Run,
_, # By convention: Unused variable
fh, # fh = open(...)
fd, # fd = os.open(...)
c, # for c in string: ...
T, # for TypeVars. See pylint#3401
2023-05-10 23:54:10 -04:00
SocketAddrT, # Not sure why this is invalid.
_import_ok, # For mkvenv import trickery and compatibility pre-4.x
2021-05-27 17:17:00 -04:00
[pylint.similarities]
# Ignore imports when computing similarities.
ignore-imports=yes
2021-09-16 14:22:47 -04:00
ignore-signatures=yes
2021-05-27 17:17:07 -04:00
# Minimum lines number of a similarity.
# TODO: Remove after we opt in to Pylint 2.8.3. See commit msg.
min-similarity-lines=6
2021-05-27 17:17:07 -04:00
[isort]
force_grid_wrap=4
force_sort_within_sections=True
include_trailing_comma=True
line_length=72
lines_after_imports=2
multi_line_output=3
2021-05-27 17:17:14 -04:00
# tox (https://tox.readthedocs.io/) is a tool for running tests in
# multiple virtualenvs. This configuration file will run the test suite
# on all supported python versions. To use it, "pip install tox" and
# then run "tox" from this directory. You will need all of these versions
# of python available on your system to run this test.
[tox:tox]
2025-04-25 14:07:10 +02:00
envlist = py39, py310, py311, py312, py313
skip_missing_interpreters = true
2021-05-27 17:17:14 -04:00
[testenv]
allowlist_externals = make
2021-06-02 20:37:16 -04:00
deps =
.[devel]
.[fuse] # Workaround to trigger tox venv rebuild
2021-08-24 03:37:42 +05:30
.[tui] # Workaround to trigger tox venv rebuild
2021-05-27 17:17:14 -04:00
commands =
make check
2021-09-15 12:29:55 -04:00
# Coverage.py [https://coverage.readthedocs.io/en/latest/] is a tool for
# measuring code coverage of Python programs. It monitors your program,
# noting which parts of the code have been executed, then analyzes the
# source to identify code that could have been executed but was not.
[coverage:run]
concurrency = multiprocessing
source = qemu/
parallel = true