python_distribution
A publishable Python setuptools distribution (e.g. an sdist or wheel).
dependencies
dependencies
type: Iterable[str] | None
default: None
Addresses to other targets that this target depends on, e.g. ['helloworld/subdir:lib'].
Alternatively, you may include file names. Pants will find which target owns that file, and create a new target from that which only includes the file in its sources
field. For files relative to the current BUILD file, prefix with ./
; otherwise, put the full path, e.g. ['./sibling.txt', 'resources/demo.json'].
You may exclude dependencies by prefixing with !
, e.g. ['!helloworld/subdir:lib', '!./sibling.txt']
. Ignores are intended for false positives with dependency inference; otherwise, simply leave off the dependency from the BUILD file.
description
description
type: str | None
default: None
A human-readable description of the target.
Use ./pants list --documented ::
to see all targets with descriptions.
entry_points
entry_points
type: Dict[str, Dict[str, str]] | None
default: None
Any entry points, such as console_scripts
and gui_scripts
.
Specify as a nested dictionary, with a dictionary for each type of entry point, e.g. console_scripts
vs. gui_scripts
. Each dictionary maps the entry point name to either a setuptools entry point ("path.to.module:func") or a Pants target address to a pex_binary target.
Example:
entry_points={
"console_scripts": {
"my-script": "project.app:main",
"another-script": "project/subdir:pex_binary_tgt"
}
}
Note that Pants will assume that any value that either starts with :
or has /
in it, is a target address to a pex_binary target. Otherwise, it will assume it's a setuptools entry point as defined by https://packaging.python.org/specifications/entry-points/#entry-points-specification. Use //
as a prefix for target addresses if you need to disambiguate.
Pants will attempt to infer dependencies, which you can confirm by running:
./pants dependencies <python_distribution target address>
generate_setup
generate_setup
type: bool | None
default: None
Whether to generate setup information for this distribution, based on analyzing sources and dependencies. Set to False to use existing setup information, such as existing setup.py, setup.cfg, pyproject.toml files or similar.
provides
provides
type: PythonArtifact
required
The setup.py kwargs for the external artifact built from this target.
You must define name
. You can also set almost any keyword argument accepted by setup.py in the setup()
function: (https://packaging.python.org/guides/distributing-packages-using-setuptools/#setup-args).
See Custom setup_py()
kwargs for how to write a plugin to dynamically generate kwargs.
pypi_repositories
pypi_repositories
type: Iterable[str] | None
default: None
List of PyPi repositories to publish the target package to.
sdist
sdist
type: bool
default: True
Whether to build an sdist for the distribution.
sdist_config_settings
sdist_config_settings
type: Dict[str, Iterable[str]] | None
default: None
PEP-517 config settings to pass to the build backend when building an sdist.
skip_twine
skip_twine
type: bool
default: False
If true, don't publish this target's packages using Twine.
tags
tags
type: Iterable[str] | None
default: None
Arbitrary strings to describe a target.
For example, you may tag some test targets with 'integration_test' so that you could run ./pants --tag='integration_test' test ::
to only run on targets with that tag.
wheel
wheel
type: bool
default: True
Whether to build a wheel for the distribution.
wheel_config_settings
wheel_config_settings
type: Dict[str, Iterable[str]] | None
default: None
PEP-517 config settings to pass to the build backend when building a wheel.
Updated almost 2 years ago