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
|
2021-06-29 17:43:10 -04:00
|
|
|
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
|
|
|
|
2021-06-29 17:43:10 -04:00
|
|
|
[options.package_data]
|
|
|
|
|
* = py.typed
|
|
|
|
|
|
2021-05-27 17:17:10 -04:00
|
|
|
[options.extras_require]
|
2023-02-09 19:31:42 -05:00
|
|
|
# Remember to update tests/minreqs.txt if changing anything below:
|
2021-05-27 17:17:10 -04:00
|
|
|
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
|
2021-05-27 17:17:10 -04:00
|
|
|
isort >= 5.1.2
|
2023-07-05 12:40:46 +02:00
|
|
|
mypy >= 1.4.0
|
2023-05-16 11:59:36 +02:00
|
|
|
pylint >= 2.17.3
|
2024-06-26 19:22:28 -04:00
|
|
|
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-05-27 17:17:10 -04:00
|
|
|
|
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 =
|
2022-01-10 18:28:54 -05:00
|
|
|
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
|
|
|
|
2022-01-10 18:28:54 -05: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
|
|
|
|
|
|
2023-05-16 12:08:11 +02:00
|
|
|
[mypy-distlib.scripts]
|
|
|
|
|
ignore_missing_imports = True
|
|
|
|
|
|
2023-05-10 23:54:14 -04:00
|
|
|
[mypy-distlib.version]
|
|
|
|
|
ignore_missing_imports = True
|
|
|
|
|
|
2023-05-16 09:05:51 +02:00
|
|
|
[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,
|
2022-01-28 16:11:57 +00:00
|
|
|
consider-using-with,
|
|
|
|
|
too-many-arguments,
|
2024-11-01 13:36:59 -04:00
|
|
|
too-many-positional-arguments,
|
2021-09-15 12:29:44 -04:00
|
|
|
too-many-function-args, # mypy handles this with less false positives.
|
2022-01-28 16:11:57 +00:00
|
|
|
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,
|
2021-06-02 20:37:09 -04:00
|
|
|
_, # By convention: Unused variable
|
|
|
|
|
fh, # fh = open(...)
|
|
|
|
|
fd, # fd = os.open(...)
|
|
|
|
|
c, # for c in string: ...
|
2021-09-15 12:29:31 -04:00
|
|
|
T, # for TypeVars. See pylint#3401
|
2023-05-10 23:54:10 -04:00
|
|
|
SocketAddrT, # Not sure why this is invalid.
|
2025-11-18 15:06:55 -05:00
|
|
|
_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
|
|
|
|
2021-08-09 11:01:00 +02: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
|
2021-06-30 15:45:46 -03:00
|
|
|
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
|