Mochi0622's picture
initial deploy
e66cfb4
Raw
History Blame Contribute Delete
4.17 kB
"""
dashTest.py ← 向下相容 shim
--------------------------------
原始 3443 行已拆分至以下六個模組(均放在同一 layout/ 資料夾下):
dt_gemini.py Gemini AI 用戶端 + 批改回饋
dt_math.py 數學運算 + eq_answer
dt_render_utils.py 渲染工具(顏色、數學、run 渲染,無 callback)
dt_render_blocks.py Block 渲染元件
dt_quiz.py Quiz 題型渲染
dt_callbacks.py 所有 Dash @callback
此 shim 重新匯出所有公開 API,確保現有程式碼不需要修改:
from layout.dashTest import render_doc ← 仍可用
from layout.dashTest import install_callbacks_once ← 仍可用
"""
# ── Gemini / AI ──────────────────────────────────────────────────────────
from .dt_gemini import ( # noqa: F401
_gem_call, _gem_json,
_first_json, _s, _get_api_key,
_norm_model, _ai_log_fail,
_repair_json_newlines, _loads_json_robust,
_ai_generate_similar_quizzes_as_md,
_parse_ai_md_to_quiz_nodes, _parse_options_md,
_ai_feedback_fill_gemini,
_ai_feedback_choice_gemini,
_ai_feedback_multi_gemini,
_prompt_md_to_runs,
DEFAULT_NORMALIZE,
_gem_client, _API_KEY,
)
# ── 數學 ──────────────────────────────────────────────────────────────────
from .dt_math import ( # noqa: F401
eq_answer,
extract_param_function, extract_k_as_function,
_normalize_text, _std_text, _apply_text_ops,
_to_sympy, _symbolic_equal, _as_number, _numeric_close,
_preprocess_math, _protect_funcs_and_consts, _unprotect,
_insert_implicit_mul,
x, y, z, k, m, n, c, g,
XY, PARAMS, KNOWN_FUNCS, KNOWN_CONST,
)
# ── 渲染工具 ──────────────────────────────────────────────────────────────
from .dt_render_utils import ( # noqa: F401
HAS_PRISM, DashLatex, DEFAULT_TOL,
_norm_hex, _hex_to_hsl, _hsl_to_hex,
_to_dark_color, _themed_color_style,
_as_css_color, _ensure_theme_colors,
_parse_img_hints, _apply_img_size_style,
_split_text_links_images,
render_url, render_picture, render_inline_media,
_strip_math_delims, _render_inline_math,
render_math_inline, render_math_block, render_option_label,
render_inline_runs, render_runs,
_as_bool, _is_true,
_runs_to_text_for_prompt,
)
# ── Block 渲染 ────────────────────────────────────────────────────────────
from .dt_render_blocks import ( # noqa: F401
render_doc, render_doc_section,
build_content_and_toc, render_section_nav,
render_paragraph, render_list, render_hr, render_comment,
render_heading, render_heading_segment, _plain_text_for_heading,
render_card, _merge_card_palette, _CARD_KIND_PALETTE,
render_solution, _storage_type,
render_flow, _make_flow_step_box,
render_geogebra, maybe_render_paragraph_with_geogebra,
render_code, render_pycall,
_ggb_id_from_url, _px_or_raw,
_attrs_to_dict, _load_func_from_path,
)
# ── Quiz 渲染 ─────────────────────────────────────────────────────────────
from .dt_quiz import ( # noqa: F401
render_quiz, render_quiz_order,
_quiz_missing_answer_notice, _feedback_child,
)
# ── Callbacks(import 即掛載)────────────────────────────────────────────
from . import dt_callbacks # noqa: F401
from .dt_callbacks import install_callbacks_once # noqa: F401