Dear Pythoneers,
Looking at IDE's I can have three observations:
1. For some reasons numerous users prefer to use an open source IDE.
2. For some reasons numerous python programmers like to develop an open
source IDE.
3. For some reasons the open source python IDE developers are not
collaborating at all.
The reasons for 1 or 2 are obvious, at least to me. Recently I have
been wondering about the reason for 3. (Probably a lot of python
programmers have wondered about this already for ages, but ok I might
be slow ;-) I came to the conclusion that there was *NO* reason.
As this was so clear, I started to invite all the authors of IDE's
personally to collaborate all together. I hope that I didn't forget
any, because there are so many. What is really nice, is that we feel
the same: we should work together and share as much as possible. We
don't want to waste our (often spare) time on reinventing wheels.
Almost all IDE's (except of two) are participating no matter if they
use Tkinter, wxPython, pyQT, Cocoa, pyGTK, ... (So this could open
doors for an ajax python editor, who knows. Any python web framework
like Django, Turbogears, ... interested in that?)
These projects are participating: NewEdit, scrIDE, Eric3, Leo IDE,
ActiveGrid, PIDA, drPython, pyDev, PyCrust, IPython, WinPdb debugger,
Extended Python Debugger, PyLint, Gaphor, Envisage, Dabo, SilverCity &
SPE.
It is not about unification, but about a little bit more collaboration.
There are always libraries to share, more as we might think.
In order to give the project shape I started building a (wiki based)
website in plone which together with a mailing list should give a good
platform for collaboration. (You need to login to edit wiki's.) All
the developers are already invited, but everyone willing to code or
contribute (documentation, translation, artwork, plone website, ..) is
welcome. If you work on open source project which might be of interest
(parsing, uml, framework, ...) please join or invite the projects which
you think should participate as well.
We will probably work in smaller teams on the various aspects of IDE's
and tools. If this project succeeds it could be a major win for the
Python community.
These are some useful links:
- homepage: http://pyxides.stani.be
- mail list: http://pyxides.stani.be/polls/mailing
- starting mail: http://pyxides.stani.be/wiki/StartingEmail
- developers reaction: http://pyxides.stani.be/wiki/AuthorsOfIDEsTools
- poll:
http://pyxides.stani.be/polls/20060310-firstfocus/PlonePopoll_results2
Stani
PS IDLE is the only one which didn't answer my invitation yet, but we'd
love them to be in the team as well. (Kurt?)
--
http://pythonide.stani.be
The German translation of Swaroop's Python beginner tutorial
"A Byte of Python" (current version 1.20) has been finished.
The German version is available at: http://abop-german.berlios.de
Original (English) version at: http://www.byteofpython.info
Other translations: http://www.byteofpython.info/translations/
'A Byte of Python' is a book on programming using the Python language.
It serves as a tutorial or guide to the Python language for a beginner
audience. If all you know about computers is how to save text files,
then this is the book for you.
=========================
Leipzig Python User Group
=========================
Second Meeting Thursday, March 16 2006
--------------------------------------
We will meet on March 16 at 8:00pm at the training center of Python
Academy, Zur Schule 20, 04158 Leipzig; Germany (How to get there:
http://www.python-academy.com/LE-Snakes/center/find.html).
The Leipzig Python User Group, or LE-Snakes, was founded at our first
meeting in February. We will meet regularly every second Tuesday of
the month. Since this date will be the second to the last day of
CeBIT (14.03.2006) we decided to postpone the date for two days.
Food and soft drinks are provided. Please send a short confirmation
mail to info(a)python-academy.de, so we can prepare appropriately.
Stefan Schwarzer will talk about the application of CherryPy
(http://www.cherrypy.org) sprechen. Quote from the CherryPy-Homepage:
"CherryPy is a pythonic, object-oriented web development framework."
Everybody who uses Python, plans to do so or is interested in
learning more about the language is encouraged to participate.
While the meeting language will be mainly German, English speakers
are very welcome. We will provide English interpretation if needed.
Current information about the meetings can always be found at
http://www.python-academy.com/LE-Snakes/index.html
pyregex is a command line tools for constructing and testing Python's
regular expression. Features includes text highlighting, detail break down
of match groups, substitution and a syntax quick reference. It is released
in the public domain.
Screenshot and download from http://tungwaiyip.info/software/pyregex.html.
Wai Yip Tung
------------------------------------------------------------------------
Usage: pyregex.py [options] "-"|filename regex [replacement [count]]
Test Python regular expressions. Specify test data's filename or use "-"
to enter test text from console. Optionally specify a replacement text.
Options:
-f filter mode
-n nnn limit to examine the first nnn lines. default no limit.
-m show only matched line. default False
Regular Expression Syntax
Special Characters
------------------------------------------------------------------------
. matches any character except a newline
^ matches the start of the string
$ matches the end of the string or just before the newline at the end
of
the string
* matches 0 or more repetitions of the preceding RE
+ matches 1 or more repetitions of the preceding RE
? matches 0 or 1 repetitions of the preceding RE
{m} exactly m copies of the previous RE should be matched
{m,n} matches from m to n repetitions of the preceding RE
\ either escapes special characters or signals a special sequence
[] indicate a set of characters. Characters can be listed individually,
or a range of characters can be indicated by giving two characters
and
separating them by a "-". Special characters are not active inside
sets
Including a "^" as the first character match the complement of the
set
| A|B matches either A or B
(...) indicates the start and end of a group
(?...) this is an extension notation. See documentation for detail
(?iLmsux) I ignorecase; L locale; M multiline; S dotall; U unicode; X
verbose
*, +, ? and {m,n} are greedy. Append the ? qualifier to match non-greedily.
Special Sequences
------------------------------------------------------------------------
\number matches the contents of the group of the same number. Groups are
numbered starting from 1
\A matches only at the start of the string
\b matches the empty string at the beginning or end of a word
\B matches the empty string not at the beginning or end of a word
\d matches any decimal digit
\D matches any non-digit character
\g<name>use the substring matched by the group named 'name' for sub()
\s matches any whitespace character
\S matches any non-whitespace character
\w matches any alphanumeric character and the underscore
\W matches any non-alphanumeric character
\Z matches only at the end of the string
See the Python documentation on Regular Expression Syntax for more detail
http://docs.python.org/lib/re-syntax.html
A new version of the Python config module has been released.
What Does It Do?
================
The config module allows you to implement a hierarchical configuration
scheme with support for mappings and sequences, cross-references
between one part of the configuration and another, the ability to
flexibly access real Python objects, facilities for configurations to
include and cross-reference one another, simple expression evaluation
and the ability to change, save, cascade and merge configurations. You
can easily integrate with command line options using optparse.
This module has been developed on python 2.3 but should work on
version 2.2 or greater. A test suite using unittest is included in the
distribution.
A very simple configuration file (simple.cfg):
# starts here
message: Hello, world!
#ends here
a very simple program to use it:
from config import Config
cfg = Config(file('simple.cfg'))
print cfg.message
results in:
Hello, world!
Configuration files are key-value pairs, but the values can be
containers that contain further values.
A simple example - with the example configuration file:
messages:
[
{
stream : `sys.stderr`
message: 'Welcome'
name: 'Harry'
}
{
stream : `sys.stdout`
message: 'Welkom'
name: 'Ruud'
}
{
stream : $messages[0].stream
message: 'Bienvenue'
name: Yves
}
]
a program to read the configuration would be:
from config import Config
f = file('simple.cfg')
cfg = Config(f)
for m in cfg.messages:
s = '%s, %s' % (m.message, m.name)
try:
print >> m.stream, s
except IOError, e:
print e
which, when run, would yield the console output:
Welcome, Harry
Welkom, Ruud
Bienvenue, Yves
The above example just scratches the surface. There's more information
about this module available at
http://www.red-dove.com/python_config.html
Comprehensive API documentation is available at
http://www.red-dove.com/config/index.html
As always, your feedback is most welcome (especially bug reports,
patches and suggestions for improvement). Enjoy!
Cheers
Vinay Sajip
Red Dove Consultants Ltd.
Changes since the last release posted on comp.lang.python:
==========================================================
Made classes derive from object (previously they were old-style
classes).
Changed ConfigMerger to use a more flexible merge strategy.
Multiline strings (using """ or ''') are now supported.
A typo involving raising a ConfigError was fixed.
Added ConfigOutputStream to provide better Unicode output support.
Altered save code to put platform-dependent newlines for Unicode.
hello pythoneers,
last week i released RPyC 2.40 -- http://rpyc.sf.net -- but didnt have
time to announce it. also, i updated the site and added sections. i'm
not going to repeat the code snippet from the previous release (2.32),
you can see full demos on the site.
so, of course this release adds many internal changes and (a very few)
bugfixes, but the reason i announce it is the new feature added: direct
execution of code on the remote side. previously, you had to distribute
modules (files) over to the server's side, in order to have remote
code, but with the new `execute` method, you can do it with ease.
=====
from Rpyc import SocketConnection
c = SocketConnection("somehost")
c.execute("something = 9")
c.execute("print something")
c.execute("""
def f(name):
print "hello %s, something is %r" % (name, something)
""")
=====
and of course you can use the objects you named, via the `namespace`:
=====
c.namespace.something = 28
c.namespace.f("lucy")
=====
that's just a code snippet. see the site and demos (demo-6.py) for much
more info.
note: this mechanism allows you to "embed" remote code into your local
code, so you dont have to maintain two different files. it should be
used when you write ONE module that has two aspects to it (remote code
and local code).
but dont go and embed different modules into each other -- use it
properly. if your scenario calls for two modules, use two modules.
don't use shortcuts.
and as always, enjoy.
-tomer
Hello everyone,
I'm happy to announce that the first release candidate for
CherryPy-2.2.0 is now available.
This release includes various bugfixes, a new benchmarking tool and
improved WSGI support.
Check out this great post from Christian Wyglendowski to see how you
can run multiple WSGI-CherryPy apps using other tools like wsgutils or
Paste (or do the opposite: run a PyBloxsom or MoinMoin WSGI app within
CherryPy):
http://blog.dowski.com/2006/03/08/cherrypy-and-wsgi-can-play-nice/
Christian has also put together a great screencast showing how to run
CherryPy and interact with it directly from the prompt:
http://blog.dowski.com/2006/03/05/cherrypy-and-the-interactive-interpreter/
***************
About CherryPy:
CherryPy is a pythonic, lightweight and straightforward (no
dependencies) web development framework.
Here is a sample Hello, World in CherryPy:
# import cherrypy
# class HelloWorld:
# @cherrypy.expose
# def index(self):
# yield "<html><body>"
# yield "Hello world!"
# yield "</body></html>"
# cherrypy.root = HelloWorld()
# cherrypy.server.start()
Details and downloads for the 2.2.0-rc1 release are available from the
CherryPy website:
http://www.cherrypy.org
Remi.
Announcing Speedometer 2.3
--------------------------
Speedometer home page:
http://excess.org/speedometer/
Download:
http://excess.org/speedometer/speedometer.py
New in this release:
====================
- Graphs may now be displayed with 8 times the resolution of old blocky
graphs using a new UTF-8 smoothed display mode. Requires UTF-8 capable
terminal in UTF-8 encoding (try uxterm) and Urwid 0.9.1 or later.
- Use math.log without base for compatibility with Python 2.1.
About Speedometer
=================
Speedometer is a console bandwidth and file download progress monitor with
a logarithmic bandwidth display and a simple command-line interface.
Speedometer requires Python 2.1 or later and Urwid 0.8.9 or later for
full-console bar graph display. Urwid may be downloaded from:
http://excess.org/urwid/
Speedometer is released under the GNU LGPL.
Announcing Urwid 0.9.1
----------------------
Urwid home page:
http://excess.org/urwid/
Tarball:
http://excess.org/urwid/urwid-0.9.1.tar.gz
About this release:
===================
This release includes high resolution UTF-8 support for the BarGraph and
ProgressBar widgets, improved support for threading with raw_display and
a couple bug fixes.
New in this release:
====================
- BarGraph and ProgressBar can now display data more accurately by using
the UTF-8 vertical and horizontal eighth characters. This behavior
will be enabled when the UTF-8 encoding is detected and "smoothed"
attributes are passed to the BarGraph or ProgressBar constructors.
- New get_encoding_mode() function to determine how Urwid will treat
raw string data.
- New raw_display.signal_init() and raw_display.signal_restore() methods
that may be overridden by threaded applications that need to call
signal.signal(..) from their main thread.
- Fixed a bug that prevented the use of UTF-8 strings in text markup.
- Removed some forgotten asserts that broke 8-bit and CJK input.
About Urwid
===========
Urwid is a console UI library for Python. It features fluid interface
resizing, UTF-8 support, multiple text layouts, simple attribute markup,
powerful scrolling list boxes and flexible interface design.
Urwid is released under the GNU LGPL.
Beta 0.20 of MMA - Musical MIDI Accompaniment - is now
available for downloading. Included in this release:
Minor bug fixes, more style files. I think this may
be the last BETA!!!
MMA is a accompaniment generator -- it creates midi tracks
for a soloist to perform with. User supplied files contain
pattern selections, chords, and MMA directives. For full details
please visit:
http://mypage.uniserve.com/~bvdp/mma/
If you have any questions or comments, please send them
to: bvdp(a)uniserve.com
--
Bob van der Poel ** Wynndel, British Columbia, CANADA **
EMAIL: bvdp(a)uniserve.com
WWW: http://mypage.uniserve.com/~bvdp