Metadata-Version: 2.1
Name: setl
Version: 0.4.0
Summary: Packaging tool for PEP 518 projects with Setuptools backend.
Home-page: https://github.com/uranusjr/setl
Author: Tzu-ping Chung
Author-email: uranusjr@gmail.com
License: ISC
Platform: UNKNOWN
Requires-Python: >=3.8
Description-Content-Type: text/x-rst
Requires-Dist: pep517
Requires-Dist: pip
Requires-Dist: toml
Requires-Dist: twine
Provides-Extra: test
Requires-Dist: pytest ; extra == 'test'

====
Setl
====

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_. Currently a proof of concept.

.. _Flit: https://flit.readthedocs.io/en/latest/


Usage
=====

1. Create a project with appropriate ``setup.py`` and/or ``setup.cfg`` metadata
   declarations.

2. Create ``pyproject.toml`` and provide the needed `PEP 518`_ definitions. An
   empty file is sufficient if you want to use the default values.

3. Run this command to upload your code to PyPI (using ``--python`` to
   specify the Python to build the package against)::

        setl --python path/to/python publish

.. _`PEP 518`: https://www.python.org/dev/peps/pep-0518/


Miscellaneous
=============

To install a package locally for development, run::

    setl --python path/to/python develop

(But ``path/to/python -m pip install --editable .`` is probably better.)

All *build* commands are available via ``setl build``::

    setl --python path/to/python build [--ext] [--py] [--clib] [--scripts]

To create package distributions (equivalent to ``flit build``), use::

    setl --python path/to/python dist [--source] [--wheel]

The ``--python`` specification accepts one of the followings:

* Absolute or relative path to a Python executable.
* Python command (``shutil.which`` is used to resolve).
* Python version specifier (the `Python launcher`_ is used to resolve).

.. _`Python launcher`: https://www.python.org/dev/peps/pep-0397/

It can also be specified by environment variable ``SETL_PYTHON``.

If not specified, Setl will try to infer the command from virtual environment
contextx, both the one currently active, and the one Setl is installed in.
The option is required if there’s no active virtual environment, and Setl is
installed globally.


