Source code for almir.lib.sqlalchemy_lowercase_inspector
import string
from sqlalchemy.engine.reflection import Inspector
[docs]class LowerCaseInspector(Inspector):
"""Implements reflection inspector that reflects everything lowercase"""
# def get_table_names(self, *a, **kw):
# tables = super(LowerCaseInspector, self).get_table_names(*a, **kw)
# return map(string.lower, tables)
[docs] def get_columns(self, *a, **kw):
columns = super(LowerCaseInspector, self).get_columns(*a, **kw)
def lower_case(column):
column['name'] = column['name'].lower()
return column
return map(lower_case, columns)
[docs] def get_indexes(self, *a, **kw):
columns = super(LowerCaseInspector, self).get_indexes(*a, **kw)
def lower_case(column):
column['name'] = column['name'].lower()
column['column_names'] = map(string.lower, column['column_names'])
return column
return map(lower_case, columns)
[docs] def get_foreign_keys(self, *a, **kw):
columns = super(LowerCaseInspector, self).get_foreign_keys(*a, **kw)
def lower_case(column):
column['referred_table'] = column['referred_table'].lower()
column['referred_columns'] = map(string.lower, column['referred_columns'])
column['constrained_columns'] = map(string.lower, column['constrained_columns'])
return column
# ugly bacula bugix since sqlite 'LocationLog' foreignkey that depends on non-existent table LocationId
columns = filter(lambda x: x['referred_table'] != u'LocationId', columns)
return map(lower_case, columns)
[docs] def get_pk_constraint(self, *a, **kw):
columns = super(LowerCaseInspector, self).get_pk_constraint(*a, **kw)
columns['constrained_columns'] = map(string.lower, columns['constrained_columns'])
return columns