We're pleased to announce that
Pocoo 0.1 (beta) was released today (Sept. 10, 2006).
Pocoo <http://www.pocoo.org/> is a bulletin board software (aka. message board)
written in Python, adhering to the WSGI standard. In the long term, it is meant
to compete with systems like phpBB.
It provides an advanced plugin system with a component architecture which
allows other developers to modify Pocoo to their liking without the need to
touch existing source code. Building upon SQLAlchemy, Pocoo is able to
use either MySQL, SQLite, Oracle or Postgres as the storage backend.
The 0.1 release is not meant to be feature complete. It's more like a preview
to show off what's already there. If you like the idea, *feel free to join us!*
* Support for either flat or threaded post view
* URLs are very readable, furthermore one URL works for both flat and
* Support for JSONRPC and XmlHTTPRequest to dynamically fetch data where
useful while having a fallback for non-JS users
* Very powerful plugin system
* Extensible authentication system
* WSGI compliancy
* Database support for MySQL, Sqlite, Postgres, Oracle
* BBCode/rst/safehtml parsers for markup
* Avatar support
* User profiles and settings
... can be found in the Idea Pool at http://trac.pocoo.org/wiki/IdeaPool.
Download the release at <http://www.pocoo.org/download>.
Georg Brandl, on behalf of the Pocoo Team
Myghty 1.1 Released
Myghty is a Python Server Page templating framework designed for
high availability websites and applications. Its conceptual design and
template syntax is derived from HTML::Mason, the popular Perl-based web
application platform used by Amazon.com, del.icio.us, Bricolage and
Myghty serves as an excellent platform for developers to create
applications; it is the framework from which the Pylons
(http://www.pylonshq.com) WSGI framework first evolved, and remains the
primary template and caching engine used by Pylons. The MyghtyUtils
system, which powers Myghty's caching and session support, is used by
Turbogears, and others. Myghty is also used by itself as the web
powering Bittorrent's website at http://www.bittorrent.com, a top-
extremely high traffic website.
Since its original release, Myghty has introduced many new concepts and
features not found in Mason, including a rudimentary MVC framework, WSGI
support, threading support and an open-ended rule-based URL
It receives favorable reviews for its ease of use, small footprint,
smooth operation, and great flexibility. It offers full Python scripting
support within templates including a unique system of intermingling
significant-whitespace-sensitive Python code with ordinary markup.
includes syntaxes that allow fine-grained control of whitespace,
it one of the best templating systems not just for HTML and markup
for email generation and other whitespace-sensitive text formats.
Myghty is easy to use within many popular web frameworks, including
in any CherryPy or Turbogears application via the Buffet template
plugin, originally written for Myghty.
Version 1.1 introduces a refactoring of Myghty's buffering and encoding
internals to provide comprehensive support for Unicode and any character
encoding combination - that is, full control over both the encoding of
template files as well as the encoding of request output, including
and programmatic configuration of encoding error handling.
Myghty is released under the MIT License.
Documentation, examples and download links can be found at:
<P><A HREF="http://www.myghty.org">Myghty 1.1</A> - A high performance
Python Server Page templating framework derived from HTML::Mason.
September 8, 2006
Announcing : PLY-2.0 (Python Lex-Yacc)
I'm pleased to announce a significant new update to PLY---a 100% Python
implementation of the common parsing tools lex and yacc. PLY-2.0
a completely new implementation of LALR(1) parsing that provides a
significant speedup when generating the underlying parsing tables. This
new implementation also (hopefully) fixes all outstanding bugs in LALR
parsing that were reported for previous versions of PLY-1.x.
Here are a few PLY highlights:
- PLY is closely modeled after traditional lex/yacc. If you know
to use these or similar tools in other languages, you will find
PLY to be comparable.
- PLY provides very extensive error reporting and diagnostic
information to assist in parser construction. The original
implementation was developed for instructional purposes. As
a result, the system tries to identify the most common types
of errors made by novice users.
- PLY provides full support for empty productions, error recovery,
precedence rules, and moderately ambiguous grammars.
- Parsing is based on LR-parsing which is fast, memory efficient,
better suited to large grammars, and which has a number of nice
properties when dealing with syntax errors and other parsing
problems. Currently, PLY can build its parsing tables using
either SLR or LALR(1) algorithms.
- PLY can be used to build parsers for large programming languages.
Although it is not ultra-fast due to its Python implementation,
PLY can be used to parse grammars consisting of several hundred
rules (as might be found for a language like C). The lexer and LR
parser are also reasonably efficient when parsing normal
More information about PLY can be obtained on the PLY webpage at:
PLY is freely available and is licensed under the terms of the Lesser
GNU Public License (LGPL).
David Beazley (http://www.dabeaz.com)
I'm pleased to announce the 0.7.1rc1 release of SQLObject.
What is SQLObject
SQLObject is an object-relational mapper. Your database tables are
described as classes, and rows are instances of those classes. SQLObject
is meant to be easy to use and quick to get started with.
SQLObject supports a number of backends: MySQL, PostgreSQL, SQLite, and
Firebird. It also has newly added support for Sybase, MSSQL and MaxDB
(also known as SAPDB).
Where is SQLObject
News and changes:
Features & Interface
* Added support for psycopg2 and MSSQL.
* Added TimeCol.
* Implemented RLIKE (regular expression LIKE).
* Select over RelatedJoin.
* SQLite foreign keys.
* Postgres DB URIs with a non-default path to unix socket.
* Allow the use of foreign keys in selects.
* Implemented addColumn() for SQLite.
* With PySQLite2 use encode()/decode() from PySQLite1 for BLOBCol if available; else use base64.
* Fixed a longstanding problem with UnicodeCol - at last you can use unicode
strings in .select() and .selectBy() queries. There are some limitations,
* Cull patch (clear cache).
* .destroySelf() inside a transaction.
* Synchronize main connection cache during transaction commit.
* Ordering joins with NULLs.
* Fixed bugs with plain/non-plain setters.
* Lots of other bug fixes.
For a more complete list, please see the news:
Oleg Broytmann http://phd.pp.ru/ phd(a)phd.pp.ru
Programmers don't die, they just GOSUB without RETURN.
I am pleased to announce TurboGears 1.0b1, which now supersedes the
0.8.9 release as the preferred TurboGears release. Many people have
been using the TurboGears 0.9x releases for several months now and
have been very happy with the results. The 1.0 APIs are stable and
we're focused on bugs and docs for the final 1.0 release. This is a
bugfix release over 0.9a9.
What is TurboGears?
TurboGears is a popular rapid web development megaframework, built
from a number of great Python projects and with a bunch of high-level
features built within the TurboGears project.
TurboGears is a front-to-back framework helping you on the front end
controller in the middle (based on CherryPy) and an object-relational
mapper for your database (SQLObject).
To that mix of projects, TG adds:
* Internationalization: Tools and APIs to help you localize the
strings in your application.
* Identity: Authentication and authorization made easy
* Toolbox: a web-based GUI to help you work on your project (write
your own as well!) Includes CatWalk to help you work with your
database data and Model Designer to help you design your database
* tg-admin: command line tool that gives you a quick start to your
project, helps you set up your database and more!
* Easy Ajax: flexible template support allows you to choose a
different template engine (output HTML, JSON, plain text, etc. all
from one method)
* Built-in database transactions: keeps your database (and you!)
sane. Transactions are committed or rolled back based on the success
or failure of your controller code.
* flexibility as needed: though Kid and SQLObject are the standards,
we already support many other template engines (Cheetah, Markup,
Django) and the powerful SQLAlchemy object-relational mapper.
* community: last but definitely not least -- more than 2,000 users
on the main mailing list, and others on non-English mailing lists
In short, there are lots of tools to help you get the job done quickly.
What's New Since 0.8
Nearly everything. All of the projects that TG uses have had
significant upgrades, and nearly all of the features that have been
built by TurboGears contributors are new.
Mailing list: http://groups.google.com/group/turbogears
TurboGears / Zesty News
This is a reminder of the upcoming michipug meeting.
This is the first anniversary meeting of the Michigan Python Users Group!
Thursday, September 7th at 7PM
Our topics for this month include an SQLAlchemy Introduction by Mark
Ramm and Steve Kryskalla talking about two of the new Python 2.5
The meeting will be held at the Arbor Networks office in Ann Arbor.:
City Center Building
220 East Huron, 6th Floor
Ann Arbor, MI
With the topics we have for this meeting, I would expect about 90
minutes of the main topics. We often have free-flowing discussion
following the main topics, so feel free to come with other topics you
wish to discuss.
See you there!
TurboGears / Zesty News
itools is a Python library, it groups a number of packages into a single
meta-package for easier development and deployment:
itools.catalog itools.http itools.uri
itools.cms itools.i18n itools.vfs
itools.csv itools.ical itools.web
itools.datatypes itools.rss itools.workflow
itools.gettext itools.schemas itools.xhtml
itools.handlers itools.stl itools.xliff
itools.html itools.tmx itools.xml
This release brings user interface improvements and many bug fixes. These
are the most important changes:
itools.catalog -- Fix keyword fields that are indexed but not stored,
when there is at least one value that contains spaces. The format of
the catalog changes a little so it must be rebuilt.
itools.cms -- The HTML/CSS code for the tabs has been updated to work
better in different browsers, now it even looks nice in text mode
(#382). The web interface for calendar objects has seen various
improvements (#82, #496).
The configuration file and the "icms-init" script accept a new option,
"smtp-host", which defines the host to use to send emails.
A bunch of minor bugs have been fixed in itools.cms, including #306,
#308, #458, #459, #460, #497, #498, #500 and #501.
itools.csv -- The CSV parser has been separated from the CSV handler, so
it can be used independently ("from itools.csv import parser"). Fixed
a serious bug which prevented to create CSV handlers from scratch.
itools.gettext -- Now the PO handler properly detects the charset defined
in the PO files header. The family of igettext scripts has been updated
to use the new API of itools 0.14.
itools.xhtml -- Now the "title" attribute of (X)HTML documents is always
extracted to be translated, not only in "img" elements. Fix corner case
in the automatic translation code. Declare some elements as inline to
improve the behaviour of the translation machinery.
- Hervé Cauwelier improved the web interface of itools.cms;
- Nicolas Deram updated the calendar code;
- J. David Ibáñez fixed many bugs;
- Josef Meile found the problem in the PO handler.
J. David Ibáñez
Itaapy <http://www.itaapy.com> Tel +33 (0)1 42 23 67 45
9 rue Darwin, 75018 Paris Fax +33 (0)1 53 28 27 88
I am pleased to announce version 2.10.0 of the Python bindings for GTK.
The new release is available from ftp.gnome.org and its mirrors
as soon as its synced correctly:
This is an unstable release and should be used with caution.
GTK is a toolkit for developing graphical applications that run on
systems such as Linux, Windows and MacOS X. It provides a comprehensive set
of GUI widgets, can display Unicode bidi text. It links into the Gnome
Accessibility Framework through the ATK library.
PyGTK provides a convenient wrapper for the GTK+ library for use in
Python programs, and takes care of many of the boring details such as
managing memory and type casting. When combined with PyORBit and
gnome-python, it can be used to write full featured Gnome applications.
Like the GTK+ library itself PyGTK is licensed under the GNU LGPL, so is
suitable for use in both free software and proprietary applications. It
is already in use in many applications ranging from small single purpose
scripts up to large full features applications.
What's new since 2.9.6?
- Issue a warning when a DISPLAY is not set (#316877, Johan,
- Copy style.css from pygobject docs when installing docs.
(#351385 Gian Mario Tagliaretti)
- Include the built docs in the tarball (Johan)
PyGTK requires GTK+ >= 2.8.0 and Python >= 2.3.5 to build.
GTK+ 2.10.0 is required for 2.10 API.
Bug reports, as always, should go to Bugzilla; check out
http://pygtk.org/developer.html and http://pygtk.org/feedback.html for
links to posting and querying bug reports for PyGTK.
What's new in 2.10.0?
* Includes John Finlays reference manual
* gobject bindings were removed, moved to a separate tarball
* Added GTK+ 2.10 API:
Assistant, CellRendererSpin, LinkButton, Printing*,
* Many code generator improvements
* New module gtk.unixprint
* Reduced memory usage
* MacOS X support
* Many bug fixes
See NEWS for a complete list of changes
Thanks to everybody who helped making this release possible:
Wander Boessenkool, Wouter Bolsterlee, Ross Burton,Marco Cabizza
Ben Caradoc-Davies, Gustavo J. A. M. Carneiro, Ed Catmur, Steve Chaplin
Murray Cumming, Johan Dahlin, John Ehresman, Rafael Ávila de Espíndola,
John Finlay, Cedric Gustin, Richard Hult, Jeremey Katz, Steven Kennedy
Nikos Kouremenos, Alexander Larsson, Baiju M, Stefano Maggiolo,
Mark McLoughlin, Hamish Moffatt, Yevgen Muntyan, Elijah Newren
Patrick O'Brien, Frederic Peters, Sebastian Pölsterl, Sebastian Rittau
Rauli Ruohonen, Joseph Sacco, Johan Svedberg, Gian Mario Tagliaretti
Dieter Verfaillie, Karel Vervaeke, Olav Vitters and Andy Wingo