A drop in replacement for python setuptools that uses pyproject.toml files for python 3.6+ projects
To install run pip install ppsetuptools
in your project.
Place your project settings in the [project]
table of your pyproject.toml.
Also ensure that ppsetuptools
is included in your [build-system]
table
in the requires
list.
Replace setuptools import in your setup.py
with an import of ppsetuptools.
ppsetuptools exposes all functions from setuptools, and in addition will map
your pyproject.toml
data to the call to setuptools.setup
for you (via
PEP-621 compliant entries).
[project]
name = 'my_package'
project_name = 'my_package'
version = '1.0.0'
readme = 'README.md'
install_requires = [
'setuptools',
'toml'
]
include_package_data = true
[build-system]
requires = [
'setuptools >= 40.8.0',
'ppsetuptools',
'wheel >= 0.35.1',
'toml >= 0.10.1'
]
build-backend = 'setuptools.build_meta'
from ppsetuptools import setup
setup()
As of now, the library attempts to find a pyproject.toml
file in the same
directory as the python file that called it. So if calling directly from
setup.py
, ensure that your pyproject.toml
file is in the same directory.
As well any file references (such as the readme
) will attempt to be followed
from this location.
E.g., if including a redme = 'README.md'
value, ppsetuptools will look for
README.md
in the same directory as the file that called it.
As of now, ppsetuptools does not support calculated values within the
pyproject.toml
file. If calculated values are needed, ppsetuptools
will combine the args passed to the setup
call with the values in the
pyproject.toml
file, so you may call setup like so, and it will still use your
pyproject.toml
values in addition to the passed values.
from ppsetuptools import setup, find_packages
setup(
find_packages(exclude=['tests'])
)