TABLE OF CONTENTS
python-wheel.cygclass
[ Top ] [ Cygclasses ] [ Cygclasses ]
DESCRIPTION
Wheels are the standard for installing Python libraries and programs. The build is defined by a PEP 518 conformant source tree, or by a top-level setup.cfg or setup.py file, which controls the installation of files and the building of C Python extensions. Many such packages are hosted on the Python Package Index (PyPI).
This cygclass handles the building of wheel-based Python module packages for multiple Python versions simultaneously.
EXAMPLE
inherit python-wheel NAME="python-six" VERSION=1.10.0 RELEASE=1 CATEGORY="Python" SUMMARY="Python 2 and 3 compatibility library" DESCRIPTION="Six is a Python 2 and 3 compatibility library. It provides utility functions for smoothing over the differences between the Python versions with the goal of writing Python code that is compatible on both Python versions." ARCH=noarch
INHERITS
REQUIRES
pythonXY, pythonXY-pip (for each X.Y version of Python being built)
PYTHON_WHEEL_VERSIONS
[ Top ] [ python-wheel.cygclass ] [ Variables ]
SYNOPSIS
PYTHON_WHEEL_VERSIONS="3.5:3.6" # e.g. added to stdlib in 3.7 inherit python-wheel
DESCRIPTION
A colon-seperated list of version(s) for which this module should be built. Some aliases are also accepted:
- all: all supported 3.y versions (currently: 3.6 through 3.9)
- future: the default and upcoming 3.y versions (currently: 3.9, 3.10)
- default: the default 3.y version(s) (currently: 3.8, 3.9)
- 2: the default 2.x version (permanently 2.7)
- 3: the default 3.x version (currently: 3.9)
This variable must be defined before inheriting python-wheel.cygclass. If undefined, "default" is assumed.
NOTES
- Python 2.7 is no longer supported upstream, and all code should be moving to Python 3.y. A 2.x version appearing in PYTHON_WHEEL_VERSIONS is now an error.
- It is not generally expected for wheel packages to be built with "all". This option is primarily intended for the most basic modules used to build, install, and run other modules (e.g. setuptools, wheel, pip, and virtualenv). The "default" value is sufficient for most packages.
- The value "future" is intended to allow maintainers to get a head start on rebuilding for the new version, but the maintainer must first assure that the module works correctly on the new version and that either there are no module dependencies outside of the standard library, or that they too are already available.
PKG_NAMES (python-wheel)
[ Top ] [ python-wheel.cygclass ] [ Overloads ]
DESCRIPTION
For a NAME of python-foo, pythonXY-foo binary packages are created automatically, corresponding to each X.Y version in PYTHON_WHEEL_VERSIONS. Each package also includes its own independent copy of the automatically installed documentation (COPYING, README, etc.). For those packages which install scripts into /usr/bin, these should be added to the respective pythonXY_foo_CONTENTS.
python_wheel_compile
[ Top ] [ python-wheel.cygclass ] [ Compile Functions ]
SYNOPSIS
python_wheel_compile [OPTIONS]
DESCRIPTION
If a setup.py file is present, runs the setup.py 'bdist_wheel' command, to which any arguments are passed. Otherwise, for a PEP 518 conformant source tree, runs 'pip wheel'.
python_wheel_install
[ Top ] [ python-wheel.cygclass ] [ Install Functions ]
SYNOPSIS
python_wheel_install [OPTIONS]
DESCRIPTION
Installs the previously built wheel into $D.
dowheel
[ Top ] [ python-wheel.cygclass ] [ Install Functions ]
SYNOPSIS
dowheel WHEEL [WHEEL] ...
DESCRIPTION
Installs the given Python wheel(s) into $D/usr/share/python-wheels, to allow offline installation in Python virtual environments.
src_compile (python-wheel)
[ Top ] [ python-wheel.cygclass ] [ Overloads ]
DEFINITION
src_compile() { lndirs cd ${B} python_wheel_compile }
src_install (python-wheel)
[ Top ] [ python-wheel.cygclass ] [ Overloads ]
DEFINITION
src_install() { cd ${B} python_wheel_install }