summaryrefslogtreecommitdiff
path: root/python/setup.cfg
blob: fdca265fec056a239664de892cc16d6b4c2852c8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
[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
    Typing :: Typed

[options]
python_requires = >= 3.6
packages =
    qemu.qmp
    qemu.machine
    qemu.utils

[options.package_data]
* = py.typed

[options.extras_require]
# For the devel group, When adding new dependencies or bumping the minimum
# version, use e.g. "pipenv install --dev pylint==3.0.0".
# Subsequently, edit 'Pipfile' to remove e.g. 'pylint = "==3.0.0'.
devel =
    avocado-framework >= 87.0
    flake8 >= 3.6.0
    fusepy >= 2.0.4
    isort >= 5.1.2
    mypy >= 0.770
    pylint >= 2.8.0
    tox >= 3.18.0

# Provides qom-fuse functionality
fuse =
    fusepy >= 2.0.4

[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
    qom-fuse = qemu.qmp.qom_fuse:QOMFuse.entry_point [fuse]
    qemu-ga-client = qemu.qmp.qemu_ga_client:main
    qmp-shell = qemu.qmp.qmp_shell:main

[flake8]
extend-ignore = E722  # Prefer pylint's bare-except checks to flake8's
exclude = __pycache__,

[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=consider-using-f-string,

[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
ignore-signatures=yes

# Minimum lines number of a similarity.
# TODO: Remove after we opt in to Pylint 2.8.3. See commit msg.
min-similarity-lines=6


[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
skip_missing_interpreters = true

[testenv]
allowlist_externals = make
deps =
    .[devel]
    .[fuse]  # Workaround to trigger tox venv rebuild
commands =
    make check