Make the schema minimally usable on Python 3

This commit is contained in:
Eevee (Lexy Munroe) 2016-11-21 19:27:28 -08:00
parent 684aef2506
commit aa92ccb7ad

View file

@ -29,6 +29,7 @@ classes in that module can be used to change the default language.
import collections import collections
from functools import partial from functools import partial
import six
from sqlalchemy import Column, ForeignKey, MetaData, PrimaryKeyConstraint, Table, UniqueConstraint from sqlalchemy import Column, ForeignKey, MetaData, PrimaryKeyConstraint, Table, UniqueConstraint
from sqlalchemy.ext.declarative import declarative_base, DeclarativeMeta from sqlalchemy.ext.declarative import declarative_base, DeclarativeMeta
from sqlalchemy.ext.associationproxy import association_proxy from sqlalchemy.ext.associationproxy import association_proxy
@ -42,11 +43,12 @@ from sqlalchemy.types import Boolean, Enum, Integer, SmallInteger, Unicode, Unic
from pokedex.db import markdown, multilang from pokedex.db import markdown, multilang
@six.python_2_unicode_compatible
class TableSuperclass(object): class TableSuperclass(object):
"""Superclass for declarative tables, to give them some generic niceties """Superclass for declarative tables, to give them some generic niceties
like stringification. like stringification.
""" """
def __unicode__(self): def __str__(self):
"""Be as useful as possible. Show the primary key, and an identifier """Be as useful as possible. Show the primary key, and an identifier
if we've got one. if we've got one.
""" """
@ -56,18 +58,15 @@ class TableSuperclass(object):
if not pk_constraint: if not pk_constraint:
return u"<%s object at %x>" % (typename, id(self)) return u"<%s object at %x>" % (typename, id(self))
pk = u', '.join(unicode(getattr(self, column.name)) pk = u', '.join(six.text_type(getattr(self, column.name))
for column in pk_constraint.columns) for column in pk_constraint.columns)
try: try:
return u"<%s object (%s): %s>" % (typename, pk, self.identifier) return u"<%s object (%s): %s>" % (typename, pk, self.identifier)
except AttributeError: except AttributeError:
return u"<%s object (%s)>" % (typename, pk) return u"<%s object (%s)>" % (typename, pk)
def __str__(self):
return unicode(self).encode('utf8')
def __repr__(self): def __repr__(self):
return unicode(self).encode('utf8') return str(self)
mapped_classes = [] mapped_classes = []
class TableMetaclass(DeclarativeMeta): class TableMetaclass(DeclarativeMeta):