ANN: Nevow 0.3 released

jsdude dude_js at
Wed Oct 13 04:14:41 CEST 2004

Try IAB Studio ( from WorcsNet and feel difference.

With IAB Studio, you will get everything you need for creating Web
applications of any complexity.  This toolset of suites includes
unique all-in-one combination of Application Builder, Data
Management/reposting and Workflow.

Over 40 controls are available for users to design, simulate, run,
monitor and administer your applications via the Internet. It is
compatible with major databases and operating systems (Unix/Linux and


Valentino Volonghi aka Dialtone <dialton3#NOSPAM.JJJJKIKK at> wrote in message news:<mailman.4047.1096423520.5135.python-announce-list at>...
> GET it here:
> More Informations:
> Nevow (pronounced nou-veau) is a web application construction kit written
> in Python. It is designed to allow the programmer to express as much of
> the view logic as desired in Python, and includes a pure Python XML
> expression syntax named stan to facilitate this. However it also provides
> rich support for designer-edited templates, using a very small XML
> attribute language to provide bi-directional template manipulation
> capability.
> Nevow also includes formless, a declarative syntax for specifying the
> types of method parameters and exposing these methods to the web. Forms
> can be rendered automatically, and form posts will be validated and input
> coerced, rendering error pages if appropriate. Once a form post has
> validated successfully, the method will be called with the coerced values.
> Finally, Nevow includes LivePage, a two-way bridge between JavaScript in
> a browser and Python on the server. For 0.3, LivePage has been updated to
> operate on Mozilla, Firefox, Windows Internet Explorer 6, and Safari on
> Mac OS X. Event handlers can be written in pure Python and JavaScript
> implementation details are hidden from the programmer, with Nevow taking
> care of routing data to and from the server using XmlHttpRequest.
>     * XHTML templates: contain no programming logic, only nodes tagged
>     with nevow attributes 
>     * data/render methods: simplify the task of separating data from
>     presentation and writing view logic 
>     * stan: An s-expression-like syntax for expressing xml in pure python
>     * formless: For describing the types of objects which may be passed to
>     methods of your classes, validating and coercing string input from
>     either web or command-line sources, and calling your methods
>     automatically once validation passes 
>     * webform: For rendering web forms based on formless type
>     descriptions, accepting form posts and passing them to formless
>     validators, and rendering error forms in the event validation fails     
>     * livepage: Cross-browser JavaScript glue for sending client side
>     events to the server and server side events to the client after the
>     page has loaded, without causing the entire page to refresh
> Links:
> ML:
> Bug Tracker:
> IRC:  irc://
> Commits:
> Homepages: 
> What's New in Nevow 0.3:
> 2004-09-26	Donovan Preston <dp at>
> 	* Added nevow.inevow.IQ interface, an interface for querying the
> 	stan DOM. Eventually, this interface will contain APIs for doing
> 	traditional DOM introspection, such as iterating children,
> 	examining tag names, and examining attributes. For now, it contains
> 	only the patternGenerator, onePattern, and allPatterns APIs. These
> 	APIs have been deprecated from Context.
> 	The main benefit of this is the ability to do:
> 		IQ(loaders.xmlfile(...)).patternGenerator(...)
> 	which would be nice for creating "pattern library" files containing
> 	common skin idioms which can then be copied and used throughout
> 	the app.
> 2004-09-25	Donovan Preston <dp at>
> 	* Chatola received a major facelift, bringing it from cool demo
> 	up to almost a full fledged web-based chat server. The helper API
> was added, which deprecates 
> 	LiveEvil.sendScript(callJS(...))
> 2004-09-23	Tommi Virtanen	<tv at>
> 	* Make guard.SessionWrapper store its URL  location in all requests it
> 	passes to its children. This allows the children know where to post
> 	the __login__ and __logout__ forms, even deep inside the resource
> 	tree (fixes issue59).
> 	* Guard now works as a non-root resource, with help from the above
> 	change. Semantics of __login__ clarified in unit tests; if your guard
> 	is at /foo, posting to /foo/__login__ redirects to /foo, and posting
> 	to /foo/__login__/ redirects to /foo/. The two unit tests that failed
> 	earlier now pass (with that change in their __login__ URLs).
> 	* If URL-based sessions are used, login no longer loses session
> 	information due to redirect to / (fixes issue56).
> 2004-09-20	Matt Goodall <matt at>
> 	* Added method to make switching between http and 
> 	https easier.
> 2004-09-08	Donovan Preston	<dp at>
> 	* Nevow now includes a very simple proof-of-concept WSGI Application 
> 	implementation, and can be used with no Twisted dependency. Nevow can 
> 	also be used to write CGIs, either using a simple CGI WSGI gateway 
> 	(which supports URL traversal), or by using Page.renderString (which does not).
> 	* Two new context interfaces, ICurrentSegments and IRemainingSegments, 
> 	replace the need to examine the Request prepath and postpath attributes
> 	directly.
> 	* ISerializable is deprecated, and has been replaced with a simple 
> 	Flattener registry. nevow.flat.registerFlattener and 
> 	nevow.flat.getFlattener have been added to support this.
> 2004-09-06	Donovan Preston	<dp at>
> 	* BACKWARDS INCOMPATIBLE CHANGE. Page.configurable_ *always* returns
> 	self, and a new Page.configurable_original *always* returns
> 	self.original. If you were relying on Page.configurable_'s
> 	introspection behavior and are now getting errors about adapting
> 	to IConfigurable, change your renderForms() calls to:
> 		renderForms('original')
> 	This causes Page.configurable_original to be invoked and
> 	introspected for form rendering.
> 2004-08-23	Donovan Preston <dp at>
> 	* LivePage uses a simpler implementation strategy which requires
> 	the browser to make one request per output event. As a result,
> 	LivePage now works on Mozilla, Safari, and Internet Explorer Windows.
> 2004-08-05	Donovan Preston <dp at>
> 	* Implemented support for IFoo(ctx) synonym syntax. It does the
> 	same thing as ctx.locate(IFoo)
> 	* Removed Resource Generators, a feature of NevowSite that nobody
> 	used and wasn't really useful.
> 	* Changed all inevow.IResource apis to take a Context object
> 	where they used to take the request. Remembering objects in
> 	PageContexts is now much easier, and fewer hacks are required to
> 	build the context chain. The context chain now looks like:
> 		SiteContext->RequestContext->PageContext(s)->WovenContext(s)
> 2004-7-28	Donovan Preston <dp at>
> 	* Parameterize data_* methods in the same way as render_* methods.
> 	Patch by k3mper.
> 	For example, <div nevow:data="foo bar,baz" /> will cause 
> 	data_foo(self, bar, baz) to be called with the strings "bar" and
> 	"baz". This data method should return a callable taking ctx, data.
> 	The return value of this callable will be remembered as IData at
> 	this point in the context stack.
> 	* Added list-slicing support to ListContainer. You may now use
> 	list slicing syntax in a data directive in addition to a simple
> 	index. For example:
> 	def data_aList(self, ctx, data):
> 		return ["Buckle", "My", "Shoe"]
> 	<div nevow:data="aList">
> 		<span nevow:data="1:-1" nevow:render="string" />
> 	</div>
> 	Will render as <div><span>My</span></div>
> 2004-7-20	Matt Goodall <matt at>
> 	* Modified sax loader to retain doctypes, comments and xmlns attributes. 
> 	It's now possible to build XHTML valid pages :).
> 	xmlns attributes are always kept but there are options to ignore the doctype
> 	and comment (at the request of foom, not sure why yet). Right now, the default
> 	is to retain doctypes and comments but you can use the ignoreDocType and
> 	ignoreComment args to the xml loaders and flatsax parse functions. This bit
> 	may change.
> 	* Add a URL -> IResource adapter that performs a HTTP redirect. URLs can then
> 	be returned from locateChild().
> 2004-06-07	Donovan Preston <dp at>
> 	* Added nevow.canvas, an experimental module similar to LivePage
> 	which provides a Python server-side API for drawing arbitrary lines,
> 	curves, and text in the browser. The implementation is socket-based
> 	and asynchronous, so the server can issue drawing commands to the
> 	client at any time.
> 	The idea is to provide a server-side API to the Python programmer 
> 	and shield them from implementation details, but the current
> 	implementation uses a pre-compiled Flash movie (which never changes;
> 	we are not generating Flash bytecodes). An implementation using SVG
> 	or Safari's Canvas (nevow.canvas was written before the Safari Canvas
> 	announcement) would be possible.
> 2004-05-26	Donovan Preston	<dp at>
> 	* Add URLOverlay.keep,  an API which lets you specify which query args 
> 	will be carried on from the current page render into the new URL.
> 2004-05-24	Matt Goodall <matt at>
> 	* Extracted Fragment from Page. Hopefully,  it will make it more obvious 
> 	that embedding an object with data_ and render_ methods in a stan tree is
> 	possible without using something as "heavy" as Page which is really meant
> 	to be a web resource.
> 2004-05-23	Donovan Preston	<dp at>
> 	* Added some useful APIs to LiveEvil for manipulating the client-side
> 	page:
> 		- flt(stan): Flatten some stan, quoting apostrophes as
> 		as appropriate for embedding in javascript
> 		- set(what, to): Set the contents of the client-side node
> 		with the id 'what' to the stan 'to'.
> 		- append(where, what): Append the stan 'what' to the client-
> 		side node with the id 'where'
> 		- alert(what): Show an alert to the user with the text "what"

More information about the Python-announce-list mailing list