Kurukshetra Online Programming Contest
Hello There! College of Engineering, Guindy announces the Kurukshetra Online Programming Contest as a part of it's Inter-departmental Tech. Fest, Kurukshetra. The event is your opportunity to compete with the World's best coders with algorithm-centric problems that will rattle your grey matter! The event is to be held on December 31th and is open to all. Date: 31-December-2006 Timings : 14:00hrs - 20:00 hrs Max. Team Size : 3 Prizes Worth 2000 USD!! Do visit http://opc.kurukshetra.org.in and register for the event. -- http://mail.python.org/mailman/listinfo/python-list
Re: how to serve image files without disk use?
Ray Schumacher wrote: > But, how can I avoid disk writes? wx's *.SaveFile() needs a string > file name (no objects). > I'm going to investigate PIL's im.save(), as it appears to allow > file-objects. Take a look at the img2*.py files in wx.tools. They're sorta sketchy imo, but they do the trick. encode_bitmaps.py, with the wx demo app, is used to generate all of the bitmap data that's in Python files embedded into the app, and following the chain of logic from there might yield you something interesting. Mind, I haven't tried it myself, but it's where I'd start looking. Good luck, -tom! -- -- http://mail.python.org/mailman/listinfo/python-list
Re: A stupid question
luxnoctis wrote: > It says exactly: > > The specified module could not be found. > LoadLibrary(pythondll) failed > > Don't know if that helps at all. There's something installed on Compaq computers that uses the Python stuff too, but I never figured out what it was. I figured it may have been some of the preloaded games, 'cause when I restored a roommate's machine from the restore image the Python22 folder was among the things that appeared on the fresh machine. It was actually pretty exciting for me since I needed to write a little utility to do something on this machine, but it was slow as death and only had dialup and I really didn't want to deal with downloading and installing that stuff myself. ...of course your first problem is buying a machine with a ton of shovelware on it. Second problem is uninstalling stuff without knowing what it's for. -tom! -- -- http://mail.python.org/mailman/listinfo/python-list
Re: Convert Perl to Python
In <[EMAIL PROTECTED]>, Χρυσάνθη Αϊναλή wrote: > How can I convert a perl script to Python? Look what the Perl script does and then rewrite it in Python. Automatic translations between programming languages, if possible, usually result in code that is not supposed to be read by human beings. Every language has its idioms and a "literal" translation looks very odd to "native speakers" of the target language. Ciao, Marc 'BlackJack' Rintsch -- http://mail.python.org/mailman/listinfo/python-list
Re: Convert Perl to Python
Marc 'BlackJack' Rintsch wrote: > In <[EMAIL PROTECTED]>, > Χρυσάνθη Αϊναλή wrote: > >> How can I convert a perl script to Python? > > Look what the Perl script does and then rewrite it in Python. Automatic > translations between programming languages, if possible, usually result in > code that is not supposed to be read by human beings. Every language has > its idioms and a "literal" translation looks very odd to "native speakers" > of the target language. > > Ciao, > Marc 'BlackJack' Rintsch Either that or write a perl interpreter in python ;) -- Tim Daneliuk [EMAIL PROTECTED] PGP Key: http://www.tundraware.com/PGP/ -- http://mail.python.org/mailman/listinfo/python-list
Re: Starting a child process and getting its stdout?
cypher543 wrote: > This has been driving me insane for the last hour or so. I have search > everywhere, and nothing works. I am trying to use the subprocess module > to run a program and get its output line by line. But, it always waits > for the process to terminate and then return the output all at once. Right, you need to use subprocess.PIPE and polling of the process and the pipe to get it to do what you want. Hopefully this makes sense, I also hope it'll work on Linux but can't imagine why it wouldn't. Save this code to a file, name unimportant. Executing the file will fire the top clause of the if statement, the bit that runs the "parent" part. That starts the script again as a subprocess, which triggers the else clause. Hope it makes sense. Depending on your environment, you might need 'shell=True' in your Popen args. On Windows, that is required if you want to prevent a console window from popping up if you're running in a GUI app. -tom! -- import subprocess import sys import time if len(sys.argv) == 1: # no command line arg means, "we're the parent process." print 'starting parent process.' myName = sys.argv[0] # launch the subprocess with an additional parameter, to trigger # else clause below. p = subprocess.Popen( ( 'python', '-u', myName, 'x' ), stdout=subprocess.PIPE ) while p.poll() == None: data = p.stdout.readline() if data: print data, print 'process ended with return code', p.returncode else: # assume the command-line arg means "run the background process" print 'starting subprocess' for i in range(10): time.sleep(.25) print i sys.exit(14) -- http://mail.python.org/mailman/listinfo/python-list
Re: Starting a child process and getting its stdout?
Tom Plunket wrote: > while p.poll() == None: > data = p.stdout.readline() > if data: > print data, If you change that print to something more decorated, like, print 'process said:', data, Then it might be more obvious where/how the print statements are getting routed. Keep in mind that readline() will return one line at a time, and that line will end with a newline, although the last line you get (at EOF) may not have one. again, good luck. Hope this helps, -tom! -- -- http://mail.python.org/mailman/listinfo/python-list
Re: db access
Hi Johnf, are you referring to this ? http://www.freetds.org/ And how i can get psmssql.py so i can get a shot on it, is it included in FreeTDS ?? On Dec 29, 12:12 am, johnf <[EMAIL PROTECTED]> wrote: > king kikapu wrote: > > Hi to all, > > > is there a way to use an RDBMS (in my case, SQL Server) from Python by > > using some built-in module of the language (v. 2.5) and through ODBC ?? > > I saw some samples that use statements like "import dbi" or "import > > odbc" but neither modules (dbi, odbc) are present on my system... > > > Any hint(s) ?? > > > Thanks in advanceAlthough others have suggested using ODBC or ADO I have a > > different > solution. If you wanted a multi-platform I would use FreeTDS with > psmssql.py. psmssql.py does support the DB API 2.0 although it does not > support any of the extendsions. Works with Linux, Mac and Windows. > > Johnf -- http://mail.python.org/mailman/listinfo/python-list
Re: Convert Perl to Python
http://www.crazy-compilers.com/bridgekeeper/ ?? wrote: > How can I convert a perl script to Python? > > Thank you! > -- http://mail.python.org/mailman/listinfo/python-list
Re: Reverse of SendKeys??
"Erik Johnson" <> typed > Aside from the obvious security issues such a program would > represent (and your name and signature are curious in that respect as > well), you are basically asking for functionality (i.e., a key logger) > I believe to be outside what is offered by Python and/or the API of > most operating systems. I agree on the security issues, and on the statement, that writing a key logger is outside the scope of the standard python library. But it is easily possible to write a key logger using the API of common operating systems. Windows provides hooks for intercepting messages from input devices such as keyboard and mouse. On Linux you can either write a kernel module, which is the less portable, but more effective way, or you can code a X11 key logger, which will also work on other unix-like systems with a working X11 installation. -- Freedom is always the freedom of dissenters. (Rosa Luxemburg) -- http://mail.python.org/mailman/listinfo/python-list
INSERT statements not INSERTING when using mysql from python
I don't know whether anyone can help, but I have an odd problem. I have a PSP (Spyce) script that makes many calls to populate a database. They all work without any problem except for one statement. I first connect to the database... self.con = MySQLdb.connect(user=username, passwd =password) self.cursor = self.con.cursor() self.cursor.execute("SET max_error_count=0") All the neccesary tables are created... self.cursor.execute("CREATE DATABASE IF NOT EXISTS "+name) self.cursor.execute("USE "+name) self.cursor.execute("CREATE TABLE IF NOT EXISTS networks (SM varchar(20),DMC int,DM varchar(50),NOS int,OS varchar(50),NID varchar(20)) Then I execute many insert statements in various different loops on various tables, all of which are fine, and result in multiple table entries. The following one is executed many times also. and seems identical to the rest. The print statements output to the browser window, and appear repeatedly, so the query must be being called repeatedly also: print "SQL query executing" self.cursor.execute("INSERT INTO networks VALUES ('a',' "+i+" ','c','2','e','f','g')") print "SQL query executed" I have, for debugging, set "i" up as a counter variable. No errors are given, but the only entry to appear in the final database is that from the final execution of the INSERT statement (the last value of i) I suspect that this is to vague for anyone to be able to help, but if anyone has any ideas I'd be really grateful :-) It occured to me that if I could access the mysql query log that might help, but I was unsure how to enable logging for MysQL with python. Cheers, Ben -- http://mail.python.org/mailman/listinfo/python-list
Re: INSERT statements not INSERTING when using mysql from python
Well that's odd... If I place the exact same Insert statement elswhere in the program it works as intended. That would suggest it is never being run in its old position, but the statements either side of it are printing... Ben wrote: > I don't know whether anyone can help, but I have an odd problem. I have > a PSP (Spyce) script that makes many calls to populate a database. They > all work without any problem except for one statement. > > I first connect to the database... > > self.con = MySQLdb.connect(user=username, passwd =password) > self.cursor = self.con.cursor() > self.cursor.execute("SET max_error_count=0") > > All the neccesary tables are created... > > self.cursor.execute("CREATE DATABASE IF NOT EXISTS "+name) > self.cursor.execute("USE "+name) > > self.cursor.execute("CREATE TABLE IF NOT EXISTS networks (SM > varchar(20),DMC int,DM varchar(50),NOS int,OS varchar(50),NID > varchar(20)) > > Then I execute many insert statements in various different loops on > various tables, all of which are fine, and result in multiple table > entries. The following one is executed many times also. and seems > identical to the rest. The print statements output to the browser > window, and appear repeatedly, so the query must be being called > repeatedly also: > > print "SQL query executing" > self.cursor.execute("INSERT INTO networks VALUES ('a',' "+i+" > ','c','2','e','f','g')") > print "SQL query executed" > > I have, for debugging, set "i" up as a counter variable. > > No errors are given, but the only entry to appear in the final database > is that from the final execution of the INSERT statement (the last > value of i) > > I suspect that this is to vague for anyone to be able to help, but if > anyone has any ideas I'd be really grateful :-) > > It occured to me that if I could access the mysql query log that might > help, but I was unsure how to enable logging for MysQL with python. > > Cheers, > > Ben -- http://mail.python.org/mailman/listinfo/python-list
Re: add encoding to standard encodings works different in python 2.5?
OK, I am trying to register my codecs, with codecs.register Looking at the python doc, this seems to work different in 2.4/2.5 Can somebody help me with an example of how to register a codec? I do not understand how this works. regards, Henk-jan -- http://mail.python.org/mailman/listinfo/python-list
Re: INSERT statements not INSERTING when using mysql from python
Ben wrote: > I don't know whether anyone can help, but I have an odd problem. I have > a PSP (Spyce) script that makes many calls to populate a database. They > all work without any problem except for one statement. > > I first connect to the database... > > self.con = MySQLdb.connect(user=username, passwd =password) > self.cursor = self.con.cursor() > self.cursor.execute("SET max_error_count=0") > > All the neccesary tables are created... > > self.cursor.execute("CREATE DATABASE IF NOT EXISTS "+name) > self.cursor.execute("USE "+name) > > self.cursor.execute("CREATE TABLE IF NOT EXISTS networks (SM > varchar(20),DMC int,DM varchar(50),NOS int,OS varchar(50),NID > varchar(20)) > > Then I execute many insert statements in various different loops on > various tables, all of which are fine, and result in multiple table > entries. The following one is executed many times also. and seems > identical to the rest. The print statements output to the browser > window, and appear repeatedly, so the query must be being called > repeatedly also: > > print "SQL query executing" > self.cursor.execute("INSERT INTO networks VALUES ('a',' "+i+" > ','c','2','e','f','g')") > print "SQL query executed" > > I have, for debugging, set "i" up as a counter variable. > > No errors are given, but the only entry to appear in the final database > is that from the final execution of the INSERT statement (the last > value of i) > > I suspect that this is to vague for anyone to be able to help, but if > anyone has any ideas I'd be really grateful :-) > > It occured to me that if I could access the mysql query log that might > help, but I was unsure how to enable logging for MysQL with python. > > Cheers, > > Ben Not sure this will help but where is the "commit"? I don't use MySQL but most SQL engines require a commit. Johnf -- http://mail.python.org/mailman/listinfo/python-list
Re: Anyone persuaded by "merits of Lisp vs Python"?
Carl Banks wrote: > If you were so keen on avoiding a flame war, the first thing you should > have done is to not cross-post this. I want to cover Pythonistas looking at Lisp and Lispers looking at Python because of the thread. The cross posting is not as flame bait. - Paddy. -- http://mail.python.org/mailman/listinfo/python-list
I want to see all the variables
Hi, When I use dir() I don't see the __ underscore items. Is there anything that will show all the private vars and functions? johnf -- http://mail.python.org/mailman/listinfo/python-list
Re: INSERT statements not INSERTING when using mysql from python
Ben wrote: > Well that's odd... > > If I place the exact same Insert statement elswhere in the program it > works as intended. > That would suggest it is never being run in its old position, but the > statements either side of it are printing... > > > Ben wrote: > > I don't know whether anyone can help, but I have an odd problem. I have > > a PSP (Spyce) script that makes many calls to populate a database. They > > all work without any problem except for one statement. > > > > I first connect to the database... > > > > self.con = MySQLdb.connect(user=username, passwd =password) > > self.cursor = self.con.cursor() > > self.cursor.execute("SET max_error_count=0") > > > > All the neccesary tables are created... > > > > self.cursor.execute("CREATE DATABASE IF NOT EXISTS "+name) > > self.cursor.execute("USE "+name) > > > > self.cursor.execute("CREATE TABLE IF NOT EXISTS networks (SM > > varchar(20),DMC int,DM varchar(50),NOS int,OS varchar(50),NID > > varchar(20)) > > > > Then I execute many insert statements in various different loops on > > various tables, all of which are fine, and result in multiple table > > entries. The following one is executed many times also. and seems > > identical to the rest. The print statements output to the browser > > window, and appear repeatedly, so the query must be being called > > repeatedly also: > > > > print "SQL query executing" > > self.cursor.execute("INSERT INTO networks VALUES ('a',' "+i+" > > ','c','2','e','f','g')") > > print "SQL query executed" > > > > I have, for debugging, set "i" up as a counter variable. > > > > No errors are given, but the only entry to appear in the final database > > is that from the final execution of the INSERT statement (the last > > value of i) > > > > I suspect that this is to vague for anyone to be able to help, but if > > anyone has any ideas I'd be really grateful :-) > > > > It occured to me that if I could access the mysql query log that might > > help, but I was unsure how to enable logging for MysQL with python. > > > > Cheers, > > > > Ben Well, it would appear to be some kind of autocommit problem. I had autocommit off, bus committed when I disconnected from the database. For some reason although all the other statements seemed ok, multiple statements in that loop were'nt every commiting. For the moment I've turned autocommit on and that has sorted things out, but it slows things down too so I'll try to fix it :-) Ben -- http://mail.python.org/mailman/listinfo/python-list
Re: INSERT statements not INSERTING when using mysql from python
I initially had it set up so that when I connected to the database I started a transaction, then when I disconnected I commited. I then tried turning autocommit on, but that didn't seem to make any difference (althouh initially I thought it had) I'll go back and see what I can find... Cheers, Ben johnf wrote: > Ben wrote: > > > I don't know whether anyone can help, but I have an odd problem. I have > > a PSP (Spyce) script that makes many calls to populate a database. They > > all work without any problem except for one statement. > > > > I first connect to the database... > > > > self.con = MySQLdb.connect(user=username, passwd =password) > > self.cursor = self.con.cursor() > > self.cursor.execute("SET max_error_count=0") > > > > All the neccesary tables are created... > > > > self.cursor.execute("CREATE DATABASE IF NOT EXISTS "+name) > > self.cursor.execute("USE "+name) > > > > self.cursor.execute("CREATE TABLE IF NOT EXISTS networks (SM > > varchar(20),DMC int,DM varchar(50),NOS int,OS varchar(50),NID > > varchar(20)) > > > > Then I execute many insert statements in various different loops on > > various tables, all of which are fine, and result in multiple table > > entries. The following one is executed many times also. and seems > > identical to the rest. The print statements output to the browser > > window, and appear repeatedly, so the query must be being called > > repeatedly also: > > > > print "SQL query executing" > > self.cursor.execute("INSERT INTO networks VALUES ('a',' "+i+" > > ','c','2','e','f','g')") > > print "SQL query executed" > > > > I have, for debugging, set "i" up as a counter variable. > > > > No errors are given, but the only entry to appear in the final database > > is that from the final execution of the INSERT statement (the last > > value of i) > > > > I suspect that this is to vague for anyone to be able to help, but if > > anyone has any ideas I'd be really grateful :-) > > > > It occured to me that if I could access the mysql query log that might > > help, but I was unsure how to enable logging for MysQL with python. > > > > Cheers, > > > > Ben > > Not sure this will help but where is the "commit"? I don't use MySQL but > most SQL engines require a commit. > Johnf -- http://mail.python.org/mailman/listinfo/python-list
Re: INSERT statements not INSERTING when using mysql from python
One partial explanation might be that for some reason it is recreating the table each time the code runs. My code says "CREATE TABLE IF NOT EXISTS" but if for some reason it is creating it anyway and dropping the one before that could explain why there are missing entires. It wouldn't explain why the NOT EXISTS line is being ignored though... Ben Ben wrote: > I initially had it set up so that when I connected to the database I > started a transaction, then when I disconnected I commited. > > I then tried turning autocommit on, but that didn't seem to make any > difference (althouh initially I thought it had) > > I'll go back and see what I can find... > Cheers, > Ben > > > johnf wrote: > > Ben wrote: > > > > > I don't know whether anyone can help, but I have an odd problem. I have > > > a PSP (Spyce) script that makes many calls to populate a database. They > > > all work without any problem except for one statement. > > > > > > I first connect to the database... > > > > > > self.con = MySQLdb.connect(user=username, passwd =password) > > > self.cursor = self.con.cursor() > > > self.cursor.execute("SET max_error_count=0") > > > > > > All the neccesary tables are created... > > > > > > self.cursor.execute("CREATE DATABASE IF NOT EXISTS "+name) > > > self.cursor.execute("USE "+name) > > > > > > self.cursor.execute("CREATE TABLE IF NOT EXISTS networks (SM > > > varchar(20),DMC int,DM varchar(50),NOS int,OS varchar(50),NID > > > varchar(20)) > > > > > > Then I execute many insert statements in various different loops on > > > various tables, all of which are fine, and result in multiple table > > > entries. The following one is executed many times also. and seems > > > identical to the rest. The print statements output to the browser > > > window, and appear repeatedly, so the query must be being called > > > repeatedly also: > > > > > > print "SQL query executing" > > > self.cursor.execute("INSERT INTO networks VALUES ('a',' "+i+" > > > ','c','2','e','f','g')") > > > print "SQL query executed" > > > > > > I have, for debugging, set "i" up as a counter variable. > > > > > > No errors are given, but the only entry to appear in the final database > > > is that from the final execution of the INSERT statement (the last > > > value of i) > > > > > > I suspect that this is to vague for anyone to be able to help, but if > > > anyone has any ideas I'd be really grateful :-) > > > > > > It occured to me that if I could access the mysql query log that might > > > help, but I was unsure how to enable logging for MysQL with python. > > > > > > Cheers, > > > > > > Ben > > > > Not sure this will help but where is the "commit"? I don't use MySQL but > > most SQL engines require a commit. > > Johnf -- http://mail.python.org/mailman/listinfo/python-list
Re: Scaling pictures
On Thu, 28 Dec 2006 11:53:41 +0100, Kajsa Anka wrote (in article <[EMAIL PROTECTED]>): Thanks for the answers, I'll use PIL. jem -- http://mail.python.org/mailman/listinfo/python-list
Re: INSERT statements not INSERTING when using mysql from python
Each time my script is run, the following is called: self.cursor.execute("CREATE DATABASE IF NOT EXISTS "+name) self.cursor.execute("USE "+name) self.cursor.execute("CREATE TABLE IF NOT EXISTS table_name ( The idea being that stuf is only created the first time the script is run, and after that the original tables and database is used. This might explain my pronblem if for some reason the old tables are being replaced... can anyone see anything wrong with the above? Ben Ben wrote: > One partial explanation might be that for some reason it is recreating > the table each time the code runs. My code says "CREATE TABLE IF NOT > EXISTS" but if for some reason it is creating it anyway and dropping > the one before that could explain why there are missing entires. > > It wouldn't explain why the NOT EXISTS line is being ignored though... > > Ben > > > Ben wrote: > > I initially had it set up so that when I connected to the database I > > started a transaction, then when I disconnected I commited. > > > > I then tried turning autocommit on, but that didn't seem to make any > > difference (althouh initially I thought it had) > > > > I'll go back and see what I can find... > > Cheers, > > Ben > > > > > > johnf wrote: > > > Ben wrote: > > > > > > > I don't know whether anyone can help, but I have an odd problem. I have > > > > a PSP (Spyce) script that makes many calls to populate a database. They > > > > all work without any problem except for one statement. > > > > > > > > I first connect to the database... > > > > > > > > self.con = MySQLdb.connect(user=username, passwd =password) > > > > self.cursor = self.con.cursor() > > > > self.cursor.execute("SET max_error_count=0") > > > > > > > > All the neccesary tables are created... > > > > > > > > self.cursor.execute("CREATE DATABASE IF NOT EXISTS "+name) > > > > self.cursor.execute("USE "+name) > > > > > > > > self.cursor.execute("CREATE TABLE IF NOT EXISTS networks (SM > > > > varchar(20),DMC int,DM varchar(50),NOS int,OS varchar(50),NID > > > > varchar(20)) > > > > > > > > Then I execute many insert statements in various different loops on > > > > various tables, all of which are fine, and result in multiple table > > > > entries. The following one is executed many times also. and seems > > > > identical to the rest. The print statements output to the browser > > > > window, and appear repeatedly, so the query must be being called > > > > repeatedly also: > > > > > > > > print "SQL query executing" > > > > self.cursor.execute("INSERT INTO networks VALUES ('a',' "+i+" > > > > ','c','2','e','f','g')") > > > > print "SQL query executed" > > > > > > > > I have, for debugging, set "i" up as a counter variable. > > > > > > > > No errors are given, but the only entry to appear in the final database > > > > is that from the final execution of the INSERT statement (the last > > > > value of i) > > > > > > > > I suspect that this is to vague for anyone to be able to help, but if > > > > anyone has any ideas I'd be really grateful :-) > > > > > > > > It occured to me that if I could access the mysql query log that might > > > > help, but I was unsure how to enable logging for MysQL with python. > > > > > > > > Cheers, > > > > > > > > Ben > > > > > > Not sure this will help but where is the "commit"? I don't use MySQL but > > > most SQL engines require a commit. > > > Johnf -- http://mail.python.org/mailman/listinfo/python-list
Re: INSERT statements not INSERTING when using mysql from python
Nope... that can't be it. I tried running those commands manually and nothing went wrong. But then again when I execute the problematic command manually nothing goes wrong. Its just not executing until the last time, or being overwritten. Ben wrote: > Each time my script is run, the following is called: > > self.cursor.execute("CREATE DATABASE IF NOT EXISTS "+name) > self.cursor.execute("USE "+name) > self.cursor.execute("CREATE TABLE IF NOT EXISTS table_name ( > > The idea being that stuf is only created the first time the script is > run, and after that the original tables and database is used. This > might explain my pronblem if for some reason the old tables are being > replaced... can anyone see anything wrong with the above? > > Ben > > > > > > > Ben wrote: > > One partial explanation might be that for some reason it is recreating > > the table each time the code runs. My code says "CREATE TABLE IF NOT > > EXISTS" but if for some reason it is creating it anyway and dropping > > the one before that could explain why there are missing entires. > > > > It wouldn't explain why the NOT EXISTS line is being ignored though... > > > > Ben > > > > > > Ben wrote: > > > I initially had it set up so that when I connected to the database I > > > started a transaction, then when I disconnected I commited. > > > > > > I then tried turning autocommit on, but that didn't seem to make any > > > difference (althouh initially I thought it had) > > > > > > I'll go back and see what I can find... > > > Cheers, > > > Ben > > > > > > > > > johnf wrote: > > > > Ben wrote: > > > > > > > > > I don't know whether anyone can help, but I have an odd problem. I > > > > > have > > > > > a PSP (Spyce) script that makes many calls to populate a database. > > > > > They > > > > > all work without any problem except for one statement. > > > > > > > > > > I first connect to the database... > > > > > > > > > > self.con = MySQLdb.connect(user=username, passwd =password) > > > > > self.cursor = self.con.cursor() > > > > > self.cursor.execute("SET max_error_count=0") > > > > > > > > > > All the neccesary tables are created... > > > > > > > > > > self.cursor.execute("CREATE DATABASE IF NOT EXISTS "+name) > > > > > self.cursor.execute("USE "+name) > > > > > > > > > > self.cursor.execute("CREATE TABLE IF NOT EXISTS networks (SM > > > > > varchar(20),DMC int,DM varchar(50),NOS int,OS varchar(50),NID > > > > > varchar(20)) > > > > > > > > > > Then I execute many insert statements in various different loops on > > > > > various tables, all of which are fine, and result in multiple table > > > > > entries. The following one is executed many times also. and seems > > > > > identical to the rest. The print statements output to the browser > > > > > window, and appear repeatedly, so the query must be being called > > > > > repeatedly also: > > > > > > > > > > print "SQL query executing" > > > > > self.cursor.execute("INSERT INTO networks VALUES ('a',' "+i+" > > > > > ','c','2','e','f','g')") > > > > > print "SQL query executed" > > > > > > > > > > I have, for debugging, set "i" up as a counter variable. > > > > > > > > > > No errors are given, but the only entry to appear in the final > > > > > database > > > > > is that from the final execution of the INSERT statement (the last > > > > > value of i) > > > > > > > > > > I suspect that this is to vague for anyone to be able to help, but if > > > > > anyone has any ideas I'd be really grateful :-) > > > > > > > > > > It occured to me that if I could access the mysql query log that might > > > > > help, but I was unsure how to enable logging for MysQL with python. > > > > > > > > > > Cheers, > > > > > > > > > > Ben > > > > > > > > Not sure this will help but where is the "commit"? I don't use MySQL > > > > but > > > > most SQL engines require a commit. > > > > Johnf -- http://mail.python.org/mailman/listinfo/python-list
Re: INSERT statements not INSERTING when using mysql from python
Well, I've checked the SQL log, and my insert statements are certainly being logged. The only option left open is that the table in question is being replaced, but I can't see why it should be... Ben wrote: > Nope... that can't be it. I tried running those commands manually and > nothing went wrong. > But then again when I execute the problematic command manually nothing > goes wrong. Its just not executing until the last time, or being > overwritten. > > > Ben wrote: > > Each time my script is run, the following is called: > > > > self.cursor.execute("CREATE DATABASE IF NOT EXISTS "+name) > > self.cursor.execute("USE "+name) > > self.cursor.execute("CREATE TABLE IF NOT EXISTS table_name ( > > > > The idea being that stuf is only created the first time the script is > > run, and after that the original tables and database is used. This > > might explain my pronblem if for some reason the old tables are being > > replaced... can anyone see anything wrong with the above? > > > > Ben > > > > > > > > > > > > > > Ben wrote: > > > One partial explanation might be that for some reason it is recreating > > > the table each time the code runs. My code says "CREATE TABLE IF NOT > > > EXISTS" but if for some reason it is creating it anyway and dropping > > > the one before that could explain why there are missing entires. > > > > > > It wouldn't explain why the NOT EXISTS line is being ignored though... > > > > > > Ben > > > > > > > > > Ben wrote: > > > > I initially had it set up so that when I connected to the database I > > > > started a transaction, then when I disconnected I commited. > > > > > > > > I then tried turning autocommit on, but that didn't seem to make any > > > > difference (althouh initially I thought it had) > > > > > > > > I'll go back and see what I can find... > > > > Cheers, > > > > Ben > > > > > > > > > > > > johnf wrote: > > > > > Ben wrote: > > > > > > > > > > > I don't know whether anyone can help, but I have an odd problem. I > > > > > > have > > > > > > a PSP (Spyce) script that makes many calls to populate a database. > > > > > > They > > > > > > all work without any problem except for one statement. > > > > > > > > > > > > I first connect to the database... > > > > > > > > > > > > self.con = MySQLdb.connect(user=username, passwd =password) > > > > > > self.cursor = self.con.cursor() > > > > > > self.cursor.execute("SET max_error_count=0") > > > > > > > > > > > > All the neccesary tables are created... > > > > > > > > > > > > self.cursor.execute("CREATE DATABASE IF NOT EXISTS "+name) > > > > > > self.cursor.execute("USE "+name) > > > > > > > > > > > > self.cursor.execute("CREATE TABLE IF NOT EXISTS networks (SM > > > > > > varchar(20),DMC int,DM varchar(50),NOS int,OS varchar(50),NID > > > > > > varchar(20)) > > > > > > > > > > > > Then I execute many insert statements in various different loops on > > > > > > various tables, all of which are fine, and result in multiple table > > > > > > entries. The following one is executed many times also. and seems > > > > > > identical to the rest. The print statements output to the browser > > > > > > window, and appear repeatedly, so the query must be being called > > > > > > repeatedly also: > > > > > > > > > > > > print "SQL query executing" > > > > > > self.cursor.execute("INSERT INTO networks VALUES ('a',' "+i+" > > > > > > ','c','2','e','f','g')") > > > > > > print "SQL query executed" > > > > > > > > > > > > I have, for debugging, set "i" up as a counter variable. > > > > > > > > > > > > No errors are given, but the only entry to appear in the final > > > > > > database > > > > > > is that from the final execution of the INSERT statement (the last > > > > > > value of i) > > > > > > > > > > > > I suspect that this is to vague for anyone to be able to help, but > > > > > > if > > > > > > anyone has any ideas I'd be really grateful :-) > > > > > > > > > > > > It occured to me that if I could access the mysql query log that > > > > > > might > > > > > > help, but I was unsure how to enable logging for MysQL with python. > > > > > > > > > > > > Cheers, > > > > > > > > > > > > Ben > > > > > > > > > > Not sure this will help but where is the "commit"? I don't use MySQL > > > > > but > > > > > most SQL engines require a commit. > > > > > Johnf -- http://mail.python.org/mailman/listinfo/python-list
list looping error
i have created list x: >>> x = [(12, 22, 11), (13, 22, 33)] and want to print each number in tuple >>> for i in x: for j in i: print j[0] but I get this error. What does it means? Traceback (most recent call last): File "", line 3, in print j[0] TypeError: 'int' object is unsubscriptable thanks -- http://mail.python.org/mailman/listinfo/python-list
Re: INSERT statements not INSERTING when using mysql from python
I have found the problem, but not the cause. I tried setting the database up manually before hand, which let me get rid of the "IF NOT EXISTS" lines, and now it works! But why the *** should it not work anyway? The first time it is run, no database or tables, so it creates them. That works. But apparentlyu on subsequent runs it decides the tables it created arent' actually there, and overwrites them. Gr. Ben Ben wrote: > Well, I've checked the SQL log, and my insert statements are certainly > being logged. The only option left open is that the table in question > is being replaced, but I can't see why it should be... > > > Ben wrote: > > Nope... that can't be it. I tried running those commands manually and > > nothing went wrong. > > But then again when I execute the problematic command manually nothing > > goes wrong. Its just not executing until the last time, or being > > overwritten. > > > > > > Ben wrote: > > > Each time my script is run, the following is called: > > > > > > self.cursor.execute("CREATE DATABASE IF NOT EXISTS "+name) > > > self.cursor.execute("USE "+name) > > > self.cursor.execute("CREATE TABLE IF NOT EXISTS table_name ( > > > > > > The idea being that stuf is only created the first time the script is > > > run, and after that the original tables and database is used. This > > > might explain my pronblem if for some reason the old tables are being > > > replaced... can anyone see anything wrong with the above? > > > > > > Ben > > > > > > > > > > > > > > > > > > > > > Ben wrote: > > > > One partial explanation might be that for some reason it is recreating > > > > the table each time the code runs. My code says "CREATE TABLE IF NOT > > > > EXISTS" but if for some reason it is creating it anyway and dropping > > > > the one before that could explain why there are missing entires. > > > > > > > > It wouldn't explain why the NOT EXISTS line is being ignored though... > > > > > > > > Ben > > > > > > > > > > > > Ben wrote: > > > > > I initially had it set up so that when I connected to the database I > > > > > started a transaction, then when I disconnected I commited. > > > > > > > > > > I then tried turning autocommit on, but that didn't seem to make any > > > > > difference (althouh initially I thought it had) > > > > > > > > > > I'll go back and see what I can find... > > > > > Cheers, > > > > > Ben > > > > > > > > > > > > > > > johnf wrote: > > > > > > Ben wrote: > > > > > > > > > > > > > I don't know whether anyone can help, but I have an odd problem. > > > > > > > I have > > > > > > > a PSP (Spyce) script that makes many calls to populate a > > > > > > > database. They > > > > > > > all work without any problem except for one statement. > > > > > > > > > > > > > > I first connect to the database... > > > > > > > > > > > > > > self.con = MySQLdb.connect(user=username, passwd =password) > > > > > > > self.cursor = self.con.cursor() > > > > > > > self.cursor.execute("SET max_error_count=0") > > > > > > > > > > > > > > All the neccesary tables are created... > > > > > > > > > > > > > > self.cursor.execute("CREATE DATABASE IF NOT EXISTS "+name) > > > > > > > self.cursor.execute("USE "+name) > > > > > > > > > > > > > > self.cursor.execute("CREATE TABLE IF NOT EXISTS networks (SM > > > > > > > varchar(20),DMC int,DM varchar(50),NOS int,OS varchar(50),NID > > > > > > > varchar(20)) > > > > > > > > > > > > > > Then I execute many insert statements in various different loops > > > > > > > on > > > > > > > various tables, all of which are fine, and result in multiple > > > > > > > table > > > > > > > entries. The following one is executed many times also. and seems > > > > > > > identical to the rest. The print statements output to the browser > > > > > > > window, and appear repeatedly, so the query must be being called > > > > > > > repeatedly also: > > > > > > > > > > > > > > print "SQL query executing" > > > > > > > self.cursor.execute("INSERT INTO networks VALUES ('a',' "+i+" > > > > > > > ','c','2','e','f','g')") > > > > > > > print "SQL query executed" > > > > > > > > > > > > > > I have, for debugging, set "i" up as a counter variable. > > > > > > > > > > > > > > No errors are given, but the only entry to appear in the final > > > > > > > database > > > > > > > is that from the final execution of the INSERT statement (the last > > > > > > > value of i) > > > > > > > > > > > > > > I suspect that this is to vague for anyone to be able to help, > > > > > > > but if > > > > > > > anyone has any ideas I'd be really grateful :-) > > > > > > > > > > > > > > It occured to me that if I could access the mysql query log that > > > > > > > might > > > > > > > help, but I was unsure how to enable logging for MysQL with > > > > > > > python. > > > > > > > > > > > > > > Cheers, > > > > > > > > > > > > > > Ben > > > > > > > > > > > > Not sure this will help but where is the "commit"? I don't use > > > > > > MySQL but > > > > > > most SQL engines require a commit. > > > >
Re: INSERT statements not INSERTING when using mysql from python
Perhaps when I'm checking for table existance using mysql through python I have to be more explicit: Where I did have: USE database; IF NOT EXISTS CREATE table(. Perhaps I need: USE database; IF NOT EXISTS CREATE database.table(. I'll try it after lunch. Does anyoone know whether this might be the problem? Ben Ben wrote: > I have found the problem, but not the cause. > > I tried setting the database up manually before hand, which let me get > rid of the "IF NOT EXISTS" lines, and now it works! > > But why the *** should it not work anyway? The first time it is run, no > database or tables, so it creates them. That works. But apparentlyu on > subsequent runs it decides the tables it created arent' actually there, > and overwrites them. Gr. > > > Ben > > > > Ben wrote: > > Well, I've checked the SQL log, and my insert statements are certainly > > being logged. The only option left open is that the table in question > > is being replaced, but I can't see why it should be... > > > > > > Ben wrote: > > > Nope... that can't be it. I tried running those commands manually and > > > nothing went wrong. > > > But then again when I execute the problematic command manually nothing > > > goes wrong. Its just not executing until the last time, or being > > > overwritten. > > > > > > > > > Ben wrote: > > > > Each time my script is run, the following is called: > > > > > > > > self.cursor.execute("CREATE DATABASE IF NOT EXISTS "+name) > > > > self.cursor.execute("USE "+name) > > > > self.cursor.execute("CREATE TABLE IF NOT EXISTS table_name ( > > > > > > > > The idea being that stuf is only created the first time the script is > > > > run, and after that the original tables and database is used. This > > > > might explain my pronblem if for some reason the old tables are being > > > > replaced... can anyone see anything wrong with the above? > > > > > > > > Ben > > > > > > > > > > > > > > > > > > > > > > > > > > > > Ben wrote: > > > > > One partial explanation might be that for some reason it is recreating > > > > > the table each time the code runs. My code says "CREATE TABLE IF NOT > > > > > EXISTS" but if for some reason it is creating it anyway and dropping > > > > > the one before that could explain why there are missing entires. > > > > > > > > > > It wouldn't explain why the NOT EXISTS line is being ignored though... > > > > > > > > > > Ben > > > > > > > > > > > > > > > Ben wrote: > > > > > > I initially had it set up so that when I connected to the database I > > > > > > started a transaction, then when I disconnected I commited. > > > > > > > > > > > > I then tried turning autocommit on, but that didn't seem to make any > > > > > > difference (althouh initially I thought it had) > > > > > > > > > > > > I'll go back and see what I can find... > > > > > > Cheers, > > > > > > Ben > > > > > > > > > > > > > > > > > > johnf wrote: > > > > > > > Ben wrote: > > > > > > > > > > > > > > > I don't know whether anyone can help, but I have an odd > > > > > > > > problem. I have > > > > > > > > a PSP (Spyce) script that makes many calls to populate a > > > > > > > > database. They > > > > > > > > all work without any problem except for one statement. > > > > > > > > > > > > > > > > I first connect to the database... > > > > > > > > > > > > > > > > self.con = MySQLdb.connect(user=username, passwd =password) > > > > > > > > self.cursor = self.con.cursor() > > > > > > > > self.cursor.execute("SET max_error_count=0") > > > > > > > > > > > > > > > > All the neccesary tables are created... > > > > > > > > > > > > > > > > self.cursor.execute("CREATE DATABASE IF NOT EXISTS "+name) > > > > > > > > self.cursor.execute("USE "+name) > > > > > > > > > > > > > > > > self.cursor.execute("CREATE TABLE IF NOT EXISTS networks (SM > > > > > > > > varchar(20),DMC int,DM varchar(50),NOS int,OS varchar(50),NID > > > > > > > > varchar(20)) > > > > > > > > > > > > > > > > Then I execute many insert statements in various different > > > > > > > > loops on > > > > > > > > various tables, all of which are fine, and result in multiple > > > > > > > > table > > > > > > > > entries. The following one is executed many times also. and > > > > > > > > seems > > > > > > > > identical to the rest. The print statements output to the > > > > > > > > browser > > > > > > > > window, and appear repeatedly, so the query must be being called > > > > > > > > repeatedly also: > > > > > > > > > > > > > > > > print "SQL query executing" > > > > > > > > self.cursor.execute("INSERT INTO networks VALUES ('a',' "+i+" > > > > > > > > ','c','2','e','f','g')") > > > > > > > > print "SQL query executed" > > > > > > > > > > > > > > > > I have, for debugging, set "i" up as a counter variable. > > > > > > > > > > > > > > > > No errors are given, but the only entry to appear in the final > > > > > > > > database > > > > > > > > is that from the final execution of the INSERT statement (the > > > > > > > > last > > > > > > > > value of i) > > > >
Re: textwrap.dedent replaces tabs?
Tom Plunket wrote: > Frederic Rentsch wrote: > > >> Your rules seem incomplete. >> > > Not my rules, the stated documentation for dedent. "My" understanding > of them may not be equivalent to yours, however. It's not about understanding, It's about the objective. Let us consider the difference between passing a driving test and riding a bicycle in city traffic. The objective of passing the test is getting the license and the means is knowing the rules. The objective of riding the bicycle is surviving and the means is anticipating all possible breaches of rules on he part of motorists. > What if common tabs remain after stripping common white space? > What if we just go with, "[r]emove any whitespace than can be uniformly > removed from the left of every line in `text`." ? > >> Does this never happen? Or can we hope it doesn't happen? >> > > "Hope" has no place in programming software that is to be used by > others. > > That's exactly what I am saying. That's exactly why it may be a good idea to provide preventive measures for rules being breached be those others over whom we have no control. >> To err on the side of caution I complete your rules and this is my >> (tested) attempt at expressing them pythonically. >> > > Inasmuch as "my" rules have been expressed via tests, the provided code > fails four of the five tests provided. > > toms_test_data = ( ( "\n Hello\n World", # Do this "\nHello\n World", ), # Expect this ( "\n\tHello\n\t World", "\nHello\n World", ), ( "\t\tHello\n\tWorld", "\tHello\nWorld", ), ( "Hello\n\tWorld", "Hello\n\tWorld", ), ( " \t Hello\n \tWorld", "\t Hello\n \tWorld", ), ) >>> for dedent_this, expect_this in toms_test_data: done = '\n'.join (dedent (dedent_this.splitlines ())) if done == expect_this: print 'BRAVO!!!' else: print 'SHAME ON YOU!!!' BRAVO!!! BRAVO!!! BRAVO!!! BRAVO!!! BRAVO!!! You seem to have plugged my function into your tester. I wasn't concerned about your testing interface but about the dedentation. >> (I admit it does look awfully sevety-ish. Just a vulgar little >> function.) >> > > Seventys-ish is as much a statement about the lack of statement about > how you actually tested it as it is that an implementation was made > apparently without understanding of the requirements. > > > -tom! > > Best regards Frederic -- http://mail.python.org/mailman/listinfo/python-list
Re: list looping error
What you really want to write is for i in x: for j in i: print j The outer loop iterates over the tuples in the list, while the inner loop iterates over the elements of each tuple. So j (in your example) is always an integer, and is therefore unsubscriptable, which is exactly what the error message says. Thomas Philips -- http://mail.python.org/mailman/listinfo/python-list
Question about the "new" module
Hi, I'm using Python 2.5 to develop a simple MVC framework based on mod_python. To load my controllers, I create new modules using the "new" module like this: # my_module = new.module("random_name") my_module.__file__ = module_path exec open(module_path, "r") in my_module.__dict__ then I initialize the class defined inside the module and call a method of this class based on the HTTP request. All works fine but the imports. If my module contains something like this: import something class MyController(Controller): def index(self): something.do_something() when MyController.index is called an exception is raised "NoneType object has not attribute do_something". Why does it happen ? I have to load the module in different ways (but I'd like to force the reload every time the module is loaded) ? Gabriele -- http://mail.python.org/mailman/listinfo/python-list
Re: INSERT statements not INSERTING when using mysql from python
Not sure if this will help, as you said you already tried autocommit, but did you try to commit after creating the table, then doing all the inserts before commiting on disconnect? (I'm no MySQL or Python guru, but I do use it with python and MySQLdb .) -- http://mail.python.org/mailman/listinfo/python-list
Re: Slowdown in Jython
tac-tics wrote: > I have an application written in jython which has to process a number > of records. It runs fine until it gets to about 666 records (and maybe > that's a sign), and then, it's performance and responsiveness goes down > the toilet. It looks like it's running out of memory and is being > forced to use extended memory, but I do not know enough about the > language to figure out where this is happening. It will eventually > finish the task, but the window stops responding, and it ends up taking > several hours (as opposed to several minutes as it should). I really > just wish I had a tool for polling the amount of memory Jython was > using at any given moment. > > Does anyone have any strategy or advice for me? You can find out how much memory Jython is using the same as you would for any other application, e.g. Windows Task Manager or the equivalent. Jython is a Java application and you can increase the max heap available the same as for other java apps, using the command line switch -Xmx, e.g. -Xmx512m to set the max heap to 512 megabytes. Kent -- http://mail.python.org/mailman/listinfo/python-list
Beginner question on text processing
I am beginning to use python primarily to organize data into formats needed for input into some statistical packages. I do not have much programming experience outside of LaTeX and R, so some of this is a bit new. I am attempting to write a program that reads in a text file that contains some values and it would then output a new file that has manipulated this original text file in some manner. To illustrate, assume I have a text file, call it test.txt, with the following information: X11 .32 X22 .45 My goal in the python program is to manipulate this file such that a new file would be created that looks like: X11 IPB = .32 X22 IPB = .45 Here is what I have accomplished so far. # Python code below for sample program called 'test.py' # Read in a file with the item parameters filename = raw_input("Please enter the file you want to open: ") params = open(filename, 'r') for i in params: print 'IPB = ' ,i # end code This obviously results in the following: IPB = x11 .32 IPB = x22 .45 So, my questions may be trivial, but: 1) How do I print the 'IPB = ' before the numbers? 2) Is there a better way to prompt the user to open the desired file rather than the way I have it above? For example, is there a built-in function that would open a windows dialogue box such that a user who does not know about path names can use windows to look for the file and click on it. 3) Last, what is the best way to have the output saved as a new file called 'test2.txt'. The only way I know how to do this now is to do something like: python test.py > test2.txt Thank you for any help -- http://mail.python.org/mailman/listinfo/python-list
Re: INSERT statements not INSERTING when using mysql from python
Ask Ben, he might know, although he's out to lunch. Ben wrote: > I'll try it after lunch. Does anyoone know whether this might be the > problem? > > Ben > > > Ben wrote: > > I have found the problem, but not the cause. > > > > I tried setting the database up manually before hand, which let me get > > rid of the "IF NOT EXISTS" lines, and now it works! > > > > But why the *** should it not work anyway? The first time it is run, no > > database or tables, so it creates them. That works. But apparentlyu on > > subsequent runs it decides the tables it created arent' actually there, > > and overwrites them. Gr. > > > > > > Ben > > > > > > > > Ben wrote: > > > Well, I've checked the SQL log, and my insert statements are certainly > > > being logged. The only option left open is that the table in question > > > is being replaced, but I can't see why it should be... > > > > > > > > > Ben wrote: > > > > Nope... that can't be it. I tried running those commands manually and > > > > nothing went wrong. > > > > But then again when I execute the problematic command manually nothing > > > > goes wrong. Its just not executing until the last time, or being > > > > overwritten. > > > > > > > > > > > > Ben wrote: > > > > > Each time my script is run, the following is called: > > > > > > > > > > self.cursor.execute("CREATE DATABASE IF NOT EXISTS "+name) > > > > > self.cursor.execute("USE "+name) > > > > > self.cursor.execute("CREATE TABLE IF NOT EXISTS table_name ( > > > > > > > > > > The idea being that stuf is only created the first time the script is > > > > > run, and after that the original tables and database is used. This > > > > > might explain my pronblem if for some reason the old tables are being > > > > > replaced... can anyone see anything wrong with the above? > > > > > > > > > > Ben > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Ben wrote: > > > > > > One partial explanation might be that for some reason it is > > > > > > recreating > > > > > > the table each time the code runs. My code says "CREATE TABLE IF NOT > > > > > > EXISTS" but if for some reason it is creating it anyway and dropping > > > > > > the one before that could explain why there are missing entires. > > > > > > > > > > > > It wouldn't explain why the NOT EXISTS line is being ignored > > > > > > though... > > > > > > > > > > > > Ben > > > > > > > > > > > > > > > > > > Ben wrote: > > > > > > > I initially had it set up so that when I connected to the > > > > > > > database I > > > > > > > started a transaction, then when I disconnected I commited. > > > > > > > > > > > > > > I then tried turning autocommit on, but that didn't seem to make > > > > > > > any > > > > > > > difference (althouh initially I thought it had) > > > > > > > > > > > > > > I'll go back and see what I can find... > > > > > > > Cheers, > > > > > > > Ben > > > > > > > > > > > > > > > > > > > > > johnf wrote: > > > > > > > > Ben wrote: > > > > > > > > > > > > > > > > > I don't know whether anyone can help, but I have an odd > > > > > > > > > problem. I have > > > > > > > > > a PSP (Spyce) script that makes many calls to populate a > > > > > > > > > database. They > > > > > > > > > all work without any problem except for one statement. > > > > > > > > > > > > > > > > > > I first connect to the database... > > > > > > > > > > > > > > > > > > self.con = MySQLdb.connect(user=username, passwd =password) > > > > > > > > > self.cursor = self.con.cursor() > > > > > > > > > self.cursor.execute("SET max_error_count=0") > > > > > > > > > > > > > > > > > > All the neccesary tables are created... > > > > > > > > > > > > > > > > > > self.cursor.execute("CREATE DATABASE IF NOT EXISTS "+name) > > > > > > > > > self.cursor.execute("USE "+name) > > > > > > > > > > > > > > > > > > self.cursor.execute("CREATE TABLE IF NOT EXISTS networks (SM > > > > > > > > > varchar(20),DMC int,DM varchar(50),NOS int,OS varchar(50),NID > > > > > > > > > varchar(20)) > > > > > > > > > > > > > > > > > > Then I execute many insert statements in various different > > > > > > > > > loops on > > > > > > > > > various tables, all of which are fine, and result in multiple > > > > > > > > > table > > > > > > > > > entries. The following one is executed many times also. and > > > > > > > > > seems > > > > > > > > > identical to the rest. The print statements output to the > > > > > > > > > browser > > > > > > > > > window, and appear repeatedly, so the query must be being > > > > > > > > > called > > > > > > > > > repeatedly also: > > > > > > > > > > > > > > > > > > print "SQL query executing" > > > > > > > > > self.cursor.execute("INSERT INTO networks VALUES ('a',' "+i+" > > > > > > > > > ','c','2','e','f','g')") > > > > > > > > > print "SQL query executed" > > > > > > > > > > > > > > > > > > I have, for debugging, set "i" up as a counter variable. > > > > > > > > > > > > > > > > > > No errors are given, but the only entry to appear in the > > > > > > > > > final datab
Re: A stupid question
I knew what everything was for when I uninstalled it, I just didn't happen to know about every component part, apparently. ;) I have tried reinstalling the Bittorrent client, and to no avail. (The computer is a Toshiba Satellite laptop, if that helps anyone.) Any other ideas? Tom Plunket wrote: > luxnoctis wrote: > > > It says exactly: > > > > The specified module could not be found. > > LoadLibrary(pythondll) failed > > > > Don't know if that helps at all. > > There's something installed on Compaq computers that uses the Python > stuff too, but I never figured out what it was. I figured it may have > been some of the preloaded games, 'cause when I restored a roommate's > machine from the restore image the Python22 folder was among the things > that appeared on the fresh machine. It was actually pretty exciting for > me since I needed to write a little utility to do something on this > machine, but it was slow as death and only had dialup and I really > didn't want to deal with downloading and installing that stuff myself. > > ...of course your first problem is buying a machine with a ton of > shovelware on it. Second problem is uninstalling stuff without knowing > what it's for. > > > -tom! > > -- -- http://mail.python.org/mailman/listinfo/python-list
Re: Scaling pictures
PIL is certainly a fine option, but I noticed that the scaled images (scaled with the ANTIALIAS filter) are not as good as you can get with, say, Photoshop. Maybe I'm just expecting too much, but I wish I could choose a higher quality rescaling algorithm. PIL still rocks though. On Dec 28, 2:32 pm, "Ravi Teja" <[EMAIL PROTECTED]> wrote: > Kajsa Anka wrote: > > I would like some advice, I'm going to build a small app that will, among > > other things, scale images so that they can be published on a web site. I've > > never done any image processing in python before so I would like to ask what > > is the best way of doing this, I will not do anything else than scaling the > > images. > > > I found the Python Imaging Library but before I dive into that I would like > > to know if there is a better way of doing this.Yes. Python Imaging Library > > (PIL) is the preferred Python way to do > this. The example is right in the > documentation.http://www.pythonware.com/library/pil/handbook/image.htm > > from PIL import Image > import glob, os > > size = 128, 128 > > for infile in glob.glob("*.jpg"): > file, ext = os.path.splitext(infile) > im = Image.open(infile) > im.thumbnail(size, Image.ANTIALIAS) > im.save(file + ".thumbnail", "JPEG") -- http://mail.python.org/mailman/listinfo/python-list
Re: popen on windows
On 27 Dec 2006 09:16:53 -0800, "hubritic" <[EMAIL PROTECTED]> wrote: >I am trying to set off commands on Windows 2003 from python. >Specifically, I am trying to use diskpart with a script file (pointed >to with path). > >cmd = ["diskpart", "/s", path] >p = Popen(cmd, shell=True) > >The script is meant to loop through twice. It will do so if I comment >out the Popen call and print cmd instead. But when Popen is called, one >disk will be formated, but not the next. What is the value of 'path' ? Does the command work from a Windows command prompt ? Dan -- http://mail.python.org/mailman/listinfo/python-list
Re: Question about the "new" module
Gabriele> I'm using Python 2.5 to develop a simple MVC framework based Gabriele> on mod_python. To load my controllers, I create new modules Gabriele> using the "new" module like this: Gabriele> # Gabriele> my_module = new.module("random_name") Gabriele> my_module.__file__ = module_path Gabriele> exec open(module_path, "r") in my_module.__dict__ Gabriele> then I initialize the class defined inside the module and call Gabriele> a method of this class based on the HTTP request. Why use the new module? Why not call __import__() or execfile()? Details on their use are here: http://docs.python.org/dev/lib/built-in-funcs.html Skip -- http://mail.python.org/mailman/listinfo/python-list
Re: Beginner question on text processing
Harold> To illustrate, assume I have a text file, call it test.txt, with Harold> the following information: Harold> X11 .32 Harold> X22 .45 Harold> My goal in the python program is to manipulate this file such Harold> that a new file would be created that looks like: Harold> X11 IPB = .32 Harold> X22 IPB = .45 ... This is a problem with a number of different solutions. Here's one way to do it: for line in open(filename, "r"): fields = line.split() print fields[0], "IPB =", fields[1] Skip -- http://mail.python.org/mailman/listinfo/python-list
Re: Some basic newbie questions...
"jonathan.beckett" <[EMAIL PROTECTED]> wrote: > I'm just finding it a bit weird that some of the built in functions are > static, rather than methods of objects (such as len() being used to > find the length of a list). When it comes down to it, its a design decision, so neither right nor wrong in itself. You need to look a bit wider than just 'len' to understand it. There is the historical attribute: as I understand it, once upon a time, way back in the mists of time tuples didn't have methods at all, so you had to use a global function if you wanted to get the length of a tuple. That of course is no longer the case. However, ignoring for a moment that this may have been part of the reason why Python started in the direction of global helper functions, there are a lot of reasons why it turns out to have been a good decision. Consider 'sum' for a moment. The function needs to know how to iterate over a sequence, but the sequence itself doesn't need to provide any support apart from iteration to be supported by 'sum'. If 'sum' was a method then you would have to implement it separately in every summable object; implement it in a common base class to all iterables; provide a 'Summable' mixin class requiring every designer of an iterable to decide at the outset whether they want it to be summable; or provide an adaptor class which takes an iterator and returns a summable iterator (which just adds a needless extra layer of complexity over the global function we started with). 'min', 'max', 'sorted', 'zip' are other functions which similarly provide support to any kind of iterable without encumbering the iterable protocol itself. Next consider 'iter'. That's a global function which calls the __iter__ method, but it also has a fallback behaviour. Before Python had __iter__ iteration was define by calling __getitem__ with increasing index values, and if you don't have an __iter__ method the iter builtin will try the old protocol instead. So the global function has some more benefits: we can change the protocol it implements and continue to provide backward compatability, and we can have it do more than just calling the method which does the implementation. getattr is another example of a builtin which appears to do the job of a method (__getattribute__) but actually does a whole lot more with fallback and exception handling in the function. Converting an AttributeError exception to a default value would be particularly nasty to get right if we were depending on a direct call to a base class __getattribute__ which might be overridden in the implemented class. cmp is another good example: cmp(a,b) returns a.__cmp__(b), but if a doesn't have an __cmp__ method then it tries to return -b.__cmp__(a) (and has another fallback if even that fails). There is also an argument that Python uses __ to distinguish internal implementation details so that the internal methods are effectively kept out of the user's namespace. The ordinary user shouldn't need to worry about the presence of __ methods as they never need to call them directly. In fact for beginners probably __init__ and "if __name__=='__main__':" are the only things besides 'keep off the double underscores' that they need to know about them. So where does that leave 'len'? It is a function primarily for consistency with the general idea that you call a builtin (or a function imported from a support module) rather than calling a __ method directly. It does add some minimal functionality over calling __len__ directly, but not such that you'ld normally notice the difference. -- http://mail.python.org/mailman/listinfo/python-list
Re: I want to see all the variables
johnf wrote: > Hi, > When I use dir() I don't see the __ underscore items. Is there anything > that will show all the private vars and functions? > > johnf The idea of the underscore items is that they aren't to be used by you. If you wish to access private variables and functions you will almost certainly have to look at the source code to make sure of what they are and how they can be utilized. -Larry -- http://mail.python.org/mailman/listinfo/python-list
Re: Python Wrapper for C# Com Object
[EMAIL PROTECTED] skrev: > [EMAIL PROTECTED] skrev: > > > Hi, > > > > I wish to write a Python wrapper for my C# COM object but am unsure > > where to start. I have a dll and a tlb file, and I can use this object > > in C via the following code - > > > > // ConsolApp.cpp : Defines the entry point for the console application. > > // > > #include "stdafx.h" > > #include "windows.h" > > #include "stdio.h" > > #import "C:\Documents and Settings\X\Mina dokument\Visual Studio > > 2005\Projects\X_COMObject\X_COMObject\bin\Debug\X_COMObject.tlb" > > using namespace X_COMObject; > > > > int _tmain(int argc, _TCHAR* argv[]) > > { > > CoInitialize(NULL); > > > > X_COMObject::XCOM_InterfacePtr p(__uuidof(X_COMObject::XCOM_Class)); > > XCOM_Interface *X_com_ptr ; > > X_com_ptr = p ; > > X_com_ptr->SetID(10); > > int x = X_com_ptr->GetID(); > > printf("%d",x); > > getchar(); > > > > return 0; > > } > > > > Can anyone offer me some tips as to how to do this in Python? > > > > Thanks very much for your help, > > > > Barry. > > This is what I've done so far, but I know I'm not doing this correctly. > Can anyone help me out? > > #import pythoncom > #pythoncom.CoInitialize() > > from comtypes.client import GetModule, CreateObject > > module = GetModule("C:\\Documents and Settings\\X\\Mina > dokument\\Visual Studio > 2005\\Projects\\X_COMObject\\X_COMObject\\bin\\Debug\\X_COMObject.tlb") > > dir(module) > > interface = module.XCOM_Interface() > > dir(interface) > > interface.SetID() > > #pythoncom.CoUnitialize() > > > Traceback (most recent call last): > File "C:/Python25/test.py", line 14, in > interface.SetID() > TypeError: Expected a COM this pointer as first argument Can anyone help me with this? Thanks, Barry. -- http://mail.python.org/mailman/listinfo/python-list
Re: INSERT statements not INSERTING when using mysql from python
:-) Ok, point taken! I fixed it in the end. It was nothing interesting at all - just a wayward line of code that was doing exactly what I feared - replacing the database each time rather than just when it was needed. Ben Leo Kislov wrote: > Ask Ben, he might know, although he's out to lunch. > > Ben wrote: > > > I'll try it after lunch. Does anyoone know whether this might be the > > problem? > > > > Ben > > > > > > Ben wrote: > > > I have found the problem, but not the cause. > > > > > > I tried setting the database up manually before hand, which let me get > > > rid of the "IF NOT EXISTS" lines, and now it works! > > > > > > But why the *** should it not work anyway? The first time it is run, no > > > database or tables, so it creates them. That works. But apparentlyu on > > > subsequent runs it decides the tables it created arent' actually there, > > > and overwrites them. Gr. > > > > > > > > > Ben > > > > > > > > > > > > Ben wrote: > > > > Well, I've checked the SQL log, and my insert statements are certainly > > > > being logged. The only option left open is that the table in question > > > > is being replaced, but I can't see why it should be... > > > > > > > > > > > > Ben wrote: > > > > > Nope... that can't be it. I tried running those commands manually and > > > > > nothing went wrong. > > > > > But then again when I execute the problematic command manually nothing > > > > > goes wrong. Its just not executing until the last time, or being > > > > > overwritten. > > > > > > > > > > > > > > > Ben wrote: > > > > > > Each time my script is run, the following is called: > > > > > > > > > > > > self.cursor.execute("CREATE DATABASE IF NOT EXISTS "+name) > > > > > > self.cursor.execute("USE "+name) > > > > > > self.cursor.execute("CREATE TABLE IF NOT EXISTS table_name ( > > > > > > > > > > > > The idea being that stuf is only created the first time the script > > > > > > is > > > > > > run, and after that the original tables and database is used. This > > > > > > might explain my pronblem if for some reason the old tables are > > > > > > being > > > > > > replaced... can anyone see anything wrong with the above? > > > > > > > > > > > > Ben > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Ben wrote: > > > > > > > One partial explanation might be that for some reason it is > > > > > > > recreating > > > > > > > the table each time the code runs. My code says "CREATE TABLE IF > > > > > > > NOT > > > > > > > EXISTS" but if for some reason it is creating it anyway and > > > > > > > dropping > > > > > > > the one before that could explain why there are missing entires. > > > > > > > > > > > > > > It wouldn't explain why the NOT EXISTS line is being ignored > > > > > > > though... > > > > > > > > > > > > > > Ben > > > > > > > > > > > > > > > > > > > > > Ben wrote: > > > > > > > > I initially had it set up so that when I connected to the > > > > > > > > database I > > > > > > > > started a transaction, then when I disconnected I commited. > > > > > > > > > > > > > > > > I then tried turning autocommit on, but that didn't seem to > > > > > > > > make any > > > > > > > > difference (althouh initially I thought it had) > > > > > > > > > > > > > > > > I'll go back and see what I can find... > > > > > > > > Cheers, > > > > > > > > Ben > > > > > > > > > > > > > > > > > > > > > > > > johnf wrote: > > > > > > > > > Ben wrote: > > > > > > > > > > > > > > > > > > > I don't know whether anyone can help, but I have an odd > > > > > > > > > > problem. I have > > > > > > > > > > a PSP (Spyce) script that makes many calls to populate a > > > > > > > > > > database. They > > > > > > > > > > all work without any problem except for one statement. > > > > > > > > > > > > > > > > > > > > I first connect to the database... > > > > > > > > > > > > > > > > > > > > self.con = MySQLdb.connect(user=username, passwd =password) > > > > > > > > > > self.cursor = self.con.cursor() > > > > > > > > > > self.cursor.execute("SET max_error_count=0") > > > > > > > > > > > > > > > > > > > > All the neccesary tables are created... > > > > > > > > > > > > > > > > > > > > self.cursor.execute("CREATE DATABASE IF NOT EXISTS "+name) > > > > > > > > > > self.cursor.execute("USE "+name) > > > > > > > > > > > > > > > > > > > > self.cursor.execute("CREATE TABLE IF NOT EXISTS networks (SM > > > > > > > > > > varchar(20),DMC int,DM varchar(50),NOS int,OS > > > > > > > > > > varchar(50),NID > > > > > > > > > > varchar(20)) > > > > > > > > > > > > > > > > > > > > Then I execute many insert statements in various different > > > > > > > > > > loops on > > > > > > > > > > various tables, all of which are fine, and result in > > > > > > > > > > multiple table > > > > > > > > > > entries. The following one is executed many times also. and > > > > > > > > > > seems > > > > > > > > > > identical to the rest. The print statements output to the > > > > > > > > > > browser > > > > > > > > > > window, an
probably a stupid question: MatLab equivalent of "diff" ?
Does anyone know the equivalent of the MatLab "diff" function. The "diff" functions calculates the difference between 2 succeeding elements of an array. I need to detect (fast) the falling edge of a binary signal. There's derivate function in Python diff, but when you use an binary (true/false) input, it also detects rising edges. Probably a stupid question, but I still have troubles, digging to huge amount of information about Python. thanks, Stef Mientki -- http://mail.python.org/mailman/listinfo/python-list
Can I beat perl at grep-like processing speed?
Just my curiosity. Can python beats perl at speed of grep-like processing? $ wget http://www.gutenberg.org/files/7999/7999-h.zip $ unzip 7999-h.zip $ cd 7999-h $ cat *.htm > bigfile $ du -h bigfile du -h bigfile 8.2Mbigfile -- grep.pl -- #!/usr/local/bin/perl open(F, 'bigfile') or die; while() { s/[\n\r]+$//; print "$_\n" if m/destroy/oi; } -- END -- -- grep.py -- #!/usr/bin/env python import re r = re.compile(r'destroy', re.IGNORECASE) for s in file('bigfile'): if r.search(s): print s.rstrip("\r\n") -- END -- $ time perl grep.pl > pl.out; time python grep.py > py.out real0m0.168s user0m0.149s sys 0m0.015s real0m0.450s user0m0.374s sys 0m0.068s # I used python2.5 and perl 5.8.6 -- http://mail.python.org/mailman/listinfo/python-list
Re: Starting a child process and getting its stdout?
Thank you for the examples, but I have tried all of that before. No matter what I do, my program always hangs while it waits for the process to exit and then it prints all of the output at once. I've tried read(), readline(), readlines(), communicate(), etc and it is always the same. self.buildPID = subprocess.Popen(["python", "tobeforked.py"], stdout = subprocess.PIPE) while self.buildPID.poll() == None: output = self.buildPID.stdout.readline() self.consoleLogBuffer.insert(self.consoleLogBuffer.get_end_iter(), output) self.consoleLog.scroll_to_mark(self.consoleLogBuffer.get_insert(), 0) Keep in mind that I'm not required to use subprocess. But I have also tried os.fork and the pty module. They both produce the exact same results. On Dec 29, 3:38 am, Tom Plunket <[EMAIL PROTECTED]> wrote: > Tom Plunket wrote: > >while p.poll() == None: > >data = p.stdout.readline() > >if data: > >print data,If you change that print to something more > > decorated, like, > >print 'process said:', data, > > Then it might be more obvious where/how the print statements are getting > routed. > > Keep in mind that readline() will return one line at a time, and that > line will end with a newline, although the last line you get (at EOF) > may not have one. > > again, good luck. Hope this helps, > -tom! > > -- -- http://mail.python.org/mailman/listinfo/python-list
Re: Slowdown in Jython
> Jython is a Java application That was the intellectual leap I needed to solve the problem. I forgot that I have total access to Java memory management. It turns out at the point of slowdown, Java was continually running full GC, causing the awful loss of performance. I figured out that I was not releasing a very large chunk of memory right before the script, so I effectively had a duplicate of every record in memory. I'm still not sure why my memory usage is increasing during the script, but with the removal of the duplicates in memory, it runs just fine now. Problem solved for now. -- http://mail.python.org/mailman/listinfo/python-list
Re: Can I beat perl at grep-like processing speed?
js wrote: > Just my curiosity. > Can python beats perl at speed of grep-like processing? > > > $ wget http://www.gutenberg.org/files/7999/7999-h.zip > $ unzip 7999-h.zip > $ cd 7999-h > $ cat *.htm > bigfile > $ du -h bigfile > du -h bigfile > 8.2M bigfile > > -- grep.pl -- > #!/usr/local/bin/perl > open(F, 'bigfile') or die; > > while() { > s/[\n\r]+$//; > print "$_\n" if m/destroy/oi; > } > -- END -- > -- grep.py -- > #!/usr/bin/env python > import re > r = re.compile(r'destroy', re.IGNORECASE) > > for s in file('bigfile'): > if r.search(s): print s.rstrip("\r\n") > -- END -- > > $ time perl grep.pl > pl.out; time python grep.py > py.out > real 0m0.168s > user 0m0.149s > sys 0m0.015s > > real 0m0.450s > user 0m0.374s > sys 0m0.068s > # I used python2.5 and perl 5.8.6 I'm thankful for the Python version or else, I'd never have guessed what that code was supposed to do! Try that : -- grep.py -- #!/usr/bin/env python import re def main(): search = re.compile(r'destroy', re.IGNORECASE).search for s in file('bigfile'): if search(s): print s.rstrip("\r\n") main() -- END -- -- http://mail.python.org/mailman/listinfo/python-list
Re: how to serve image files without disk use?
On 12/28/06, Ray Schumacher <[EMAIL PROTECTED]> wrote: > I'm trying to make a small camera server using VideoCapture.py and > socket. I needed to construct a complete image file with headers etc > for a browser to recognize it, but I couldn't find a combination of > StringIO and wx image methods to avoid disk saves, without PIL. > > If I save a temp.jpg file to disk I can serve the image easily: > ... > self.cam = VideoCapture.Device(devnum=0, showVideoWindow=0) > buff, width, height = self.cam.dev.getbuffer() > im = wx.EmptyImage(width, height) > im.SetData(buff) > im.Mirror().SaveFile('temp.jpg', wx.BITMAP_TYPE_JPEG) > ... > s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) > s.bind((HOST, PORT)) > s.listen(1) > conn, addr = s.accept() > while 1: > data = conn.recv(1024) > if data[:3] == 'GET': > conn.send("HTTP/1.0 200 OK"+"\015\012") > conn.send("Server: RJS_video/0.0.1"+"\015\012") > conn.send("Content-type: image/bmp"+"\015\012") > conn.send("Content-Length: "+str(352*288*3+256)+"\015\012") > conn.send("\015\012") > fh = file('temp.jpg', 'rb') > conn.send(fh.read()) > fh.close() > else: break > > But, how can I avoid disk writes? wx's *.SaveFile() needs a string > file name (no objects). > I'm going to investigate PIL's im.save(), as it appears to allow > file-objects. > wx.Image.GetData() returns the raw image data as a Python string. -- http://mail.python.org/mailman/listinfo/python-list
Re: Convert Perl to Python
Emilio Sañudo <[EMAIL PROTECTED]> wrote: > ?? wrote: > > How can I convert a perl script to Python? > > > http://www.crazy-compilers.com/bridgekeeper/ Very interesting until this bit :- The bad news: Unfortunatly, there is no way to 'try out' bridgekeeper. It's simply not available for puchasing. The good news:But we can offer you consultancy for this conversion (where we will use bridgekeeper as a mighty tool). If you are interested in hireing me for a project, please drop me a note I've done quite a lot of pl->py conversions by hand. It is a bit tedious but a good editor with macros will let you fly through the job. I used emacs. -- Nick Craig-Wood <[EMAIL PROTECTED]> -- http://www.craig-wood.com/nick -- http://mail.python.org/mailman/listinfo/python-list
Re: Some basic newbie questions...
On 28 Dec 2006 08:40:02 -0800, "jonathan.beckett" <[EMAIL PROTECTED]> wrote: >Hi all, > >Question 2... >What is the correct way of looping through a list object in a class via >a method of it? Without peeking at any of the other responses, here is what I came up with. I hope it helps... class Gun(object): def __init__(self, shells = 10): self.shells = shells class Battleship(object): def __init__(self, shipname = '', guns = []): self.shipname = shipname self.guns = guns def getShellsLeft(self): numShells = 0 for gun in self.guns: numShells += gun.shells return numShells if __name__ == '__main__': aShip = Battleship(shipname = "Bizmark", guns = [Gun(), Gun(6)]) print "%s has %d shells left." \ % (aShip.shipname, aShip.getShellsLeft()) Dan -- http://mail.python.org/mailman/listinfo/python-list
Re: Can I beat perl at grep-like processing speed?
you may not be able to beat perl's regex speed, but you can take some steps to speed up your python program using map and filter here's a modified python program that will do your search faster #!/usr/bin/env python import re r = re.compile(r'destroy', re.IGNORECASE) def stripit(x): return x.rstrip("\r\n") print "\n".join( map(stripit, filter(r.search, file('bigfile'))) ) #time comparison on my machine real0m0.218s user0m0.210s sys 0m0.010s real0m0.464s user0m0.450s sys 0m0.010s #original time comparison on my machine real0m0.224s user0m0.220s sys 0m0.010s real0m0.508s user0m0.510s sys 0m0.000s also, if you replace the regex with a test like lambda x: x.lower().find("destroy") != -1, you will get really close to the speed of perl's (its possible perl will even take this shortcut when getting such a simple regex #here's the times when doing the search this way real0m0.221s user0m0.210s sys 0m0.010s real0m0.277s user0m0.280s sys 0m0.000s -- Tim -- On 12/29/06 "js " <[EMAIL PROTECTED]> wrote: > Just my curiosity. > Can python beats perl at speed of grep-like processing? > > $ wget http://www.gutenberg.org/files/7999/7999-h.zip > $ unzip 7999-h.zip > $ cd 7999-h > $ cat *.htm > bigfile > $ du -h bigfile > du -h bigfile > 8.2M bigfile > > -- grep.pl -- > #!/usr/local/bin/perl > open(F, 'bigfile') or die; > > while() { > s/[\n\r]+$//; > print "$_\n" if m/destroy/oi; > } > -- END -- > -- grep.py -- > #!/usr/bin/env python > import re > r = re.compile(r'destroy', re.IGNORECASE) > > for s in file('bigfile'): > if r.search(s): print s.rstrip("\r\n") > -- END -- > > $ time perl grep.pl > pl.out; time python grep.py > py.out > real 0m0.168s > user 0m0.149s > sys 0m0.015s > > real 0m0.450s > user 0m0.374s > sys 0m0.068s > # I used python2.5 and perl 5.8.6 > -- > http://mail.python.org/mailman/listinfo/python-list -- http://mail.python.org/mailman/listinfo/python-list
Re: I want to see all the variables
What do you mean? Can you specify which special functions you don't see? I get: py> class X: pass py> dir(X) ['__doc__', '__module__'] py> class X: def __getitem__(self, x): pass py> dir(X) ['__doc__', '__getitem__', '__module__'] On Dec 29, 12:35 pm, johnf <[EMAIL PROTECTED]> wrote: > Hi, > When I use dir() I don't see the __ underscore items. Is there anything > that will show all the private vars and functions? > > johnf -- http://mail.python.org/mailman/listinfo/python-list
Re: Python Wrapper for C# Com Object
Hi, A question. Why in your C-version are your doing: X_com_ptr->SetID(10); and in the Python version: interface.SetID() ? I don't know anything of your COM object, but does SetID require a parameter? Duane [EMAIL PROTECTED] wrote: > [EMAIL PROTECTED] skrev: > > > [EMAIL PROTECTED] skrev: > > > > > Hi, > > > > > > I wish to write a Python wrapper for my C# COM object but am unsure > > > where to start. I have a dll and a tlb file, and I can use this object > > > in C via the following code - > > > > > > // ConsolApp.cpp : Defines the entry point for the console application. > > > // > > > #include "stdafx.h" > > > #include "windows.h" > > > #include "stdio.h" > > > #import "C:\Documents and Settings\X\Mina dokument\Visual Studio > > > 2005\Projects\X_COMObject\X_COMObject\bin\Debug\X_COMObject.tlb" > > > using namespace X_COMObject; > > > > > > int _tmain(int argc, _TCHAR* argv[]) > > > { > > > CoInitialize(NULL); > > > > > > X_COMObject::XCOM_InterfacePtr p(__uuidof(X_COMObject::XCOM_Class)); > > > XCOM_Interface *X_com_ptr ; > > > X_com_ptr = p ; > > > X_com_ptr->SetID(10); > > > int x = X_com_ptr->GetID(); > > > printf("%d",x); > > > getchar(); > > > > > > return 0; > > > } > > > > > > Can anyone offer me some tips as to how to do this in Python? > > > > > > Thanks very much for your help, > > > > > > Barry. > > > > This is what I've done so far, but I know I'm not doing this correctly. > > Can anyone help me out? > > > > #import pythoncom > > #pythoncom.CoInitialize() > > > > from comtypes.client import GetModule, CreateObject > > > > module = GetModule("C:\\Documents and Settings\\X\\Mina > > dokument\\Visual Studio > > 2005\\Projects\\X_COMObject\\X_COMObject\\bin\\Debug\\X_COMObject.tlb") > > > > dir(module) > > > > interface = module.XCOM_Interface() > > > > dir(interface) > > > > interface.SetID() > > > > #pythoncom.CoUnitialize() > > > > > > Traceback (most recent call last): > > File "C:/Python25/test.py", line 14, in > > interface.SetID() > > TypeError: Expected a COM this pointer as first argument > > Can anyone help me with this? > > Thanks, > > Barry. -- http://mail.python.org/mailman/listinfo/python-list
Re: how to serve image files without disk use?
On Fri, 2006-12-29 at 09:30 -0600, Chris Mellon wrote: > On 12/28/06, Ray Schumacher <[EMAIL PROTECTED]> wrote: > > s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) > > s.bind((HOST, PORT)) > > s.listen(1) > > conn, addr = s.accept() > > while 1: > > data = conn.recv(1024) > > if data[:3] == 'GET': > > conn.send("HTTP/1.0 200 OK"+"\015\012") > > conn.send("Server: RJS_video/0.0.1"+"\015\012") > > conn.send("Content-type: image/bmp"+"\015\012") > > conn.send("Content-Length: "+str(352*288*3+256)+"\015\012") > > conn.send("\015\012") > > fh = file('temp.jpg', 'rb') > > conn.send(fh.read()) > > fh.close() > > else: break > > > > But, how can I avoid disk writes? wx's *.SaveFile() needs a string > > file name (no objects). > > I'm going to investigate PIL's im.save(), as it appears to allow > > file-objects. > > > > wx.Image.GetData() returns the raw image data as a Python string. In addition to what Chris said, is there a reason why you're reinventing the wheel instead of using available components? BaseHTTPServer can take care of the nitty-gritty details of the socket communication for you. Here's an example that can easily be extended to suit your simple image serving need: ### import BaseHTTPServer class MyRequestHandler(BaseHTTPServer.BaseHTTPRequestHandler): def do_GET(self): self.wfile.write("HTTP/1.0 200 OK\r\n") self.wfile.write("Content-Type: text/plain\r\n") self.wfile.write("\r\n") self.wfile.write("This is a test.") s = BaseHTTPServer.HTTPServer(("",8080), MyRequestHandler) s.serve_forever() ### Hope this helps, Carsten. -- http://mail.python.org/mailman/listinfo/python-list
Re: Can I beat perl at grep-like processing speed?
In <[EMAIL PROTECTED]>, Tim Smith wrote: > also, if you replace the regex with a test like lambda x: > x.lower().find("destroy") != -1, you will get really close to the speed > of perl's Testing for ``'destroy' in x.lower()`` should even be a little bit faster. Ciao, Marc 'BlackJack' Rintsch -- http://mail.python.org/mailman/listinfo/python-list
Re: I want to see all the variables
On Fri, 29 Dec 2006 07:57:30 -0800, [EMAIL PROTECTED] wrote: > What do you mean? Can you specify which special functions you don't > see? > I get: > py> class X: > pass > py> dir(X) > ['__doc__', '__module__'] How about these? >>> X.__dict__ {'__module__': '__main__', '__doc__': None} >>> X.__name__ 'X' >>> X.__bases__ () Now that's interesting... if __name__ and __bases__ don't live in the class __dict__, where do they live? What other methods and attributes are invisibly in X? -- Steven. -- http://mail.python.org/mailman/listinfo/python-list
Re: I want to see all the variables
On Fri, 29 Dec 2006 08:20:22 -0600, Larry Bates wrote: > johnf wrote: >> Hi, >> When I use dir() I don't see the __ underscore items. Is there anything >> that will show all the private vars and functions? >> >> johnf > > The idea of the underscore items is that they aren't to be used by > you. Double leading+trailing underscore attributes are NOT private, they are *special* but public (e.g. __dict__, __class__, __str__, etc.). If you don't believe me, have a look at dir(int) and count the underscored attributes listed. Then try to find __dict__, __name__, __bases__, __base__ or __mro__ within the list. Why are they suppressed? But even if underscored attributes were private, the Python philosophy is that private attributes are private by convention only -- even name-mangled __private methods can be reached if you know how. > If you wish to access private variables and functions you will > almost certainly have to look at the source code to make sure of > what they are and how they can be utilized. Not so. >>> class Parrot(object): ... def _private(self): ... """Private method, returns a magic string.""" ... return "Don't touch!!!" ... >>> Parrot._private.__doc__ "Private method, returns a magic string." -- Steven. -- http://mail.python.org/mailman/listinfo/python-list
Re: I want to see all the variables
On Dec 29, 5:17 pm, Steven D'Aprano <[EMAIL PROTECTED]> wrote: > On Fri, 29 Dec 2006 07:57:30 -0800, [EMAIL PROTECTED] wrote: > > What do you mean? Can you specify which special functions you don't > > see? > > I get: > > py> class X: > >pass > > py> dir(X) > > ['__doc__', '__module__']How about these? > > >>> X.__dict__{'__module__': '__main__', '__doc__': None}>>> X.__name__ > 'X' > >>> X.__bases__() > > Now that's interesting... if __name__ and __bases__ don't live in the > class __dict__, where do they live? What other methods and attributes are > invisibly in X? > > -- > Steven. Well, then we have to lookup what dir() does -- http://docs.python.org/lib/built-in-funcs.html -- it tries to bring up the interesting attributes of an object, apparently __name__ and __bases__ are considered to be not so interesting -- http://mail.python.org/mailman/listinfo/python-list
Looking for python SIP/MGCP stacks
Hi Python users, I am using python to write a testing tools, currently this tool only supports skinny protocol. I am planning to add SIP and MGCP support as well, wondering if you have written these protocol stacks before which can be leveraged from. thanks Jenny -- http://mail.python.org/mailman/listinfo/python-list
Re: Anyone persuaded by "merits of Lisp vs Python"?
[x-post removed] In article <[EMAIL PROTECTED]>, Paddy <[EMAIL PROTECTED]> wrote: >Carl Banks wrote: >> >> If you were so keen on avoiding a flame war, the first thing you should >> have done is to not cross-post this. > >I want to cover Pythonistas looking at Lisp and Lispers looking at >Python because of the thread. The cross posting is not as flame bait. If a Lisper is looking at Python, zie will be reading c.l.py, no? -- Aahz ([EMAIL PROTECTED]) <*> http://www.pythoncraft.com/ "I support family values -- Addams family values" --www.nancybuttons.com -- http://mail.python.org/mailman/listinfo/python-list
Re: Minor problem with configure (2.4.4)
[EMAIL PROTECTED] wrote: > configure expands > AC_DEFINE(_POSIX_C_SOURCE, 200112L, Define to activate features from > IEEE Stds 1003.1-2001) > > to > > #define _POSIX_C_SOURCE 200112L > > that causes problems because _POSIX_C_SOURCE is defined by system > headers and I get hideous > warnings during compilation. > > I tried to fix it by adding AC_UNDEFINE(_POSIX_C_SOURCE); > before AC_DEFINE but autoconf 2.59 won't take it: > > configure.in:273: error: possibly undefined macro: AC_UNDEFINE > If this token and others are legitimate, please use > m4_pattern_allow. > See the Autoconf documentation. > > Ideas? It looks like AC_DEFINE is #define'd but AC_UNDEFINE isn't. Try: #undef _POSIX_C_SOURCE instead. -- http://mail.python.org/mailman/listinfo/python-list
Re: Anyone persuaded by "merits of Lisp vs Python"?
Paddy wrote: > Carl Banks wrote: > > If you were so keen on avoiding a flame war, the first thing you should > > have done is to not cross-post this. > > I want to cover Pythonistas looking at Lisp and Lispers looking at That's already covered in the orginal thread. Same two newsgroups, same crowd of people. What's the difference? Keep it in the original thread where uninterested people can continue to ignore it. > Python because of the thread. The cross posting is not as flame bait. You're re-starting the same thread under a new root article, thereby evading kill filters set up on the original thread. In halfway decent newsreaders, people can killfile by thread, whereby all articles associated with the same ancestral root article are removed. It's very bad practice to re-introduce continuations of long flamebait threads under different thread identities. -- http://mail.python.org/mailman/listinfo/python-list
Re: db access
king kikapu wrote: > On Dec 29, 12:12 am, johnf <[EMAIL PROTECTED]> wrote: > > king kikapu wrote: > > > Hi to all, > > > > > is there a way to use an RDBMS (in my case, SQL Server) from Python by > > > using some built-in module of the language (v. 2.5) and through ODBC ?? > > > I saw some samples that use statements like "import dbi" or "import > > > odbc" but neither modules (dbi, odbc) are present on my system... > > > > > Any hint(s) ?? > > Its not really related to your question, but if you also want to publish your database data to PDF, here's one way: http://mail.python.org/pipermail/python-list/2006-July/392099.html Vasudev ~~ Vasudev Ram Dancing Bison Enterprises Software training and consulting http://www.dancingbison.com http://www.dancingbison.com/products.html ~~ -- http://mail.python.org/mailman/listinfo/python-list
Re: A stupid question
[EMAIL PROTECTED] wrote: > Any other ideas? Well, you could always try downloading and installing python: http://www.python.org. It is completely free. It won't run anything in the task bar or add itself to the startup menu and it doesn't have ads... it just sits there waiting for you to use it. I would start with version 2.4, and if that doesn't work I would go to 2.3 then 2.5 then 2.2. Uninstall the last version before moving on to another. I do worry a little though because python dlls are named as Python.dll, so the dll in that error message could actually be from some third party. Anyway, there is no harm in installing Python. If it doesn't work it will uninstall cleanly. -Matt -- http://mail.python.org/mailman/listinfo/python-list
Re: Anyone persuaded by "merits of Lisp vs Python"?
Paddy wrote: > Carl Banks wrote: > > If you were so keen on avoiding a flame war, the first thing you should > > have done is to not cross-post this. > > I want to cover Pythonistas looking at Lisp and Lispers looking at > Python because of the thread. The cross posting is not as flame bait. Then post a separate message to each group. If you expect everyone on Usenet to obey your command to reply with only what you want them to reply with, you're a sad naive fool. Carl Banks -- http://mail.python.org/mailman/listinfo/python-list
Getting VideoCapture to work with Python 2.5
I can't seem to get VideoCapture (http://videocapture.sourceforge.net/) to work with my version of Python (2.5). Why is that? I've followed the instructions which made it look easy but, as it happens all too often, it simply doesn't work. The error I get is that the .py interface file can't find an expected module (using the "import" keyword) but that module exists as a DLL in the correct directory. Why doesn't it recognize it? Has anyone else used this library with Python 2.5 successfully? Any theories as to what might be going wrong? Thank you... -- http://mail.python.org/mailman/listinfo/python-list
bad marshal data in site.py in fresh 2.5 install win
Hi, I have installed python two days ago on a USB memory stick (I am on the move and have no laptop.) I am on windows computers, mostly XP, all the time. Now, after pluging it in to a different computer, I get the following message when I run pyhthon: 'import site' failed; use -v for traceback python -v gives: G:\Python25>python -v # installing zipimport hook import zipimport # builtin # installed zipimport hook # G:\Python25\lib\site.pyc matches G:\Python25\lib\site.py import site # precompiled from G:\Python25\lib\site.pyc # G:\Python25\lib\os.pyc matches G:\Python25\lib\os.py import os # precompiled from G:\Python25\lib\os.pyc import nt # builtin # G:\Python25\lib\ntpath.pyc matches G:\Python25\lib\ntpath.py import ntpath # precompiled from G:\Python25\lib\ntpath.pyc # G:\Python25\lib\stat.pyc matches G:\Python25\lib\stat.py import stat # precompiled from G:\Python25\lib\stat.pyc # G:\Python25\lib\UserDict.pyc matches G:\Python25\lib\UserDict.py import UserDict # precompiled from G:\Python25\lib\UserDict.pyc # G:\Python25\lib\copy_reg.pyc matches G:\Python25\lib\copy_reg.py import copy_reg # precompiled from G:\Python25\lib\copy_reg.pyc # G:\Python25\lib\types.pyc matches G:\Python25\lib\types.py import types # precompiled from G:\Python25\lib\types.pyc import _types # builtin # zipimport: found 74 names in G:\Python25\lib\site-packages\setuptools-0.6c3-py 2.5.egg # G:\Python25\lib\locale.pyc matches G:\Python25\lib\locale.py import locale # precompiled from G:\Python25\lib\locale.pyc import encodings # directory G:\Python25\lib\encodings # G:\Python25\lib\encodings\__init__.pyc matches G:\Python25\lib\encodings\__ini t__.py import encodings # precompiled from G:\Python25\lib\encodings\__init__.pyc # G:\Python25\lib\codecs.pyc matches G:\Python25\lib\codecs.py import codecs # precompiled from G:\Python25\lib\codecs.pyc import _codecs # builtin # G:\Python25\lib\encodings\aliases.pyc matches G:\Python25\lib\encodings\aliase s.py 'import site' failed; traceback: Traceback (most recent call last): File "G:\Python25\lib\site.py", line 415, in main() File "G:\Python25\lib\site.py", line 406, in main aliasmbcs() File "G:\Python25\lib\site.py", line 356, in aliasmbcs import locale, codecs File "G:\Python25\lib\locale.py", line 14, in import sys, encodings, encodings.aliases File "F:\Python25\lib\encodings\__init__.py", line 32, in ValueError: bad marshal data # G:\Python25\lib\warnings.pyc matches G:\Python25\lib\warnings.py import warnings # precompiled from G:\Python25\lib\warnings.pyc # G:\Python25\lib\linecache.pyc matches G:\Python25\lib\linecache.py import linecache # precompiled from G:\Python25\lib\linecache.pyc Python 2.5 (r25:51908, Sep 19 2006, 09:52:17) [MSC v.1310 32 bit (Intel)] on win 32 Type "help", "copyright", "credits" or "license" for more information. >>> - What can I do about this? Thanks, TiNo -- http://mail.python.org/mailman/listinfo/python-list
Re: Getting VideoCapture to work with Python 2.5
On Fri, 2006-12-29 at 19:15 +, Just Another Victim of the Ambient Morality wrote: > I can't seem to get VideoCapture (http://videocapture.sourceforge.net/) > to work with my version of Python (2.5). Why is that? I've followed the > instructions which made it look easy but, as it happens all too often, it > simply doesn't work. The error I get is that the .py interface file can't > find an expected module (using the "import" keyword) but that module exists > as a DLL in the correct directory. Why doesn't it recognize it? > Has anyone else used this library with Python 2.5 successfully? Any > theories as to what might be going wrong? Thank you... DLL extension modules have to be compiled specifically for each major Python version. The website makes no indication that the module is supposed to work on Python 2.5, and the zip file contains folders for Python 2.0 through 2.4, but 2.5 is conspicuously missing. You could downgrade to Python 2.4 or ask the author to make a version for Python 2.5 available. -Carsten -- http://mail.python.org/mailman/listinfo/python-list
Help on installing Easy_Install
Hi, I'm having problems installing easy_install. When I run python ez_setup.py I get: G:\python>python ez_setup.py 'import site' failed; use -v for traceback Downloading http://cheeseshop.python.org/packages/2.5/s/setuptools/setuptools-0. 6c3-py2.5.egg Processing setuptools-0.6c3-py2.5.egg Copying setuptools-0.6c3-py2.5.egg to g:\python25\lib\site-packages Adding setuptools 0.6c3 to easy-install.pth file Traceback (most recent call last): File "ez_setup.py", line 217, in main(sys.argv[1:]) File "ez_setup.py", line 152, in main return main(list(argv)+[egg]) # we're done here File "G:\python\setuptools-0.6c3-py2.5.egg\setuptools\command\easy_install.py" , line 1588, in main File "G:\python\setuptools-0.6c3-py2.5.egg\setuptools\command\easy_install.py" , line 1577, in with_ei_usage File "G:\python\setuptools-0.6c3-py2.5.egg\setuptools\command\easy_install.py" , line 1592, in File "F:\Python25\lib\distutils\core.py", line 151, in setup File "F:\Python25\lib\distutils\dist.py", line 974, in run_commands File "F:\Python25\lib\distutils\dist.py", line 994, in run_command File "G:\python\setuptools-0.6c3-py2.5.egg\setuptools\command\easy_install.py" , line 211, in run File "G:\python\setuptools-0.6c3-py2.5.egg\setuptools\command\easy_install.py" , line 427, in easy_install File "G:\python\setuptools-0.6c3-py2.5.egg\setuptools\command\easy_install.py" , line 473, in install_item File "G:\python\setuptools-0.6c3-py2.5.egg\setuptools\command\easy_install.py" , line 497, in process_distribution File "G:\python\setuptools-0.6c3-py2.5.egg\setuptools\command\easy_install.py" , line 373, in install_egg_scripts File "G:\python\setuptools-0.6c3-py2.5.egg\setuptools\command\easy_install.py" , line 569, in install_wrapper_scripts File "G:\python\setuptools-0.6c3-py2.5.egg\setuptools\command\easy_install.py" , line 1480, in get_script_args File "G:\python\setuptools-0.6c3-py2.5.egg\setuptools\command\easy_install.py" , line 1412, in get_script_header LookupError: no codec search functions registered: can't find encoding ?? What to do? thanks, TiNo -- http://mail.python.org/mailman/listinfo/python-list
Re: Starting a child process and getting its stdout?
cypher543 wrote: > Thank you for the examples, but I have tried all of that before. Did you try my example specifically? > No matter what I do, my program always hangs while it waits for the > process to exit and then it prints all of the output at once. > > self.buildPID = subprocess.Popen(["python", "tobeforked.py"], ... By default, python will execute in buffered mode if it's attached to a pipe. Start it with the '-u' command line option and you may be good to go. (`python -h` for more info on this, man pages may also discuss it.) -tom! -- -- http://mail.python.org/mailman/listinfo/python-list
Re: Simplest way to do Python/Ajax with server and client on same machine?
Adonis Vargas <[EMAIL PROTECTED]> writes: > Kenneth McDonald wrote: > > I'm doing some work with a Python program that works hand-in-hand > > with the DOM on a local client (processing DOM events, issuing DOM > > modification commands, etc.) I'm currently using cherrypy as the > > Python server for this communication, and simple AJAX on the client > > browser end. This works just fine, I'm simply wondering if there is > > a better (even easier) way to do this, if there are libraries I'm > > not aware of that I should be, etc. > > Thanks, > > Ken > > You can try looking into PyJamas its a Python version of Google Web > Toolkit, offers a way to create AJAX apps using Python code. Have a look at TurboGears too. Both are still pretty new. Pyjamas is very new, so I'd certainly think twice about using it for production work right now. John -- http://mail.python.org/mailman/listinfo/python-list
Re: I want to see all the variables
Steven D'Aprano wrote: > On Fri, 29 Dec 2006 08:20:22 -0600, Larry Bates wrote: > >> johnf wrote: >>> Hi, >>> When I use dir() I don't see the __ underscore items. Is there anything >>> that will show all the private vars and functions? >>> >>> johnf >> >> The idea of the underscore items is that they aren't to be used by >> you. > > Double leading+trailing underscore attributes are NOT private, they are > *special* but public (e.g. __dict__, __class__, __str__, etc.). If you > don't believe me, have a look at dir(int) and count the underscored > attributes listed. Then try to find __dict__, __name__, __bases__, > __base__ or __mro__ within the list. Why are they suppressed? > > But even if underscored attributes were private, the Python philosophy is > that private attributes are private by convention only -- even > name-mangled __private methods can be reached if you know how. > > >> If you wish to access private variables and functions you will >> almost certainly have to look at the source code to make sure of >> what they are and how they can be utilized. > > Not so. > class Parrot(object): > ... def _private(self): > ... """Private method, returns a magic string.""" > ... return "Don't touch!!!" > ... Parrot._private.__doc__ > "Private method, returns a magic string." > > > Ok then how do debug when I have something like "__source" and I need to know what is available for the object? John -- http://mail.python.org/mailman/listinfo/python-list
Re: probably a stupid question: MatLab equivalent of "diff" ?
On 12/29/06, Stef Mientki <[EMAIL PROTECTED]> wrote: Does anyone know the equivalent of the MatLab "diff" function. The "diff" functions calculates the difference between 2 succeeding elements of an array. I need to detect (fast) the falling edge of a binary signal. There's derivate function in Python diff, but when you use an binary (true/false) input, it also detects rising edges. Probably a stupid question, but I still have troubles, digging to huge amount of information about Python. thanks, Stef Mientki -- http://mail.python.org/mailman/listinfo/python-list Stef, Can you provide more context on your use-- are you receiving binary data sequentially, or do you have a list or array of binary values? Are you using numpy/scipy? Marcus -- http://mail.python.org/mailman/listinfo/python-list
Re: Python-list Digest, Vol 39, Issue 465
At 10:50 AM 12/29/2006, you wrote: In addition to what Chris said, is there a reason why you're reinventing the wheel instead of using available components? Hi Carsten, The eventual goal here is towards a streaming two-way server, which wouldn't use the http, but something more like RTP/RTCP/H.323/ which I'm learning. It's also a general socket learning exercise for me, as I haven't used them very much. I was also using PyDShowCam before, and have switched to VideoCapture since I'll need to recompile PyDShowCam for py2.4. I will look into the wx Chris suggested this weekend; more stuff I haven't used... Thanks, Ray For anyone interested, I attached a quick wx I made last night that monitors a USB webcam, will create "dark" frames (a la astronomy), and serve up images to web browsers (thus the question). The browser/monitor would actually work nicely with a web page that has a _javascript_ function to reload the image x times/second. I'll try replacing the PIL with the wx function(s) and benchmark if they work. #Boa:Frame:Frame1 import gc from time import clock from numpy import fromstring, add, subtract, divide, where, zeros import socket import wx #import PyDShowCam import VideoCapture from StringIO import StringIO from PIL import Image def create(parent): return Frame1(parent) [wxID_FRAME1, wxID_FRAME1BUTTONCONNECT, wxID_FRAME1BUTTONPROPERTIES, wxID_FRAME1BUTTONSERVER, wxID_FRAME1BUTTONSETDARK, wxID_FRAME1BUTTONSTOP, wxID_FRAME1CHECKBOXDIFF, wxID_FRAME1PANEL1, wxID_FRAME1STATICBITMAPVIDEO, wxID_FRAME1STATUSBAR1, wxID_FRAME1TEXTCTRLADDRESS, wxID_FRAME1TOOLBAR1, wxID_FRAME1WINDOWVIDEO, ] = [wx.NewId() for _init_ctrls in range(13)] class Frame1(wx.Frame): def _init_coll_toolBar1_Tools(self, parent): # generated method, don't edit parent.AddControl(control=self.textCtrlAddress) parent.AddControl(control=self.buttonConnect) parent.AddControl(control=self.buttonStop) parent.AddControl(control=self.buttonProperties) parent.AddControl(control=self.checkBoxDiff) parent.AddControl(control=self.buttonSetDark) parent.AddControl(control=self.buttonServer) parent.Realize() def _init_coll_statusBar1_Fields(self, parent): # generated method, don't edit parent.SetFieldsCount(3) parent.SetStatusText(number=0, text='"frame:0,\t0fps"') parent.SetStatusText(number=1, text='') parent.SetStatusText(number=2, text='') parent.SetStatusWidths([200, -1, 100]) def _init_ctrls(self, prnt): # generated method, don't edit wx.Frame.__init__(self, id=wxID_FRAME1, name='', parent=prnt, pos=wx.Point(278, 392), size=wx.Size(746, 377), style=wx.DEFAULT_FRAME_STYLE, title='Confer') self.SetClientSize(wx.Size(738, 350)) self.statusBar1 = wx.StatusBar(id=wxID_FRAME1STATUSBAR1, name='statusBar1', parent=self, style=0) self._init_coll_statusBar1_Fields(self.statusBar1) self.SetStatusBar(self.statusBar1) self.toolBar1 = wx.ToolBar(id=wxID_FRAME1TOOLBAR1, name='toolBar1', parent=self, pos=wx.Point(0, 0), size=wx.Size(767, 27), style=wx.TB_HORIZONTAL) self.SetToolBar(self.toolBar1) self.panel1 = wx.Panel(id=wxID_FRAME1PANEL1, name='panel1', parent=self, pos=wx.Point(0, 27), size=wx.Size(738, 303), style=wx.TAB_TRAVERSAL) self.panel1.SetBackgroundColour(wx.Colour(255, 255, 255)) self.windowVideo = wx.Window(id=wxID_FRAME1WINDOWVIDEO, name='windowVideo', parent=self.panel1, pos=wx.Point(8, 8), size=wx.Size(352, 288), style=0) self.windowVideo.SetBackgroundColour(wx.Colour(0, 0, 0)) self.textCtrlAddress = wx.TextCtrl(id=wxID_FRAME1TEXTCTRLADDRESS, name='textCtrlAddress', parent=self.toolBar1, pos=wx.Point(0, 0), size=wx.Size(100, 21), style=0, value='192.168.0.1') self.textCtrlAddress.SetToolTipString('Enter the remote address here') self.buttonConnect = wx.Button(id=wxID_FRAME1BUTTONCONNECT, label='Connect', name='buttonConnect', parent=self.toolBar1, pos=wx.Point(100, 1), size=wx.Size(60, 19), style=0) self.buttonConnect.Bind(wx.EVT_BUTTON, self.OnButtonConnectButton, id=wxID_FRAME1BUTTONCONNECT) self.buttonStop = wx.Button(id=wxID_FRAME1BUTTONSTOP, label='Stop', name='buttonStop', parent=self.toolBar1, pos=wx.Point(160, 1), size=wx.Size(49, 19), style=0) self.buttonStop.Bind(wx.EVT_BUTTON, self.OnButtonStopButton, id=wxID_FRAME1BUTTONSTOP) self.buttonProperties = wx.Button(id=wxID_FRAME1BUTTONPROPERTIES, label='Cam Properties', name='buttonProperties', parent=self.toolBar1, pos=wx.Point(209, 1), size=wx.Size(88, 19), style=0) self.buttonProperties.Bin
Re: Python-list Digest, Vol 39, Issue 465
On 12/29/06, Ray Schumacher <[EMAIL PROTECTED]> wrote: > > At 10:50 AM 12/29/2006, you wrote: > > In addition to what Chris said, is there a reason why you're reinventing > the wheel instead of using available components? > Hi Carsten, > The eventual goal here is towards a streaming two-way server, which > wouldn't use the http, but something more like RTP/RTCP/H.323/ which I'm > learning. It's also a general socket learning exercise for me, as I haven't > used them very much. > I was also using PyDShowCam before, and have switched to VideoCapture since > I'll need to recompile PyDShowCam for py2.4. > I will look into the wx Chris suggested this weekend; more stuff I haven't > used... > > Thanks, > Ray > > For anyone interested, I attached a quick wx I made last night that > monitors a USB webcam, will create "dark" frames (a la astronomy), and serve > up images to web browsers (thus the question). The browser/monitor would > actually work nicely with a web page that has a JavaScript function to > reload the image x times/second. I'll try replacing the PIL with the wx > function(s) and benchmark if they work. > I just double-checked my documentation and wx.Image.GetData() is not what you want - that's the RGB pixel data, and you want the encoded stream. Using pil to save directly to the output buffer is probably the most efficient mechanism - it doesn't look like wxPython provides SaveStream (or SaveBuffer). Those probably could be implemented (the C++ wxImage object supports saving to streams, and SWIG can make a python FLO look like a stream), you might want to post a feature request. -- http://mail.python.org/mailman/listinfo/python-list
No way to set a timeout in "urllib".
There's no way to set a timeout if you use "urllib" to open a URL. "HTTP", which "urllib" uses, supports this, but the functionality is lost at the "urllib" level. It's not available via "class URLopener" or "FancyURLopener", either. There is a non-thread-safe workaround from 2003 at http://mail.python.org/pipermail/python-bugs-list/2003-September/020405.html but it was rejected as a feature at https://sourceforge.net/tracker/?func=detail&atid=105470&aid=803634&group_id=5470 without anything better going in. Despite this, current documentation recommends that approach: http://svn.python.org/projects/python/trunk/Doc/howto/urllib2.rst Someone proposed to fix this http://mail.python.org/pipermail/python-dev/2006-July/066967.html but was discouraged from doing so. The code was forked by Zope as a workaround in 2003: http://pywebsvcs.sourceforge.net/apidocs/wstools/Utility.html but that's not in the mainstream Python tree. The correct fix would probably be to add methods to class URLopener to control this; that's the usual way of handling special URL opening situations. John Nagle -- http://mail.python.org/mailman/listinfo/python-list
Wow, Python much faster than MatLab
hi All, instead of questions, my first success story: I converted my first MatLab algorithm into Python (using SciPy), and it not only works perfectly, but also runs much faster: MatLab: 14 msec Python: 2 msec After taking the first difficult steps into Python, all kind of small problems as you already know, it nows seems a piece of cake to convert from MatLab to Python. (the final programs of MatLab and Python can almost only be distinguished by the comment character ;-) Especially I like: - more relaxed behavior of exceeded the upper limit of a (1-dimensional) array - much more functions available, like a simple "mean" - reducing datatype if it's allowed (booleans of 1 byte) thanks for all your help, probably need some more in the future, cheers, Stef Mientki -- http://mail.python.org/mailman/listinfo/python-list
Easiest way to print from XP/DOS.
This is the situation I'm in. I've built a single file utility using py2exe. I zip the dist directory and send it to the client. For clients that use win95, win98 machines, They unpack the zip file and run the exe. The utility creates a text file that is sent to the printer with the statement below. os.system('type ' +FileName+ ' >prn'), and the file prints. But, from an xp machine if I try to print using the same statement, I get a question on the dos screen which reads something like this; Which program authorized this operation? Since I don't have an xp machine, the statement above may not be exact, but you get the idea. The question I have is, first is there any way to work around the question asked by the xp machine using python. If not, I may have to register the package in xp, if registering the utility the only way, which package is the simplest to use. Also, if the utility is registered in xp, will the same statement send the file to the printer as it does in win98. jim-on-linux -- http://mail.python.org/mailman/listinfo/python-list
Re: I want to see all the variables
On Fri, 29 Dec 2006 12:04:11 -0800, johnf wrote: > Ok then how do debug when I have something like "__source" and I need to > know what is available for the object? Outside of a class, objects with two leading underscores are just ordinary objects with no special behaviour: >>> __source = 2 >>> __source 2 Objects with a single leading underscore like _source are slightly special: if you do "from module import *" any names with a single leading underscore are not imported. Class attributes with two leading underscores like __source are considered private to the class, so in general you shouldn't need to know anything about them. To enforce that, Python mangles the name so it is harder to reach. But if/when you do need to get to them, they are easy to get to: >>> class Spam: ... __attribute = 2 ... >>> Spam().__attribute Traceback (most recent call last): File "", line 1, in ? AttributeError: Spam instance has no attribute '__attribute' >>> Spam()._Spam__attribute 2 Notice that Python doesn't generally try to hide "private" attributes: >>> dir(Spam) ['_Spam__attribute', '__doc__', '__module__'] There are three other underscore conventions in use: (1) Objects with a single leading underscore like _attribute are private by convention, but Python doesn't enforce it. Starting an object with a single underscore is like writing "# Private! Don't touch!" after it. (2) By convention, if you want to create a name that is the same as a built-in object without shadowing (hiding) the built-in, put a single trailing underscore after it like "file_". That's just a style convention though, you are free to call it FiLE ,or anything else, if you prefer. (3) Last but not least, class attributes with two leading and trailing underscores are considered special but public, like __init__ and __repr__. It is probably a bad idea to invent your own. -- Steven. -- http://mail.python.org/mailman/listinfo/python-list
Re: Easiest way to print from XP/DOS.
jim-on-linux wrote: > > This is the situation I'm in. > > I've built a single file utility using py2exe. I > zip the dist directory and send it to the client. > > For clients that use win95, win98 machines, > They unpack the zip file and run the exe. > > The utility creates a text file that is sent to > the printer with the statement below. >os.system('type ' +FileName+ ' >prn'), > and the file prints. > > But, from an xp machine if I try to print using > the same statement, I get a question on the dos > screen which reads something like this; > Which program authorized this operation? > > Since I don't have an xp machine, the statement > above may not be exact, but you get the idea. > > The question I have is, first is there any way to > work around the question asked by the xp machine > using python. > > If not, I may have to register the package in xp, > if registering the utility the only way, which > package is the simplest to use. > Also, if the utility is registered in xp, will the > same statement send the file to the printer as it > does in win98. > > jim-on-linux > I don't get any such message on my XP Pro Service Pack 2 system here using your method. -Larry -- http://mail.python.org/mailman/listinfo/python-list
PEP 3107 Function Annotations for review and comment
(Note: PEPs in the 3xxx number range are intended for Python 3000) PEP: 3107 Title: Function Annotations Version: $Revision: 53169 $ Last-Modified: $Date: 2006-12-27 20:59:16 -0800 (Wed, 27 Dec 2006) $ Author: Collin Winter <[EMAIL PROTECTED]>, Tony Lownds <[EMAIL PROTECTED]> Status: Draft Type: Standards Track Requires: 362 Content-Type: text/x-rst Created: 2-Dec-2006 Python-Version: 3.0 Post-History: Abstract This PEP introduces a syntax for adding arbitrary metadata annotations to Python functions [#functerm]_. Rationale = Because Python's 2.x series lacks a standard way of annotating a function's parameters and return values (e.g., with information about what type a function's return value should be), a variety of tools and libraries have appeared to fill this gap [#tailexamp]_. Some utilise the decorators introduced in "PEP 318", while others parse a function's docstring, looking for annotations there. This PEP aims to provide a single, standard way of specifying this information, reducing the confusion caused by the wide variation in mechanism and syntax that has existed until this point. Fundamentals of Function Annotations Before launching into a discussion of the precise ins and outs of Python 3.0's function annotations, let's first talk broadly about what annotations are and are not: 1. Function annotations, both for parameters and return values, are completely optional. 2. Function annotations are nothing more than a way of associating arbitrary Python expressions with various parts of a function at compile-time. By itself, Python does not attach any particular meaning or significance to annotations. Left to its own, Python simply makes these expressions available as described in `Accessing Function Annotations`_ below. The only way that annotations take on meaning is when they are interpreted by third-party libraries. These annotation consumers can do anything they want with a function's annotations. For example, one library might use string-based annotations to provide improved help messages, like so:: def compile(source: "something compilable", filename: "where the compilable thing comes from", mode: "is this a single statement or a suite?"): ... Another library might be used to provide typechecking for Python functions and methods. This library could use annotations to indicate the function's expected input and return types, possibly something like:: def haul(item: Haulable, *vargs: PackAnimal) -> Distance: ... However, neither the strings in the first example nor the type information in the second example have any meaning on their own; meaning comes from third-party libraries alone. 3. Following from point 2, this PEP makes no attempt to introduce any kind of standard semantics, even for the built-in types. This work will be left to third-party libraries. There is no worry that these libraries will assign semantics at random, or that a variety of libraries will appear, each with varying semantics and interpretations of what, say, a tuple of strings means. The difficulty inherent in writing annotation interpreting libraries will keep their number low and their authorship in the hands of people who, frankly, know what they're doing. Syntax == Parameters -- Annotations for parameters take the form of optional expressions that follow the parameter name. This example indicates that parameters 'a' and 'c' should both be an ``int``, while parameter 'b' should be a ``dict``:: def foo(a: int, b: dict, c: int = 5): ... In pseudo-grammar, parameters now look like ``identifier [: expression] [= expression]``. That is, annotations always precede a parameter's default value and both annotations and default values are optional. Just like how equal signs are used to indicate a default value, colons are used to mark annotations. All annotation expressions are evaluated when the function definition is executed. Annotations for excess parameters (i.e., ``*args`` and ``**kwargs``) are indicated similarly. In the following function definition, ``*args`` is flagged as a tuple of ``int``, and ``**kwargs`` is marked as a dict whose keys are strings and whose values are of type ``str``:: def foo(*args: int, **kwargs: str): ... Note that, depending on what annotation-interpreting library you're using, the following might also be a valid spelling of the above:: def foo(*args: [int], **kwargs: {str: str}): ... Only the first, however, has the BDFL's blessing [#blessedexcess]_ as the One Obvious Way. Return Values - The examples thus far have omitted examples of how to annotate the type of a function's return value. This is done like so:: def sum(
mmmmmmmmmmm
-- http://mail.python.org/mailman/listinfo/python-list
Re: Easiest way to print from XP/DOS.
Did you run from a file or type in from keyboard? When the client runs the utility program the output file is built but nothing prints and no messages appear. When I typed from keyboard on an xp pro at c:\, I got the message. Is it possible that virus detector or some self.defense software is interacting? On Friday 29 December 2006 17:58, Larry Bates wrote: > jim-on-linux wrote: > > This is the situation I'm in. > > > > I've built a single file utility using > > py2exe. I zip the dist directory and send it > > to the client. > > > > For clients that use win95, win98 machines, > > They unpack the zip file and run the exe. > > > > The utility creates a text file that is sent > > to the printer with the statement below. > > os.system('type ' +FileName+ ' >prn'), and > > the file prints. > > > > But, from an xp machine if I try to print > > using the same statement, I get a question > > on the dos screen which reads something like > > this; Which program authorized this > > operation? > > > > Since I don't have an xp machine, the > > statement above may not be exact, but you get > > the idea. > > > > The question I have is, first is there any > > way to work around the question asked by the > > xp machine using python. > > > > If not, I may have to register the package in > > xp, if registering the utility the only way, > > which package is the simplest to use. > > Also, if the utility is registered in xp, > > will the same statement send the file to the > > printer as it does in win98. > > > > jim-on-linux > > I don't get any such message on my XP Pro > Service Pack 2 system here using your method. > > -Larry -- http://mail.python.org/mailman/listinfo/python-list
Re: PEP 3107 Function Annotations for review and comment
On 12/29/06, Tony Lownds <[EMAIL PROTECTED]> wrote: > Rationale > = > > Because Python's 2.x series lacks a standard way of annotating a > function's parameters and return values (e.g., with information about > what type a function's return value should be), a variety of tools > and libraries have appeared to fill this gap [#tailexamp]_. Some > utilise the decorators introduced in "PEP 318", while others parse a > function's docstring, looking for annotations there. > > This PEP aims to provide a single, standard way of specifying this > information, reducing the confusion caused by the wide variation in > mechanism and syntax that has existed until this point. I think this rationale is very lacking and to weak for such a big change to Python. I definitely like to see it expanded. The reference links to two small libraries implementing type checking using decorators and doc strings. None of which to seem to be very popular in the Python community. Surely, those two libraries *alone* can't be enough of a motivation for this? To me, it is far from self-evident what purpose function annotations would serve. I also wonder why a very obtrusive syntax addition is needed when it clearly is possible to annotate functions in today's Python. Why is syntax better than just adding a function annotation decorator to the standard library? @annotate(a = int, b = dict, c = int) def foo(a, b, c = 5): ... Are decorators to ugly? -- mvh Björn -- http://mail.python.org/mailman/listinfo/python-list
Re: Why does Python never add itself to the Windows path?
Ben Sizer schrieb: > I've installed several different versions of Python across several > different versions of MS Windows, and not a single time was the Python > directory or the Scripts subdirectory added to the PATH environment > variable. Every time, I've had to go through and add this by hand, to > have something resembling a usable Python installation. No such > problems on Linux, whether it be Mandrake/Mandriva, Fedora Core, or > Kubuntu. So why is the Windows install half-crippled by default? For several reasons: 1. Python can be used just fine without being on PATH. Python scripts run fine both when double-clicked and when invoked in the command line, and if you want to use an interactive interpreter, you can find it readily on the Start menu. 2. Many windows users (including myself) dislike setup routines that manipulate PATH. I believe that the PATH environment variable is "owned" by the user; if Python is to be found in PATH, it should rather be installed to a directory that is known to live on PATH (or where CreateProcess searches, anyway, such as system32). So if the installer had such a feature, it should be optional, and it should default to "off". 3. Most importantly: it is difficult to implement, and nobody has contributed code to make it work. Regards, Martin -- http://mail.python.org/mailman/listinfo/python-list
Re: per interpreter storage for C extensions
Robin Becker schrieb: > Is there a simple/cheap way for C code to cache these sorts of module > level globals on a per interpreter basis? Is there even a way to tell > which interpreter I'm being called in? There is no cheap way to add to the interpreter state. As Chris Mellon explains, you can use PyThreadState_Get()->interp to find the interpreter state. I recommend to do the caching only in the single-interpreter case (i.e. for the first interpreter). Notice that comparing interpreter states by identity is somewhat dangerous: the interpreter may have been deleted with you still holding a pointer to it, and a new interpreter may get allocated at the same address, making you believe it is the same interpreter. Regards, Martin -- http://mail.python.org/mailman/listinfo/python-list
Re: xml bug?
Imbaud Pierre schrieb: > - how do I spot the version of a given library? There is a __version__ > attribute of the module, is that it? Contrary to what others have said: for modules included in the standard library (and if using these modules, rather than using PyXML), you should use sys.version_info to identify a version. > - How do I access to a given library buglist? Maybe this one is known, > about to be fixed, it would then be useless to report it. Others have already pointed you to SF. > - How do I report bugs, on a standard lib? Likewise. > - I tried to copy the lib somewhere, put it BEFORE the official lib in > "the path" (that is:sys.path), the stack shown by the traceback > still shows the original files being used. Is there a special > mechanism bypassing the sys.path search, for standard libs? (I may > be wrong on this, it seems hard to believe...) Which lib? "minidom.py"? Well, you are likely importing "xml.dom.minidom", not "minidom". So adding another minidom.py to a directory in sys.path won't help. Regards, Martin -- http://mail.python.org/mailman/listinfo/python-list
Re: xml bug?
Imbaud Pierre schrieb: > But python.org was the right entry point, it sent me to the bug > tracker: http://sourceforge.net/tracker/?group_id=5470&atid=105470 > Its a bit short on explanations... And I found unsolved issues, > 3 years old! That's true, and likely to grow. Contributions are welcome! Regards, Martin -- http://mail.python.org/mailman/listinfo/python-list
Re: Minor problem with configure (2.4.4)
[EMAIL PROTECTED] schrieb: > configure.in:273: error: possibly undefined macro: AC_UNDEFINE > If this token and others are legitimate, please use > m4_pattern_allow. > See the Autoconf documentation. > > Ideas? RTFM (autoconf documentation, in this case). There is no AC_UNDEFINE. Regards, Martin -- http://mail.python.org/mailman/listinfo/python-list
Re: bad marshal data in site.py in fresh 2.5 install win
TiNo schrieb: > # G:\Python25\lib\encodings\aliases.pyc matches [...] > File "F:\Python25\lib\encodings\__init__.py", line 32, in > > What can I do about this? Where does F:\Python25 come from? If you have set any PYTHON* environment variables (e.g. PYTHONPATH), unset them. Regards, Martin -- http://mail.python.org/mailman/listinfo/python-list
Re: PEP 3107 Function Annotations for review and comment
On Dec 29, 2006, at 4:09 PM, BJörn Lindqvist wrote: I think this rationale is very lacking and to weak for such a big change to Python. I definitely like to see it expanded. The reference links to two small libraries implementing type checking using decorators and doc strings. None of which to seem to be very popular in the Python community. Surely, those two libraries *alone* can't be enough of a motivation for this? To me, it is far from self-evident what purpose function annotations would serve. I also wonder why a very obtrusive syntax addition is needed when it clearly is possible to annotate functions in today's Python. Why is syntax better than just adding a function annotation decorator to the standard library? @annotate(a = int, b = dict, c = int) def foo(a, b, c = 5): ... Are decorators to ugly? The syntax does look better than a decorator. The syntax also provides a notation for documentation to follow. Even a standard decorator won't help with that. I am surprised you think the syntax is more obstrusive than the decorator. -Tony -- http://mail.python.org/mailman/listinfo/python-list
Re: Question about the "new" module
[EMAIL PROTECTED] wrote: > Gabriele> I'm using Python 2.5 to develop a simple MVC framework based > Gabriele> on mod_python. To load my controllers, I create new modules > Gabriele> using the "new" module like this: > > Gabriele> # > Gabriele> my_module = new.module("random_name") > Gabriele> my_module.__file__ = module_path > Gabriele> exec open(module_path, "r") in my_module.__dict__ > > Gabriele> then I initialize the class defined inside the module and call > Gabriele> a method of this class based on the HTTP request. > > Why use the new module? Why not call __import__() or execfile()? Details > on their use are here: > > http://docs.python.org/dev/lib/built-in-funcs.html Or why not use mod_python.apache.import_module() from mod_python itself. It is designed as a way of users importing specific modules, including the capability for modules to be reloaded if they have been changed. See: http://www.dscpl.com.au/wiki/ModPython/Articles/BasicsOfModuleImporting as well as the mod_python documentation. Is recommended though to use mod_python 3.3 as soon as you can though if you want the module reloading to always work. You can find descriptions of problems with the module reloading in older versions of mod_python at: http://www.dscpl.com.au/wiki/ModPython/Articles/ModuleImportingIsBroken Note that module importer in mod_python 3.3 has been enhanced some what over prior versions in addition to fixing problems. An important new feature is being able to load modules based on their path with modules with same names in different directories being properly distinguished, something which is quite useful where modules are used in web applications to represent pages. You may want to look at documentation for it at: http://www.modpython.org/live/mod_python-3.3.0b/doc-html/pyapi-apmeth.html Graham -- http://mail.python.org/mailman/listinfo/python-list
Managing a queue of subprocesses?
My app uses a "queue" of commands which are run one at a time. I am using the subprocess module to execute the commands in the queue. However, processes always run at the same time. How can I make one process run at a time, and then execute the next process when the first has terminated? My code is below: self.cmdQueue = {} self.queue(theProject.directory, "ls", "-l") self.queue(theProject.directory, "echo", "hello, world!") def consoleLogAddLine(self, text): self.consoleLogBuffer.insert(self.consoleLogBuffer.get_end_iter(), text) self.consoleLog.scroll_to_mark(self.consoleLogBuffer.get_insert(), 0) def onGetData(self, fd, cond, *args): self.consoleLogAddLine(fd.readline()) return True def queue(self, rootDir, cmd, args = ""): count = len(self.cmdQueue) + 1 self.cmdQueue[count] = [cmd, args, rootDir] def runQueue(self): for i in self.cmdQueue.values(): self.execute(i[2], i[0], i[1]) def execute(self, rootDir, cmd, args = ""): os.chdir(rootDir) if args == "": buildCmd = cmd else: args = args.split(" ") buildCmd = [cmd] + args self.buildPID = subprocess.Popen(buildCmd, stdout = subprocess.PIPE, stderr = subprocess.STDOUT) gobject.io_add_watch(self.buildPID.stdout, gobject.IO_IN, self.onGetData) As you can see, I add the commands "ls -l" and "echo Hello" to the queue. However, "Hello" is always printed inside the output of "ls -l". I would like to wait for "ls -l" to terminate and then run "echo Hello". But, the output must still print to the consoleLogBuffer line-by-line, and my GUI must not hang during execution. Is this even possible? -- http://mail.python.org/mailman/listinfo/python-list
Re: textwrap.dedent replaces tabs?
Frederic Rentsch wrote: > (You dedent common leading tabs, except if preceded by common leading > spaces (?)). There cannot be common leading tabs if they are preceded by anything. If they were preceded by something, they wouldn't be "leading". -- --OKB (not okblacke) Brendan Barnwell "Do not follow where the path may lead. Go, instead, where there is no path, and leave a trail." --author unknown -- http://mail.python.org/mailman/listinfo/python-list
Re: Anyone persuaded by "merits of Lisp vs Python"?
Ray wrote: > Can one really survive knowing just > one language these days, anyway? いいえ! 違います。 -- http://mail.python.org/mailman/listinfo/python-list
Re: No way to set a timeout in "urllib".
John> There's no way to set a timeout if you use "urllib" to open a URL. John> "HTTP", which "urllib" uses, supports this, but the functionality John> is lost at the "urllib" level. John> It's not available via "class URLopener" or "FancyURLopener", John> either. John> There is a non-thread-safe workaround from 2003 at ... This topic has come up several times since timeouts were added to socket. Each time we've asked for a patch that adds timeouts in a rational manner to all the stuff layered on top of the socket module (httplib, ftplib, etc). As far as I know it's apparently never been important enough for anyone to rise to the challenge. If I remember next spring perhaps I'll submit it as a possible Google Summer of Code proposal. John> The correct fix would probably be to add methods to class John> URLopener to control this; that's the usual way of handling John> special URL opening situations. The correct way would be to deal with it at the httplib level, then percolate it up to urllib2. Urllib should probably not be extended any further. Skip -- http://mail.python.org/mailman/listinfo/python-list
Re: Wow, Python much faster than MatLab
Stef Mientki wrote: > hi All, > > instead of questions, > my first success story: > > I converted my first MatLab algorithm into Python (using SciPy), > and it not only works perfectly, > but also runs much faster: > > MatLab: 14 msec > Python: 2 msec For times this small, I wonder if timing comparisons are valid. I do NOT think SciPy is in general an order of magnitude faster than Matlab for the task typically performed with Matlab. > > After taking the first difficult steps into Python, > all kind of small problems as you already know, > it nows seems a piece of cake to convert from MatLab to Python. > (the final programs of MatLab and Python can almost only be > distinguished by the comment character ;-) > > Especially I like: > - more relaxed behavior of exceeded the upper limit of a (1-dimensional) > array Could you explain what this means? In general, I don't want a programming language to be "relaxed" about exceeding array bounds. -- http://mail.python.org/mailman/listinfo/python-list
Re: probably a stupid question: MatLab equivalent of "diff" ?
Stef Mientki wrote: > Does anyone know the equivalent of the MatLab "diff" function. > The "diff" functions calculates the difference between 2 succeeding > elements of an array. > I need to detect (fast) the falling edge of a binary signal. Using numpy (or predecessors), you can do this easily with slicing: a[1:] - a[:-1] Slicing shares data, so the slices above don't create new arrays, but new views into the old array, so it avoids that overhead. For Python lists you'd have to use a list comprehension or some such thing like that. For example: [ x-y for (x,y) in zip(a[1:],a[:-1]) ] Or, to avoid creating two new arrays, use iterators: import itertools [ x-y for (x,y) in itertools.izip(itertools.islice(a,0,-1),itertools.islice(a,1)) ] Carl -- http://mail.python.org/mailman/listinfo/python-list
Re: DOS, UNIX and tabs
Steven D'Aprano wrote: > But I think we all agree that mixing tabs and spaces is A Very Bad Thing. I like mixing tabs and spaces, actually. Tabs for indentation, and additional spaces to make the code "look pretty". Somebody please tell me why this is bad and I'll stop. class Apple(object): def contrived_example_function(self, argument1, argument2, argument3, argument4): print "hello, world" Apparently, emacs in python mode follows this convention, too. I like it because I get the best of both worlds: the only thing against using tabs-only-indentation is that wrapping long lines can be quite ugly, while space-only-indentation allows for beautifying it somewhat by lining up the columns to match. Tabs+spaces allows the "lining up" with spaces to be explicitly separate from indentation. -- pkm ~ http://paulmcnett.com -- http://mail.python.org/mailman/listinfo/python-list
Re: Anyone persuaded by "merits of Lisp vs Python"?
Steven Haflich wrote: > Ray wrote: > > Can one really survive knowing just > > one language these days, anyway? > > いいえ! 違います。 iie! chigaimas. No, I beg to differ! (Hey, I'm in right the middle of preparing my Kanji-drilling Lisp program for distribution). -- http://mail.python.org/mailman/listinfo/python-list