Link: start Link: parent Link: First page in set (first) Link: Previous page (previous) Link: Next page (next) Link: Last page in set (last) Link: A plain text version of this page (alternate) Link: The XIST source of this page (alternate) Link: The Python module described in this page (alternate) XIST.ns.code ============ Namespace module for embedding Python code in XML ================================================= Home > Python software > ll.xist > ns > code Text · XIST · Python Python softwarelist of projects * ll.xistAn extensible XML/HTML generator * ExamplesParsing/creating/modifying XML; Traversing XML trees * HowtoExplains parsing/generating XML files, XML transformations via XIST classes and other basic concepts. * SearchingHow to iterate through XIST trees * TransformationHow to transform XIST trees * Advanced topicsPool chaining, converter contexts, validation * MiscellaneousExplains various odds and ends of XIST * xscXIST core classes * nsPackage containing namespace modules * htmlHTML namespace * xmlNamespace implementing global XML attributes * wmlWML 1.3 namespace * ihtmlNamespace implementing i-mode compatible HTML * docbookNamespace implementing DocBook 4.3 * svgNamespace implementing SVG 1.0 * abbrNamespace containing abbreviation entities * codeNamespace for embedding Python code in XML * formNamespace implementing form related elements * phpNamespace for PHP processing instructions * jspNamespace for JSP code as processing instructions * metaNamespace containing meta information elements * rubyNamespace implementing the W3C ruby draft * specialsCommon useful elements * htmlspecialsCommon useful elements for HTML generation * docNamespace for automated documentation generation * kidNamespace for Kid templates * detoxNamespace for detox templates * toxicEmbed PL/SQL in XIST XML * rngNamespace for Relax NG * rss091Namespace for RSS 0.91 * rss20Namespace for RSS 2.0 * atomNamespace for Atom 1.0 * struts_htmlNamespace for Jakarta Struts HTML tags * struts_configNamespace for Jakarta Struts configuration file tags * parseParsing XML * presentScreen output of XML trees * simsSimple schema validation * xfindTree iteration and filtering * cssCSS related functions * scriptsScripts for text conversion and creating XIST namespaces * HistoryChangeLog for XIST * InstallationHow to install and configure XIST * MigrationHow to update your code to new versions of XIST * Mailing listsHow to subscribe to the XIST mailing lists * ll.ul4cA templating language * ll.urlRFC 2396 compliant URLs * ll.makeObject oriented make replacement * ll.daemonForking daemon processes * ll.sisyphusWriting cron jobs with Python * ll.colorRGB color values and color model conversion * ll.miscMisc utility functions and classes * ll.orasqlUtilities for cx_Oracle * ll.nightshadeServe the output of Oracle functions/procedures with CherryPy * ll.scriptsScripts for UL4 template rendering and URL handling * AploraLogging Apache HTTP requests to an Oracle database * PycocoPython code coverage * DownloadLinks to Windows and Linux, source and binary distributions * Source codeAccess to the Mercurial repositories An XIST module that allows embedding Python code in XML. class Code(object): ==================== def __init__(self, text, ignorefirst=False): ============================================= def indent(self): ================== def funcify(self, name=u'__'): =============================== def asstring(self): ==================== class _base(ll.xist.xsc.ProcInst): =================================== class Context(ll.xist.xsc.Context): ==================================== def __init__(self): -------------------- class pyexec(_base): ===================== When converting a pyexec object the content of the processing instruction is executed as Python code. Execution is done when the node is converted. When converted such a node will result in an empty Null node. These processing instructions will be evaluated and executed in the namespace of the module sandbox (which will be store in the converter context). def convert(self, converter): ============================== class pyeval(_base): ===================== The content of a pyeval processing instruction will be executed when the node is converted as if it was the body of a function, so you can return an expression here. Although the content is used as a function body no indentation is neccessary or allowed. The returned value will be converted to a node and this resulting node will be converted. These processing instructions will be evaluated and executed in the namespace of the module sandbox (which will be store in the converter context). Note that you should not define the symbol __ in any of your XIST processing instructions, as it is used by XIST for internal purposes. def convert(self, converter): ============================== Evaluates the code as if it was the body of a Python funtion. The converter argument will be available under the name converter as an argument to the function.