Hi folks,
At PyCon DC last week, I presented a paper written by Fred Drake and
myself about ZConfig, a library which allows Python programmers to
retrieve, constrain and convert user-supplied configuration data.
The paper and the slides which presented the paper are now online for
your viewing pleasure:
http://www.zope.org/Members/mcdonc/Presentations
Enjoy!
- C
leo.py 3.11 beta 4 is now available at: http://sourceforge.net/projects/leo/
This will be the last beta release before 3.11 final.
The highlights of beta 4:
-------------------------
- Fixed several minor problems with unicode.
- Fixed a _huge_ performance bug that slowed moving nodes left.
- Added several new plugins:
- Support for the VIM editor.
- A French translation of all menus.
- Added many minor bug fixes and improvements.
The highlights of 3.11:
-----------------------
** Leo now supports unicode properly.
- New @encoding directives specifies encoding for derived files.
- New settings specify default encodings for .leo and derived files.
- Derived files specify encodings used to create them.
** A new plugin architecture for customizing Leo.
- New commands:
- Toggle Angle Brackets.
- Insert Time/Date (in headline or body text).
- Go To First/Last Node, Parent, Next/Previous Sibling.
- Write Missing @file Nodes.
- Expand/Contract Node.
- Improved commands:
- Expand/Contract commands now operate on the selected tree.
( A major improvement)
- Sort Siblings command can now sort top-level nodes.
- Leo now allows multiple writes of cloned nodes.
(Useful when different @path directives are in effect.)
- Other improvements:
- Improved syntax coloring for html and xml.
- Leo scrolls partially visible headlines into full view.
- Added "Replace tabs with spaces" checkbox in Prefs panel.
- Added install script for Linux.
- New settings in leoConfig.leo/.txt.
- Colors for Show Invisibles command and body_insertion_cursor
- Settings affecting when control-drags start.
- Defaults for unicode (see above).
- Many other bug fixes and improvements.
What is Leo?
------------
- A programmer's editor, an outlining editor and a flexible browser.
- A literate programming tool, compatible with noweb and CWEB.
- A data organizer and project manager. Leo provides multiple views
of projects within a single outline.
- Fully scriptable using Python. Leo saves its files in XML format.
- Portable. leo.py is 100% pure Python.
- Open Software, distributed under the Python License.
leo.py requires Python 2.1 or above and tcl/tk 8.3 or above.
leo.py will work on Linux, Windows and MacOs X Jaguar.
Links:
------
Leo: http://personalpages.tds.net/~edream/front.html
Home: http://sourceforge.net/projects/leo/
Download: http://sourceforge.net/project/showfiles.php?group_id=3458
CVS: http://sourceforge.net/cvs/?group_id=3458
Edward K. Ream
--------------------------------------------------------------------
Edward K. Ream email: edream(a)tds.net
Leo: Literate Editor with Outlines
Leo: http://personalpages.tds.net/~edream/front.html
--------------------------------------------------------------------
It has been brought to my attention that the distutils
extension was broken in Pyrex 0.6.
Get 0.6.1 while it's hot:
http://www.cosc.canterbury.ac.nz/~greg/python/Pyrex/
What is Pyrex?
--------------
Pyrex is a new language for writing Python extension modules.
It lets you freely mix operations on Python and C data, with
all Python reference counting and error checking handled
automatically.
--
Greg Ewing, Computer Science Dept,
University of Canterbury,
Christchurch, New Zealand
http://www.cosc.canterbury.ac.nz/~greg
Easibox is a utility for making tar files, zip files and other
archive files, designed to be particularly useful when making
releases of open source projects.
Easibox was written to solve a problem I had when releasing
open source software packages, such as my Leafwa program. The
technique I was using was manually creating a directory with
the required filename (such as "leafwa-0.6.1"), copying those
files to be archived into the directory, and then cd'ing to
that directory's parent and running tar to create the tarball.
I found this process time-consuming and error-prone. So I
decided there must be a better way...
My solution was this program ``easibox'' which decides what
files it will put in the archive, what sort of archive files
will be created, and other parameters, based on the contents
of a configuration file in the project directory. The
configuration file is read in by the Python interpreter; this
means that it uses Python syntax (so you don't have to learn
another file type) and that you can put Python program
statements in it.
Easibox is written in Python and licensed under the GNU
General Public License; see file COPYING (which comes with the
distribution) for details.
Easibox is available on the web at:
<http://www.cabalamat.org/oss/easibox/intro.html>
--
Philip Hunt <philh(a)cabalamat.org>
Interested in adventure holidays in Spain?
Look at: <http://www.cabalamat.org/advcon/>
I'm pleased to announce Elements 1.1.1.
Elements is a Python-based tool for building web sites. Elements source
files are built in a simple and powerful structure that allows the
developer to define components or "elements" such as templates, code
fragments and Python scripts. The Elements application merges the
appropriate pieces together to build html files on the developer's local
file system.
Python scripts within Elements source files are fully aware of the file
name, path and many Elements "environment variables" of each html file
as it is processed. All elements are recognized hierarchically -- a
site-wide element can be defined in multiple locations down and across
the site hierarchy. Hierarchically-based elements, multiple templates
and embedded Python code together provide a powerful system to build web
sites.
The Elements application generates static html files, but Elements can
help generate code for other processes. For example, PHP code can exist
peacefully and benefit from being part of an Elements-built site.
Elements has been used to produce web sites for Fortune 500 clients,
artists and small businesses.
Elements has been tested on Mac OS9, OSX, Linux Redhat 7 and Windows of
various flavors.
Elements is donorware.
The source code is available for download.
http://www.nthwave.net/elements/
I'm particularly interested in feedback on the documentation, do the
docs clearly describe what it does, and how to use it? Would screen
grabs of Elements code help clarify the process?
I've done some work to extend Elements to the web server. In this
scenario the developer(s) will edit Elements source files on the web
server, and when ready, run the Elements process to create a new version
of the site. If this sounds interesting or useful, please let me know.
I'd like to announce the fifth release of PythonCAD, a CAD package
for open-source software users. As the name implies, PythonCAD is
written entirely in Python. The goal of this project is to create
a fully scriptable drafting program that will match and eventually
exceed features found in commercial CAD software. PythonCAD is released
under the GNU Public License (GPL).
PythonCAD requires Python 2.2. The interface is GTK 2.0 based,
and uses the PyGTK module for interfacing to GTK. The design of
PythonCAD is built around the idea of separating the interface
from the back end as much as possible. By doing this, it is hoped
that both GNOME and KDE interfaces can be added to PythonCAD through
usage of the appropriate Python module. Addition of other interfaces
will depend on the availability of a Python module for that particular
interface and developer interest and action.
The fifth release adds the first appearance of a global and user
preferences file. Dimensions can now display endpoint markers like
arrows and slashes, though the size these objects are displayed at
is currently fixed. This limitation should be removed in one of the
next two releases. The first implementation of leader lines has been
added as well. This release also has many internal changes in preparation
for adding hatching. There are also new methods for finding entities in
a drawing. Finally, the usual assortment of bug fixes and code tweaks
are included. By the way, a screenshot showing the dimension endpoints
and leader line has been added to the screenshot page at the web site.
In response to user feedback, drawing files are now saved with a '.gz'
extension. The files have always been saved in a compressed format, but
the name did not indicate this. With this change it should be more evident
that the PythonCAD files are not stored in an uncompressed format.
With this release I am also making a request for help in setting up
a mailing list. The lack of a mailing list for people interested in
working on PythonCAD to find one another and discuss development issues
is a hindrance in adding developers to the project. I do not have the
hardware or connection to set up a mailing list on my own, so I would
appreciate a few suggestions for sites willing to provide this service.
Visit the PythonCAD web site for more information about what PythonCAD
does and aims to be:
http://www.pythoncad.org
Come and join me in developing PythonCAD into a world class drafting
program!
Art Haas
--
They that can give up essential liberty to obtain a little temporary safety
deserve neither liberty nor safety.
-- Benjamin Franklin, Historical Review of Pennsylvania, 1759
SCons is a software construction tool (build tool, or make tool) written
in Python. It is based on the design which won the Software Carpentry
build tool competition in August 2000.
Version 0.12 of SCons has been released and is available for download
from the SCons web site:
http://www.scons.org/
Or through the download link at the SCons project page at SourceForge:
http://sourceforge.net/projects/scons/
RPM and Debian packages and a Win32 installer are all available, in
addition to the traditional .tar.gz and .zip files.
WHAT'S NEW IN THIS RELEASE?
IMPORTANT: Release 0.12 contains the following interface changes:
- SCons now changes to the directory in which an SConscript
file resides while reading that SConscript file.
See the release notes for more information about this change.
This release adds the following features:
- Support has been added for fetching source files from the SCCS, RCS,
CVS, Perforce and BitKeeper source code management systems.
- A separate src_dir argument to SConscript() allows explicit
specification of where source files can be found.
- Current Builder-based command generators can be replaced by more
flexible generators based on callable construction variables.
- The Install() and InstallAs() builders now copy files. This behavior
is now configurable via the INSTALL construction variable.
- SCons now issues a warning if you try to use the reserved variable
names TARGET, TARGETS, SOURCE or SOURCES.
- Builders for Tar and Zip files have been added.
- SCons now supports an explicit Exit() function for terminating early.
- The masm tool now supports SharedObject() builds.
This release removes the following deprecated features:
- Builder objects no longer support a "name" argument.
- The Environment.Update() method has been removed.
The following fixes have been added:
- The string value of a File or Dir node now rturns a path
relative to the calling SConscript file's directory, not the
top-level directory.
- Commands that expand the third or later argument from $TARGET,
$TARGETS, $SOURCE or $SOURCES now calculate signatures properly.
- Exceptions thrown by Scanners are no longer silently eaten.
- A built file may no longer be pushed to a CacheDir() with a
signature of None.
- Built files are no longer copied to a CacheDir() if they're
already there.
- Files copied to a CacheDir() are now written to a temporary file
and renamed, to avoid corrupt partial copies.
- The -U option with no Default() targets no longer throws an exception.
- The -u option, when used from a source directory with no local
targets, will now build corresponding targets in any associated
BuildDir()s.
- The WhereIs() function now returns normalized path names.
- An Aliased source that doesn't exist no longer generates an
incorrect dependency-cycle error.
Performance has been improved as follows:
- The internal to_String() function has been sped up.
The documentation has been improved:
- Clearer explanation has been added of how to export variables to a
subsidiary SConscript file.
- Bugs in various Tool examples have been fixed.
- The man page now correctly describes that the -f option doesn't
change to the directory in which the SConstruct file lives.
ABOUT SCONS
Distinctive features of SCons include:
- a global view of all dependencies; no multiple passes to get
everything built properly
- configuration files are Python scripts, allowing the full use of a
real scripting language to solve difficult build problems
- a modular architecture allows the SCons Build Engine to be
embedded in other Python software
- the ability to scan files for implicit dependencies (#include files);
- improved parallel build (-j) support that provides consistent
build speedup regardless of source tree layout
- use of MD5 signatures to decide if a file has really changed; no
need to "touch" files to fool make that something is up-to-date
- easily extensible through user-defined Builder and Scanner objects
- build actions can be Python code, as well as external commands
An scons-users mailing list is available for those interested in getting
started using SCons. You can subscribe at:
http://lists.sourceforge.net/lists/listinfo/scons-users
Alternatively, we invite you to subscribe to the low-volume
scons-announce mailing list to receive notification when new versions of
SCons become available:
http://lists.sourceforge.net/lists/listinfo/scons-announce
ACKNOWLEDGEMENTS
Special thanks to Charles Crain, Lachlan O'Dea, Jeff Petkau and Anthony
Roach for their contributions to this release.
On behalf of the SCons team,
--SK
Pyrex 0.6 is now available:
http://www.cosc.canterbury.ac.nz/~greg/python/Pyrex/
There are several new features in this release:
- Command line options for reporting version number,
requesting a listing file and specifying the name of
the generated C file.
- An 'include' statement for including other Pyrex files.
- Improved facilities for exporting declarations from
one Pyrex file to another.
- Python syntax compatibility enhancements: try-except-else,
multiple statements on one line.
- A __delete__ special method has been added to extension
types (invoked when using del on an attribute).
There is one backward-incompatible change that you should
note:
- C character literals now have a distinct syntax: c'X'
(the automatic coercion of char * to char that Pyrex
did before proved to be too error-prone and has been
removed).
There are also some other minor improvements and a slew
of bug fixes -- see the CHANGES file for a full list.
What is Pyrex?
--------------
Pyrex is a new language for writing Python extension modules.
It lets you freely mix operations on Python and C data, with
all Python reference counting and error checking handled
automatically.
--
Greg Ewing, Computer Science Dept,
University of Canterbury,
Christchurch, New Zealand
http://www.cosc.canterbury.ac.nz/~greg
Hi All,
I have released Version 1.0 beta of wxPyPlot for producing simple plots
in wxPython. Since the alpha3 release I have optimized the speed for
markers
and fixed a small bug in location in the y-axis label.
For your viewing pleasure, the website now has some html docs as well as a
few more screen shots of things. Check out:
http://www.cyberus.ca/~g_will/wxPython/wxpyplot.html
Comments and suggestions welcome.
Regards,
Gordon Williams
-------------------------------------------------------------
What is wxPyPlot??
wxPyPlot is an enhanced derivative version of wxPlotCanvas to provide simple
lightweight plotting in wxPython. The emphasis is both on simple and
lightweight.
Before starting this work I looked at two plotting packages that could be
adapted to work with wxPython. SciPy Plt and Chaco are sophisticated and
powerful, but at the expense of consuming huge amounts of computer resources
for simple plots. They can be found at http://scipy.com. I was looking for
something that could be incorporated into a Boa application and had the
ability to plot lines with large numbers of points quickly for data capture
applications. wxPlotCanvas had the speed and some of the functionality that
I was looking for, but lacked a lot of features that I needed. This effort
has filled the gap.
Features:
- Automatic Scaling of Axes
- Legends for lines and markers
- Plot Title and Axis Labels
- Zoom Region with Mouse (Rubber Band) or Programmatically
- Scroll Up/Down, Left/Right
- Plot Grid (Graticule) on Graph
- Printing, Preview, and Page Set-up (margins) -WYSIWYG
- Cursor X-Y User Axis Values
- Simple, Lightweight and Fast
- Can be Used with Boa Applications if Desired
- Lots of Comments and Doc Strings along with Example Usage
I have tested this out on Windows using Python 2.2 and wxPython 2.4.0.6. If
you have the chance to test it on Linux, please let me know how it works.
Suggestions and improvements welcome.
Screen shots, source and instructions for Boa can be found at
http://www.cyberus.ca/~g_will/wxPython/wxpyplot.html
This is the second and final notice about the next PyGTA
meeting, which will take place on Tuesday March 25 at
eight o'clock in the evening at the usual location.
Details are in our web page at http://web.engcorp.com/pygta .
We look forward to seeing everyone who comes out!
-Peter Hansen and Ian Garmaise, PyGTA organizers