Quickstart¶
Installation¶
pip install inverter
Creating Schema¶
Following example creates colander schema from a dataclass
from dataclasses import dataclass, field
import typing
from deform.widget import PasswordWidget
from inverter import dc2colander
import colander
@dataclass
class LoginForm(object):
username: typing.Optional[str] = field(metadata={'required': True})
password: typing.Optional[str] = field(
metadata={'required': True,
'deform.widget': PasswordWidget()})
request = {}
cschema = dc2colander.convert(LoginForm, request)
assert issubclass(cschema, colander.Schema)
The same schema can also be converted to Avro Schema
from inverter import dc2avsc
avsc = dc2avsc.convert(LoginForm, request, namespace='myapp')
assert avsc == {
'namespace': 'myapp',
'type': 'record',
'name': 'LoginForm',
'fields': [
{'name': 'username', 'type': ['string', 'null']},
{'name': 'password', 'type': ['string', 'null']}]}