[PEAK] PEAK 0.5a3 released
Phillip J. Eby
pje at telecommunity.com
Mon Feb 16 18:13:13 EST 2004
After several months of feature creep, the third alpha release of PEAK 0.5
is now available for download at:
http://peak.telecommunity.com/dist/
Some highlights of the changes since 0.5a2 include:
* A simplified and consolidated binding API: there are now only four kinds
of bindings (Make, Obtain, Require, and Delegate) that provide a wider
variety of functionality than the old API. You can also now create your
own IRecipe or IComponentKey implementations for use with Make and Obtain.
* The 'n2' (namespace navigator) tool provides a handy, extensible shell
(with completion and history) for exploring PEAK naming systems and SQL
connections.
* A greatly enhanced configuration file parser, with lots of new
convenience features such as [Import on Demand], [Named Services], and
[Component Factories] sections, based on its new extensible parsing
framework. You can define new section types of your own, even from inside
an .ini file.
* New configuration key features, such as multi-keys (similar to some of
Zope X3's "adaptergeddon" features), the ability to iterate over defined
keys in a hierarchy (useful for finding/registering various kinds of
"plugins"), new convenience features for defining wildcard property rules,
* A new 'peak.events' framework that supports event sources, listeners,
subscriptions, generator-based pseudothreads ("tasks"), scheduling, and I/O
events. Using 'peak.events', you can write event-driven code in a more
natural, sequential, "untwisted" style, but without giving up access to
Twisted's many great features. 'peak.events' can use PEAK's built-in event
loop, or adapt a Twisted reactor for use as an event loop. You can also
use Twisted's "Deferred" objects as event sources, which means you can use
them in your Tasks (pseudothreads).
* A new 'peak.ddt' "document-driven testing" framework, similar in form and
function to the FIT ( http://fit.c2.com/ ) framework, but in Python and
well-integrated with the rest of PEAK. 'peak.ddt' lets you write test data
as tables in HTML documents (created with Word, Open Office, Mozilla, or
virtually any other tool), and then view the results in your
browser. Correct results are highlighted in green, incorrect answers are
highlighted in red, and errors are highlighted in yellow, with a small-font
traceback added to the table cell. It's a great way to do data-driven
acceptance testing, or to manage a project's progress using example data as
part of a requirements document.
* Many, many more features, both large and small, like a pre-forking
multiprocess supervisor for FastCGI and other forking servers. Quick
access to documentation via the 'peak help' command, which uses pydoc to
display reference documentation. Early versions of the 'peak.security'
(access control), 'peak.web' (Zope X3-based web publishing), and
'peak.query' (declarative relational and conceptual queries w/SQL
generation) packages. The 'whenImported()' function that lets you call a
hook when a named module is first used. "Mock" DBAPI and socket
implementations for testing. Hooks for "thunking" database-specific SQL
and functions. And many, many more examples of unbelievably blatant
feature creep!
There is also now a nice "Hello World" introduction to PEAK available at:
http://peak.telecommunity.com/DevCenter/IntroToPeak
that presents a guided tour of some of PEAK's "vertical" frameworks, like
command-line application support, database access, and so on.
For more information about PEAK, and access to community resources
including documentation, the Wiki, mailing list archives, IRC channel logs,
CVS access, and more, please visit:
http://peak.telecommunity.com/
More information about the PEAK
mailing list