Earlier quoted context omitted.
I have also written a python ORM, Bozen[1]. In Bozen you define a table like this: class Book(MonDoc): title = StrField() yearPublished = IntField() Is it possible to give run-time types to `title` and `yearPublished`, in a way that works with mypy and the Python typing ecosystem? If so, is there a tutorial on this, as I'd like to add the feature to my ORM. 1: https://github.com/cabalamat/frambozenapp
The most obvious way would be to simply annotate the fields, e.g. class Book(MonDoc): title: str = StrField() yearPublished: int = IntField() If this means too much redundant information for you then you could try defining the fields to return the corresponding python type e.g. def IntField() -> int: ...
When I define something as a `StrField` I'm already saying it's a string, so I shouldn't have to say it again elsewhere. It would be nice if Python has an API such that I can write code within my `StrField` class that tells python that `title` is a `str`, but to the best of my understanding this doesn't exist.