astx.templates
astx.templates
Source: packages/astx/src/astx/templates.py
title: ASTx template AST helpers.
summary: >-
Provide semantic-facing template metadata for compile-time specialization
without requiring parser-level syntax support.Functions
set_template_params(node: astx.AST, params: Iterable[TemplateParam]) -> None
title: Attach template parameters to one AST node.
parameters:
node:
type: astx.AST
params:
type: Iterable[TemplateParam]get_template_params(node: astx.AST) -> tuple[TemplateParam, ...]
title: Return the template parameters attached to one AST node.
parameters:
node:
type: astx.AST
returns:
type: tuple[TemplateParam, Ellipsis]is_template_node(node: astx.AST) -> bool
title: Return whether one AST node carries template parameters.
parameters:
node:
type: astx.AST
returns:
type: boolset_template_args(node: astx.AST, args: Iterable[astx.DataType] | None) -> None
title: Attach explicit template arguments to one call-like AST node.
parameters:
node:
type: astx.AST
args:
type: Iterable[astx.DataType] | Noneget_template_args(node: astx.AST) -> tuple[astx.DataType, ...] | None
title: Return the explicit template arguments attached to one AST node.
parameters:
node:
type: astx.AST
returns:
type: tuple[astx.DataType, Ellipsis] | Nonemark_template_specialization(node: astx.AST, specialization_name: str) -> None
title: Mark one AST node as a generated template specialization.
parameters:
node:
type: astx.AST
specialization_name:
type: strtemplate_specialization_name(node: astx.AST) -> str | None
title: Return the generated specialization name for one AST node.
parameters:
node:
type: astx.AST
returns:
type: str | Noneis_template_specialization(node: astx.AST) -> bool
title: Return whether one AST node is a generated specialization.
parameters:
node:
type: astx.AST
returns:
type: booladd_generated_template_node(module: astx.Module, node: astx.AST) -> None
title: Attach one generated template node to a module.
parameters:
module:
type: astx.Module
node:
type: astx.ASTclear_generated_template_nodes(module: astx.Module) -> None
title: Remove generated template nodes attached to one module.
parameters:
module:
type: astx.Modulegenerated_template_nodes(module: astx.Module) -> tuple[astx.AST, ...]
title: Return the generated template nodes attached to a module.
parameters:
module:
type: astx.Module
returns:
type: tuple[astx.AST, Ellipsis]Classes
TemplateParam
title: One compile-time template parameter.
summary: >-
Describe one bounded template variable attached to a function or method
declaration.
attributes:
name:
type: str
bound:
type: astx.DataType
loc:
type: astx.SourceLocation