[maemo-commits] [maemo-commits] r8555 - in projects/haf/trunk/python-xml: . xml/utils xml/xpath
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Fri Dec 1 22:07:37 EET 2006
- Previous message: [maemo-commits] r8554 - projects/haf/tags/osso-gnome-vfs2
- Next message: [maemo-commits] r8557 - projects/haf/trunk/python-xml/xml/utils
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: osantana
Date: 2006-12-01 22:07:19 +0200 (Fri, 01 Dec 2006)
New Revision: 8555
Added:
projects/haf/trunk/python-xml/xml/utils/boolean.py
Modified:
projects/haf/trunk/python-xml/setup.py
projects/haf/trunk/python-xml/xml/xpath/BuiltInExtFunctions.py
projects/haf/trunk/python-xml/xml/xpath/Conversions.py
projects/haf/trunk/python-xml/xml/xpath/CoreFunctions.py
projects/haf/trunk/python-xml/xml/xpath/ParsedExpr.py
Log:
replace boolean C extension to the Python native booleans
Modified: projects/haf/trunk/python-xml/setup.py
===================================================================
--- projects/haf/trunk/python-xml/setup.py 2006-12-01 16:59:27 UTC (rev 8554)
+++ projects/haf/trunk/python-xml/setup.py 2006-12-01 20:07:19 UTC (rev 8555)
@@ -147,11 +147,11 @@
))
# Build boolean
-ext_modules.append(
- Extension(xml('.utils.boolean'),
- extra_link_args=LDFLAGS,
- sources=['extensions/boolean.c'],
- ))
+#ext_modules.append(
+# Extension(xml('.utils.boolean'),
+# extra_link_args=LDFLAGS,
+# sources=['extensions/boolean.c'],
+# ))
# On Windows, install the documentation into a directory xmldoc, along
Added: projects/haf/trunk/python-xml/xml/utils/boolean.py
===================================================================
--- projects/haf/trunk/python-xml/xml/utils/boolean.py 2006-12-01 16:59:27 UTC (rev 8554)
+++ projects/haf/trunk/python-xml/xml/utils/boolean.py 2006-12-01 20:07:19 UTC (rev 8555)
@@ -0,0 +1,14 @@
+
+true = True
+false = False
+
+BooleanType = bool
+
+def BooleanValue(obj, func):
+ if isinstance(obj, bool):
+ return obj
+ if isinstance(obj, basestring):
+ return bool(func(obj))
+ return bool(obj)
+
+IsBooleanType = lambda obj: isinstance(obj, bool)
Modified: projects/haf/trunk/python-xml/xml/xpath/BuiltInExtFunctions.py
===================================================================
--- projects/haf/trunk/python-xml/xml/xpath/BuiltInExtFunctions.py 2006-12-01 16:59:27 UTC (rev 8554)
+++ projects/haf/trunk/python-xml/xml/xpath/BuiltInExtFunctions.py 2006-12-01 20:07:19 UTC (rev 8555)
@@ -14,7 +14,6 @@
import sys, re, string, urllib
from xml.dom import Node, EMPTY_NAMESPACE
from xml.dom.Text import Text
-from xml.utils import boolean
from xml.xpath import CoreFunctions, Conversions, FT_EXT_NAMESPACE, FT_OLD_EXT_NAMESPACE
def Version(context):
@@ -41,7 +40,7 @@
if not arg:
arg = context.node
arg = Conversions.StringValue(arg)
- bool = re.match(pattern, arg) and boolean.true or boolean.false
+ bool = re.match(pattern, arg) and True or False
return bool
Modified: projects/haf/trunk/python-xml/xml/xpath/Conversions.py
===================================================================
--- projects/haf/trunk/python-xml/xml/xpath/Conversions.py 2006-12-01 16:59:27 UTC (rev 8554)
+++ projects/haf/trunk/python-xml/xml/xpath/Conversions.py 2006-12-01 20:07:19 UTC (rev 8555)
@@ -19,7 +19,6 @@
from xml.xpath import NaN, Inf
from xml.xpath import Util
from xml.xpath import NAMESPACE_NODE
-from xml.utils import boolean
import types
try:
@@ -91,7 +90,7 @@
"""Get the number value of any object"""
if type(object) in [type(1), type(2.3), type(4L)]:
return 1, object
- elif boolean.IsBooleanType(object):
+ elif isinstance(object, bool):
return 1, int(object)
#FIXME: This can probably be optimized
object = StringValue(object)
@@ -107,7 +106,7 @@
return 1, object
-CoreBooleanValue = lambda obj: (1, boolean.BooleanValue(obj, StringValue))
+CoreBooleanValue = lambda obj: (1, bool(StringValue(obj)))
g_stringConversions = [CoreStringValue]
g_numberConversions = [CoreNumberValue]
@@ -153,7 +152,7 @@
types.IntType : str,
types.LongType : lambda l: repr(l)[:-1],
types.FloatType : lambda f: f is NaN and 'NaN' or '%g' % f,
- boolean.BooleanType : str,
+ bool : str,
types.InstanceType : _strInstance,
types.ListType : lambda x: x and _strConversions.get(type(x[0]), _strUnknown)(x[0]) or '',
}
Modified: projects/haf/trunk/python-xml/xml/xpath/CoreFunctions.py
===================================================================
--- projects/haf/trunk/python-xml/xml/xpath/CoreFunctions.py 2006-12-01 16:59:27 UTC (rev 8554)
+++ projects/haf/trunk/python-xml/xml/xpath/CoreFunctions.py 2006-12-01 20:07:19 UTC (rev 8555)
@@ -20,7 +20,6 @@
from xml.xpath import Util, Conversions
from xml.xpath import NAMESPACE_NODE
from xml.xpath import CompiletimeException, RuntimeException
-from xml.utils import boolean
from xml.FtCore import get_translator
@@ -154,7 +153,7 @@
"""Function: <string> starts-with(<string>, <string>)"""
outer = Conversions.StringValue(outer)
inner = Conversions.StringValue(inner)
- return outer[:len(inner)] == inner and boolean.true or boolean.false
+ return outer[:len(inner)] == inner and True or False
def Contains(context, outer, inner):
@@ -162,9 +161,9 @@
outer = Conversions.StringValue(outer)
inner = Conversions.StringValue(inner)
if len(inner) == 1:
- return inner in outer and boolean.true or boolean.false
+ return inner in outer and True or False
else:
- return string.find(outer, inner) != -1 and boolean.true or boolean.false
+ return string.find(outer, inner) != -1 and True or False
def SubstringBefore(context, outer, inner):
@@ -245,17 +244,17 @@
def Not(context, object):
"""Function: <boolean> not(<boolean>)"""
- return (not Conversions.BooleanValue(object) and boolean.true) or boolean.false
+ return (not Conversions.BooleanValue(object) and True) or False
-def True(context):
+def True_(context):
"""Function: <boolean> true()"""
- return boolean.true
+ return True
-def False(context):
+def False_(context):
"""Function: <boolean> false()"""
- return boolean.false
+ return False
def Lang(context, lang):
@@ -271,9 +270,9 @@
if index != -1:
value = value[:index]
value = string.upper(value)
- return value == lang and boolean.true or boolean.false
+ return value == lang and True or False
node = node.nodeType == Node.ATTRIBUTE_NODE and node.ownerElement or node.parentNode
- return boolean.false
+ return False
### Number Functions ###
@@ -352,8 +351,8 @@
(EMPTY_NAMESPACE, 'translate'): Translate,
(EMPTY_NAMESPACE, 'boolean'): _Boolean,
(EMPTY_NAMESPACE, 'not'): Not,
- (EMPTY_NAMESPACE, 'true'): True,
- (EMPTY_NAMESPACE, 'false'): False,
+ (EMPTY_NAMESPACE, 'true'): True_,
+ (EMPTY_NAMESPACE, 'false'): False_,
(EMPTY_NAMESPACE, 'lang'): Lang,
(EMPTY_NAMESPACE, 'number'): Number,
(EMPTY_NAMESPACE, 'sum'): Sum,
Modified: projects/haf/trunk/python-xml/xml/xpath/ParsedExpr.py
===================================================================
--- projects/haf/trunk/python-xml/xml/xpath/ParsedExpr.py 2006-12-01 16:59:27 UTC (rev 8554)
+++ projects/haf/trunk/python-xml/xml/xpath/ParsedExpr.py 2006-12-01 20:07:19 UTC (rev 8555)
@@ -22,7 +22,6 @@
from xml.xpath import Util
from xml.xpath import ParsedStep
from xml.xpath import ParsedAxisSpecifier
-from xml.utils import boolean
import Set
class NodeSet(UserList.UserList):
@@ -437,11 +436,11 @@
def evaluate(self, context):
if self._op == '=':
- true = boolean.true
- false = boolean.false
+ true = True
+ false = False
else:
- true = boolean.false
- false = boolean.true
+ true = False
+ false = True
lrt = self._left.evaluate(context)
rrt = self._right.evaluate(context)
@@ -465,7 +464,7 @@
val = lrt
if type(val) in NumberTypes:
func = Conversions.NumberValue
- elif boolean.IsBooleanType(val):
+ elif isinstance(val,bool):
func = Conversions.BooleanValue
elif type(val) == types.StringType:
func = Conversions.StringValue
@@ -478,7 +477,7 @@
return true
return false
- if boolean.IsBooleanType(lrt) or boolean.IsBooleanType(rrt):
+ if isinstance(lrt, bool) or isinstance(rrt, bool):
rt = Conversions.BooleanValue(lrt) == Conversions.BooleanValue(rrt)
elif lType in NumberTypes or rType in NumberTypes:
rt = Conversions.NumberValue(lrt) == Conversions.NumberValue(rrt)
@@ -543,7 +542,7 @@
rt = (lrt > rrt)
elif self._op == 3:
rt = (lrt >= rrt)
- return rt and boolean.true or boolean.false
+ return rt and True or False
def pprint(self, indent=''):
print indent + str(self)
- Previous message: [maemo-commits] r8554 - projects/haf/tags/osso-gnome-vfs2
- Next message: [maemo-commits] r8557 - projects/haf/trunk/python-xml/xml/utils
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
