Skip to content

MarkdownCodeExtractor

autogen.coding.MarkdownCodeExtractor #

Bases: CodeExtractor

(Experimental) A class that extracts code blocks from a message using Markdown syntax.

extract_code_blocks #

extract_code_blocks(message)

(Experimental) Extract code blocks from a message. If no code blocks are found, return an empty list.

PARAMETER DESCRIPTION
message

The message to extract code blocks from.

TYPE: str

RETURNS DESCRIPTION
list[CodeBlock]

List[CodeBlock]: The extracted code blocks or an empty list.

Source code in autogen/coding/markdown_code_extractor.py
def extract_code_blocks(
    self, message: Union[str, list[Union[UserMessageTextContentPart, UserMessageImageContentPart]], None]
) -> list[CodeBlock]:
    """(Experimental) Extract code blocks from a message. If no code blocks are found,
    return an empty list.

    Args:
        message (str): The message to extract code blocks from.

    Returns:
        List[CodeBlock]: The extracted code blocks or an empty list.
    """
    text = content_str(message)
    match = re.findall(CODE_BLOCK_PATTERN, text, flags=re.DOTALL)
    if not match:
        return []
    code_blocks = []
    for lang, code in match:
        if lang == "":
            lang = infer_lang(code)
        if lang == UNKNOWN:
            lang = ""
        code_blocks.append(CodeBlock(code=code, language=lang))
    return code_blocks