| import re | |
| from langflow.custom import Component | |
| from langflow.field_typing import Input, Output, Text | |
| class CodeBlockExtractor(Component): | |
| display_name = "Code Block Extractor" | |
| description = "Extracts code block from text." | |
| name = "CodeBlockExtractor" | |
| inputs = [Input(name="text", field_type=Text, description="Text to extract code blocks from.")] | |
| outputs = [Output(name="code_block", display_name="Code Block", method="get_code_block")] | |
| def get_code_block(self) -> Text: | |
| text = self.text.strip() | |
| # Extract code block | |
| # It may start with ``` or ```language | |
| # It may end with ``` | |
| pattern = r"^```(?:\w+)?\s*\n(.*?)(?=^```)```" | |
| match = re.search(pattern, text, re.MULTILINE) | |
| code_block = "" | |
| if match: | |
| code_block = match.group(1) | |
| return code_block | |