|
Metadata-Version: 2.1
|
|
Name: pep517
|
|
Version: 0.3
|
|
Summary: Wrappers to build Python packages using PEP 517 hooks
|
|
Home-page: https://github.com/takluyver/pep517
|
|
License: UNKNOWN
|
|
Author: Thomas Kluyver
|
|
Author-email: thomas@kluyver.me.uk
|
|
Description-Content-Type: text/x-rst
|
|
Classifier: License :: OSI Approved :: MIT License
|
|
Requires-Dist: pytoml
|
|
Provides-Extra: .none
|
|
|
|
`PEP 517 <https://www.python.org/dev/peps/pep-0517/>`_ specifies a standard
|
|
API for systems which build Python packages.
|
|
|
|
This package contains wrappers around the hooks specified by PEP 517. It
|
|
provides:
|
|
|
|
- A mechanism to call the hooks in a subprocess, so they are isolated from
|
|
the current process.
|
|
- Fallbacks for the optional hooks, so that frontends can call the hooks without
|
|
checking which are defined.
|
|
- Higher-level functions which install the build dependencies into a
|
|
temporary environment and build a wheel/sdist using them.
|
|
|
|
Run the tests with ``py.test``.
|
|
|
|
High level usage, with build requirements handled:
|
|
|
|
.. code-block:: python
|
|
|
|
import os
|
|
from pep517.envbuild import build_wheel, build_sdist
|
|
|
|
src = 'path/to/source' # Folder containing 'pyproject.toml'
|
|
destination = 'also/a/folder'
|
|
whl_filename = build_wheel(src, destination)
|
|
assert os.path.isfile(os.path.join(destination, whl_filename))
|
|
|
|
targz_filename = build_sdist(src, destination)
|
|
assert os.path.isfile(os.path.join(destination, targz_filename))
|
|
|
|
Lower level usage—you are responsible for ensuring build requirements are
|
|
available:
|
|
|
|
.. code-block:: python
|
|
|
|
import os
|
|
from pep517.wrappers import Pep517HookCaller
|
|
|
|
src = 'path/to/source' # Folder containing 'pyproject.toml'
|
|
hooks = Pep517HookCaller(src)
|
|
print(hooks.build_sys_requires) # List of static requirements
|
|
|
|
config_options = {} # Optional parameters for backend
|
|
# List of dynamic requirements:
|
|
print(hooks.get_requires_for_build_wheel(config_options))
|
|
|
|
destination = 'also/a/folder'
|
|
whl_filename = hooks.build_wheel(destination, config_options)
|
|
assert os.path.isfile(os.path.join(destination, whl_filename))
|
|
|
|
To test the build backend for a project, run in a system shell:
|
|
|
|
.. code-block:: shell
|
|
|
|
python3 -m pep517.check path/to/source # source dir containing pyproject.toml
|
|
|