File: setup.cfg

package info (click to toggle)
python-qemu-qmp 0.0.5-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 564 kB
  • sloc: python: 2,819; makefile: 157; sh: 2
file content (191 lines) | stat: -rw-r--r-- 5,901 bytes parent folder | download | duplicates (2)
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
[metadata]
name = qemu.qmp
# version is set by setuptools_scm
author = QEMU Project
author_email = qemu-devel@nongnu.org
maintainer = John Snow
maintainer_email = jsnow@redhat.com
url = https://gitlab.com/qemu-project/python-qemu-qmp
project_urls =
    Homepage = https://www.qemu.org/
    Documentation = https://qemu.readthedocs.io/projects/python-qemu-qmp/en/latest/
    Changelog = https://qemu.readthedocs.io/projects/python-qemu-qmp/en/latest/main.html#changelog
    Issues = https://gitlab.com/qemu-project/python-qemu-qmp/-/issues
    Source = https://gitlab.com/qemu-project/python-qemu-qmp
description = QEMU Monitor Protocol library
long_description = file:README.rst
long_description_content_type = text/x-rst
classifiers =
    Development Status :: 3 - Alpha
    Intended Audience :: Developers
    License :: OSI Approved :: GNU Lesser General Public License v2 or later (LGPLv2+)
    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.8
    Programming Language :: Python :: 3.9
    Programming Language :: Python :: 3.10
    Programming Language :: Python :: 3.11
    Programming Language :: Python :: 3.12
    Programming Language :: Python :: 3.13
    Programming Language :: Python :: 3.14
    Topic :: System :: Emulators
    Typing :: Typed

[options]
python_requires = >= 3.8
packages =
    qemu.qmp

[options.package_data]
* = py.typed

[options.extras_require]
# When adding new development requires:
#
# Make your best effort to add the oldest possible version that will
# still work. Update tests/minreqs.txt with any new dependencies needed
# to run "make check".
devel =
    pytest >= 5.2.1
    coverage >= 6.1.0
    flake8 >= 5.0.4
    isort >= 5.1.2
    mypy >= 1.4.0
    pylint >= 2.17.3
    setuptools >= 66.1.0; python_version>="3.12"
    tox >= 3.18.0
    urwid >= 2.1.2
    urwid-readline >= 0.13
    Pygments >= 2.9.0

# QMP TUI dependencies
tui =
    urwid >= 2.1.2
    urwid-readline >= 0.13
    Pygments >= 2.9.0

# Docs-building requirements
build-docs =
    sphinx >= 5.3.0
    sphinx_rtd_theme >= 1.1.1
    setuptools_scm >= 8.0.0

[options.entry_points]
console_scripts =
    qmp-shell = qemu.qmp.qmp_shell:main
    qmp-shell-wrap = qemu.qmp.qmp_shell:main_wrap
    qmp-tui = qemu.qmp.qmp_tui:main [tui]

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

[mypy]
strict = True
python_version = 3.8
warn_unused_configs = True
namespace_packages = True
warn_unused_ignores = False

[mypy-qemu.qmp.qmp_tui]
# 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.
[mypy-urwid]
ignore_missing_imports = True

[mypy-urwid_readline]
ignore_missing_imports = True

[mypy-pygments]
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,
        consider-using-with,
        too-many-arguments,
        too-many-function-args,  # mypy handles this with less false positives.
        too-many-instance-attributes,
        no-member,  # mypy also handles this better.
        unknown-option-value,  # pre and post "too-many-positional-arguments"

[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
           SocketAddrT,  # Type Alias, won't change it now.

[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 = py38, py39, py310, py311, py312, py313, py314
skip_missing_interpreters = true

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

# 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

# setup.cfg
[tool:pytest]
minversion = 5.2.1
addopts = -v --junit-xml=test-results/results.xml
testpaths =
    tests