diff options
| author | pepperpepperpepper <pepper@scannerjammer.com> | 2015-11-16 15:08:02 -0800 |
|---|---|---|
| committer | pepperpepperpepper <pepper@scannerjammer.com> | 2015-11-16 15:08:02 -0800 |
| commit | c2f9f9ae233a4883b62afe54e9e45e5eb262e6f1 (patch) | |
| tree | a61da8d300a85377ca0a9dae6a0e8acf77124f52 /to_merge/imcmd.py | |
| parent | b23102673935d7732668a3cb621fe03dbb29d044 (diff) | |
ready to merge to main branch
Diffstat (limited to 'to_merge/imcmd.py')
| -rw-r--r-- | to_merge/imcmd.py | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/to_merge/imcmd.py b/to_merge/imcmd.py new file mode 100644 index 0000000..5206f99 --- /dev/null +++ b/to_merge/imcmd.py @@ -0,0 +1,43 @@ +"""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) |
