Wire SX_USE_REF=1 switching through all route intermediaries
jinja_bridge, helpers, handlers, query_executor now conditionally import from ref/sx_ref and ref/async_eval_ref when SX_USE_REF=1. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -69,6 +69,10 @@ def clear_handlers(service: str | None = None) -> None:
|
|||||||
def load_handler_file(filepath: str, service_name: str) -> list[HandlerDef]:
|
def load_handler_file(filepath: str, service_name: str) -> list[HandlerDef]:
|
||||||
"""Parse an .sx file, evaluate it, and register any HandlerDef values."""
|
"""Parse an .sx file, evaluate it, and register any HandlerDef values."""
|
||||||
from .parser import parse_all
|
from .parser import parse_all
|
||||||
|
import os
|
||||||
|
if os.environ.get("SX_USE_REF") == "1":
|
||||||
|
from .ref.sx_ref import eval_expr as _raw_eval, trampoline as _trampoline
|
||||||
|
else:
|
||||||
from .evaluator import _eval as _raw_eval, _trampoline
|
from .evaluator import _eval as _raw_eval, _trampoline
|
||||||
_eval = lambda expr, env: _trampoline(_raw_eval(expr, env))
|
_eval = lambda expr, env: _trampoline(_raw_eval(expr, env))
|
||||||
from .jinja_bridge import get_component_env
|
from .jinja_bridge import get_component_env
|
||||||
@@ -126,6 +130,10 @@ async def execute_handler(
|
|||||||
4. Return ``SxExpr`` wire format
|
4. Return ``SxExpr`` wire format
|
||||||
"""
|
"""
|
||||||
from .jinja_bridge import get_component_env, _get_request_context
|
from .jinja_bridge import get_component_env, _get_request_context
|
||||||
|
import os
|
||||||
|
if os.environ.get("SX_USE_REF") == "1":
|
||||||
|
from .ref.async_eval_ref import async_eval_to_sx
|
||||||
|
else:
|
||||||
from .async_eval import async_eval_to_sx
|
from .async_eval import async_eval_to_sx
|
||||||
from .types import NIL
|
from .types import NIL
|
||||||
|
|
||||||
|
|||||||
@@ -346,6 +346,10 @@ async def _render_to_sx_with_env(__name: str, extra_env: dict, **kwargs: Any) ->
|
|||||||
**Private** — service code should use ``sx_call()`` or defmacros instead.
|
**Private** — service code should use ``sx_call()`` or defmacros instead.
|
||||||
"""
|
"""
|
||||||
from .jinja_bridge import get_component_env, _get_request_context
|
from .jinja_bridge import get_component_env, _get_request_context
|
||||||
|
import os
|
||||||
|
if os.environ.get("SX_USE_REF") == "1":
|
||||||
|
from .ref.async_eval_ref import async_eval_slot_to_sx
|
||||||
|
else:
|
||||||
from .async_eval import async_eval_slot_to_sx
|
from .async_eval import async_eval_slot_to_sx
|
||||||
from .types import Symbol, Keyword, NIL as _NIL
|
from .types import Symbol, Keyword, NIL as _NIL
|
||||||
|
|
||||||
@@ -377,6 +381,10 @@ async def _render_to_sx(__name: str, **kwargs: Any) -> str:
|
|||||||
Only infrastructure code (helpers.py, layouts.py) should call this.
|
Only infrastructure code (helpers.py, layouts.py) should call this.
|
||||||
"""
|
"""
|
||||||
from .jinja_bridge import get_component_env, _get_request_context
|
from .jinja_bridge import get_component_env, _get_request_context
|
||||||
|
import os
|
||||||
|
if os.environ.get("SX_USE_REF") == "1":
|
||||||
|
from .ref.async_eval_ref import async_eval_to_sx
|
||||||
|
else:
|
||||||
from .async_eval import async_eval_to_sx
|
from .async_eval import async_eval_to_sx
|
||||||
|
|
||||||
ast = _build_component_ast(__name, **kwargs)
|
ast = _build_component_ast(__name, **kwargs)
|
||||||
@@ -397,6 +405,10 @@ async def render_to_html(__name: str, **kwargs: Any) -> str:
|
|||||||
format. Used by route renders that need HTML (full pages, fragments).
|
format. Used by route renders that need HTML (full pages, fragments).
|
||||||
"""
|
"""
|
||||||
from .jinja_bridge import get_component_env, _get_request_context
|
from .jinja_bridge import get_component_env, _get_request_context
|
||||||
|
import os
|
||||||
|
if os.environ.get("SX_USE_REF") == "1":
|
||||||
|
from .ref.async_eval_ref import async_render
|
||||||
|
else:
|
||||||
from .async_eval import async_render
|
from .async_eval import async_render
|
||||||
|
|
||||||
ast = _build_component_ast(__name, **kwargs)
|
ast = _build_component_ast(__name, **kwargs)
|
||||||
|
|||||||
@@ -27,6 +27,10 @@ from typing import Any
|
|||||||
|
|
||||||
from .types import NIL, Component, Keyword, Macro, Symbol
|
from .types import NIL, Component, Keyword, Macro, Symbol
|
||||||
from .parser import parse
|
from .parser import parse
|
||||||
|
import os as _os
|
||||||
|
if _os.environ.get("SX_USE_REF") == "1":
|
||||||
|
from .ref.sx_ref import render as html_render, render_html_component as _render_component
|
||||||
|
else:
|
||||||
from .html import render as html_render, _render_component
|
from .html import render as html_render, _render_component
|
||||||
|
|
||||||
|
|
||||||
@@ -169,6 +173,9 @@ def register_components(sx_source: str) -> None:
|
|||||||
(div :class "..." (div :class "..." title)))))
|
(div :class "..." (div :class "..." title)))))
|
||||||
''')
|
''')
|
||||||
"""
|
"""
|
||||||
|
if _os.environ.get("SX_USE_REF") == "1":
|
||||||
|
from .ref.sx_ref import eval_expr as _raw_eval, trampoline as _trampoline
|
||||||
|
else:
|
||||||
from .evaluator import _eval as _raw_eval, _trampoline
|
from .evaluator import _eval as _raw_eval, _trampoline
|
||||||
_eval = lambda expr, env: _trampoline(_raw_eval(expr, env))
|
_eval = lambda expr, env: _trampoline(_raw_eval(expr, env))
|
||||||
from .parser import parse_all
|
from .parser import parse_all
|
||||||
|
|||||||
@@ -20,6 +20,10 @@ async def execute_query(query_def: QueryDef, params: dict[str, str]) -> Any:
|
|||||||
Parameters are bound from request query string args.
|
Parameters are bound from request query string args.
|
||||||
"""
|
"""
|
||||||
from .jinja_bridge import get_component_env, _get_request_context
|
from .jinja_bridge import get_component_env, _get_request_context
|
||||||
|
import os
|
||||||
|
if os.environ.get("SX_USE_REF") == "1":
|
||||||
|
from .ref.async_eval_ref import async_eval
|
||||||
|
else:
|
||||||
from .async_eval import async_eval
|
from .async_eval import async_eval
|
||||||
|
|
||||||
env = dict(get_component_env())
|
env = dict(get_component_env())
|
||||||
@@ -45,6 +49,10 @@ async def execute_action(action_def: ActionDef, payload: dict[str, Any]) -> Any:
|
|||||||
Parameters are bound from the JSON request body.
|
Parameters are bound from the JSON request body.
|
||||||
"""
|
"""
|
||||||
from .jinja_bridge import get_component_env, _get_request_context
|
from .jinja_bridge import get_component_env, _get_request_context
|
||||||
|
import os
|
||||||
|
if os.environ.get("SX_USE_REF") == "1":
|
||||||
|
from .ref.async_eval_ref import async_eval
|
||||||
|
else:
|
||||||
from .async_eval import async_eval
|
from .async_eval import async_eval
|
||||||
|
|
||||||
env = dict(get_component_env())
|
env = dict(get_component_env())
|
||||||
|
|||||||
Reference in New Issue
Block a user