"""describes the ImCmd class""" import sys from sqlalchemy import Column, Integer, LargeBinary, String from simplejson import json from sqlalchemy.orm import class_mapper class ImCmd(Base): """defines the table class""" __tablename__ = 'im_cmd' id = Column(Integer, primary_key=True) date = Column(Integer) remote_addr = Column(String(16)) name = Column(String(16)) url = Column(String(256)) dir = Column(String(2)) oldfile = Column(String(256)) newfile = Column(String(256)) cmd = Column(LargeBinary) dataobj = Column(LargeBinary) tag = Column(String(50)) def serialize(self, columns=None): """returns the class as a dictionary""" if not columns: columns = [c.key for c in class_mapper(self.__class__).columns] col_val = [] for c in columns: if c == "dataobj": val = getattr(self, c) if val is not None: try: val = json.loads(val) except json.JSONDecodeError: sys.stderr.write("Could not decode json: %s\n" % val) sys.stderr.write( "bad value in db, id = %s\n" % getattr(self, "id") ) pass col_val.append((c, val)) else: col_val.append((c, getattr(self, c))) return dict(col_val)