$npx skillfedfor your agent

pep517

Wrappers to build Python packages using PEP 517 hooks

With conditionsPyPI Build ToolsReleased Nov 20239.4M downloads / mopermissive licensePure Python

Decision gist · record as of 2026-08-14

pure-Python wheel — pep517-0.13.1-py3-none-any.whl
v0.13.1 · released 2023-11-08 · Python >=3.6 · 3 runtime deps: tomli, importlib_metadata, zipp

Yes, if you are building a build frontend or need subprocess isolation for PEP 517 backends. No, if you are packaging a single project—use the build package instead. The package is stable and well-maintained, but its deprecation status means new code should prefer pyproject-hooks or build unless you have a specific reason to use pep517 directly.AI-flagged interpretation of the facts on this page — verify before relying

Before you install

  • You must manually ensure build requirements from pyproject.toml are installed in the environment before calling hooks.
  • Low friction: pure Python wheel with three lightweight runtime dependencies (tomli, importlib_metadata, zipp).
  • Active maintenance as of April 2026, though the package itself is deprecated in favor of pyproject-hooks and build.

License · maintenance · safety

permissive license (permissive) — MIT license (permissive): you can use this freely in commercial and private projects with minimal restrictions.

last release 2023-11-08 (1010 days) · last repo commit 2026-04-05 · 128 stars

0 known vulnerabilities (OSV.dev, 2026-08-14) · 9,358,627 downloads/mo, #1,542 on PyPI

Verify before relying

import os
import tomli
from pep517.wrappers import Pep517HookCaller

src = 'path/to/source'
with open(os.path.join(src, 'pyproject.toml'), 'rb') as f:
    build_sys = tomli.load(f)['build-system']

hooks = Pep517HookCaller(
    src,
    build_backend=build_sys['build-backend'],
    backend_path=build_sys.get('backend-path'),
)
whl_filename = hooks.build_wheel('destination/folder', {})
  • Whether the package's deprecation status affects long-term support or if it remains stable for existing users.
  • Performance characteristics when calling hooks in subprocess isolation versus direct backend invocation.
Same gist for agents: .md · .json

What it is and what it does

pep517 is a low-level wrapper around the PEP 517 and PEP 660 build system specifications for Python packages. It lets you call build backend hooks (like build_wheel, build_sdist) in an isolated subprocess, with fallbacks for optional hooks so you don't have to check which ones are defined. The package handles the mechanics of invoking a package's build backend without running it in your current process.

The package is now deprecated in favor of pyproject-hooks (lower level) and build (higher level), but remains actively maintained. It depends on tomli for reading pyproject.toml, plus importlib_metadata and zipp for compatibility. You are responsible for installing the build requirements specified in pyproject.toml before calling the hooks.

Use it for

  • Build a Python wheel or sdist from a source directory with a PEP 517 backend, isolating the backend process.
  • Query a build backend for its dynamic build requirements before installing them.
  • Test whether a project's build backend is correctly configured using the command-line check tool.
  • Implement a custom build frontend that needs to call multiple backends with subprocess isolation.

Worth the install?

AI-flagged interpretation of the facts on this page. Verify before relying on it.

With conditions

Yes, if you are building a build frontend or need subprocess isolation for PEP 517 backends.

No, if you are packaging a single project—use the build package instead. The package is stable and well-maintained, but its deprecation status means new code should prefer pyproject-hooks or build unless you have a specific reason to use pep517 directly.

Install

pep517 on PyPI

Before you install

Low friction: pure Python wheel with three lightweight runtime dependencies (tomli, importlib_metadata, zipp). Active maintenance as of April 2026, though the package itself is deprecated in favor of pyproject-hooks and build.

You must manually ensure build requirements from pyproject.toml are installed in the environment before calling hooks.

License in practice

MIT license (permissive): you can use this freely in commercial and private projects with minimal restrictions.

Quickstart

import os
import tomli
from pep517.wrappers import Pep517HookCaller

src = 'path/to/source'
with open(os.path.join(src, 'pyproject.toml'), 'rb') as f:
    build_sys = tomli.load(f)['build-system']

hooks = Pep517HookCaller(
    src,
    build_backend=build_sys['build-backend'],
    backend_path=build_sys.get('backend-path'),
)
whl_filename = hooks.build_wheel('destination/folder', {})

Verify before relying

  • Whether the package's deprecation status affects long-term support or if it remains stable for existing users.
  • Performance characteristics when calling hooks in subprocess isolation versus direct backend invocation.

Package facts

Licensepermissive license permissive
Python supportSupports the current Python release >=3.6
Install frictionLow. Pure-Python wheel
Runtime dependencies
3 packages
tomliimportlib_metadatazipp
MaintenanceActively maintained 1,010 days since the last release
Last repo commit
First released
Downloads9,358,627 / month, #1,542 on PyPI 30-day window, as of 2026-08-14
Known vulnerabilitiesNone known OSV.dev, checked 2026-08-14
Classifiers
License :: OSI Approved :: MIT LicenseProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: Only

Evidence: pep517-0.13.1-py3-none-any.whl

Tags

Capabilities
pep 517 build hookspython package build backendbuild system wrapperpep 660 editable installsubprocess build isolationpython build frontend
Topics
build-systempep-517packaging

Let your AI agent find packages like this

Example. Real query, live index.

You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.

wish › “pep 517 build hooks”

  • pep517Provides subprocess-isolated wrappers around PEP 517 and PEP 660…
  • validate-pyprojectValidates pyproject.toml files against JSON Schema definitions to…
  • buildBuilds Python packages in isolated environments, generating wheels…

Give your agent the search over MCP, or paste the wish link into any chat.

More Build Tools packages

packaging Worth it
PyPI · Build Tools · released Aug 2026

Provides reusable utilities for Python packaging interoperability, including version handling, specifiers, markers, requirements, tags, and metadata parsing according to standards like PEP 440 and PEP 425.

Apache-2.0 OR BSD-2-Clausepure Python · 3.9+
2.2Bdownloads / mo
tqdm Worth it
PyPI · Libraries · released Jul 2026

Wraps any iterable to display a real-time progress bar in the terminal or Jupyter notebook, showing iteration count, elapsed time, and estimated time remaining.

copyleftpure Python · 3.8+
648.6Mdownloads / mo
pip Worth it
PyPI · Build Tools · released Aug 2026

pip is the standard installer for Python packages, enabling you to download and install packages from the Python Package Index and other indexes into your Python environment.

MITpure Python · 3.10+
617.5Mdownloads / mo
hatchling Worth it
PyPI · Python Modules · released Aug 2026

Hatchling is a standards-compliant Python build backend that handles packaging, metadata, and distribution of Python projects when configured in a project's pyproject.toml file.

MITpure Python · 3.10+
484.2Mdownloads / mo
grpcio-tools Worth it
PyPI · Build Tools · released Jul 2026

Generates Python gRPC service stubs and message classes from Protocol Buffer definitions, enabling developers to build gRPC clients and servers.

Apache-2.0compiled wheel · 3.10+
278.2Mdownloads / mo
pre-commit Worth it
PyPI · Build Tools · released Aug 2026

pre-commit is a framework for installing and running git hooks written in any language before commits are made, automating code quality and validation checks across multi-language projects.

Install it if your team needs consistent, automated validation at commit time.

permissive licensepure Python · 3.10+
179.9Mdownloads / mo

See also pyproject-hooks · build · meson-python · wheel-stub · pdm-pep517 · poetry-core · whool · PyQt-builder · logging · virtualenvwrapper