{ "info": { "author": "Evan Stratford", "author_email": "evan.stratford@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Environment :: Web Environment", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Software Development :: Code Generators", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Text Processing :: Markup" ], "description": "XHPy: XHP for Python\n====================\n\n`XHPy `_ extends Python syntax such that XML document\nfragments become valid Python expressions. It is based off\n`XHP `_, a similar framework for PHP.\n\nAdvantages\n----------\n- *Simplicity*: write UI logic in a simple, expressive syntax without the need for external\n templates or templating languages.\n\n- *Flexibility*: use Python expressions freely within XHPy tags, and vice-versa.\n\n- *Security*: benefit from automatic escaping of text within XHPy tags.\n\n- *Reusability*: build reusable components by subclassing :x:element.\n\nAn example\n----------\nIn bar.py:\n\n::\n\n from xhpy.init import register_xhpy_module\n register_xhpy_module('foo')\n import foo\n\nIn foo.py:\n\n::\n\n from xhpy.pylib import *\n class :ui:foo(:x:element):\n attribute list bar\n category %flow\n def render(self):\n a =