trouble subclassing str
I'd like to subclass the built-in str type. For example: -- class MyString(str): def __init__(self, txt, data): super(MyString,self).__init__(txt) self.data = data if __name__ == '__main__': s1 = MyString("some text", 100) -- but I get the error: Traceback (most recent call last): File "MyString.py", line 27, in ? s1 = MyString("some text", 12) TypeError: str() takes at most 1 argument (2 given) I am using Python 2.3 on OS X. Ideas? -- http://mail.python.org/mailman/listinfo/python-list
Re: efficient interval containment lookup
On Jan 12, 8:55 pm, Per Freem wrote: > On Jan 12, 10:58 pm, Steven D'Aprano > > > > wrote: > > On Mon, 12 Jan 2009 14:49:43 -0800, Per Freem wrote: > > > thanks for your replies -- a few clarifications and questions. the > > > is_within operation is containment, i.e. (a,b) is within (c,d) iff a > > >>= c and b <= d. Note that I am not looking for intervals that > > > overlap... this is why interval trees seem to me to not be relevant, as > > > the overlapping interval problem is way harder than what I am trying to > > > do. Please correct me if I'm wrong on this... > > > To test for contained intervals: > > a >= c and b <= d > > > To test for overlapping intervals: > > > not (b < c or a > d) > > > Not exactly what I would call "way harder". > > > -- > > Steven > > hi Steven, > > i found an implementation (which is exactly how i'd write it based on > the description) > here:http://hackmap.blogspot.com/2008/11/python-interval-tree.html > > when i use this however, it comes out either significantly slower or > equal to a naive search. my naive search just iterates through a > smallish list of intervals and for each one says whether they overlap > with each of a large set of intervals. > > here is the exact code i used to make the comparison, plus the code at > the link i have above: > > class Interval(): > def __init__(self, start, stop): > self.start = start > self.stop = stop > > import random > import time > num_ints = 3 > init_intervals = [] > for n in range(0, > num_ints): > start = int(round(random.random() > *1000)) > end = start + int(round(random.random()*500+1)) > init_intervals.append(Interval(start, end)) > num_ranges = 900 > ranges = [] > for n in range(0, num_ranges): > start = int(round(random.random() > *1000)) > end = start + int(round(random.random()*500+1)) > ranges.append((start, end)) > #print init_intervals > tree = IntervalTree(init_intervals) > t1 = time.time() > for r in ranges: > tree.find(r[0], r[1]) > t2 = time.time() > print "interval tree: %.3f" %((t2-t1)*1000.0) > t1 = time.time() > for r in ranges: > naive_find(init_intervals, r[0], r[1]) > t2 = time.time() > print "brute force: %.3f" %((t2-t1)*1000.0) > > on one run, i get: > interval tree: 8584.682 > brute force: 8201.644 > > is there anything wrong with this implementation? it seems very right > to me but i am no expert. any help on this would be relly helpful. hi, the tree is inefficient when the interval is large. as the size of the interval shrinks to much less than the expanse of the tree, the tree will be faster. changing 500 to 50 in both cases in your script, i get: interval tree: 3233.404 brute force: 9807.787 so the tree will work for limited cases. but it's quite simple. check the tree in bx-python: http://bx-python.trac.bx.psu.edu/browser/trunk/lib/bx/intervals/operations/quicksect.py for a more robust implementation. -brentp -- http://mail.python.org/mailman/listinfo/python-list
Re: efficient interval containment lookup
On Jan 12, 9:34 pm, Per Freem wrote: > hi brent, thanks very much for your informative reply -- didn't > realize this about the size of the interval. > > thanks for the bx-python link. could you (or someone else) explain > why the size of the interval makes such a big difference? i don't > understand why it affects efficiency so much... > > thanks. > > On Jan 13, 12:24 am, brent wrote: > > > On Jan 12, 8:55 pm, Per Freem wrote: > > > > On Jan 12, 10:58 pm, Steven D'Aprano > > > > wrote: > > > > On Mon, 12 Jan 2009 14:49:43 -0800, Per Freem wrote: > > > > > thanks for your replies -- a few clarifications and questions. the > > > > > is_within operation is containment, i.e. (a,b) is within (c,d) iff a > > > > >>= c and b <= d. Note that I am not looking for intervals that > > > > > overlap... this is why interval trees seem to me to not be relevant, > > > > > as > > > > > the overlapping interval problem is way harder than what I am trying > > > > > to > > > > > do. Please correct me if I'm wrong on this... > > > > > To test for contained intervals: > > > > a >= c and b <= d > > > > > To test for overlapping intervals: > > > > > not (b < c or a > d) > > > > > Not exactly what I would call "way harder". > > > > > -- > > > > Steven > > > > hi Steven, > > > > i found an implementation (which is exactly how i'd write it based on > > > the description) > > > here:http://hackmap.blogspot.com/2008/11/python-interval-tree.html > > > > when i use this however, it comes out either significantly slower or > > > equal to a naive search. my naive search just iterates through a > > > smallish list of intervals and for each one says whether they overlap > > > with each of a large set of intervals. > > > > here is the exact code i used to make the comparison, plus the code at > > > the link i have above: > > > > class Interval(): > > > def __init__(self, start, stop): > > > self.start = start > > > self.stop = stop > > > > import random > > > import time > > > num_ints = 3 > > > init_intervals = [] > > > for n in range(0, > > > num_ints): > > > start = int(round(random.random() > > > *1000)) > > > end = start + int(round(random.random()*500+1)) > > > init_intervals.append(Interval(start, end)) > > > num_ranges = 900 > > > ranges = [] > > > for n in range(0, num_ranges): > > > start = int(round(random.random() > > > *1000)) > > > end = start + int(round(random.random()*500+1)) > > > ranges.append((start, end)) > > > #print init_intervals > > > tree = IntervalTree(init_intervals) > > > t1 = time.time() > > > for r in ranges: > > > tree.find(r[0], r[1]) > > > t2 = time.time() > > > print "interval tree: %.3f" %((t2-t1)*1000.0) > > > t1 = time.time() > > > for r in ranges: > > > naive_find(init_intervals, r[0], r[1]) > > > t2 = time.time() > > > print "brute force: %.3f" %((t2-t1)*1000.0) > > > > on one run, i get: > > > interval tree: 8584.682 > > > brute force: 8201.644 > > > > is there anything wrong with this implementation? it seems very right > > > to me but i am no expert. any help on this would be relly helpful. > > > hi, the tree is inefficient when the interval is large. as the size of > > the interval shrinks to much less than the expanse of the tree, the > > tree will be faster. changing 500 to 50 in both cases in your script, > > i get: > > interval tree: 3233.404 > > brute force: 9807.787 > > > so the tree will work for limited cases. but it's quite simple. check > > the tree in > > bx-python:http://bx-python.trac.bx.psu.edu/browser/trunk/lib/bx/intervals/opera... > > for a more robust implementation. > > -brentp > > well, i think if your search interval covers the entire span of the tree, you can't do better than just naive search as the tree just adds overhead. as the len of the search interval decreases relative to the span of the tree, the tree performs better. if all the intervals in the tree itself are long and overlapping, that tree just ... ugh ... doesnt work, because it has to do all the extra checks in the find() method anyway. the bx-python tree probably does a better job, but you set up a pretty rough test there. -- http://mail.python.org/mailman/listinfo/python-list
Re: [pyxl] xlrd 0.8.0 released!
My compliments to John and Chris and to any others who contributed to the new xlsx capability. This is a most welcome development. Thank you. Brent -- http://mail.python.org/mailman/listinfo/python-list
Python Question re Executing a Script
Hello, I just purchased a new Windows 11 computer and installed Python 3.10.4 (64 bit). I can't figure out from your documentation, how do I: 1. Run a python script that is located in the same directory ( C:\Users\Brent\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python 3.10 ) 1. How do I automatically run a python app at Windows startup? Thank you! Brent Hunter -- https://mail.python.org/mailman/listinfo/python-list
Difference in Setup Between Windows 10 Running Python 3.9 and Windows 11 Running Python 3.10
Hello, I was recently running a Windows 10 machine Python 3.9. I simply created a batch file titled "Start-AIG.bat" which simply contained the following: "pythonw AIG.py". It started a python program titled "AIG.py" and the Python dialog box was displayed on my screen, running all day and night. I set up Windows to run this batch file upon startup and it worked fine. I remember having to do a bunch of research before I learned that I needed to put "pythonw AIG.py" in the batch file as opposed to "python AIG.py". However, my old windows 10 desktop crashed and I have a new Windows 11 machine. I installed the latest stable version of Python, which is 3.10. Now, when I try to execute the same batch file, it doesn't launch the app. It could be because I'm using Windows 11 or could be because I now have a newer version of Python. Does anyone have any ideas what I should do to get the Python script running on my new machine? Thank you! Brent -- https://mail.python.org/mailman/listinfo/python-list
Re: How to create a unix shell account with Python?
os.system("useradd ...") Its not pretty, but it gets it done. -- http://mail.python.org/mailman/listinfo/python-list
print vs sys.stdout.write, and UnicodeError
Greetings, I have observed the following (python 2.5.1): >>> import sys >>> print sys.stdout.encoding UTF-8 >>> print(u'\u00e9') é >>> sys.stdout.write(u'\u00e9\n') Traceback (most recent call last): File "", line 1, in UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 0: ordinal not in range(128) Is this correct? My understanding is that print ultimately calls sys.stdout.write anyway, so I'm confused as to why the Unicode error occurs in the second case. Can someone explain? Thanks, Brent -- http://mail.python.org/mailman/listinfo/python-list
Re: print vs sys.stdout.write, and UnicodeError
Martin Marcher <[EMAIL PROTECTED]> wrote: > 25 Oct 2007 17:37:01 GMT, Brent Lievers <[EMAIL PROTECTED]>: >> Greetings, >> >> I have observed the following (python 2.5.1): >> >> >>> import sys >> >>> print sys.stdout.encoding >> UTF-8 >> >>> print(u'\u00e9') >> ? >> >>> sys.stdout.write(u'\u00e9\n') >> Traceback (most recent call last): >> File "", line 1, in >> UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in >> position 0: ordinal not in range(128) > >>>> sys.stdout.write(u'\u00e9\n'.encode("UTF-8")) > ? > >> Is this correct? My understanding is that print ultimately calls >> sys.stdout.write anyway, so I'm confused as to why the Unicode error >> occurs in the second case. Can someone explain? > > you forgot to encode what you are going to "print" :) Thanks. I obviously have a lot to learn about both Python and Unicode ;-) So does print do this encoding step based on the value of sys.stdout.encoding? In other words, something like: sys.stdout.write(textstr.encode(sys.stdout.encoding)) I'm just trying to understand why encode() is needed in the one case but not the other. Cheers, Brent -- http://mail.python.org/mailman/listinfo/python-list
Re: Sending SMS using python script
guptha wrote: hi group, my application needs to send SMS occasionally to all the clients .Is there any library in python that supports in sending SMS. I like to conform few information i gathered in this regard. I can send SMS by two ways 1. Sending SMS using Email clients 2. Using sms gateway to send message(we can implement SMS Gateway API 's ,provided by vendor and ,send SMS -- we will be charged accordingly ) In case of First approach 1. We can make use of libgamil library to send SMS using gmail ( I ref : http://blog.datasingularity.com/?p=63 ) i suppose sending sms through gmail is not supported in India 2. Can we use Skype4py library, In case of second approach 1. Is there any way to send SMS for free inside India ,or ,Any free SMS gateway providers in India Any information regarding this is appreciable Thanks -- http://mail.python.org/mailman/listinfo/python-list While this may not be exactly what you want to do, I thought I'd offer this as an alternative. MultiModem has a hardware product that works as a GPRS modem (with either a serial or ethernet interface, see here: http://www.multitech.com/PRODUCTS/Families/MultiModemGPRS/), allowing direct access to standard AT commands. The modems require a regular SIM card with an account setup for it. For our needs we got a basic plan with unlimited SMS. This is after we went with a couple 3rd party SMS gateways and found their delivery unreliable for our clients. I've written a daemon in python called mmsmsd (multimodem sms daemon) for their ethernet model (MTCBA-G-EN-F4). It queues messages via an HTTP GET request, which are then handled by threads that maintain telnet connections to the GPRS modems AT command interface. You can check out the project here: http://code.google.com/p/mmsmsd/ (it's BSD licensed) If you go this route, feel free to submit any bug reports or requests. If anyone out there feels like doing a quick audit of the code, that would be appreciated as well :) This is my first project with Python. -- | .-> brent bloxam ~-. brentb @ beanfield.com | () beanfield metroconnect | `~- wgxolq +uajq <-' 416.532.1555 ext. 2004 -- -- http://mail.python.org/mailman/listinfo/python-list
Re: Delicious API and urllib2
Bill wrote: The delicious api requires http authorization (actually https). A generic delicious api post url is "https:// username:passw...@api.api.del.icio.us/v1/posts/add?url=http:// example.com/&description=interesting&tags=whatever". This works fine when entered in the Firefox address bar. However urllib2.urlopen(delicious_post_url) chokes and returns "httplib.InvalidURL: nonnumeric port: 'passw...@api.del.icio.us". Delicious really wants that authorization stuff embedded in the url as it also rejected my attempts at using urllib2.HTTPBasicAuthHandler(), etc. Anybody have any hints? -- http://mail.python.org/mailman/listinfo/python-list What failure were you experiencing when you were using the HTTPBasicAuthHandler? Did you follow the sample code from the docs? import urllib2 # Create an OpenerDirector with support for Basic HTTP Authentication... auth_handler = urllib2.HTTPBasicAuthHandler() auth_handler.add_password(realm='PDQ Application', uri='https://mahler:8092/site-updates.py', user='klem', passwd='kadidd!ehopper') opener = urllib2.build_opener(auth_handler) # ...and install it globally so it can be used with urlopen. urllib2.install_opener(opener) urllib2.urlopen('http://www.example.com/login.html' -- http://mail.python.org/mailman/listinfo/python-list
Re: Executing a C program from Python
vishakha vaibhav wrote: Hi, I am very new to python. I have my cgi script written in Python. My CGI script should call a C program and collect the value returned by this program and pass it to the browser. Can anyone help me out in this. How can I execute the c program and collect the return value. I tried, import os a=os.system("my-app")//my-app is the C program executable print a But the variable *a* prints 0 everytime. It should return a non-zero value as per my C program. Is there any method to do what I need. Regards, vish -- http://mail.python.org/mailman/listinfo/python-list Executing from os.system returns the return code from the application. Take a look at the subprocess module (http://docs.python.org/library/subprocess.html#module-subprocess), as recommended by the os docs when you need to deal with capturing output from stdout. -- http://mail.python.org/mailman/listinfo/python-list
Re: extracting plain text from RTF-file ?
Stef Mientki wrote: hello, I'm looking for a library to extract plain text from RTF-files. I found these only RTF generation http://pyrtf.sourceforge.net/ should be able to parse, but no download files http://code.google.com/p/pyrtf-ng/ any suggestions ? thanks, Stef Mientki -- http://mail.python.org/mailman/listinfo/python-list Checkout from SVN, there's a release tagged as 0.45, but the trunk is newer by ~4 months -- http://mail.python.org/mailman/listinfo/python-list
Re: Would there be work for a sysadmin who specializes in python?
walterbyrd wrote: If I took the time to really learn to use python for sysadmin work, would I be able to find jobs, or even contract jobs? From what I am seeing on the job boards etc., I would have to say no. It looks to me as though I could possibly do that with perl, but not python. Of course, I could be missing something. Job board ads can be deceptive. Being a system admin is about being able to handle to many different situations, and your tasks can often include automating various things and writing tools. Depending on the sort of place you're working in and the size of the IT department, you could find yourself doing a lot of work that lies outside of the standard job description for a system administrator. If you're looking to start out in the field, it would be better to have general knowledge, and as you gain experience you can begin to specialize. Being adaptable is key, so specializing in python probably won't gain you any ground as a system administrator. That being said, knowing python will mean you have another tool in your chest, which is definitely a good thing. If there's one thing I'd recommend, if you're not going to focus on a windows environment, would be to at least get perl under your belt as well. -- http://mail.python.org/mailman/listinfo/python-list
Newbie: Pythonwin
1) I'm running a program within Pythonwin. It's taking too long and I want to stop/kill it. What do I do (other than ctrl-alt-del)? 2) I'm running a long program and I want to minimize it to let it continue to run in the background while I do something else in the foreground. I try clicking on Pythonwin's minimize box but it doesn't respond until the Python program finally quits Then it minimizes! Any way I can do what I want here? Brent -- http://mail.python.org/mailman/listinfo/python-list
Re: Newbie: Pythonwin
Thanks guys! That helps a lot. Brent -- http://mail.python.org/mailman/listinfo/python-list
How to input one char at a time from stdin?
I'd like to get a character from stdin, perform some action, get another character, etc. If I just use stdin.read(1), it waits until I finish typing a whole line before I can get the first character. How do I deal with this? Brent -- http://mail.python.org/mailman/listinfo/python-list
Possibly OT: Controlling winamp with Python
I'm running Windows XP and I'm using winamp to listen to internet radio stations. Occasionally, an annoying commercial will come on. I would like to write a Python program that, when run, will, in essence, push on winamp's mute button. Then, after say 20 seconds, it will push the mute button again to restore the sound. Is such a thing possible? Brent -- http://mail.python.org/mailman/listinfo/python-list
Re: Possibly OT: Controlling winamp with Python
The Python program won't decide whether a commercial is playing, I will. At that point, I will run my program which will press mute, wait 20 seconds, and then press mute again. Actually, I could leave the program running but minimized to the task bar. When I hear the advertisement, I just click on the program in the task bar. It knows what to do from there. Brent "Kartic" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED] > Brent, > > Question : how will your python script distinguish between a commercial > and a song? > > I can understand if you are writing a streaming client in Python; in > that case you can analyze the audio stream and decide if it is a > commercial or a song/music. > > Did you check to see if there is already a Winamp plugin that would > achieve this for you? > > Thanks, > -Kartic > -- http://mail.python.org/mailman/listinfo/python-list
Re: WYSIWYG wxPython "IDE"....?
I've also tried Boa Constructor a couple of times and keep having problems using it. So I've got it stuck in the back of my mind for when it finally becomes ready for prime time. (One of the problems was that the tutorial didn't quite match the program.) I really like the concept. It's a lot like Delphi, and I LOVE Delphi. So one of these days I hope to love Boa Constructor for when I need to write GUI apps. Brent -- http://mail.python.org/mailman/listinfo/python-list
Newbie: SWIG or SIP?
I have a third-party DLL and it's associated .h file. The DLL was written in C. I have neither the associated .c files nor the .obj files for the DLL. Can I use SWIG or SIP to build something that will allow me to use the DLL with Python? And what is that something, an .obj file, another DLL or what? Brent -- http://mail.python.org/mailman/listinfo/python-list
Pythonwin: Red squiggley underline and syntax error
I copied and pasted some text into my Python code and then Pythowin put a red squiggley underline under the two tabs at the beginning of the line. What does that mean? I've tried various things including deleting the white space in front of the line and reinserting the tabs. I've also tried retyping the entire line. Sometimes, I can get the red line to go away but when I try to run the program, it gives me a syntax error on the line that had the red underline. Help! Brent -- http://mail.python.org/mailman/listinfo/python-list
[wxPython] How to allow events during long processing routine?
I'm running some code that takes a long time to finish. I would like the user to be able to do other things while it is running. It seems to me there is a function I can call to tell wxPython to process any pending messages or events. I would call this perhaps every 1000 times through my loop. Anybody remember the name of that function? Brent -- http://mail.python.org/mailman/listinfo/python-list
Re: How to allow events during long processing routine?
Thanks, M.E.Farmer. I continue to be impressed with how quickly and nicely one can get help here. Brent "M.E.Farmer" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED] > Survey says. > ...wxYield() > > ;) > M.E.Farmer > -- http://mail.python.org/mailman/listinfo/python-list
[pygame] Very simple program fails. Why?
I'm just starting to learn pygame. I write what I think is just about the simplest program that should display a window and then quit. #--- import sys import time import pygame pygame.init() screen = pygame.display.set_mode((640,480)) pygame.display.set_caption("A Bug's Life") time.sleep(4) #--- When I run this program from within PythonWin, the Bug's Life window appears and everything looks okay, but after 4 seconds the window still persists. When I finally close it using the close box in the upper right of the window, a box pops up telling me an error occurred ant it wants to send a report to Microsoft. I click "Don't send" and another box pops up telling me that the program was trying to access memory location 0x1c. If I try to run the program stand-alone (outside of PythonWin), a DOS box pops up for a second or two, then the Bug's Life window flashes up for a fraction of a second, and then both windows disappear. Am I doing something wrong? Brent -- http://mail.python.org/mailman/listinfo/python-list
how to build and install multiple micro-level major.minor versions of Python
I have built and installed Python on AIX as well as installed a stack of Python tools. The version I installed is 2.7.2. Everything is working fine but I want to install Python 2.7.6 and the tool stack. Before I installed 2.7.2, I installed 2.6.x. I was able to install the 2.7.2 and 2.6.x side by side because they have different minor numbers. This allowed me to be able to thoroughly test 2.7.2 before pointing the link for python to it. Now however, I can't see an easy way to install 2.7.6 beside the 2.7.2 since by default, Python installs only to the minor number so if I install 2.7.6, it will overwrite 2.7.2 since they will both install to 2.7. I have tried editing the configuration files configure.ac and configure to set VERSION, PYTHON_VERSION, and PACKAGE_VERSION to 2.7.6. This actually seemed to work fine so I ended up with 2.7.6 installed beside 2.7. However, when I tried to install other python packages using a command like: python2.7.6 setup.py install the python2.7.6 binary was used for the install but the setup wrote the package library to .../lib/python2.7 not .../lib/python2.7.6. I thought maybe it had something to do with bin/python-config pointing to bin/python-config2.7, so I pointed python-config to python-config2.7.6 but that didn't help. Is there a way to do what I want to do (i.e. install 2.7.6 beside 2.7)? -- https://mail.python.org/mailman/listinfo/python-list
Re: how to build and install multiple micro-level major.minor versions of Python
On Tue, 2014-04-29 at 11:35 -0700, Ned Deily wrote: > In article <1398785310.2673.16.camel@belmer>, > "Brent S. Elmer Ph.D." wrote: > > Is there a way to do what I want to do (i.e. install 2.7.6 beside 2.7)? > > The usual way to support multiple micro versions is to build and install > to a different location on your system by using: > > ./configure --prefix=/new/path > > There is nothing magical about /usr/local or /usr other than that > /usr/bin and /usr/local/bin are usually included in default $PATH. If > you use a non-default prefix, it's also probably best to avoid using > --enable-shared to minimize the chances of confusion with shared library > loading. > > -- > Ned Deily, > n...@acm.org > Yes, I already use --prefix to build to a different path. I guess that is what I need to do but I would rather have a way to have the build and install process install to the micro level. Brent -- https://mail.python.org/mailman/listinfo/python-list
Python Guru needed in San Jose!
Start the New Year off with a new Python job! Cisco Systems <http://www.cisco.com/> (San Jose, CA) Posted 16-Nov-2006 Technical Leader I (759661) Description We are looking for a Software Development Engineer who will work in development of a new Cisco product. Architect and develop high performance Linux embedded drivers and software. Product implements networked services delivery including streaming and other real time protocols. Candidate must have demonstrated deep understanding of Linux OS and developed networking software on Linux. Work in a startup environment inside a corporate company. * Proven track record of major contributions to successful commercial Linux Real Time software development efforts. * Strong Linux/Unix background (System Administration background helpful) * Ability to write scripts in some administrative language (TCL, Perl, Python, a shell) * A self starter able to work with a minimal supervision * Uses acquired professional knowledge to determine method for issue resolution. * Uses expertise and creativity for innovative product recommendation and solutions Typically requires BSEE/CS or equivalent with 10+ years relevant experience in internetworking technologies and applications. * Contact: Brent Rogers, Recruiter * Email: [EMAIL PROTECTED] * Phone: 469-255-0254 Brent Rogers Recruiter Talent Acquisition and Management [EMAIL PROTECTED] Phone :469-255-0254 Mobile :469-223-2085 Cisco Systems. Inc. 2200 E. President George Bush Richardson, TX, 75082 United States www.cisco.com/jobs This e-mail may contain confidential and privileged material for the sole use of the intended recipient. Any review, use, distribution or disclosure by others is strictly prohibited. If you are not the intended recipient (or authorized to receive for the recipient), please contact the sender by reply e-mail and delete all copies of this message. spacer.gif Description: spacer.gif footerHead.gif Description: footerHead.gif footer.gif Description: footer.gif -- http://mail.python.org/mailman/listinfo/python-list