Yash030's picture
Deploy claude-code-nvidia proxy to Hugging Face Spaces
0157ac7
"""Platform rendering profiles for messaging transcripts and status text."""
from __future__ import annotations
from collections.abc import Callable
from dataclasses import dataclass
from messaging.rendering.discord_markdown import (
discord_bold,
discord_code_inline,
escape_discord,
escape_discord_code,
render_markdown_to_discord,
)
from messaging.rendering.discord_markdown import (
format_status as format_status_discord,
)
from messaging.rendering.telegram_markdown import (
escape_md_v2,
escape_md_v2_code,
mdv2_bold,
mdv2_code_inline,
render_markdown_to_mdv2,
)
from messaging.rendering.telegram_markdown import (
format_status as format_status_telegram,
)
from messaging.transcript import RenderCtx
@dataclass(frozen=True, slots=True)
class RenderingProfile:
format_status: Callable[[str, str, str | None], str]
parse_mode: str | None
render_ctx: RenderCtx
limit_chars: int
def build_rendering_profile(platform_name: str) -> RenderingProfile:
"""Return rendering rules for a messaging platform."""
is_discord = platform_name == "discord"
return RenderingProfile(
format_status=format_status_discord if is_discord else format_status_telegram,
parse_mode=None if is_discord else "MarkdownV2",
render_ctx=RenderCtx(
bold=discord_bold if is_discord else mdv2_bold,
code_inline=discord_code_inline if is_discord else mdv2_code_inline,
escape_code=escape_discord_code if is_discord else escape_md_v2_code,
escape_text=escape_discord if is_discord else escape_md_v2,
render_markdown=render_markdown_to_discord
if is_discord
else render_markdown_to_mdv2,
),
limit_chars=1900 if is_discord else 3900,
)