Since according to the documentation field types are hinted to specific Python objects, it would be great to be able to type hint the result of queries as a specific model with the right types for each property.
user_1: User = db(db.User.id == 1).select().first()
# user_2 could automatically be hinted to User
user_2 = db.User(id=2)
group_1.name # currently a Field unless I define `name: str = Field()`
Of course, assigning to Field()
can't figure out the right type, but maybe doing name = Field.string()
can provide this behavior?
Possibly, this could interfere with Query creation but it would be a really nice feature to have IntelliSense for database rows.
It's just a suggestion, for now I will just use my own subclass of Field:
class TypedField(Field):
@classmethod
def string(cls, *args, **kwargs) -> str:
return super().string(*args, **kwargs)
@classmethod
def int(cls, *args, **kwargs) -> int:
return super().int(*args, **kwargs)
# etc...
Pay now to fund the work behind this issue.
Get updates on progress being made.
Maintainer is rewarded once the issue is completed.
You're funding impactful open source efforts
You want to contribute to this effort
You want to get funding like this too