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:
objectCombined 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()
- 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:
objectEnvironment 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()
- inline_variables: Annotated[Set[Name], 'Variables that are inline let bindings (walrus operators)']
- namespaces: Annotated[ModuleNames[DottedName], 'ModuleName mapping for imports']
- 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:
objectTemporary 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']
- 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)