https://github.com/python-poetry/poetry-core
Poetry PEP 517 Build Backend & Core Utilities
https://github.com/python-poetry/poetry-core
build-tools packaging pep517 py pypi python
Last synced: 19 days ago
JSON representation
Poetry PEP 517 Build Backend & Core Utilities
- Host: GitHub
- URL: https://github.com/python-poetry/poetry-core
- Owner: python-poetry
- License: mit
- Created: 2020-02-07T16:26:32.000Z (about 5 years ago)
- Default Branch: main
- Last Pushed: 2025-04-07T20:41:46.000Z (24 days ago)
- Last Synced: 2025-04-12T01:49:17.035Z (19 days ago)
- Topics: build-tools, packaging, pep517, py, pypi, python
- Language: Python
- Homepage:
- Size: 3.78 MB
- Stars: 456
- Watchers: 14
- Forks: 257
- Open Issues: 25
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- awesome-ccamel - python-poetry/poetry-core - Poetry PEP 517 Build Backend & Core Utilities (Python)
README
# Poetry Core
[](https://python-poetry.org/)
[](https://pypi.org/project/poetry-core/)
[](https://pypi.org/project/poetry-core/)
[](https://opensource.org/licenses/MIT)
[](https://github.com/python-poetry/poetry-core/actions?query=workflow%3ATests)A [PEP 517](https://www.python.org/dev/peps/pep-0517/) build backend implementation developed for
[Poetry](https://github.com/python-poetry/poetry). This project is intended to be a lightweight, fully compliant,
self-contained package allowing PEP 517-compatible build frontends to build Poetry-managed projects.## Usage
In most cases, the usage of this package is transparent to the end-user as it is either used by Poetry itself
or a PEP 517 frontend (eg: `pip`).In order to enable the use of `poetry-core` as your build backend, the following snippet must be present in your
project's `pyproject.toml` file.```toml
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"
```Once this is present, a PEP 517 frontend like `pip` can build and install your project from source without the need
for Poetry or any of its dependencies (besides `poetry-core`).```shell
# install to current environment
pip install /path/to/poetry/managed/project# build a wheel package
pip wheel /path/to/poetry/managed/project
```## Why is this required?
Prior to the release of version `1.1.0`, Poetry was a project management tool that included a PEP 517
build backend. This was inefficient and time consuming when a PEP 517 build was required. For example,
both `pip` and `tox` (with isolated builds) would install Poetry and all dependencies it required. Most of these
dependencies are not required when the objective is to simply build either a source or binary distribution of your
project.In order to improve the above situation, `poetry-core` was created. Shared functionality pertaining to PEP 517 build
backends, including reading `pyproject.toml` and building wheel/sdist, were implemented in this package. This
makes PEP 517 builds extremely fast for Poetry-managed packages.