MCPcopy
hub / github.com/reflex-dev/reflex / DefaultPagePlugin

Class DefaultPagePlugin

reflex/compiler/plugins/builtin.py:163–209  ·  view source on GitHub ↗

Evaluate an unevaluated page into a mutable page context.

Source from the content-addressed store, hash-verified

161
162@dataclasses.dataclass(frozen=True, slots=True)
163class DefaultPagePlugin(Plugin):
164 """Evaluate an unevaluated page into a mutable page context."""
165
166 def eval_page(
167 self,
168 page_fn: Any,
169 /,
170 *,
171 page: PageDefinition,
172 **kwargs: Any,
173 ) -> PageContext:
174 """Evaluate the page function and attach legacy page metadata.
175
176 Returns:
177 The evaluated page context.
178 """
179 from reflex.compiler import compiler
180
181 try:
182 component = compiler.into_component(page_fn)
183 component = Fragment.create(component)
184
185 title = getattr(page, "title", None)
186 meta_args = {
187 "title": (
188 title
189 if title is not None
190 else make_default_page_title(get_config().app_name, page.route)
191 ),
192 "image": getattr(page, "image", ""),
193 "meta": getattr(page, "meta", ()),
194 }
195 if (description := getattr(page, "description", None)) is not None:
196 meta_args["description"] = description
197
198 utils.add_meta(component, **meta_args)
199 except Exception as err:
200 if hasattr(err, "add_note"):
201 err.add_note(f"Happened while evaluating page {page.route!r}")
202 raise
203
204 return PageContext(
205 name=getattr(page_fn, "__name__", page.route),
206 route=page.route,
207 root_component=component,
208 source_module=getattr(page, "_source_module", None),
209 )
210
211
212@dataclasses.dataclass(frozen=True, slots=True)

Calls

no outgoing calls