Skip to main content
Version: 2.16 (deprecated)

py-constraints


pants py-constraints [args]

Determine what Python interpreter constraints are used by files/targets.

Backend: pants.backend.python.mixed_interpreter_constraints

Config section: [py-constraints]

Basic options

output_file

--py-constraints-output-file=<path>
PANTS_PY_CONSTRAINTS_OUTPUT_FILE
pants.toml
[py-constraints]
output_file = <path>
default: None

Output the goal's stdout to this file. If unspecified, outputs to stdout.

summary

--[no-]py-constraints-summary
PANTS_PY_CONSTRAINTS_SUMMARY
pants.toml
[py-constraints]
summary = <bool>
default: False

Output a CSV summary of interpreter constraints for your whole repository. The headers are Target, Constraints, Transitive Constraints, # Dependencies, and # Dependents (or # Dependees, if summary_use_new_header is False).

This information can be useful when prioritizing a migration from one Python version to another (e.g. to Python 3). Use # Dependencies and # Dependents to help prioritize which targets are easiest to port (low # dependencies) and highest impact to port (high # dependents).

Use a tool like Pandas or Excel to process the CSV. Use the option --py-constraints-output-file=summary.csv to write directly to a file.

summary_use_new_header

--[no-]py-constraints-summary-use-new-header
PANTS_PY_CONSTRAINTS_SUMMARY_USE_NEW_HEADER
pants.toml
[py-constraints]
summary_use_new_header = <bool>
default: True

If False, use the legacy, misleading #Dependees header name in the summary CSV table. If True, will use the new, more accurate, # Dependents name for the same column.

This is a temporary option to ease migration to the new header name. Set this option to True to start working with the new header.

This option's default value will change to True in 2.16.x, and it will be deprecated in that version.

This option, and the ability to use the old name, will be removed entirely in 2.17.x.

Advanced options

None

Deprecated options

None