changeset 239:5e93ff3a703f trunk

Further simplification of the XPath engine.
author cmlenz
date Tue, 12 Sep 2006 16:44:36 +0000
parents 7383b0719601
children 37039af315da
files genshi/path.py
diffstat 1 files changed, 0 insertions(+), 81 deletions(-) [+]
line wrap: on
line diff
--- a/genshi/path.py
+++ b/genshi/path.py
@@ -642,8 +642,6 @@
         self.expr = expr
     def __call__(self, kind, data, pos, namespaces, variables):
         val = self.expr(kind, data, pos, namespaces, variables)
-        if type(val) is tuple:
-            val = val[1]
         return bool(val)
     def __repr__(self):
         return 'boolean(%r)' % self.expr
@@ -657,8 +655,6 @@
         self.number = number
     def __call__(self, kind, data, pos, namespaces, variables):
         number = self.number(kind, data, pos, namespaces, variables)
-        if type(number) is tuple:
-            number = number[1]
         return ceil(float(number))
     def __repr__(self):
         return 'ceiling(%r)' % self.number
@@ -674,9 +670,6 @@
         strings = []
         for item in [expr(kind, data, pos, namespaces, variables)
                      for expr in self.exprs]:
-            if type(item) is tuple:
-                assert item[0] is TEXT
-                item = item[1]
             strings.append(item)
         return u''.join(strings)
     def __repr__(self):
@@ -692,11 +685,7 @@
         self.string2 = string2
     def __call__(self, kind, data, pos, namespaces, variables):
         string1 = self.string1(kind, data, pos, namespaces, variables)
-        if type(string1) is tuple:
-            string1 = string1[1]
         string2 = self.string2(kind, data, pos, namespaces, variables)
-        if type(string2) is tuple:
-            string2 = string2[1]
         return string2 in string1
     def __repr__(self):
         return 'contains(%r, %r)' % (self.string1, self.string2)
@@ -718,8 +707,6 @@
         self.number = number
     def __call__(self, kind, data, pos, namespaces, variables):
         number = self.number(kind, data, pos, namespaces, variables)
-        if type(number) is tuple:
-            number = number[1]
         return floor(float(number))
     def __repr__(self):
         return 'floor(%r)' % self.number
@@ -780,8 +767,6 @@
         self.expr = expr
     def __call__(self, kind, data, pos, namespaces, variables):
         string = self.expr(kind, data, pos, namespaces, variables)
-        if type(string) is tuple:
-            string = string[1]
         return self._normalize(' ', string.strip())
     def __repr__(self):
         return 'normalize-space(%s)' % repr(self.expr)
@@ -793,8 +778,6 @@
         self.expr = expr
     def __call__(self, kind, data, pos, namespaces, variables):
         val = self.expr(kind, data, pos, namespaces, variables)
-        if type(val) is tuple:
-            val = val[1]
         return float(val)
     def __repr__(self):
         return 'number(%r)' % self.expr
@@ -808,8 +791,6 @@
         self.number = number
     def __call__(self, kind, data, pos, namespaces, variables):
         number = self.number(kind, data, pos, namespaces, variables)
-        if type(number) is tuple:
-            number = number[1]
         return round(float(number))
     def __repr__(self):
         return 'round(%r)' % self.number
@@ -824,11 +805,7 @@
         self.string2 = string2
     def __call__(self, kind, data, pos, namespaces, variables):
         string1 = self.string1(kind, data, pos, namespaces, variables)
-        if type(string1) is tuple:
-            string1 = string1[1]
         string2 = self.string2(kind, data, pos, namespaces, variables)
-        if type(string2) is tuple:
-            string2 = string2[1]
         return string1.startswith(string2)
     def __repr__(self):
         return 'starts-with(%r, %r)' % (self.string1, self.string2)
@@ -842,8 +819,6 @@
         self.expr = expr
     def __call__(self, kind, data, pos, namespaces, variables):
         string = self.expr(kind, data, pos, namespaces, variables)
-        if type(string) is tuple:
-            string = string[1]
         return len(string)
     def __repr__(self):
         return 'string-length(%r)' % self.expr
@@ -859,16 +834,10 @@
         self.length = length
     def __call__(self, kind, data, pos, namespaces, variables):
         string = self.string(kind, data, pos, namespaces, variables)
-        if type(string) is tuple:
-            string = string[1]
         start = self.start(kind, data, pos, namespaces, variables)
-        if type(start) is tuple:
-            start = start[1]
         length = 0
         if self.length is not None:
             length = self.length(kind, data, pos, namespaces, variables)
-            if type(length) is tuple:
-                length = length[1]
         return string[int(start):len(string) - int(length)]
     def __repr__(self):
         if self.length is not None:
@@ -887,11 +856,7 @@
         self.string2 = string2
     def __call__(self, kind, data, pos, namespaces, variables):
         string1 = self.string1(kind, data, pos, namespaces, variables)
-        if type(string1) is tuple:
-            string1 = string1[1]
         string2 = self.string2(kind, data, pos, namespaces, variables)
-        if type(string2) is tuple:
-            string2 = string2[1]
         index = string1.find(string2)
         if index >= 0:
             return string1[index + len(string2):]
@@ -909,11 +874,7 @@
         self.string2 = string2
     def __call__(self, kind, data, pos, namespaces, variables):
         string1 = self.string1(kind, data, pos, namespaces, variables)
-        if type(string1) is tuple:
-            string1 = string1[1]
         string2 = self.string2(kind, data, pos, namespaces, variables)
-        if type(string2) is tuple:
-            string2 = string2[1]
         index = string1.find(string2)
         if index >= 0:
             return string1[:index]
@@ -932,14 +893,8 @@
         self.tochars = tochars
     def __call__(self, kind, data, pos, namespaces, variables):
         string = self.string(kind, data, pos, namespaces, variables)
-        if type(string) is tuple:
-            string = string[1]
         fromchars = self.fromchars(kind, data, pos, namespaces, variables)
-        if type(fromchars) is tuple:
-            fromchars = fromchars[1]
         tochars = self.tochars(kind, data, pos, namespaces, variables)
-        if type(tochars) is tuple:
-            tochars = tochars[1]
         table = dict(zip([ord(c) for c in fromchars],
                          [ord(c) for c in tochars]))
         return string.translate(table)
@@ -1014,13 +969,9 @@
         self.rval = rval
     def __call__(self, kind, data, pos, namespaces, variables):
         lval = self.lval(kind, data, pos, namespaces, variables)
-        if type(lval) is tuple:
-            lval = lval[1]
         if not lval:
             return False
         rval = self.rval(kind, data, pos, namespaces, variables)
-        if type(rval) is tuple:
-            rval = rval[1]
         return bool(rval)
     def __repr__(self):
         return '%s and %s' % (self.lval, self.rval)
@@ -1033,11 +984,7 @@
         self.rval = rval
     def __call__(self, kind, data, pos, namespaces, variables):
         lval = self.lval(kind, data, pos, namespaces, variables)
-        if type(lval) is tuple:
-            lval = lval[1]
         rval = self.rval(kind, data, pos, namespaces, variables)
-        if type(rval) is tuple:
-            rval = rval[1]
         return lval == rval
     def __repr__(self):
         return '%s=%s' % (self.lval, self.rval)
@@ -1050,11 +997,7 @@
         self.rval = rval
     def __call__(self, kind, data, pos, namespaces, variables):
         lval = self.lval(kind, data, pos, namespaces, variables)
-        if type(lval) is tuple:
-            lval = lval[1]
         rval = self.rval(kind, data, pos, namespaces, variables)
-        if type(rval) is tuple:
-            rval = rval[1]
         return lval != rval
     def __repr__(self):
         return '%s!=%s' % (self.lval, self.rval)
@@ -1067,13 +1010,9 @@
         self.rval = rval
     def __call__(self, kind, data, pos, namespaces, variables):
         lval = self.lval(kind, data, pos, namespaces, variables)
-        if type(lval) is tuple:
-            lval = lval[1]
         if lval:
             return True
         rval = self.rval(kind, data, pos, namespaces, variables)
-        if type(rval) is tuple:
-            rval = rval[1]
         return bool(rval)
     def __repr__(self):
         return '%s or %s' % (self.lval, self.rval)
@@ -1086,11 +1025,7 @@
         self.rval = rval
     def __call__(self, kind, data, pos, namespaces, variables):
         lval = self.lval(kind, data, pos, namespaces, variables)
-        if type(lval) is tuple:
-            lval = lval[1]
         rval = self.rval(kind, data, pos, namespaces, variables)
-        if type(rval) is tuple:
-            rval = rval[1]
         return float(lval) > float(rval)
     def __repr__(self):
         return '%s>%s' % (self.lval, self.rval)
@@ -1103,11 +1038,7 @@
         self.rval = rval
     def __call__(self, kind, data, pos, namespaces, variables):
         lval = self.lval(kind, data, pos, namespaces, variables)
-        if type(lval) is tuple:
-            lval = lval[1]
         rval = self.rval(kind, data, pos, namespaces, variables)
-        if type(rval) is tuple:
-            rval = rval[1]
         return float(lval) > float(rval)
     def __repr__(self):
         return '%s>%s' % (self.lval, self.rval)
@@ -1120,11 +1051,7 @@
         self.rval = rval
     def __call__(self, kind, data, pos, namespaces, variables):
         lval = self.lval(kind, data, pos, namespaces, variables)
-        if type(lval) is tuple:
-            lval = lval[1]
         rval = self.rval(kind, data, pos, namespaces, variables)
-        if type(rval) is tuple:
-            rval = rval[1]
         return float(lval) >= float(rval)
     def __repr__(self):
         return '%s>=%s' % (self.lval, self.rval)
@@ -1137,11 +1064,7 @@
         self.rval = rval
     def __call__(self, kind, data, pos, namespaces, variables):
         lval = self.lval(kind, data, pos, namespaces, variables)
-        if type(lval) is tuple:
-            lval = lval[1]
         rval = self.rval(kind, data, pos, namespaces, variables)
-        if type(rval) is tuple:
-            rval = rval[1]
         return float(lval) < float(rval)
     def __repr__(self):
         return '%s<%s' % (self.lval, self.rval)
@@ -1154,11 +1077,7 @@
         self.rval = rval
     def __call__(self, kind, data, pos, namespaces, variables):
         lval = self.lval(kind, data, pos, namespaces, variables)
-        if type(lval) is tuple:
-            lval = lval[1]
         rval = self.rval(kind, data, pos, namespaces, variables)
-        if type(rval) is tuple:
-            rval = rval[1]
         return float(lval) <= float(rval)
     def __repr__(self):
         return '%s<=%s' % (self.lval, self.rval)
Copyright (C) 2012-2017 Edgewall Software