hydra.python.environment module

Environment types for Python code generation.

class hydra.python.environment.PyGraph(graph: Annotated[Graph, 'The Hydra graph being processed'], metadata: Annotated[PythonModuleMetadata, 'Accumulated module metadata'])

Bases: object

Combined graph and metadata state for Python code generation.

class Builder(_graph: 'hydra.graph.Graph' = None, _metadata: 'PythonModuleMetadata' = None)

Bases: object

build()
graph(graph)
metadata(metadata)
GRAPH = Name(value='graph')
METADATA = Name(value='metadata')
TYPE_ = Name(value='hydra.python.environment.PyGraph')
static builder()
graph: Annotated[Graph, 'The Hydra graph being processed']
metadata: Annotated[PythonModuleMetadata, 'Accumulated module metadata']
with_graph(graph)
with_metadata(metadata)
class hydra.python.environment.PythonEnvironment(namespaces: Annotated[ModuleNames[DottedName], 'ModuleName mapping for imports'], bound_type_variables: Annotated[tuple[Sequence[Name], Mapping[Name, Name]], 'Type variables in scope, with their Python names'], graph: Annotated[Graph, 'Graph context for type inference'], nullary_bindings: Annotated[Set[Name], 'Set of nullary bindings (need call syntax)'], version: Annotated[PythonVersion, 'Target Python version'], skip_casts: Annotated[bool, 'When True, skip generating cast() calls for reduced memory usage'], inline_variables: Annotated[Set[Name], 'Variables that are inline let bindings (walrus operators)'], overlay_subs: Annotated[Set[str], 'hydra.lib.<sub> sub-namespaces that have an overlay implementation on this host (#630) -- the on-disk existence signal driving emission-time redirect of primitive references to hydra.overlay.python.lib.<sub>'])

Bases: object

Environment for Python code generation.

BOUND_TYPE_VARIABLES = Name(value='boundTypeVariables')
class Builder(_namespaces: 'hydra.util.ModuleNames[hydra.python.syntax.DottedName]' = None, _bound_type_variables: 'tuple[Sequence[hydra.core.Name], Mapping[hydra.core.Name, hydra.python.syntax.Name]]' = None, _graph: 'hydra.graph.Graph' = None, _nullary_bindings: 'Set[hydra.core.Name]' = None, _version: 'PythonVersion' = None, _skip_casts: 'bool' = None, _inline_variables: 'Set[hydra.core.Name]' = None, _overlay_subs: 'Set[str]' = None)

Bases: object

bound_type_variables(bound_type_variables)
build()
graph(graph)
inline_variables(inline_variables)
namespaces(namespaces)
nullary_bindings(nullary_bindings)
overlay_subs(overlay_subs)
skip_casts(skip_casts)
version(version)
GRAPH = Name(value='graph')
INLINE_VARIABLES = Name(value='inlineVariables')
NAMESPACES = Name(value='namespaces')
NULLARY_BINDINGS = Name(value='nullaryBindings')
OVERLAY_SUBS = Name(value='overlaySubs')
SKIP_CASTS = Name(value='skipCasts')
TYPE_ = Name(value='hydra.python.environment.PythonEnvironment')
VERSION = Name(value='version')
bound_type_variables: Annotated[tuple[Sequence[Name], Mapping[Name, Name]], 'Type variables in scope, with their Python names']
static builder()
graph: Annotated[Graph, 'Graph context for type inference']
inline_variables: Annotated[Set[Name], 'Variables that are inline let bindings (walrus operators)']
namespaces: Annotated[ModuleNames[DottedName], 'ModuleName mapping for imports']
nullary_bindings: Annotated[Set[Name], 'Set of nullary bindings (need call syntax)']
overlay_subs: Annotated[Set[str], 'hydra.lib.<sub> sub-namespaces that have an overlay implementation on this host (#630) -- the on-disk existence signal driving emission-time redirect of primitive references to hydra.overlay.python.lib.<sub>']
skip_casts: Annotated[bool, 'When True, skip generating cast() calls for reduced memory usage']
version: Annotated[PythonVersion, 'Target Python version']
with_bound_type_variables(bound_type_variables)
with_graph(graph)
with_inline_variables(inline_variables)
with_namespaces(namespaces)
with_nullary_bindings(nullary_bindings)
with_overlay_subs(overlay_subs)
with_skip_casts(skip_casts)
with_version(version)
class hydra.python.environment.PythonModuleMetadata(namespaces: Annotated[ModuleNames[DottedName], 'ModuleName mapping for imports'], type_variables: Annotated[Set[Name], 'Type variables used in the module'], uses_annotated: bool, uses_callable: bool, uses_cast: bool, uses_lru_cache: bool, uses_type_alias: bool, uses_dataclass: bool, uses_decimal: bool, uses_either: bool, uses_enum: bool, uses_frozen_dict: bool, uses_frozen_list: bool, uses_frozen_set: bool, uses_generic: bool, uses_just: bool, uses_left: bool, uses_maybe: bool, uses_name: bool, uses_node: bool, uses_nothing: bool, uses_right: bool, uses_type_var: bool)

Bases: object

Temporary metadata used to create the header section of a Python file.

class Builder(_namespaces: 'hydra.util.ModuleNames[hydra.python.syntax.DottedName]' = None, _type_variables: 'Set[hydra.core.Name]' = None, _uses_annotated: 'bool' = None, _uses_callable: 'bool' = None, _uses_cast: 'bool' = None, _uses_lru_cache: 'bool' = None, _uses_type_alias: 'bool' = None, _uses_dataclass: 'bool' = None, _uses_decimal: 'bool' = None, _uses_either: 'bool' = None, _uses_enum: 'bool' = None, _uses_frozen_dict: 'bool' = None, _uses_frozen_list: 'bool' = None, _uses_frozen_set: 'bool' = None, _uses_generic: 'bool' = None, _uses_just: 'bool' = None, _uses_left: 'bool' = None, _uses_maybe: 'bool' = None, _uses_name: 'bool' = None, _uses_node: 'bool' = None, _uses_nothing: 'bool' = None, _uses_right: 'bool' = None, _uses_type_var: 'bool' = None)

Bases: object

build()
namespaces(namespaces)
type_variables(type_variables)
uses_annotated(uses_annotated)
uses_callable(uses_callable)
uses_cast(uses_cast)
uses_dataclass(uses_dataclass)
uses_decimal(uses_decimal)
uses_either(uses_either)
uses_enum(uses_enum)
uses_frozen_dict(uses_frozen_dict)
uses_frozen_list(uses_frozen_list)
uses_frozen_set(uses_frozen_set)
uses_generic(uses_generic)
uses_just(uses_just)
uses_left(uses_left)
uses_lru_cache(uses_lru_cache)
uses_maybe(uses_maybe)
uses_name(uses_name)
uses_node(uses_node)
uses_nothing(uses_nothing)
uses_right(uses_right)
uses_type_alias(uses_type_alias)
uses_type_var(uses_type_var)
NAMESPACES = Name(value='namespaces')
TYPE_ = Name(value='hydra.python.environment.PythonModuleMetadata')
TYPE_VARIABLES = Name(value='typeVariables')
USES_ANNOTATED = Name(value='usesAnnotated')
USES_CALLABLE = Name(value='usesCallable')
USES_CAST = Name(value='usesCast')
USES_DATACLASS = Name(value='usesDataclass')
USES_DECIMAL = Name(value='usesDecimal')
USES_EITHER = Name(value='usesEither')
USES_ENUM = Name(value='usesEnum')
USES_FROZEN_DICT = Name(value='usesFrozenDict')
USES_FROZEN_LIST = Name(value='usesFrozenList')
USES_FROZEN_SET = Name(value='usesFrozenSet')
USES_GENERIC = Name(value='usesGeneric')
USES_JUST = Name(value='usesJust')
USES_LEFT = Name(value='usesLeft')
USES_LRU_CACHE = Name(value='usesLruCache')
USES_MAYBE = Name(value='usesMaybe')
USES_NAME = Name(value='usesName')
USES_NODE = Name(value='usesNode')
USES_NOTHING = Name(value='usesNothing')
USES_RIGHT = Name(value='usesRight')
USES_TYPE_ALIAS = Name(value='usesTypeAlias')
USES_TYPE_VAR = Name(value='usesTypeVar')
static builder()
namespaces: Annotated[ModuleNames[DottedName], 'ModuleName mapping for imports']
type_variables: Annotated[Set[Name], 'Type variables used in the module']
uses_annotated: bool
uses_callable: bool
uses_cast: bool
uses_dataclass: bool
uses_decimal: bool
uses_either: bool
uses_enum: bool
uses_frozen_dict: bool
uses_frozen_list: bool
uses_frozen_set: bool
uses_generic: bool
uses_just: bool
uses_left: bool
uses_lru_cache: bool
uses_maybe: bool
uses_name: bool
uses_node: bool
uses_nothing: bool
uses_right: bool
uses_type_alias: bool
uses_type_var: bool
with_namespaces(namespaces)
with_type_variables(type_variables)
with_uses_annotated(uses_annotated)
with_uses_callable(uses_callable)
with_uses_cast(uses_cast)
with_uses_dataclass(uses_dataclass)
with_uses_decimal(uses_decimal)
with_uses_either(uses_either)
with_uses_enum(uses_enum)
with_uses_frozen_dict(uses_frozen_dict)
with_uses_frozen_list(uses_frozen_list)
with_uses_frozen_set(uses_frozen_set)
with_uses_generic(uses_generic)
with_uses_just(uses_just)
with_uses_left(uses_left)
with_uses_lru_cache(uses_lru_cache)
with_uses_maybe(uses_maybe)
with_uses_name(uses_name)
with_uses_node(uses_node)
with_uses_nothing(uses_nothing)
with_uses_right(uses_right)
with_uses_type_alias(uses_type_alias)
with_uses_type_var(uses_type_var)
class hydra.python.environment.PythonVersion(*values)

Bases: Enum

Target Python version for code generation.

PYTHON310 = Name(value='python310')
PYTHON312 = Name(value='python312')
TYPE_ = Name(value='hydra.python.environment.PythonVersion')