docs(blocks): Add docstrings and error handling to TextEncoderBlock

- Add module, class, and method docstrings for 80%+ coverage
- Add try/except error handling per CodeRabbit review
- Use inherited error field from BlockSchemaOutput
This commit is contained in:
Bently
2026-01-27 15:58:19 +00:00
parent 5244bd94fc
commit b1259e0bdd

View File

@@ -1,3 +1,5 @@
"""Text encoding block for converting special characters to escape sequences."""
import codecs
from backend.data.block import (
@@ -11,13 +13,24 @@ from backend.data.model import SchemaField
class TextEncoderBlock(Block):
"""
Encodes a string by converting special characters into escape sequences.
This block is the inverse of TextDecoderBlock. It takes text containing
special characters (like newlines, tabs, etc.) and converts them into
their escape sequence representations (e.g., newline becomes \\n).
"""
class Input(BlockSchemaInput):
"""Input schema for TextEncoderBlock."""
text: str = SchemaField(
description="A string containing special characters to be encoded",
placeholder="Your text with newlines and quotes to encode",
)
class Output(BlockSchemaOutput):
"""Output schema for TextEncoderBlock."""
encoded_text: str = SchemaField(
description="The encoded text with special characters converted to escape sequences"
)
@@ -41,5 +54,20 @@ This is a "quoted" string."""},
)
async def run(self, input_data: Input, **kwargs) -> BlockOutput:
encoded_text = codecs.encode(input_data.text, "unicode_escape").decode("utf-8")
yield "encoded_text", encoded_text
"""
Encode the input text by converting special characters to escape sequences.
Args:
input_data: The input containing the text to encode.
**kwargs: Additional keyword arguments (unused).
Yields:
The encoded text with escape sequences, or an error message on failure.
"""
try:
encoded_text = codecs.encode(input_data.text, "unicode_escape").decode(
"utf-8"
)
yield "encoded_text", encoded_text
except Exception as e:
yield "error", f"Failed to encode text: {e}"