 45b14be9b6
			
		
	
	
		45b14be9b6
		
	
	
	
	
		
			
			Python 3.13 is in beta and Fedora 41 is preparing to make it the default system interpreter; enable testing for it. (In the event problems develop prior to release, it should only impact the check-python-tox job, which is not run by default and is allowed to fail.) Signed-off-by: John Snow <jsnow@redhat.com> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Tested-by: Alex Bennée <alex.bennee@linaro.org> Message-id: 20240626232230.408004-5-jsnow@redhat.com Signed-off-by: John Snow <jsnow@redhat.com>
		
			
				
	
	
		
			209 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			INI
		
	
	
	
	
	
			
		
		
	
	
			209 lines
		
	
	
		
			5.8 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.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
 | |
|     Typing :: Typed
 | |
| 
 | |
| [options]
 | |
| python_requires = >= 3.8
 | |
| packages =
 | |
|     qemu.qmp
 | |
|     qemu.machine
 | |
|     qemu.utils
 | |
| 
 | |
| [options.package_data]
 | |
| * = py.typed
 | |
| 
 | |
| [options.extras_require]
 | |
| # Remember to update tests/minreqs.txt if changing anything below:
 | |
| devel =
 | |
|     avocado-framework >= 90.0
 | |
|     distlib >= 0.3.6
 | |
|     flake8 >= 5.0.4
 | |
|     fusepy >= 2.0.4
 | |
|     isort >= 5.1.2
 | |
|     mypy >= 1.4.0
 | |
|     pylint >= 2.17.3
 | |
|     pylint != 3.2.4; python_version<"3.9"
 | |
|     tox >= 3.18.0
 | |
|     urwid >= 2.1.2
 | |
|     urwid-readline >= 0.13
 | |
|     Pygments >= 2.9.0
 | |
| 
 | |
| # Provides qom-fuse functionality
 | |
| fuse =
 | |
|     fusepy >= 2.0.4
 | |
| 
 | |
| # QMP TUI dependencies
 | |
| tui =
 | |
|     urwid >= 2.1.2
 | |
|     urwid-readline >= 0.13
 | |
|     Pygments >= 2.9.0
 | |
| 
 | |
| [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
 | |
|     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.utils.qom_fuse]
 | |
| # fusepy has no type stubs:
 | |
| allow_subclassing_any = True
 | |
| 
 | |
| [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-fuse]
 | |
| ignore_missing_imports = True
 | |
| 
 | |
| [mypy-tomli]
 | |
| ignore_missing_imports = True
 | |
| 
 | |
| [mypy-tomllib]
 | |
| ignore_missing_imports = True
 | |
| 
 | |
| [mypy-urwid]
 | |
| ignore_missing_imports = True
 | |
| 
 | |
| [mypy-urwid_readline]
 | |
| ignore_missing_imports = True
 | |
| 
 | |
| [mypy-pygments]
 | |
| ignore_missing_imports = True
 | |
| 
 | |
| [mypy-distlib]
 | |
| ignore_missing_imports = True
 | |
| 
 | |
| [mypy-distlib.scripts]
 | |
| ignore_missing_imports = True
 | |
| 
 | |
| [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
 | |
| 
 | |
| [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.
 | |
| 
 | |
| [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,  # Not sure why this is invalid.
 | |
| 
 | |
| [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
 | |
| skip_missing_interpreters = true
 | |
| 
 | |
| [testenv]
 | |
| allowlist_externals = make
 | |
| deps =
 | |
|     .[devel]
 | |
|     .[fuse]  # Workaround to trigger tox venv rebuild
 | |
|     .[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
 |