[Checkins] SVN: Sandbox/malthe/chameleon.zpt/ Allow empty expressions.
Malthe Borch
mborch at gmail.com
Mon Nov 17 07:37:18 EST 2008
Log message for revision 93041:
Allow empty expressions.
Changed:
U Sandbox/malthe/chameleon.zpt/CHANGES.txt
U Sandbox/malthe/chameleon.zpt/src/chameleon/zpt/expressions.py
-=-
Modified: Sandbox/malthe/chameleon.zpt/CHANGES.txt
===================================================================
--- Sandbox/malthe/chameleon.zpt/CHANGES.txt 2008-11-17 12:03:43 UTC (rev 93040)
+++ Sandbox/malthe/chameleon.zpt/CHANGES.txt 2008-11-17 12:37:18 UTC (rev 93041)
@@ -4,6 +4,9 @@
Head
~~~~
+- Allow empty expressions; for string-expressions, this means an empty
+ string, rather than no expression. [malthe]
+
- Fixed string escape issue. [malthe]
- Fixed issue where translation pragma would be reset if a
Modified: Sandbox/malthe/chameleon.zpt/src/chameleon/zpt/expressions.py
===================================================================
--- Sandbox/malthe/chameleon.zpt/src/chameleon/zpt/expressions.py 2008-11-17 12:03:43 UTC (rev 93040)
+++ Sandbox/malthe/chameleon.zpt/src/chameleon/zpt/expressions.py 2008-11-17 12:37:18 UTC (rev 93041)
@@ -273,7 +273,7 @@
>>> class MockExpressionTranslator(ExpressionTranslator):
... def translate(self, string, escape=None):
- ... return types.value(string)
+ ... if string: return types.value(string)
>>> output = MockExpressionTranslator().output
@@ -304,7 +304,7 @@
>>> class MockExpressionTranslator(ExpressionTranslator):
... def translate(self, string, escape=None):
- ... return types.value(string)
+ ... if string: return types.value(string)
>>> tales = MockExpressionTranslator().tales
@@ -356,6 +356,10 @@
i = j + 1
+ value = translator.translate("", escape)
+ if value is not None:
+ parts.append(value)
+
if len(parts) == 1:
return parts[0]
@@ -374,12 +378,13 @@
if isinstance(string, unicode):
string = string.encode('utf-8')
- parser.expr(string.strip())
+ if string:
+ parser.expr(string.strip())
- if isinstance(string, str):
- string = string.decode('utf-8')
+ if isinstance(string, str):
+ string = string.decode('utf-8')
- return types.value(string.strip())
+ return types.value(string.strip())
python_translator = PythonTranslator()
@@ -395,6 +400,14 @@
self.translator = translator
def translate(self, string, escape=None):
+ """
+ >>> translate = StringTranslator(python_translator).translate
+
+ >>> translate("")
+ join('',)
+
+ """
+
parts = self.split(string)
if escape is not None:
parts = map(
More information about the Checkins
mailing list