Yash030's picture
Deploy claude-code-nvidia proxy to Hugging Face Spaces
0157ac7
"""Content block helpers for Anthropic-compatible payloads."""
from typing import Any
def get_block_attr(block: Any, attr: str, default: Any = None) -> Any:
"""Get an attribute from a Pydantic model, lightweight object, or dict."""
if hasattr(block, attr):
return getattr(block, attr)
if isinstance(block, dict):
return block.get(attr, default)
return default
def get_block_type(block: Any) -> str | None:
"""Return a content block type when present."""
return get_block_attr(block, "type")
def extract_text_from_content(content: Any) -> str:
"""Extract concatenated text from message content."""
if isinstance(content, str):
return content
if isinstance(content, list):
parts: list[str] = []
for block in content:
text = get_block_attr(block, "text", "")
if isinstance(text, str) and text:
parts.append(text)
return "".join(parts)
return ""