We will continue to use the
Spell class described in the previous chapter.
The default internal type for SQS has
str as its internal type. That means
SQSSender[Spell] must know how to convert
SQSReceiver[Spell] must know how to convert
str back to
import operator from typecasts import casts from platonic.sqs.queue import SQSSender class Spell: """Magical spell.""" def __init__(self, text: str) -> None: """Initialize.""" self.text = text casts[Spell, str] = operator.attrgetter('text') casts[str, Spell] = Spell SQSSender[Spell]( url=..., ).send(Spell('bazinga!'))
Very simple, as you can see. Once you have declared the necessary
casts, all Platonic data structures will know how to use your custom classes.
Of course, in many cases you don't even need to do that because built-in classes or Pydantic models you're using are supported by
typecasts by default.