I'm happy to announce the 2nd beta release of Wing IDE for Python. This
release fixes many bugs, introduces several new features, and provides
preliminary support for Python 2.0 (beta 1 & 2). A list of the major
changes can be found at http://www.wingide.com/wingide/changelog.
Highlights include:
* Ability to run under Python 2.0
* Better debugger display of C extension values, including NumPy arrays
* Better support for printing Python source files
* Support for deadkeys on international keyboards
* Additional commenting, auto-wrapping, and brace matching features
* Support for source files with DOS-style \r\n line endings
Wing IDE is an integrated development environment for Python featuring a
powerful source code editor, a fast debugger, and a code browser. It is
currently available for Intel-based Linux systems and may be obtained,
along with a free 30-day evaluation license, from www.wingide.com.
We hope that you will give Wing a try and look forward to your feedback!
Thanks,
John
------------------------------------------------------------------------
Archaeopteryx Software, Inc. Wing IDE for Python
www.archaeopteryx.com Take Flight!
My new Python ServerPages implementation is available at
http://www.jbrisbin.net/PythonServerPages
What is it?
My PSP implementation is different than almost anything so far in that it
currently consists of one single CGI script that can be added to any
webserver (though, just tested on Apache) and PSP pages can immediately be
created and accessed easily like:
http://www.jbrisbin.net/cgi-bin/psp.py/psppage.pyml
You can also integrate with existing speeder-uppers like mod_snake,
mod_python, etc...and by byte-compiling the "psp.py" file first... If you
want, go ahead and put this in your httpd.conf:
Action python-serverpages /cgi-bin/psp.py
AddHandler python-serverpages .pyml .psp
and then call your PSP pages like:
http://www.jbrisbin.net/psppage.pyml
Basic documentation is on the home page at
http://www.jbrisbin.net/PythonServerPages This is designed to be absolutely
simple and fast, not just in performance, but in time to integrate and
maintain.
--
Jon Brisbin
www.jbrisbin.net
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Email: mail(a)jbrisbin.net
PSP Home: www.jbrisbin.net/PythonServerPages
Public PGP key: www.jbrisbin.net/pgpkey.shtml
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
This is an update of FXPy, a Python extension module which provides
an interface to the FOX cross-platform GUI library:
Home Page: http://home.hiwaay.net/~johnson2/FXPy
Download Source: ftp://ftp.cfdrc.com/pub/FOX/FXPy-0.99.131.tar.gz
Windows Binaries: ftp://ftp.cfdrc.com/pub/FOX/FXPy-0.99.131-win32.exeftp://ftp.cfdrc.com/pub/FOX/FXPy-0.99.131-Py16-win32.exeftp://ftp.cfdrc.com/pub/FOX/FXPy-0.99.131-Py20b2-win32.exe
To build FXPy from the sources, you will also need to download version
0.99.131 of the FOX library:
FOX Home Page: http://www.cfdrc.com/FOX/fox.html
Download Source: ftp://ftp.cfdrc.com/pub/FOX/fox-0.99.131.tar.gzftp://ftp.cfdrc.com/pub/FOX/fox-0.99.131.zip
As you may have guessed by now, the latest release of FXPy is
version 0.99.131.
What is it?
-----------
FXPy is a Python extension module which provides an interface to the FOX
cross-platform GUI library. With a few minor exceptions, FXPy provides a
complete interface to FOX. FOX is a C++-based toolkit for developing
graphical user interfaces easily and effectively. Some of the
significant features of FOX include:
* A rich set of widgets (including dials, shutters, tree lists, and
many other "modern" widgets).
* Powerful but easy-to-use layout managers.
* Extensive support for 3-D modeling using OpenGL or Mesa.
* Supports the XDND protocol for drag-and-drop.
* Registry for persistent application settings.
* Runs natively under Unix/X and Microsoft Windows.
* And much, much more!
Please see the FOX home page (URL listed above) for more details about
the FOX library's features. Also consider subscribing to the foxgui-users
mailing list for the latest news about FOX development; again, see the
FOX home page for information on this.
FXPy is (c) 1999, 2000 Lyle Johnson (ljohnson(a)resgen.com) and is released
under the GNU Lesser General Public License.
<P><A HREF="http://home.hiwaay.net/~johnson2/FXPy">FXPy-0.99.131</A> -
interface to the FOX cross-platform GUI library. (29-Sep-00)
This release contains:
* Several bug-fixes
* Updated demos
* Updated documentation
How to play a sound file using Snack and Python:
s = Sound()
s.read('ex1.wav')
s.play()
The Snack Sound Toolkit is designed to be used with a scripting
language.
Snack adds commands to play and record audio and supports in-memory
sound
objects, file based audio, and streaming audio, with background
audio processing. It handles fileformats such as WAV, MP3, AU, AIFF, and
NIST/Sphere.
Snack is extensible, new commands and sound file formats can be added
using the Snack C-library.
Snack also does sound visualization, e.g. waveforms and spectrograms.
The visualization canvas item types update in real-time and can output
postscript.
Snack works with Tcl8.0 - Tcl8.4 and Python 1.5.2-1.6
Platforms: Linux, Solaris, HP-UX, IRIX, NetBSD, Macintosh, and
Windows95/98/NT/2K.
Source and Binaries can be downloaded from
http://www.speech.kth.se/snack/
Regards,
Kare Sjolander
kare(a)speech.kth.se
Python 2.0b2 is released. The BeOpen PythonLabs and our cast of
SourceForge volunteers have fixed many bugs since the 2.0b1 release
three weeks ago. Please go here to pick it up:
http://www.pythonlabs.com/products/python2.0/
There's a tarball, a Windows installer, RedHat RPMs, online
documentation, and a long list of fixed bugs.
The final release of Python 2.0 is expected in early- to mid-October.
We would appreciate feedback on the current beta release in order to
fix any remaining bugs before the final release. Confirmation of
build and test success on less common platforms is also helpful.
Python 2.0 has many new features, including the following:
- Augmented assignment, e.g. x += 1
- List comprehensions, e.g. [x**2 for x in range(10)]
- Extended import statement, e.g. import Module as Name
- Extended print statement, e.g. print >> file, "Hello"
- Optional collection of cyclical garbage
This release fixes many known bugs. The list of open bugs has dropped
to 50, and more than 100 bug reports have been resolved since Python
1.6. To report a new bug, use the SourceForge bug tracker
http://sourceforge.net/bugs/?func=addbug&group_id=5470
-- Jeremy Hylton <http://www.python.org/~jeremy/>
Python 2.0b2 is released. The BeOpen PythonLabs and our cast of
SourceForge volunteers have fixed many bugs since the 2.0b1 release
three weeks ago. Please go here to pick it up:
http://www.pythonlabs.com/tech/python2.0/
There's a tarball, a Windows installer, RedHat RPMs, online
documentation, and a long list of fixed bugs.
The final release of Python 2.0 is expected in early- to mid-October.
We would appreciate feedback on the current beta release in order to
fix any remaining bugs before the final release. Confirmation of
build and test success on less common platforms is also helpful.
Python 2.0 has many new features, including the following:
- Augmented assignment, e.g. x += 1
- List comprehensions, e.g. [x**2 for x in range(10)]
- Extended import statement, e.g. import Module as Name
- Extended print statement, e.g. print >> file, "Hello"
- Optional collection of cyclical garbage
This release fixes many known bugs. The list of open bugs has dropped
to 50, and more than 100 bug reports have been resolved since Python
1.6. To report a new bug, use the SourceForge bug tracker
http://sourceforge.net/bugs/?func=addbug&group_id=5470
-- Jeremy Hylton <http://www.python.org/~jeremy/>
Python Distribution Utilities
release 0.9.3
September 26, 2000
The Python Distribution Utilities, or Distutils for short, are a
collection of modules that aid in the development, distribution, and
installation of Python modules and (ultimately) applications.
The Distutils are a standard part of Python 2.0; if you are running 2.0
(or one of the 1.6 alpha releases that preceded it), you don't need to
install the Distutils separately. This release is primarily so that you
can add the Distutils to a Python 1.5.2 installation -- you will then be
able to install modules that require the Distutils, or use the Distutils
to distribute your own modules.
Version 0.9.3 is identical to the Distutils code included with Python
2.0b2.
More information is available at the Distutils web page:
http://www.python.org/sigs/distutils-sig/
and in the README.txt included in the Distutils source distribution.
You can download the Distutils from
http://www.python.org/sigs/distutils-sig/download.html
Trivial patches can be sent to me (Greg Ward) at gward(a)python.net.
Larger patches should be discussed on the Distutils mailing list:
distutils-sig(a)python.org.
Greg
--
Greg Ward gward(a)python.net
http://starship.python.net/~gward/
At long last, the ID3 Python module has reached version 1.0.
ID3.py is a simple Python module for retrieving and setting so-called
ID3 tags on MP3 compressed audio files through an object-oriented
interface. MP3 players generally use this simple information for
display track title, artist name, and album title while playing the
sound file.
ID3.py supports ID3 version 1.1, including the track number field.
I have no current plans to code up the monstrosity that is ID3v2
(http://www.id3.org/id3v2.3.0.html) but if someone wants to add
that functionality, feel free!
The latest version of ID3.py can always be found at:
http://csl.cse.ucsc.edu/~ben/python/
The changes in version 1.0 include ID3 v1.1 support (track numbers),
automatic stripping of whitespace in ID3 fields, an actual (gasp)
README file, and a setup.py script for Python 1.6 or Distutils users.
Happy Pythoning!
Ben
--
Brought to you by the letters Q and R and the number 9.
"Porcoga daisuki!"
Debian GNU/Linux maintainer of Gimp and GTK+ -- http://www.debian.org/
Back to my nocturnal habits...
The latest entries into http://python.faqts.com
Fiona
## Unanswered Questions ########################################
-------------------------------------------------------------
How can I use the ConfigParser to parse through a text file?
http://www.faqts.com/knowledge-base/view.phtml/aid/5928
-------------------------------------------------------------
Sumita Ponnuchamy
## New Entries #################################################
-------------------------------------------------------------
Setting Focus in Pmw.Dialog
http://www.faqts.com/knowledge-base/view.phtml/aid/5936
-------------------------------------------------------------
Fiona Czuczman
Matthew Dixon Cowles
Problem:
I use Pmw.Dialog to prompt the user for some text.
The dialog is just what I need, but for some reason I can't set the
initial keyboard focus to the entry field.
The standard "askstring" dialog doesn't give me control over the edit
field size (that I can see), so I tried this:
------------------------------------------------------------------------
dialog = Pmw.Dialog( root,
buttons = ( 'OK', ),
buttonboxpos = S,
title = 'Prompt' )
w = Pmw.EntryField( dialog.interior(), label_text = prompt, labelpos =
NW, labelmargin = 1, entry_width = 50 )
w.pack( padx = 15, pady = 15 )
dialog.configure( activatecommand = w.focus_set )
dialog.focus_force()
dialog.activate()
----------------------------------------------------------------------
The result of "dialog.configure( activatecommand = w.focus_set )" is
that the dialog doesn't get focus at all.
If I comment this line out, the dialog gets focus, but the user has to
click in the entry field, or tab twice to get to it (first tab goes to
OK button).
Solution:
Your problem is that a Pmw.EntryField is itself a compound widget
(I've been caught by this one too). You want something like:
dialog.configure( activatecommand = w.component("entry").focus_set )
You can also get a similar result by replacing
dialog.configure( activatecommand = w.focus_set )
dialog.focus_force()
with
w.component("entry").focus_force()
-------------------------------------------------------------
How do I pass on keyword arguments in a function?
http://www.faqts.com/knowledge-base/view.phtml/aid/5937
-------------------------------------------------------------
Fiona Czuczman
Johann Hibschman, Greg Ewing
Problem:
-------------
def mark( a, b , **kw):
print 'Mark'
passKeywords(kw) # THIS DOESN'T WORK!!! MAKE IT WORK!!!
def passKeywords( a,**kw )
""" just do something """
print 'Gibson'
-------------
call it:
doSomething( 1,3,name='Mark',Last='Gibson')
produces:
Mark
Traceback (innermost last):
File "<stdin>", line 1, in ?
File "<stdin>", line 3, in mark
TypeError: too many arguments; expected 0, got 1
-----------------
What I want to know is how do I pass kw from mark() to passKeywords()?
Solution:
apply(passKeywords, (), kw)
Or, in Python 2.0,
passKeywords(**kw)
-------------------------------------------------------------
What is the exact purpose of fileno()?
http://www.faqts.com/knowledge-base/view.phtml/aid/5938
-------------------------------------------------------------
Fiona Czuczman
Donn Cave
The file object is an I/O buffer and a device. The C library allocates
space for the buffer in your process memory, and when you read or write
the data comes from or goes to that buffer. The stdio C library
functions manage the buffer by reading or writing to the device.
Since physical device access is a very expensive operation for the
computer, buffering like that basically allows you to work with small or
random size I/O requests while economizing on system resources.
However, there are times when you need to do something that the stdio
library doesn't account for, like select(), or a filesystem lock, or
some terminal driver function.
The fileno() function exposes the file object's file descriptor or unit
number, which on UNIX is the raw device. Select() already knows about
fileno(), so you can give it a socket or whatever and it will call
fileno() itself, but usually it's up to you to call fileno() and get the
descriptor.
Of course the socket fileno() function is more or less the same idea as
the file object's fileno(), but the socket isn't a file object and
doesn't have its own buffer. (On UNIX you can make a file object from a
socket, but it's difficult to make that work both properly and
efficiently with select().) The result from socket fileno() is a file
descriptor on UNIX, but it isn't necessarily so on other operating
systems.
You can get file descriptors directly if you use the posix.open()
function, (A.K.A. os.open().)
-------------------------------------------------------------
Is there an easy way given an internal webpage to cycle through all the links on the page and find which ones are broken?
http://www.faqts.com/knowledge-base/view.phtml/aid/5939
-------------------------------------------------------------
Fiona Czuczman
Jeremy Hylton, Dan Gindikin
Look at Tools/webchecker in the Python distribution.
Check out linkchecker.sourceforge.net
## Edited Entries ##############################################
-------------------------------------------------------------
How do I get the full pathname of a module? Let's say I use 'import' to load a module. How can I find the location of its *.py or *.pyc file?
http://www.faqts.com/knowledge-base/view.phtml/aid/5918
-------------------------------------------------------------
Rolf Freimuth, Fiona Czuczman
Mike Fletcher
def modulePath( module ):
import os
return os.path.abspath( module.__file__ )