Beispiel #1
0
 def getall(self, infoid):
     n = self.name
     self.cursor.execute('select %s_value from %ss where %s_key=%s'%(n,
         n, n, self.db.arg), (infoid,))
     res = self.cursor.fetchone()
     if not res:
         raise KeyError('No such %s "%s"'%(self.name, escape (infoid)))
     return eval(res[0])
Beispiel #2
0
 def get(self, infoid, value, default=_marker):
     n = self.name
     self.cursor.execute('select %s_value from %ss where %s_key=%s'%(n,
         n, n, self.db.arg), (infoid,))
     res = self.cursor.fetchone()
     if not res:
         if default != self._marker:
             return default
         raise KeyError('No such %s "%s"'%(self.name, escape(infoid)))
     values = eval(res[0])
     return values.get(value, None)
Beispiel #3
0
 def getall(self, infoid):
     db = self.opendb('c')
     try:
         try:
             d = marshal.loads(db[infoid])
             del d['__timestamp']
             return d
         except KeyError:
             raise KeyError('No such %s "%s"' % (self.name, escape(infoid)))
     finally:
         db.close()
Beispiel #4
0
 def get(self, infoid, value, default=_marker):
     db = self.opendb('c')
     try:
         if infoid in db:
             values = marshal.loads(db[infoid])
         else:
             if default != self._marker:
                 return default
             raise KeyError('No such %s "%s"' % (self.name, escape(infoid)))
         return values.get(value, None)
     finally:
         db.close()
Beispiel #5
0
 def do_insertText_tal(self, stuff):
     text = self.engine.evaluateText(stuff[0])
     if text is None:
         return
     if text is self.Default:
         self.interpret(stuff[1])
         return
     s = escape(text)
     self._stream_write(s)
     i = s.rfind('\n')
     if i < 0:
         self.col = self.col + len(s)
     else:
         self.col = len(s) - (i + 1)
Beispiel #6
0
    def attrAction_tal(self, item):
        name, value, action = item[:3]
        ok = 1
        expr, xlat, msgid = item[3:]
        if self.html and name.lower() in BOOLEAN_HTML_ATTRS:
            evalue = self.engine.evaluateBoolean(item[3])
            if evalue is self.Default:
                if action == 'insert': # Cancelled insert
                    ok = 0
            elif evalue:
                value = None
            else:
                ok = 0
        elif expr is not None:
            evalue = self.engine.evaluateText(item[3])
            if evalue is self.Default:
                if action == 'insert': # Cancelled insert
                    ok = 0
            else:
                if evalue is None:
                    ok = 0
                value = evalue
        else:
            evalue = None

        if ok:
            if xlat:
                translated = self.translate(msgid or value, value, {})
                if translated is not None:
                    value = translated
            if value is None:
                value = name
            elif evalue is self.Default:
                value = attrEscape(value)
            else:
                value = escape(value, quote=1)
            value = '%s="%s"' % (name, value)
        return ok, name, value