__init__.py 739 Bytes
from sqlalchemy.orm import (
    sessionmaker,
    scoped_session,
    )
from sqlalchemy.ext.declarative import declarative_base
from zope.sqlalchemy import ZopeTransactionExtension


DBSession = scoped_session(
    sessionmaker(extension=ZopeTransactionExtension()))
Base = declarative_base()


class CommonModel(object):
    def to_dict(self):
        values = {}
        for column in self.__table__.columns:
            values[column.name] = getattr(self, column.name)
        return values

    def to_dict_without_none(self):
        values = {}
        for column in self.__table__.columns:
            val = getattr(self, column.name)
            if val is not None:
                values[column.name] = val
        return values