The first meeting of the newly formed Bangalore India Python Meetup
group is scheduled on Saturday, Jan 22nd.
The group was formed on 28 Dec 2004 and has 12 members currently.
Join the group here -> http://python.meetup.com/158/
BOTEC is a simple astrophysical and orbital mechanics calculator,
including a database of all named Solar System objects.
BOTEC is intended as a simple but useful calculator to assist with
making astrophysical, orbital mechanics, and space navigation
calculations. As the origin of the acronym applies, BOTEC is more
of a "back-of-the-envelope calculator" rather than an
industrial-strength calculator, although this may change in the
BOTEC is primarily intended for people familiar with physics and
Python, and as such is unlikely to be useful to the average
enduser. BOTEC really consists of two parts: The BOTEC software,
which knows what to do with the data, and the Solar System data
itself, which is represented in a large data file (a Python
pickle, actually). This is deliberately modularized so that the
Solar System data BOTEC uses can be updated independently of thet
software, and also that alternative data files (*e.g.*,
hypothetical stellar systems for fictional purposes) can be
All values are strictly in SI units.
Getting the software
The current version of botec is 0.3.
The latest version of the software is available in a tarball here:
The official URL for this Web site is
BOTEC requires Python 2.3 or greater.
In its present state, BOTEC will also not be of much use to
endusers not familiar with Python, or people without some basic
working knowledge of physics, astrophysics, orbital mechanics, and
This code is released under the GPL.
Release history [since 0.2]
- 0.3, 2005 Jan 15. Separate transfers from maneuvers; support
- 0.2.1, 2005 Jan 8. Various collected modifications.
Erik Max Francis && max(a)alcyone.com && http://www.alcyone.com/max/
San Jose, CA, USA && 37 20 N 121 53 W && AIM erikmaxfrancis
The quickest way of ending a war is to lose it.
-- George Orwell
effbot.org proudly presents the cElementTree library, a fast and very
efficient implementation of the ElementTree API, for Python 2.1 and
later. On typical documents, it's 15-20 times faster than the Python
version of ElementTree, and uses 2-5 times less memory.
The 0.9.2 release is 10-20% faster than 0.8 on my benchmarks, and uses
5-15% less memory.
Here are some benchmark results, using a number of popular XML tool-
kits to parse a 3405k source file on my development machine:
library memory time
minidom (python 2.1) 80000k 6.5s
minidom (python 2.4) 53000k 1.4s
ElementTree 1.3 14500k 1.1s
cElementTree 0.8 5700k 0.058s
cElementTree 0.9 4900k 0.047s
readlines (read as utf-8) 8850k 0.093s
readlines (read as ascii) 5050k 0.032s
For more information on this library, including download instructions,
comparisions to other popular XML toolkits, and more, see:
PyCon is not just a conference to hear people present on Python and
Python applications. It's also a place to meet and work with
colleagues from around the world.
Consider the following opportunities for collaboration:
A sprint is a multi-day session of intense development organized
around extreme programming (XP) ideas such as pair programming.
There will be four days, March 19-22, before the regular conference
to sprint on a variety of projects. To see what sprints are
If you would like to lead a sprint, feel free to add the sprint
to that page. If you want to participate in a sprint, visit
a sprint-topic page and add your name to the list of attendees so
that we know how many people are coming.
If you have a question about the sprints, feel free to drop me
- Open Space
Open space is a part of PyCon designed to provide opportunities for
collaboration. There are two kinds of open space at Pycon, quiet
and noisy. There will be a quiet room provided throughout the
conference for people to access the network and to quietly hack with
others (e.g. pair program).
There will also be noisy rooms for people to have discussions or
give informal presentations. The noisy rooms will host up to two
presentations or discussions at a time. We'll provide the
opportunity to sign up for 30-minute time slots. We'll allow sign
up for half of the time slots before the conference. There will
be a posted schedule with spaces to sign up for the remainder of
the time slots during the conference.
I'll provide more information on the open space schedule soon,
after we finalize the rest of the conference schedule.
Jim Fulton mailto:firstname.lastname@example.org Python Powered!
CTO (540) 361-1714 http://www.python.org
Zope Corporation http://www.zope.comhttp://www.zope.org
I'm pleased to announce the release of ZODB 3.2.5 (final). This corresponds
to the ZODB (and ZEO) planned to ship with Zope 2.7.4 (final) this weekend.
You can download a source tarball or Windows installer from:
This is a pure bugfix release, fixing some relatively minor but longstanding
problems. See the news file for details:
ZODB 3.2.5 can be used with Zopes in the 2.7 line, at or after Zope 2.7.3.
Note that ZODB 3.2.4 does not support development on Zope 2.8, Zope X3 or
Zope 3 (they require the ZODB 3.3 line).
By Andrew Wilkinson <aw at cs dot york dot ac dot uk>
Linda is an widely studied distributed computing environment, centred
around the notion of a tuple space. A tuple space is a bag (also called a
multi-set) of tuples. A tuple is an ordered, typed chunk of data. Tuple
spaces exist independently of processes in the system, and the data placed
into a tuple space also exist independently. See "Generative communication
in Linda" (1985) and "Multiple tuple spaces in Linda" both by David
Gelernter for more information on Linda.
PyLinda is a simple implementation of a linda system, however it also
includes several of the more recently proposed extensions to Linda in the
form of multiple tuple spaces, garbage collection, sane non-blocking
primitives and bulk tuple operations.
Full details can be found at the website
The package can be downloaded from
Changes In This Version
- New Features
* Removed SysV shared memory and made Unix Domain Sockets the default as
they are quicker.
* A new flashy website
- Bug Fixes
* Fix bug where some sockets would not be in blocking mode and hence cause
an exception. Thanks to Dave St.Germain for the bug report.
* Fix bug where Windows didn't define MSG_DONTWAIT in the socket module.
Thanks to Dr Andrew Perella for the bug report.
* Fix bug that prevented a network of servers from being formed. Thanks to
Igor Chaves Cananea for the bug report and patch.
I'm proud to release this 8th major feature release of Roundup. This is
currently a DEVELOPMENT release, meaning it probably has bugs. If you
a STABLE release, use 0.7.x
First up, big thanks go to alexander smishlajev who has done some really
good work getting the i18n and new configuration components of this
Version 0.8 introduces far too many features to list here so I've put
together a What's New page:
This is a bugfix release, fixing:
- note about how to run roundup demo in Windows (sf bug 1082090)
- fix API for templating utils extensions - remove "utils" arg (sf bug
- back_sqlite.py is missing "import time" (sf bug 1081959)
- fix (list) popup (sf bug 1083570)
- fix some security assertions (sf bug 1085481)
- 'roundup-server -S' always writes [trackers] section heading (sf bug
- fix port number as int in mysql connection info (sf bug 1082530)
- fix setup.py to work with <Python2.3 (sf bug 1082801)
- fix permissions checks in cgi templating (sf bug 1082755)
- fix "Users may only edit their issues" example in docs
- handle ~/.my.cnf files for MySQL defaults (sf bug 1096031)
If you're upgrading from an older version of Roundup you *must* follow
the "Software Upgrade" guidelines given in the maintenance
Roundup requires python 2.1.3 or later for correct operation.
To give Roundup a try, just download (see below), unpack and run::
Source and documentation is available at the website:
Release Info (via download page):
Mailing lists - the place to ask questions:
Roundup is a simple-to-use and -install issue-tracking system with
command-line, web and e-mail interfaces. It is based on the winning
from Ka-Ping Yee in the Software Carpentry "Track" design competition.
Note: Ping is not responsible for this project. The contact for this
project is richard(a)users.sourceforge.net.
Roundup manages a number of issues (with flexible properties such as
"description", "priority", and so on) and provides the ability to:
(a) submit new issues,
(b) find and edit existing issues, and
(c) discuss issues with other participants.
The system will facilitate communication among the participants by
discussions and notifying interested parties when issues are edited.
the major design goals for Roundup that it be simple to get going.
is therefore usable "out of the box" with any python 2.1+ installation.
doesn't even need to be "installed" to be operational, though a
disutils-based install script is provided.
It comes with two issue tracker templates (a classic bug/feature
a minimal skeleton) and five database back-ends (anydbm, sqlite,
mysql and postgresql).
Changes in this release:
* Use local names rather than QNames for default bindings
* Add attribute support to XPath
* Add amara.binderytools.preserve_attribute_details rule
* Reorg and fix demos and tests
* Add Flextyper DTLL implementation
* Add parsing functions binderytools.bind_string,
* Add binderytools.pushbind. This one deserves some elaboration.
The following is complete code for iterating through address labels in
XML document, while never loading more memory than needed to hold one
from amara import binderytools
for subtree in binderytools.pushbind('/labels/label',
print subtree.label.name, 'of', subtree.label.address.city
Amara XML Toolkit is a collection of Python tools for XML processing--
not just tools that happen to be written in Python, but tools built from
the ground up to use Python idioms and take advantage of the many
advantages of Python.
Amara builds on 4Suite [http://4Suite.org], but whereas 4Suite focuses
more on literal implementation of XML standards in Python, Amara
focuses on Pythonic idiom. It provides tools you can trust to conform
with XML standards without losing the familiar Python feel.
The components of Amara are:
* Bindery: data binding tool (fancy way of saying: a very Pythonic XML
* Scimitar: implementation of the ISO Schematron schema language for
converts Schematron files to Python scripts
* domtools: set of tools to augment Python DOMs
* saxtools: set of tools to make SAX easier to use in Python
* Flextyper: user-defined datatypes in Python for XML processing
There's a lot in Amara, but here are highlights:
Amara Bindery: XML as easy as py
Based on the retired project Anobind, but updated to use SAX rather than
to create bindings. Bindery reads an XML document and returns a data
structure of Python objects corresponding to the vocabulary used in the
XML document, for maximum clarity.
Bindery turns the document
<python spam="eggs">What do you mean "bleh"</python>
<python ministry="abuse">But I was looking for argument</python>
Into a set of objects such that you can write
In order to get the value "eggs" or
In order to get the value "But I was looking for argument".
There are other such tools for Python, and what makes Anobind unique is
that it's driven by a very declarative rules-based system for binding
XML to the Python data. You can register rules that are triggered by
XPattern expressions specialized binding behavior. It includes XPath
support and supports mutation. Bindery is very efficient, using SAX
to generate bindings.
Scimitar: exceptional schema language for an exceptional programming
Merged in from a separate project, Scimitar is an implementation of ISO
Schematron that compiles a Schematron schema into a Python validator
You typically use scimitar in two phases. Say you have a schematron
schema schema1.stron and you want to validate multiple XML files
against it, instance1.xml, instance2.xml, instance3.xml.
First you run schema1.stron through the scimitar compiler script,
A file, schema1.py is generated and can be used to validate XML
python schema1.py instance1.xml
Which emits a validation report.
Amara DOM Tools: giving DOM a more Pythonic face
DOM came from the Java world, hardly the most Pythonic API possible.
Some DOM-like implementations such as 4Suite's Domlettes mix in some
Pythonic idiom. Amara DOM Tools goes even further.
Amara DOM Tools feature pushdom, similar to xml.dom.pulldom, but
easier to use. It also includes Python generator-based tools for
DOM processing, and a function to return an XPath location for
any DOM node.
Amara SAX Tools: SAX without the brain explosion
Tenorsax (amara.saxtools.tenorsax) is a framework for "linerarizing" SAX
so that it flows more naturally, and needs a lot less state machine
Amara is open source, provided under the 4Suite variant of the Apache
license. See the file COPYING for details.
Amara requires Python 2.3 or more recent and 4Suite 1.0a3 or more
recent. Make sure these are installed, unpack Amara to a convenient
location and run
python setup.py install
Uche Ogbuji Fourthought, Inc.
Use CSS to display XML - http://www.ibm.com/developerworks/edu/x-dw-x-xmlcss-i.html
Full XML Indexes with Gnosis - http://www.xml.com/pub/a/2004/12/08/py-xml.html
Be humble, not imperial (in design) - http://www.adtmag.com/article.asp?id=10286
UBL 1.0 - http://www-106.ibm.com/developerworks/xml/library/x-think28.html
Use Universal Feed Parser to tame RSS - http://www.ibm.com/developerworks/xml/library/x-tipufp.html
Default and error handling in XSLT lookup tables - http://www.ibm.com/developerworks/xml/library/x-tiplook.html
A survey of XML standards - http://www-106.ibm.com/developerworks/xml/library/x-stand4/
The State of Python-XML in 2004 - http://www.xml.com/pub/a/2004/10/13/py-xml.html