
Because fusepy does not have type hints, add some targeted warning suppressions. Namely, we need to allow subclassing something of an unknown type (in qom_fuse.py), and we need to allow missing imports (recorded against fuse itself) because mypy will be unable to import fusepy (even when installed) as it has no types nor type stubs available. Note: Until now, it was possible to run invocations like 'mypy qemu/' from ./python and have that work. However, these targeted suppressions require that you run 'mypy -p qemu/' instead. The correct, canonical invocation is recorded in ./python/tests/mypy.sh and all of the various CI invocations always use this correct form. Signed-off-by: John Snow <jsnow@redhat.com> Message-id: 20210603003719.1321369-16-jsnow@redhat.com Signed-off-by: John Snow <jsnow@redhat.com>
120 lines
3.4 KiB
INI
120 lines
3.4 KiB
INI
[metadata]
|
|
name = qemu
|
|
version = file:VERSION
|
|
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
|
|
Programming Language :: Python :: 3.6
|
|
Programming Language :: Python :: 3.7
|
|
Programming Language :: Python :: 3.8
|
|
Programming Language :: Python :: 3.9
|
|
Programming Language :: Python :: 3.10
|
|
|
|
[options]
|
|
python_requires = >= 3.6
|
|
packages =
|
|
qemu.qmp
|
|
qemu.machine
|
|
qemu.utils
|
|
|
|
[options.extras_require]
|
|
# Run `pipenv lock --dev` when changing these requirements.
|
|
devel =
|
|
avocado-framework >= 87.0
|
|
flake8 >= 3.6.0
|
|
isort >= 5.1.2
|
|
mypy >= 0.770
|
|
pylint >= 2.8.0
|
|
tox >= 3.18.0
|
|
|
|
[options.entry_points]
|
|
console_scripts =
|
|
qom = qemu.qmp.qom:main
|
|
qom-set = qemu.qmp.qom:QOMSet.entry_point
|
|
qom-get = qemu.qmp.qom:QOMGet.entry_point
|
|
qom-list = qemu.qmp.qom:QOMList.entry_point
|
|
qom-tree = qemu.qmp.qom:QOMTree.entry_point
|
|
|
|
[flake8]
|
|
extend-ignore = E722 # Prefer pylint's bare-except checks to flake8's
|
|
exclude = __pycache__,
|
|
.venv,
|
|
.tox,
|
|
|
|
[mypy]
|
|
strict = True
|
|
python_version = 3.6
|
|
warn_unused_configs = True
|
|
namespace_packages = True
|
|
|
|
[mypy-qemu.qmp.qom_fuse]
|
|
# fusepy has no type stubs:
|
|
allow_subclassing_any = True
|
|
|
|
[mypy-fuse]
|
|
# fusepy has no type stubs:
|
|
ignore_missing_imports = True
|
|
|
|
[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".
|
|
disable=too-many-arguments,
|
|
too-many-instance-attributes,
|
|
too-many-public-methods,
|
|
|
|
[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: ...
|
|
|
|
[pylint.similarities]
|
|
# Ignore imports when computing similarities.
|
|
ignore-imports=yes
|
|
|
|
[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
|
|
|
|
# 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]
|
|
envlist = py36, py37, py38, py39, py310
|
|
|
|
[testenv]
|
|
allowlist_externals = make
|
|
deps = .[devel]
|
|
commands =
|
|
make check
|