# PyRuntimeInfo

{% dynamic setvar source_file "src/main/java/com/google/devtools/build/lib/starlarkbuildapi/python/PyRuntimeInfoApi.java" %} {% dynamic setvar version "7.2.0" %} {% dynamic setvar original_path "/rules/lib/providers/PyRuntimeInfo" %} {% include "_buttons.html" %} Contains information about a Python runtime, as returned by the `py_runtime`rule.

A Python runtime describes either a platform runtime or an in-build runtime. A platform runtime accesses a system-installed interpreter at a known path, whereas an in-build runtime points to a `File` that acts as the interpreter. In both cases, an "interpreter" is really any executable binary or wrapper script that is capable of running a Python script passed on the command line, following the same conventions as the standard CPython interpreter.

## Members

- PyRuntimeInfo
- bootstrap_template
- coverage_files
- coverage_tool
- files
- interpreter
- interpreter_path
- python_version
- stub_shebang

## PyRuntimeInfo

    PyRuntimeInfo PyRuntimeInfo(interpreter_path=None, interpreter=None, files=None, coverage_tool=None, coverage_files=None, python_version, stub_shebang=None, bootstrap_template=None)

The `PyRuntimeInfo` constructor.

### Parameters

Parameter | Description
--- | ---
`interpreter_path` | string; or `None`; default is `None` The value for the new object's `interpreter_path` field. Do not give a value for this argument if you pass in `interpreter`.
`interpreter` | File; or `None`; default is `None` The value for the new object's `interpreter` field. Do not give a value for this argument if you pass in `interpreter_path`.
`files` | depset of Files; or `None`; default is `None` The value for the new object's `files` field. Do not give a value for this argument if you pass in `interpreter_path`. If `interpreter` is given and this argument is `None`, `files` becomes an empty `depset` instead.
`coverage_tool` | File; or `None`; default is `None` The value for the new object's `coverage_tool` field.
`coverage_files` | depset of Files; or `None`; default is `None` The value for the new object's `coverage_files` field. Do not give a value for this argument if you do not also pass in `coverage_tool`.
`python_version` | required The value for the new object's `python_version` field.
`stub_shebang` | string; default is `None` The value for the new object's `stub_shebang` field. If None or not specified, `#!/usr/bin/env python3` is used.
`bootstrap_template` | File; or `None`; default is `None`

## bootstrap_template

    File PyRuntimeInfo.bootstrap_template

The stub script template file to use. Should have %python_binary%, %workspace_name%, %main%, and %imports%. See @bazel_tools//tools/python:python_bootstrap_template.txt for more variables.

## coverage_files

    depset PyRuntimeInfo.coverage_files

The files required at runtime for using `coverage_tool`. Will be `None` if no `coverage_tool` was provided. May return `None`.

## coverage_tool

    File PyRuntimeInfo.coverage_tool

If set, this field is a `File` representing tool used for collecting code coverage information from python tests. Otherwise, this is `None`. May return `None`.

## files

    depset PyRuntimeInfo.files

If this is an in-build runtime, this field is a `depset` of `File`s that need to be added to the runfiles of an executable target that uses this runtime (in particular, files needed by `interpreter`). The value of `interpreter` need not be included in this field. If this is a platform runtime then this field is `None`. May return `None`.

## interpreter

    File PyRuntimeInfo.interpreter

If this is an in-build runtime, this field is a `File` representing the interpreter. Otherwise, this is `None`. Note that an in-build runtime can use either a prebuilt, checked-in interpreter or an interpreter built from source. May return `None`.

## interpreter_path

    string PyRuntimeInfo.interpreter_path

If this is a platform runtime, this field is the absolute filesystem path to the interpreter on the target platform. Otherwise, this is `None`. May return `None`.

## python_version

    string PyRuntimeInfo.python_version

Indicates whether this runtime uses Python major version 2 or 3. Valid values are (only) `"PY2"` and `"PY3"`.

## stub_shebang

    string PyRuntimeInfo.stub_shebang

"Shebang" expression prepended to the bootstrapping Python stub script used when executing `py_binary` targets. Does not apply to Windows.