- bullseye 0.1.0-3
BUILD(1) | build | BUILD(1) |
NAME¶
build - build 0.1.0
A simple, correct PEP 517 package builder.
build will invoke the PEP 517 hooks to build a distribution package. It is a simple build tool and does not perform any dependency management.
PYTHON -M BUILD¶
usage: python -m build [-h] [--version] [--sdist] [--wheel] [--outdir dir]
[--skip-dependencies] [--no-isolation]
[--config-setting CONFIG_SETTING]
[srcdir]
- srcdir
- source directory (defaults to current directory)
- -h, --help
- show this help message and exit
- --version, -V
- show program's version number and exit
- --sdist, -s
- build a source package
- --wheel, -w
- build a wheel
- --outdir <dir>, -o <dir>
- output directory (defaults to {srcdir}/dist)
- --skip-dependencies, -x
- does not check for the dependencies
- --no-isolation, -n
- do not isolate the build in a virtual environment
- --config-setting <config_setting>, -C <config_setting>
- pass option to the backend
NOTE:
By default build will build the package in a isolated environment, but this behavior can be disabled with --no-isolation.
MISSION STATEMENT¶
In the Python ecosystem, the build system tools and the package management are very intertwined. While it might be useful for user to be able to access all this capabilities in a single project (such as pip), there are several usecases where this is not desirable. The main being custom environments (outside PyPI) or situations where the user does its own package management, such as Linux distributions.
This project aims to fit the "building packages hole" for such use-cases in PEP 517/PEP 518 workflows.
As it is intended to be used by users that do their own package management, we will try to keep dependencies to a minimum, in order to try make bootstrapping easier.
DIFFERENCES FROM OTHER TOOLS¶
pep517.build¶
build implements a CLI tailored to end users.
pep517.build contained a proof-of-concept of a PEP 517 frontend. It "implement[ed] essentially the simplest possible frontend tool, to exercise and illustrate how the core functionality can be used". It has since been deprecated and is scheduled for removal.
setup.py sdist bdist_wheel¶
build is roughly the equivalent of setup.py sdist bdist_wheel but with PEP 517 support, allowing use with projects that don't use setuptools.
Custom Behaviors¶
Fallback Backend¶
As recommended in PEP 517, if no backend is specified, build will fallback to setuptools.build_meta:__legacy__.
INSTALLATION¶
You can download a tarball from Github, checkout the latest git tag or fetch the artifacts from project page on PyPI.
build may also be installed via pip or an equivalent:
$ pip install build
The recommended way is to checkout the git tags, as they are PGP signed with one of the following keys:
- •
- 3DCE51D60930EBA47858BA4146F633CBB0EB4BF2 (Filipe Laíns)
Bootstrapping¶
This package can build itself with only the toml and pep517 dependencies. The --skip-dependencies flag should be used in this case.
Compatibility¶
build is verified to be compatible with the following Python versions:
- 2.7
- 3.5
- 3.6
- 3.7
- 3.8
- PyPy(2)
- PyPy3
API DOCUMENTATION¶
This project exposes 2 modules:
build module¶
build - A simple, correct PEP517 package builder
- exception build.BuildBackendException
- Bases: Exception
Exception raised when the backend fails
- exception build.BuildException
- Bases: Exception
Exception raised by ProjectBuilder
- exception build.IncompleteCheckWarning
- Bases: Warning
Warning raised when we have an incomplete check
- class build.ProjectBuilder(srcdir, config_settings=None, python_executable='/usr/bin/python3')
- Bases: object
- build(distribution, outdir)
- Builds a distribution
- distribution (str) -- Distribution to build (sdist or wheel)
- outdir (str) -- Output directory
- Return type
- None
- check_dependencies(distribution)
- Returns a set of the missing dependencies
- Parameters
- distribution (str) -- Distribution to build (sdist or wheel)
- Return type
- Set[str]
- exception build.TypoWarning
- Bases: Warning
Warning raised when a potential typo is found
- requirement_string (str) -- Requirement string
- extra (str) -- Extra (eg. test in myproject[test])
- Return type
- bool
build.env module¶
Creates and manages isolated build environments.
- class build.env.IsolatedEnv
- Bases: object
Abstract base of isolated build environments, as required by the build project.
- abstract property executable
- Return the executable of the isolated build environment.
- Return type
- str
- abstract install(requirements)
- Install PEP-508 requirements into the isolated build environment.
- Parameters
- requirements (Iterable[str]) -- PEP-508 requirements
- Return type
- None
- class build.env.IsolatedEnvBuilder
- Bases: object
AUTHOR¶
Filipe Laíns
COPYRIGHT¶
2021, Filipe Laíns
April 24, 2021 | 0.1.0 |