templates
¶
Provide semantic-facing template metadata for compile-time specialization without requiring parser-level syntax support.
Classes:
Functions:
-
add_generated_template_node– -
clear_generated_template_nodes– -
generated_template_nodes– -
get_template_args– -
get_template_params– -
is_template_node– -
is_template_specialization– -
mark_template_specialization– -
set_template_args– -
set_template_params– -
template_specialization_name–
TemplateParam
dataclass
¶
TemplateParam(
name: str,
bound: DataType,
loc: SourceLocation = NO_SOURCE_LOCATION,
)
Describe one bounded template variable attached to a function or method declaration. attributes: name: type: str bound: type: astx.DataType loc: type: astx.SourceLocation
TemplateTypeVar
¶
Bases: AnyType
Represent one unresolved template type parameter inside function signatures or local declared types before specialization. attributes: name: type: str bound: type: astx.DataType
Methods:
-
get_struct– -
to_json– -
to_yaml–
Source code in packages/astx/src/astx/types/generic.py
97 98 99 100 101 102 103 104 105 106 107 108 | |
get_struct
¶
get_struct(simplified: bool = False) -> ReprStruct
Source code in packages/astx/src/astx/types/generic.py
118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 | |
to_json
¶
Source code in packages/astx/src/astx/base.py
400 401 402 403 404 405 406 407 408 409 | |
to_yaml
¶
Source code in packages/astx/src/astx/base.py
387 388 389 390 391 392 393 394 395 396 397 398 | |
UnionType
¶
Bases: AnyType
Represent one union of concrete type references that semantic analysis may enumerate as a finite type domain. attributes: members: type: tuple[astx.DataType, Ellipsis] alias_name: type: str | None
Methods:
-
get_struct– -
to_json– -
to_yaml–
Source code in packages/astx/src/astx/types/generic.py
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | |
get_struct
¶
get_struct(simplified: bool = False) -> ReprStruct
Source code in packages/astx/src/astx/types/generic.py
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 | |
to_json
¶
Source code in packages/astx/src/astx/base.py
400 401 402 403 404 405 406 407 408 409 | |
to_yaml
¶
Source code in packages/astx/src/astx/base.py
387 388 389 390 391 392 393 394 395 396 397 398 | |
add_generated_template_node
¶
Source code in packages/astx/src/astx/templates.py
167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 | |
clear_generated_template_nodes
¶
clear_generated_template_nodes(module: Module) -> None
Source code in packages/astx/src/astx/templates.py
185 186 187 188 189 190 191 192 193 | |
generated_template_nodes
¶
Source code in packages/astx/src/astx/templates.py
196 197 198 199 200 201 202 203 204 205 206 207 | |
get_template_args
¶
Source code in packages/astx/src/astx/templates.py
108 109 110 111 112 113 114 115 116 117 118 119 120 121 | |
get_template_params
¶
get_template_params(node: AST) -> tuple[TemplateParam, ...]
Source code in packages/astx/src/astx/templates.py
62 63 64 65 66 67 68 69 70 71 72 73 | |
is_template_node
¶
Source code in packages/astx/src/astx/templates.py
76 77 78 79 80 81 82 83 84 85 86 | |
is_template_specialization
¶
Source code in packages/astx/src/astx/templates.py
154 155 156 157 158 159 160 161 162 163 164 | |
mark_template_specialization
¶
Source code in packages/astx/src/astx/templates.py
124 125 126 127 128 129 130 131 132 133 134 135 136 137 | |
set_template_args
¶
Source code in packages/astx/src/astx/templates.py
89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 | |
set_template_params
¶
set_template_params(
node: AST, params: Iterable[TemplateParam]
) -> None
Source code in packages/astx/src/astx/templates.py
46 47 48 49 50 51 52 53 54 55 56 57 58 59 | |
template_specialization_name
¶
Source code in packages/astx/src/astx/templates.py
140 141 142 143 144 145 146 147 148 149 150 151 | |