MrDraw/SkeinPyPy_NewUI/fabmetheus_utilities/geometry/statements/_print.py
Daid a414a80837 Adding SkeinPyPy_NewUI as development for a brand new user interface.
Experimental, doesn't slice yet, loads of work ahead.
2012-02-20 00:30:49 +01:00

63 lines
2.2 KiB
Python

"""
Print statement.
There is also the print attribute in geometry_utilities/evaluate_fundamentals/print.py
The model is xml_models/geometry_utilities/evaluate_fundamentals/print.xml
"""
from __future__ import absolute_import
#Init has to be imported first because it has code to workaround the python bug where relative imports don't work if the module is imported as a main module.
import __init__
from fabmetheus_utilities.geometry.geometry_utilities import evaluate
__author__ = 'Enrique Perez (perez_enrique@yahoo.com)'
__credits__ = 'Art of Illusion <http://www.artofillusion.org/>'
__date__ = '$Date: 2008/02/05 $'
__license__ = 'GNU Affero General Public License http://www.gnu.org/licenses/agpl.html'
def getLocalDictionary( attributesKey, elementNode):
"Get the local dictionary."
xmlProcessor = elementNode.getXMLProcessor()
if len( xmlProcessor.functions ) < 1:
return None
return xmlProcessor.functions[-1].localDictionary
def printAttributesKey( attributesKey, elementNode):
"Print the attributesKey."
if attributesKey.lower() == '_localdictionary':
localDictionary = getLocalDictionary( attributesKey, elementNode)
if localDictionary != None:
localDictionaryKeys = localDictionary.keys()
attributeValue = elementNode.attributes[attributesKey]
if attributeValue != '':
attributeValue = ' - ' + attributeValue
print('Local Dictionary Variables' + attributeValue )
localDictionaryKeys.sort()
for localDictionaryKey in localDictionaryKeys:
print('%s: %s' % ( localDictionaryKey, localDictionary[ localDictionaryKey ] ) )
return
value = elementNode.attributes[attributesKey]
evaluatedValue = None
if value == '':
evaluatedValue = evaluate.getEvaluatedExpressionValue(elementNode, attributesKey)
else:
evaluatedValue = evaluate.getEvaluatedExpressionValue(elementNode, value)
print('%s: %s' % ( attributesKey, evaluatedValue ) )
def processElementNode(elementNode):
"Process the xml element."
if len(elementNode.getTextContent()) > 1:
print(elementNode.getTextContent())
return
attributesKeys = elementNode.attributes.keys()
if len( attributesKeys ) < 1:
print('')
return
attributesKeys.sort()
for attributesKey in attributesKeys:
printAttributesKey( attributesKey, elementNode)