Skip to main content
Travis CI Status Documentation Status

Setl (pronounced like settle) is a simple way to work with PEP 518 projects with Setuptools as the backend.

The interface is strongly influenced by Flit.

Install

The recommended install method is pipx:

pipx install setl

Setl needs to be installed with Python 3.7 or later, but can be used to build projects using older Python with the --python option.

Quickstart for Setuptools Veterans

Aside from the usual Setuptools configurations, you need to create a file pyproject.toml beside setup.py, with the following content:

[build-system]
requires = ["setuptools>=43", "wheel"]

Command comparisons to Setuptools:

Setl

Setuptools approximation

setl develop

setup.py develop

setl build

setup.py egg_info build

setl dist

setup.py egg_info build sdist bdist_wheel

setl publish

setup.py egg_info build sdist bdist_wheel
twine upload

But Why?

The main difference is how build and runtime dependencies are installed.

Traditionally Setuptools projects use setup_requires, but that has various problems (e.g. fetch the dependencies as eggs) so pip discourages its usage, and advices using PEP 518 to specify build time dependencies instead. But Setuptools’s project management commands do not handle PEP 518 declarations, leaving the user to install those build dependencies manually before using setup.py. Setl commands mimic pip’s build setup before calling their setup.py counterparts, so the build environment stays up-to-date.

Similarly, setup.py develop installs runtime dependencies with easy_install, instead of pip. It therefore does not respect PEP 518 declarations in those dependencies, and may even fail if one of the dependencies does not support the “legacy mode” build process. setl develop works around this by pip install-ing runtime dependencies before calling setup.py develop --no-deps, so dependencies are installed in the modern format.

The rest are more about providing more useful defaults. It is easy to forget re-building egg-info when you modify metadata, so Setl tries to be helpful. Nowadays people almost always want to build both sdist and wheel, so Setl does it by default. The PyPA recommends against using setup.py upload, so Setl bundles it. Nothing rocket science.

Next Steps

  • Read the documentation for detailed command descriptions and inner workings.

  • View the source and help contribute to the project.

Release files for setl 0.9.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for setl 0.9.0
File Size Uploaded
setl-0.9.0.tar.gz 15.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for setl 0.9.0
File Interpreter ABI Platform
setl-0.9.0-py2.py3-none-any.whl Python 2, Python 3 none any Details

Total release size: 33.9 kB

Release files / setl-0.9.0.tar.gz

Download URL setl-0.9.0.tar.gz
Size 15.3 kB
Tags Source
SHA-256 checksum
How to use checksums
e29405d17b7873e5a22c942090db2bd3eaf16e841841630a75b9c29cf411a056
BLAKE2b-256 checksum
How to use checksums
67bb494d9eadbf5bf3fac20c2276674e7e8f408e9ebda2cedd9f88fc449a7de5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.41.0 CPython/3.8.1

Release files / setl-0.9.0-py2.py3-none-any.whl

Download URL setl-0.9.0-py2.py3-none-any.whl
Size 18.6 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
a62c5399508931d66e2a2ccde1d4d5fd43c99614cec92ebb785a87af25bdb345
BLAKE2b-256 checksum
How to use checksums
d39c7096ee59a13ec2e2960b817e4b0afbc61299e0dbe8b84ca67d38b5c76486
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.41.0 CPython/3.8.1

Release history Release notifications | RSS feed

0.10.0

2 release files

0.9.2

2 release files

0.9.1

2 release files

This release

0.9.0 This release

2 release files

0.8.5

2 release files

0.8.4

2 release files

0.8.3

2 release files

0.8.2

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.2

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page