# PyInfo

{% dynamic setvar source_file "src/main/java/com/google/devtools/build/lib/starlarkbuildapi/python/PyInfoApi.java" %} {% dynamic setvar version "7.5.0" %} {% dynamic setvar original_path "/rules/lib/providers/PyInfo" %} {% include "_buttons.html" %} Encapsulates information provided by the Python rules.

## Members

- PyInfo
- has_py2_only_sources
- has_py3_only_sources
- imports
- transitive_sources
- uses_shared_libraries

## PyInfo

    PyInfo PyInfo(transitive_sources, uses_shared_libraries=False, imports=unbound, has_py2_only_sources=False, has_py3_only_sources=False)

The `PyInfo` constructor.

### Parameters

Parameter | Description
--- | ---
`transitive_sources` | depset of Files; required The value for the new object's `transitive_sources` field.
`uses_shared_libraries` | default is `False` The value for the new object's `uses_shared_libraries` field.
`imports` | depset of strings; default is `unbound` The value for the new object's `imports` field.
`has_py2_only_sources` | default is `False` The value for the new object's `has_py2_only_sources` field.
`has_py3_only_sources` | default is `False` The value for the new object's `has_py3_only_sources` field.

## has_py2_only_sources

    bool PyInfo.has_py2_only_sources

Whether any of this target's transitive sources requires a Python 2 runtime.

## has_py3_only_sources

    bool PyInfo.has_py3_only_sources

Whether any of this target's transitive sources requires a Python 3 runtime.

## imports

    depset PyInfo.imports

A depset of import path strings to be added to the `PYTHONPATH` of executable Python targets. These are accumulated from the transitive `deps`.

The order of the depset is not guaranteed and may be changed in the future. It is recommended to use `default` order (the default).

## transitive_sources

    depset PyInfo.transitive_sources

A (`postorder`-compatible) depset of `.py` files appearing in the target's `srcs` and the `srcs` of the target's transitive `deps`.

## uses_shared_libraries

    bool PyInfo.uses_shared_libraries

Whether any of this target's transitive `deps` has a shared library file (such as a `.so` file).

This field is currently unused in Bazel and may go away in the future.