fix(db): Add __repr__ to custom column types, same as done by SQLAlchemy

This commit is contained in:
Ferdinand Thiessen 2021-12-19 22:20:34 +01:00
parent 095159af71
commit e4366b8e9e
1 changed files with 9 additions and 1 deletions

View File

@ -1,7 +1,7 @@
import sys import sys
import datetime import datetime
from sqlalchemy import BigInteger from sqlalchemy import BigInteger, util
from sqlalchemy.dialects import mysql, sqlite from sqlalchemy.dialects import mysql, sqlite
from sqlalchemy.types import DateTime, TypeDecorator from sqlalchemy.types import DateTime, TypeDecorator
@ -50,6 +50,10 @@ class Serial(TypeDecorator):
cache_ok = True cache_ok = True
impl = BigInteger().with_variant(mysql.BIGINT(unsigned=True), "mysql").with_variant(sqlite.INTEGER(), "sqlite") impl = BigInteger().with_variant(mysql.BIGINT(unsigned=True), "mysql").with_variant(sqlite.INTEGER(), "sqlite")
# https://alembic.sqlalchemy.org/en/latest/autogenerate.html?highlight=custom%20column#affecting-the-rendering-of-types-themselves
def __repr__(self) -> str:
return util.generic_repr(self)
class UtcDateTime(TypeDecorator): class UtcDateTime(TypeDecorator):
"""Almost equivalent to `sqlalchemy.types.DateTime` with """Almost equivalent to `sqlalchemy.types.DateTime` with
@ -85,3 +89,7 @@ class UtcDateTime(TypeDecorator):
value = value.astimezone(datetime.timezone.utc) value = value.astimezone(datetime.timezone.utc)
value = value.replace(tzinfo=datetime.timezone.utc) value = value.replace(tzinfo=datetime.timezone.utc)
return value return value
# https://alembic.sqlalchemy.org/en/latest/autogenerate.html?highlight=custom%20column#affecting-the-rendering-of-types-themselves
def __repr__(self) -> str:
return util.generic_repr(self)