mirror of
https://github.com/qemu/qemu.git
synced 2024-11-25 11:53:39 +08:00
7f17908263
https://www.python.org/dev/peps/pep-0561/#specification Create 'py.typed' files in each subpackage that indicate to mypy that this is a typed module, so that users of any of these packages can use mypy to check their code as well. Note: Theoretically it's possible to ditch MANIFEST.in in favor of using package_data in setup.cfg, but I genuinely could not figure out how to get it to include things from the *source root* into the *package root*; only how to include things from each subpackage. I tried! Signed-off-by: John Snow <jsnow@redhat.com> Reviewed-by: Willian Rampazzo <willianr@redhat.com> Reviewed-by: Wainer dos Santos Moschetta <wainersm@redhat.com> Message-id: 20210629214323.1329806-3-jsnow@redhat.com Signed-off-by: John Snow <jsnow@redhat.com> |
||
---|---|---|
.. | ||
qemu | ||
tests | ||
.gitignore | ||
avocado.cfg | ||
Makefile | ||
MANIFEST.in | ||
PACKAGE.rst | ||
Pipfile | ||
Pipfile.lock | ||
README.rst | ||
setup.cfg | ||
setup.py | ||
VERSION |
QEMU Python Tooling =================== This directory houses Python tooling used by the QEMU project to build, configure, and test QEMU. It is organized by namespace (``qemu``), and then by package (e.g. ``qemu/machine``, ``qemu/qmp``, etc). ``setup.py`` is used by ``pip`` to install this tooling to the current environment. ``setup.cfg`` provides the packaging configuration used by ``setup.py`` in a setuptools specific format. You will generally invoke it by doing one of the following: 1. ``pip3 install .`` will install these packages to your current environment. If you are inside a virtual environment, they will install there. If you are not, it will attempt to install to the global environment, which is **not recommended**. 2. ``pip3 install --user .`` will install these packages to your user's local python packages. If you are inside of a virtual environment, this will fail; you likely want the first invocation above. If you append the ``-e`` argument, pip will install in "editable" mode; which installs a version of the package that installs a forwarder pointing to these files, such that the package always reflects the latest version in your git tree. Installing ".[devel]" instead of "." will additionally pull in required packages for testing this package. They are not runtime requirements, and are not needed to simply use these libraries. Running ``make develop`` will pull in all testing dependencies and install QEMU in editable mode to the current environment. See `Installing packages using pip and virtual environments <https://packaging.python.org/guides/installing-using-pip-and-virtual-environments/>`_ for more information. Files in this directory ----------------------- - ``qemu/`` Python package source directory. - ``tests/`` Python package tests directory. - ``avocado.cfg`` Configuration for the Avocado test-runner. Used by ``make check`` et al. - ``Makefile`` provides some common testing/installation invocations. Try ``make help`` to see available targets. - ``MANIFEST.in`` is read by python setuptools, it specifies additional files that should be included by a source distribution. - ``PACKAGE.rst`` is used as the README file that is visible on PyPI.org. - ``Pipfile`` is used by Pipenv to generate ``Pipfile.lock``. - ``Pipfile.lock`` is a set of pinned package dependencies that this package is tested under in our CI suite. It is used by ``make venv-check``. - ``README.rst`` you are here! - ``VERSION`` contains the PEP-440 compliant version used to describe this package; it is referenced by ``setup.cfg``. - ``setup.cfg`` houses setuptools package configuration. - ``setup.py`` is the setuptools installer used by pip; See above.