Global Symbols

This document lists every single global type, variable, and function available in PyOxidizer’s Starlark execution environment.

The Starlark environment contains symbols from the following:

In addition, extra global variables can be injected into the execution environment on a per-invocation basis. This is commonly encountered with use of the --var and –var-env` arguments to various pyoxidizer sub-commands.

Global Types

PyOxidizer’s Starlark dialect defines the following custom types:

File

Represents a filesystem path and content.

starlark_tugger.FileContent

Represents the content of a file on the filesystem.

(Unlike File, this does not track the filename internally.)

starlark_tugger.FileManifest

Represents a mapping of filenames to file content.

PythonDistribution

Represents an implementation of Python.

Used for embedding into binaries and running Python code.

PythonEmbeddedResources

Represents resources made available to a Python interpreter.

PythonExecutable

Represents an executable file containing a Python interpreter.

PythonExtensionModule

Represents a compiled Python extension module.

PythonInterpreterConfig

Represents the configuration of a Python interpreter.

PythonPackageDistributionResource

Represents a file containing Python package distribution metadata.

PythonPackageResource

Represents a non-module resource data file.

PythonPackagingPolicy

Represents a policy controlling how Python resources are added to a binary.

PythonModuleSource

Represents a .py file containing Python source code.

Global Constants

The Starlark execution environment defines various variables in the global scope which are intended to be used as read-only constants. The following sections describe these variables.

BUILD_TARGET_TRIPLE

The string Rust target triple that we’re currently building for. Will be a value like x86_64-unknown-linux-gnu or x86_64-pc-windows-msvc. Run rustup target list to see a list of targets.

CONFIG_PATH

The string path to the configuration file currently being evaluated.

CONTEXT

Holds build context. This is an internal variable and accessing it will not provide any value.

CWD

The current working directory. Also the directory containing the active configuration file.

Global Functions

PyOxidizer’s Starlark dialect defines the following global functions:

default_python_distribution()

Obtain the default PythonDistribution for the active build configuration.

register_target()

Register a named target that can be built.

resolve_target()

Build/resolve a specific named target.

resolve_targets()

Triggers resolution of requested build targets.

set_build_path()

Set the filesystem path to use for writing files during evaluation.

Types with Target Behavior

As described in Targets, a function registered as a named target can return a type that has special build or run behavior.

The following types have special behavior registered:

starlark_tugger.FileManifest

Build behavior is to materialize all files in the file manifest.

Run behavior is to run the last added PythonExecutable if available, falling back to an executable file installed by the manifest if there is exactly 1 executable file.

PythonEmbeddedResources

Build behavior is to write out files this type represents.

There is no run behavior.

PythonExecutable

Build behavior is to build the executable file.

Run behavior is to run that built executable.