Skip to content
Cheap builder for pyproject-based build systems
Python Dockerfile
Branch: master
Clone or download
mgorny Bump to v1
Signed-off-by: Michał Górny <>
Latest commit 51c56a2 Dec 24, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
pyproject2setuppy Bump to v1 Dec 24, 2019
tests Infer module name from handler in tests Dec 24, 2019
Dockerfile Pass FLIT_ROOT_INSTALL for docker Dec 24, 2019
README.rst README: fix broken toml link Dec 24, 2019
pyproject.toml Specify dependencies Dec 24, 2019 Fix fileencoding in Dec 22, 2019
tox.ini Pass FLIT_ROOT_INSTALL for docker Dec 24, 2019


pyproject2setuppy -- a cheap build for pyproject.toml-based systems

pyproject2setuppy is a tool to install pyproject.toml-based packages using plain setuptools. It maps the project metadata into setup() call arguments, making it possible to build them without installing the dependency hell of the new build systems.

Supported features

Currently the following build systems are supported:

Only minimal build/install functionality is supported. Dependencies and sdist-related information are not propagated.

Scripts and entry points are not supported at the moment. This is subject to change in the future.

Unlike the upstream build systems, this package has been tested to work correctly both with Python 2.7 and Python 3.4+.


The runtime (and build time, if using dependencies are:

  • toml (to read pyproject.toml)
  • setuptools (to provide fully-featured commands)


The package provides unittest-compatible test suite. However, due to setuptools output it is recommended to run them using pytest:

$ pytest -vv

Testing on Python 2 requires additional compatibility modules installed:


pyproject2setuppy is using a flit-compliant pyproject.toml. It includes that uses itself to maintain setuptools compatibility. Note that the latter does not install package's dependencies.


In order to use pyproject2setuppy to build a pyproject.toml-based project, either copy the included to the project's directory or call the entry point directly, e.g.:

$ python -m pyproject2setuppy.main build


pyproject2setuppy was written by Michał Górny. It is distributed under the terms of the 2-clause BSD license. A copy of the license is included in the COPYING file.

You can’t perform that action at this time.