[ANN] pylint 0.12.2 / astng 0.16.3
Hi there ! I'm pleased to announce new bugs fix releases of pylint and astng. Most bug discussed more or less recently on the python-projects mailing list should be fixed by those releases, and astng inference capability has been enhanced for some construction, so upgrade is recommended. Visit the respective projects'page of our fresh new .org site to get the latest source distribution :o) http://www.logilab.org/project/name/pylint http://www.logilab.org/project/name/logilab-astng Enjoy ! -- Sylvain Thénault LOGILAB, Paris (France) Formations Python, Zope, Plone, Debian: http://www.logilab.fr/formations Développement logiciel sur mesure: http://www.logilab.fr/services Python et calcul scientifique: http://www.logilab.fr/science -- http://mail.python.org/mailman/listinfo/python-announce-list Support the Python Software Foundation: http://www.python.org/psf/donations.html
Re: reading id3 tags with python
Heh, a description of the error would be nice indeed. Just a preliminary warning: with this code you will also be parsing directories. id3reader can't handle those ofcourse. Better add a check such as eg: if os.path.isfile(os.path.join(directory, file)): # do your thing laundro -- http://mail.python.org/mailman/listinfo/python-list
Newbie Developing a Python Extension
Hi, I have been working on Linux 2.6.9 to adapt a C++ module to work as a Python extension with the following setup.py file: from distutils.core import setup, Extension sm=Extension( 'tdma', define_macros=[('__USE_POSIX199309','1')], include_dirs=['/usr/include','/usr/include/python2.3'], library_dirs=['/usr/lib'], sources=['Bitstrea.cpp','bytequeu.cpp','debug.cpp','dlist.cpp', 'GrPort.cpp','IoPort.cpp','LMEmu.cpp','LMEmuPdu.cpp', 'MacPyIf.cpp','per_os_clk.cpp','timer.cpp']) setup(name='MySm', version='0.1.0', description='TDMA MAC', ext_modules=[sm]) The extension uses the POSIX call clock_gettime() and things seem fine when generating the tdma.so file. However, when running the Python program, at a line 'from tdma import init,txdn,txup,...', I get an error message saying 'ImportError: /home/.../tdma.so: undefined symbol: clock_gettime'. What is wrong here? Is the from-import statement right? Why is it, when I use 'import sm' or 'from sm import...', I get the message 'ImportError: No module named sm'? Thanks, Jeremy -- http://mail.python.org/mailman/listinfo/python-list
Re: Is time.time() time.time() always true?
Tim Roberts [EMAIL PROTECTED] wrote: Hendrik van Rooyen [EMAIL PROTECTED] wrote: flamesrock [EMAIL PROTECTED] wrote: 8-- since the statement itself occurs at one time instant.. nothing, but nothing, can occur at one time instant Well, as long as we're being pedantic, surely that should read only one thing can occur at any time instant... No its worse than that - what I mean is that everything takes finite time... :-) Hendrik -- http://mail.python.org/mailman/listinfo/python-list
Local variables persist in functions?
I'm a bit baffled. Here is a bit of fairly straightforward code: def _chunkify( l, chunkSize, _curList = list() ): print _curList # yay for printf debugging if len( l ) = chunkSize: _curList.append( l ) else: newChunk = l[:chunkSize] _curList.append( newChunk ) _chunkify( l[chunkSize:], chunkSize, _curList ) return _curList _chunkify simply breaks a sequence into a sequence of smaller lists of size = chunkSize. The first call works fine, but if I call it multiple times, weirdness happens. chunks = _chunkify( list, size ) # _curList keeps its previous value! chunks = _chunkify( list, size, list() )# this works as expected Considering the default value of _curList, these statements should be identical. Any pointers? Did I miss something in the python reference manual? (running 2.4.3, fyi) Thanks, Nils -- http://mail.python.org/mailman/listinfo/python-list
Re: Abelson and Python
Fredrik Lundh schrieb: markscottwright wrote: If it were that easy, the PyPy guys would be done by now. if the PyPy guys had focused on writing a Python interpreter in Python, they'd been done by now. /F The Python interpreter in Python part of PyPy _is_ done. Since quite a while even (something like July 2005) compilation to C works, and the interpreter was more or less finished since quite a while before that. There were some things missing at that point but interpretation of Python code that didn't use any fancy builtin modules worked. Cheers, Carl Friedrich Bolz -- http://mail.python.org/mailman/listinfo/python-list
Re: Local variables persist in functions?
[EMAIL PROTECTED] wrote: Considering the default value of _curList, these statements should be identical. Any pointers? Did I miss something in the python reference manual? (running 2.4.3, fyi) See the FAQ: http://www.python.org/doc/faq/general.html#why-are-default-values-shared-between-objects -- http://mail.python.org/mailman/listinfo/python-list
Re: Access to variable from external imported module
jim-on-linux wrote: GinTon, I think this is what you want. class Kdoi: Is that a typo? def __init__(self) : self.Fdo() What is all this K and F stuff? def Fdo(self): searchterm = 'help' print searchterm #local self.searchterm = searchterm print self.searchterm #used inside the class Kdo.searchterm = searchterm # print Kdo.searchterm #used outside the class Kdomore() class Kdomore(Kdo): def __init__(self) : self.Fdomore() def Fdomore(self): searchterm = Kdo.searchterm # print searchterm It's not apparent what the print statements are for -- are they part of an attempt to debug your code? What gives you the idea that this is what the OP wants or needs? -- http://mail.python.org/mailman/listinfo/python-list
Re: Local variables persist in functions?
[EMAIL PROTECTED] wrote: I'm a bit baffled. Here is a bit of fairly straightforward code: def _chunkify( l, chunkSize, _curList = list() ): Quite apart from the default argument problem, which Duncan has addressed, you have some problems with style and variable names. In particular: give variables meaningful names ; L.lower() is not meaningful and also suffers from confusion with the digit 1 in some fonts. There is no necessity for the _ in _curList in the above line. Please consider reading http://www.python.org/dev/peps/pep-0008/ print _curList # yay for printf debugging if len( l ) = chunkSize: _curList.append( l ) else: newChunk = l[:chunkSize] _curList.append( newChunk ) _chunkify( l[chunkSize:], chunkSize, _curList ) return _curList _chunkify simply breaks a sequence into a sequence of smaller lists of size = chunkSize. The first call works fine, but if I call it multiple times, weirdness happens. chunks = _chunkify( list, size ) # _curList keeps its previous value! chunks = _chunkify( list, size, list() )# this works as expected Is the first list a list, or is it the name of the same function that you are calling to provide the 3rd argument? [snip] HTH, John -- http://mail.python.org/mailman/listinfo/python-list
Re: The Python Papers Edition One
[EMAIL PROTECTED] wrote: Ben Finney wrote: [EMAIL PROTECTED] [EMAIL PROTECTED] writes: Yes, it's true that you can't resell copies of The Python Papers for personal profits, but you may derive from it, reproduce and propagate it. You're quite right to point it out. Then please revise the false statement that the publication is free as in beer and freedom, or make it true by releasing the documents under a license that does grant conventional free-software freedoms. -- \ They can not take away our self respect if we do not give it | `\ to them. -- Mahatma Gandhi | _o__) | Ben Finney I thought I just had. In what way does the statement Yes, it's true that you can't resell copies of The Python Papers for personal profits, but you may derive from it, reproduce and propagate it not provide such a revision and clarification? Seriously, let me know what exact statement you feel needs to be made, and I will endorse it accordingly if it is accurate. The phrase free as in freedom is commonly understood differently from the way you are using it. Free as in freedom usually grants the right to distribute for a fee. Many Linux distributors depend on that right; otherwise they wouldn't have the right to sell CDs. IMHO your licensing terms are fine; you don't need to switch from the CC license. Just avoid the term free as in freedom, since the Free Software Foundation has assigned that phrase a very specific meaning. Shane -- http://mail.python.org/mailman/listinfo/python-list
Re: Access to variable from external imported module
GinTon wrote: Thanks Robert, the best solution is get all local variables, else is impossible access to them. For test purposes/ex post inspection you could also uncomment the line in: def f(a=1): b=2 c=3 #globals().update(locals()) return a+b -- then it is more easy and you can get it like: module.c You can also create a total stack trace dynamically with this trick function: def mktb(): try: raise UserWarning except: return sys.exc_info()[2] def f(a=1): b=2 c=3 global ftb;ftb=mktb() return a+b and then fully inspect the total situation in the func (and all down the call history) ex post at any time with f() pdb.post_mortem(module.ftb) # then do once 'up' in pdb/pywin.debugger... pywin.debugger.post_mortem(module.ftb) Which other programming language can do things like this? ( Unfortunately (legacy) Python has no possibility to (re-)continue execution from exceptions/traces other than by simple generators ) Robert robert ha escrito: GinTon wrote: I would to access to values that are created locally in that method after the method has executed? usually the return value? or you want to get all local variables, then make a func/method def f(a=1): b=2 c=3 return locals() #X/Object(locals()) d=module.f() print d['c'] # d.c -- http://mail.python.org/mailman/listinfo/python-list
Re: Local variables persist in functions?
[EMAIL PROTECTED] wrote: I'm a bit baffled. Here is a bit of fairly straightforward code: def _chunkify( l, chunkSize, _curList = list() ): print _curList # yay for printf debugging if len( l ) = chunkSize: _curList.append( l ) else: newChunk = l[:chunkSize] _curList.append( newChunk ) _chunkify( l[chunkSize:], chunkSize, _curList ) return _curList _chunkify simply breaks a sequence into a sequence of smaller lists of size = chunkSize. The first call works fine, but if I call it multiple times, weirdness happens. chunks = _chunkify( list, size ) # _curList keeps its previous value! chunks = _chunkify( list, size, list() )# this works as expected Considering the default value of _curList, these statements should be identical. Any pointers? Did I miss something in the python reference manual? (running 2.4.3, fyi) the default list() is only created once when the function is defined. And its later its always the same list Use def _chunkify( l, chunkSize, _curList=None ): _curList = _curList or [] ... then it works. Robert -- http://mail.python.org/mailman/listinfo/python-list
Re: socket.error connection refused
For anyone interested restarting windows fixed the connection problem. -- http://mail.python.org/mailman/listinfo/python-list
Modules - Jython Vs Python?
How many of the Python modules written in C have been rewritten and and ported to Java to run under Jython? I am talking about SMTP, LDAP, WIN2K,XML etc. Is there a list anywhere ? Thanks Patrick. -- http://mail.python.org/mailman/listinfo/python-list
Re: socket.error connection refused
Vania wrote: Hi, I'm not sure this is the proper forum but I try nevertheless. The problem I'am facing is that the socket library always fail to connect to an URL. The net effect is that I can not use setuptools. I'm using Python2.4 on a windows XPPRO Sp2 machine. The firewall is disabled. There is no NLTM proxy. I connect to the internet through a NAT server (and it works). Other than with easy_install I tried to connect to a number of external urls (all of them running) and even to localhost, directly in script using urllib and the error is always the same errno: 10061 connection refused. Any ideas? urllib.urlopen can pick up an invalid proxy setting from environ or IE-settings. routers/NAT servers sometimes need a 2nd tick - all browsers try it 2..4 times before displaying no connection - this is (unfortunately) not the default behavior of the browser urllib. if bare import httplib h=httplib.HTTPConnection('www.google.com') h.connect() h.request('GET','/') h.getresponse().read() 'HTMLHEADmeta http-equiv=content-type content=text/html;charset=utf-8\nTITLE302 Moved/TITLE/HEADBODY\nH1302 Moved/H1\nThe document has moved\nA HREF=http://www.google.de/;here/A.\r\n/BODY/HTML\r\n' fails on multiple trials, then you have a very strange network setup. maybe multiple/confusing NIC's ... Robert -- http://mail.python.org/mailman/listinfo/python-list
Re: Python work in UK
Hi, A few suggestions, you may have tried them already: Search for UK Python jobs on major job sites like Monster, Dice, etc. Some (like Monster) have country-specific sites, I think. I know Monster has an India-specific site, it probably also has one for the UK. Have you considered the option of being a freelancer and working via Net job sites like eLance, Guru.com, oDesk? Also check out the Python job board at http://www.python.org/community/jobs/ HTH Vasudev --- Site: http://www.dancingbison.com Blogs: http://jugad.livejournal.com http://dancingbison.blogspot.com Open source project: http://www.dancingbison.com/products.html --- Will McGugan wrote: Hi, I'd love to work in Python, for the sake of my blood pressure, but there doesnt seem to be that many jobs that look for Python as the main skill. I use Python at work from time to time, and occasionaly get to spend several days on a Python project but the majority of the time I use C++. How can I make that leap to working with Python? There doesn't seem to be many UK positions on the jobs section of Python.org or the usual jobs sites. Any recommended jobs sites or tips? (I have googled) In the off chance that a potential empolyer is reading this, I'm looking for something in web development, applications, graphics or other interesting field. Here is a copy of my CV. http://www.willmcgugan.com/cvwillmcgugan.pdf Regards, Will McGugan -- http://www.willmcgugan.com -- http://mail.python.org/mailman/listinfo/python-list
locking bsddb objects
This is a little project using python 2.3.5, I want to use one of the bsddb objects, but I also need to protect against concurrent access and modification. IMO this would be something for fcntl.flock or fcntl.lockf. However the bsddb objects don't provide a fileno method. So how do I protect against concurrent access and modification? -- Antoon Pardon -- http://mail.python.org/mailman/listinfo/python-list
Pimping the 'cgi' module (was: Re: python gaining popularity according to a study)
On Thursday 23 November 2006 21:29, robert wrote: When a LAMP programmer comes to Python, there are so many different confusing things. It starts with a 'non-documented' cgi module - a 'High-Level-Interface', that cannot even iterate over the form items. A name ZOPE in focus which reveals to be a monster system with 2-year learning-curve, ready for running an article editorial system for TOP-10 newspaper companies, but unable to make simple things simple. A handful of different Djangos - choose one for each weekday and programmer ... And Ruby made it with this single-known simple URL-to-method-router (And possibly when coming from PHP Perl one recognizes ::@$_$%§§%/... and the old namespace dirt) If there would have been a good cgi-system and a somewhat comfortable advanced URL-to-OO-router (beyond the socket wrapper HTTPServer) well exposed in the Python standard lib, the numbers would be probably very different today ... I can fully second that. Coming from Perl and being used to the CGI module that is de-facto standard and already doing things much better than Python's equivalent my first thought was: Does Python really expect me to re-invent the wheel to write basic CGIs? So I started creating cookie-based session handlers, form field handling etc. The reason of my posting it not only to complain though. My Python skills are average but I would really like to help contribute some code on this topic. I don't know Ruby-on-Rails myself but I have worked with CGIs for ten years both in C (yuk) and Perl (Perl=semi-yuk / Perl-CGI=yum) and think I know what people coming from Perl expect. And I'm not speaking of Zope or Django or huge frameworks. I try to avoid frameworks wherever I can (I want to write Python - not Zope or Django). I rather rely on the standard library unless it's really saving me time and worth learning another language. Are frameworks perhaps even telling that the standard library is still lacking in some way? I'm thinking of features like: - cookie handling - cookie-session handling (similar to PHP or Perl's CGI::Session; combined with database backends or simple text files) - handling of form fields (Perl's CGI class can easily redisplay what has been entered in the fields when they got submitted through a FORM) - accessing parameters (honestly I haven't yet understood why I need to use .value on FielStorage dictionaries - why isn't it just a plain dictionary?) - state keeping (storing the contents of all form fields on disk to retrieve it later) - creating form elements easily (option lists for example from dictionaries and lists like in Perl) - creating standard HTML elements (or do you remember how DOCTYPE looks without looking it up?) - handling of file uploads (which is just a recipe on ActivePython at the moment) - controlling HTTP headers (expires, redirections, charset) - convenience functions e.g. for getting the client IP address without needing to read ENV['REMOTE_ADDR'] Well, of course there are modules like 'cgi' or 'cookielib' and others may argue that everything is already there. And there is a 'Web.py' already (I assume every CGI programmer has written their own Web.py already). But can't we come closer to what other scripting languages provide? Something common? Can't a simple form-based CGI just be a matter of a dozen lines? When it comes to CGIs Python loses its elegance for no reason. I'm ready to invest work and ideas if anyone else is interested. Perhaps some day it makes it into the standard library or at least gives us something between the features of the standard library and huge framework monsters - something people can be pointed at when starting with Python and CGIs. I'll probably do that anyway because my web projects all use their own reinvented wheel and I'm losing the overview. And even Perl has come that route - it started with a cgi-lib.pl which later became the 'CGI' standard module. Is it just a matter of lacking resources or interest? Even if there is no interest I'll probably read man CGI and man CGI::Session again and start implementing something nifty for ex-perlies like myself. Hmmm, batteries included even for CGI programmers, a man can dream. :) Cheers Christoph -- http://mail.python.org/mailman/listinfo/python-list
bz2.readline() slow ?
Dear all, I am a bit puzzled, as -snip- import bz2 f=bz2.BZ2File('data/data.bz2'); while f.readline(): pass -snip- takes twice the time (10 seconds) to read/decode a bz2 file compared to -snip- import bz2 f=bz2.BZ2File('data/data.bz2'); x=f.readlines() -snip- (5 seconds). This is even more strange as the help(bz2) says: | readlines(...) | readlines([size]) - list | | Call readline() repeatedly and return a list of lines read. | The optional size argument, if given, is an approximate bound on the | total number of bytes in the lines returned. This happens on python2.3 - python2.5 and it does not help to specify a maximum line size. Any ideas ? Soeren -- http://mail.python.org/mailman/listinfo/python-list
Re: The Python Papers Edition One
Shane Hathaway wrote: IMHO your licensing terms are fine; you don't need to switch from the CC license. Just avoid the term free as in freedom, since the Free Software Foundation has assigned that phrase a very specific meaning. Agreed. It should also be noted that Debian - amongst the strictest with regard to software and content licensing - do not regard the CC licences as being free as in freedom: http://en.wikipedia.org/wiki/Creative_Commons_licenses http://people.debian.org/~evan/ccsummary.html http://people.debian.org/~evan/draftresponse.txt Consequently, it may be appropriate to remind authors to also make their works more widely available under a licence that may permit further distribution, if that is desirable. Paul P.S. I still don't really understand why the FSF unreservedly recommends the Free Art licence when it has a choice of law clause that has prevented things like the GPL-compatibility of other licences in the past. -- http://mail.python.org/mailman/listinfo/python-list
Re: Local variables persist in functions?
[EMAIL PROTECTED] wrote: chunks = _chunkify( list, size ) # _curList keeps its previous value! chunks = _chunkify( list, size, list() )# this works as expected Considering the default value of _curList, these statements should be identical. Any pointers? http://effbot.org/pyfaq/why-are-default-values-shared-between-objects.htm Did I miss something in the python reference manual? (running 2.4.3, fyi) the paragraph that starts with Default parameter values are evaluated when the function definition is executed. in bold, perhaps. I've highlighted it on this page: http://effbot.org/pyref/def.htm /F -- http://mail.python.org/mailman/listinfo/python-list
Re: Simple threading
Thank you for your help - the application is proceeding well. -- http://mail.python.org/mailman/listinfo/python-list
Re: Pimping the 'cgi' module (was: Re: python gaining popularity according to a study)
Christoph Haas wrote: On Thursday 23 November 2006 21:29, robert wrote: When a LAMP programmer comes to Python, there are so many different confusing things. It starts with a 'non-documented' cgi module - a 'High-Level-Interface', that cannot even iterate over the form items. A name ZOPE in focus which reveals to be a monster system with 2-year learning-curve, ready for running an article editorial system for TOP-10 newspaper companies, but unable to make simple things simple. Zope was simultaneously one of the best things to happen in Python Web programming, but also one of the worst, mostly because people saw the power of the solution, correctly realised that it could do a lot of things they would otherwise have to do themselves, but then got locked into an approach which wasn't suitable for every kind of application. It was like having a handful of fairly promising parties ruined by the opening night of an expensive nightclub where the first two drinks were free. A handful of different Djangos - choose one for each weekday and programmer ... The handful of Djangos isn't necessarily a problem, but there is this all or nothing mentality in writing and promoting Web frameworks. Or rather, an all or lots of little pieces mentality. One is left either with a room full of tiny Lego bricks to put together, or one actually has to be the python and swallow a large solution whole, hoping that it all tastes good - even the nasty parts. And Ruby made it with this single-known simple URL-to-method-router (And possibly when coming from PHP Perl one recognizes ::@$_$%§§%/... and the old namespace dirt) If there would have been a good cgi-system and a somewhat comfortable advanced URL-to-OO-router (beyond the socket wrapper HTTPServer) well exposed in the Python standard lib, the numbers would be probably very different today ... There was probably a window of opportunity to include the old Bobo dispatcher (or perhaps the Poor Man's Zope stuff) in the standard library, but rigid dispatchers of that style arguably aren't sufficient any more, even though they can be regarded almost as the original URL-to-OO router. If you look now, there are a number of dispatchers/routers that work in a more-or-less independent way from frameworks, however. I can fully second that. Coming from Perl and being used to the CGI module that is de-facto standard and already doing things much better than Python's equivalent my first thought was: Does Python really expect me to re-invent the wheel to write basic CGIs? So I started creating cookie-based session handlers, form field handling etc. The standard library expects you to do that, yes, since many of the Web-related modules were written in the infancy of the Web and have only been conservatively updated since. I remember when the cookie handling went in, and it was a big but overdue event back then. I rather rely on the standard library unless it's really saving me time and worth learning another language. Are frameworks perhaps even telling that the standard library is still lacking in some way? I believe so, and I'm not alone with that opinion. I'm thinking of features like: [List of HTTP-related, persistence-related and templating-related things] I'm ready to invest work and ideas if anyone else is interested. Take a look at this page for some other work with similar goals: http://wiki.python.org/moin/WebStandardisation Perhaps some day it makes it into the standard library or at least gives us something between the features of the standard library and huge framework monsters - something people can be pointed at when starting with Python and CGIs. I'll probably do that anyway because my web projects all use their own reinvented wheel and I'm losing the overview. And even Perl has come that route - it started with a cgi-lib.pl which later became the 'CGI' standard module. Some people will argue that you just want a big framework (implying that they know what you want better than you do), whilst others will talk about lots of reusable middleware. I don't disagree with the component-based solution mindset, but the bricks really have to be bigger, and there needs to be a picture on the box showing what the finished model looks like, along with some clear instructions on getting started. Is it just a matter of lacking resources or interest? Even if there is no interest I'll probably read man CGI and man CGI::Session again and start implementing something nifty for ex-perlies like myself. Hmmm, batteries included even for CGI programmers, a man can dream. :) I am aware of at least one person who seems dissatisfied with the current level of standardisation and who wants something a bit more obvious for those who don't want to take the 30 second Wiki route. Perhaps they could openly publish their ideas or proposals and we could establish some kind of unofficial standard around those things. I'd certainly be interested in
Active State and Komodo...
Hello all, I was wondering the differnced there were betwee Active State's python and the open source version of python. Would I have to unistall my opend souce python? Additonally, how does Active State's Komodo IDE vs. the eric3 IDE unler SuSE Linux v. 10.i? Addionally, is the eric IDE (version 3) an acceptible IDE or are there more easy and more productive IDE's for perl? I'm urining Gnome v. 12.2.2 and Eric v 3.8.1 Thanks Steve -- http://mail.python.org/mailman/listinfo/python-list
Re: Email headers and non-ASCII characters
On Thursday 23 November 2006 16:31, Max M wrote: Christoph Haas skrev: Hello, everyone... I'm trying to send an email to people with non-ASCII characters in their names. A recpient's address may look like: Jörg Nørgens [EMAIL PROTECTED] My example code: = def sendmail(sender, recipient, body, subject): message = MIMEText(body) message['Subject'] = Header(subject, 'iso-8859-1') message['From'] = Header(sender, 'iso-8859-1') message['To'] = Header(recipient, 'iso-8859-1') s = smtplib.SMTP() s.connect() s.sendmail(sender, recipient, message.as_string()) s.close() = However the Header() method encodes the whole expression in ISO-8859-1: =?iso-8859-1?q?=22J=C3=B6rg_N=C3=B8rgens=22_=3Cjoerg=40nowhere=3E?= However I had expected something like: =?utf-8?q?J=C3=B6rg?= =?utf-8?q?_N=C3=B8rgens?= [EMAIL PROTECTED] Of course my mail transfer agent is not happy with the first string Why offcourse? Because my MTA doesn't care about MIME. It just transports the email. And it expects an email address in ... but doesn't decode =?iso...? strings. But it seems that you are passing the Header object a utf-8 encoded string, not a latin-1 encoded. You are telling the header the encoding. Not asking it to encode. Uhm, okay. Let's see: u'Jörg Nørgens [EMAIL PROTECTED]'.encode('latin-1') = 'J\xc3\xb6rg N\xc3\xb8rgens [EMAIL PROTECTED]' So far so good. Now run Header() on it: = '=?utf-8?b?IkrDtnJnIE7DuHJnZW5zIiA8am9lcmdAbm93aGVyZT4=?=' Still nothing like ... in it and my MTA is unhappy again. What am I missing? Doesn't anyone know how mail clients handle that encoding? Desperately, Christoph -- http://mail.python.org/mailman/listinfo/python-list
Re: Python work in UK
Will McGugan wrote: Hi, I'd love to work in Python, for the sake of my blood pressure, but there doesnt seem to be that many jobs that look for Python as the main skill. I use Python at work from time to time, and occasionaly get to spend several days on a Python project but the majority of the time I use C++. How can I make that leap to working with Python? There doesn't seem to be many UK positions on the jobs section of Python.org or the usual jobs sites. Any recommended jobs sites or tips? (I have googled) Hi Will I recommend 'cwjobs.co.uk' and 'reed.co.uk'. I got my current (Python) contract through MCG recruitment (mcg-recruitment.com), and I've just accepted a Python/Zope position through sienared.com - both of these are in London and came via CWjobs. I don't know about the rest of the country but there is definitely pure Python work in London if you look for it. Good Luck. Gerard -- http://mail.python.org/mailman/listinfo/python-list
Re: Pimping the 'cgi' module
Christoph Haas wrote: On Thursday 23 November 2006 21:29, robert wrote: When a LAMP programmer comes to Python, there are so many different confusing things. It starts with a 'non-documented' cgi module - a 'High-Level-Interface', that cannot even iterate over the form items. A name ZOPE in focus which reveals to be a monster system with 2-year learning-curve, ready for running an article editorial system for TOP-10 newspaper companies, but unable to make simple things simple. A handful of different Djangos - choose one for each weekday and programmer ... And Ruby made it with this single-known simple URL-to-method-router (And possibly when coming from PHP Perl one recognizes ::@$_$%§§%/... and the old namespace dirt) If there would have been a good cgi-system and a somewhat comfortable advanced URL-to-OO-router (beyond the socket wrapper HTTPServer) well exposed in the Python standard lib, the numbers would be probably very different today ... I can fully second that. Coming from Perl and being used to the CGI module that is de-facto standard and already doing things much better than Python's equivalent my first thought was: Does Python really expect me to re-invent the wheel to write basic CGIs? So I started creating cookie-based session handlers, form field handling etc. That exactly is where Python lost real numbers. All kinds of fancy things are in the standard lib, but not these must-have's in a good collection .. The reason of my posting it not only to complain though. My Python skills are average but I would really like to help contribute some code on this topic. I don't know Ruby-on-Rails myself but I have worked with CGIs for ten years both in C (yuk) and Perl (Perl=semi-yuk / Perl-CGI=yum) and think I know what people coming from Perl expect. And I'm not speaking of Zope or Django or huge frameworks. I try to avoid frameworks wherever I can (I want to write Python - not Zope or Django). I rather rely on the standard library unless it's really saving me time and worth learning another language. Are frameworks perhaps even telling that the standard library is still lacking in some way? well, note, for that they have named it Ruby-On-Rails, so its still the language - leveraged. While it is Zope/Django/Ego-on-Python ... ? So its about the right level of a framework. (even a cgi module is a framework.) I think i could learn to like this one as basic intuitive idea: http://www.cherrypy.org/ Unless a Guido'ed version of such thing is not _selected_ into the stdlib or at least promoted single-mindedly and prominently by far before high-tech-but-low-number names like Zope and Django, Python will continue to bleed out heavily on numbers vs. Ruby. First need of course: an update of that cgi module. I'm thinking of features like: - cookie handling - cookie-session handling (similar to PHP or Perl's CGI::Session; combined with database backends or simple text files) - handling of form fields (Perl's CGI class can easily redisplay what has been entered in the fields when they got submitted through a FORM) - accessing parameters (honestly I haven't yet understood why I need to use .value on FielStorage dictionaries - why isn't it just a plain dictionary?) - state keeping (storing the contents of all form fields on disk to retrieve it later) - creating form elements easily (option lists for example from dictionaries and lists like in Perl) - creating standard HTML elements (or do you remember how DOCTYPE looks without looking it up?) - handling of file uploads (which is just a recipe on ActivePython at the moment) - controlling HTTP headers (expires, redirections, charset) - convenience functions e.g. for getting the client IP address without needing to read ENV['REMOTE_ADDR'] tell it loud Well, of course there are modules like 'cgi' or 'cookielib' and others may Cookie. (cookielib is for clients.) But read the doc chapter Cookie -- HTTP state management... What is 'input': If input is given, it is passed to the load() method. ... So first read the Example, oo :-) I tell you - you will know how to achieve cookie/session handling before you read all source code and the RFC's So its not much disadvantage to not know about the existence of this module. argue that everything is already there. And there is a 'Web.py' already (I assume every CGI programmer has written their own Web.py already). But yes - which Web.py :-) another v0.138 : http://webpy.org/ ? can't we come closer to what other scripting languages provide? Something common? Can't a simple form-based CGI just be a matter of a dozen lines? When it comes to CGIs Python loses its elegance for no reason. No other language could do it in less lines. There is no other excuse than: * I'm ready to invest work and ideas if anyone else is interested. Perhaps some day it makes it into the standard library or at least
Re: socket.error connection refused
Thanks for the explanation. Probably the fact that I was working inside a virtual machine didn't help. Vania robert ha scritto: Vania wrote: Hi, I'm not sure this is the proper forum but I try nevertheless. The problem I'am facing is that the socket library always fail to connect to an URL. The net effect is that I can not use setuptools. I'm using Python2.4 on a windows XPPRO Sp2 machine. The firewall is disabled. There is no NLTM proxy. I connect to the internet through a NAT server (and it works). Other than with easy_install I tried to connect to a number of external urls (all of them running) and even to localhost, directly in script using urllib and the error is always the same errno: 10061 connection refused. Any ideas? urllib.urlopen can pick up an invalid proxy setting from environ or IE-settings. routers/NAT servers sometimes need a 2nd tick - all browsers try it 2..4 times before displaying no connection - this is (unfortunately) not the default behavior of the browser urllib. if bare import httplib h=httplib.HTTPConnection('www.google.com') h.connect() h.request('GET','/') h.getresponse().read() 'HTMLHEADmeta http-equiv=content-type content=text/html;charset=utf-8\nTITLE302 Moved/TITLE/HEADBODY\nH1302 Moved/H1\nThe document has moved\nA HREF=http://www.google.de/;here/A.\r\n/BODY/HTML\r\n' fails on multiple trials, then you have a very strange network setup. maybe multiple/confusing NIC's ... Robert -- http://mail.python.org/mailman/listinfo/python-list
Re: The Python Papers Edition One
Shane Hathaway wrote: Just avoid the term free as in freedom, since the Free Software Foundation has assigned that phrase a very specific meaning. Bah. FSF is not an arbiter of the language. People whose idea of free differs from FSF's still need to differentiate it from the monetary sense of the word free. Carl Banks -- http://mail.python.org/mailman/listinfo/python-list
Re: Pimping the 'cgi' module
On Friday 24 November 2006 13:08, robert wrote: well, note, for that they have named it Ruby-On-Rails, so its still the language - leveraged. While it is Zope/Django/Ego-on-Python ... ? If by that you mean that neither Zope nor Django are exactly pythonic I think I concur. Unless a Guido'ed version of such thing is not _selected_ into the stdlib or at least promoted single-mindedly and prominently by far before high-tech-but-low-number names like Zope and Django, Python will continue to bleed out heavily on numbers vs. Ruby. Guido seems to have been confused about the rank growth of web based frameworks himself. So it's even less likely one of them gets included as part of the standard library in finite time. First need of course: an update of that cgi module. Oh, yeah. I just joined the Web SIG and found out that WSGI seems the way to go. At a first look it seems horrible if you just want to provide a CGI module. But there must be some reason for its existence. :) Looking further through http://wiki.python.org/moin/WebFrameworks my head starts to spin. Somehow I sadly feel I would just add another incomplete framework to that pile. I'm especially unsure whether it's good or bad to create another I'm sick of the standard library-style module. I've just become a bit less confident to actually contribute something useful there. Overwhelming. python-dev is fully occupied with top-notch inner life. Of course that is the basis. But key issues in libtools were simply forgotten - left to a random community. Which doesn't match the batteries included fuss at all. Of course the basis has to be good, too. And there are so many paradigms today that no core-python developer can really be expected to provide good standard modules for everyone. Go for a start. In order to realize that essential batteries in good quality within time - even after 10 years now - it is necessary, to hook python-dev for even requesting it actively. Just adding to http://wiki.python.org/moin/WebProgramming and http://wiki.python.org/moin/WebFrameworks is not the task. It requires some organization and somewhat a selection process in addition to good (probably existing) code v0.1xxx material. I think it would not be overly complex. Both, a new cgi and possibly included snake rails (vs oil) Oil is deprecated anyway. :) I'll see if I can find my way into the SIG. And - yes - adding another framework will surely not help us out of the divergence. The more frameworks there are the more people seem to feel urged to say heck, it will be easier to write my own framework than evaluate all 30 packages on that page. Christoph -- http://mail.python.org/mailman/listinfo/python-list
Re: Email headers and non-ASCII characters
Christoph Haas wrote: Hello, everyone... I'm trying to send an email to people with non-ASCII characters in their names. A recpient's address may look like: Jörg Nørgens [EMAIL PROTECTED] My example code: = def sendmail(sender, recipient, body, subject): message = MIMEText(body) message['Subject'] = Header(subject, 'iso-8859-1') message['From'] = Header(sender, 'iso-8859-1') message['To'] = Header(recipient, 'iso-8859-1') s = smtplib.SMTP() s.connect() s.sendmail(sender, recipient, message.as_string()) s.close() = However the Header() method encodes the whole expression in ISO-8859-1: =?iso-8859-1?q?=22J=C3=B6rg_N=C3=B8rgens=22_=3Cjoerg=40nowhere=3E?= However I had expected something like: =?utf-8?q?J=C3=B6rg?= =?utf-8?q?_N=C3=B8rgens?= [EMAIL PROTECTED] Of course my mail transfer agent is not happy with the first string although I see that Header() is just doing its job. I'm looking for a way though to encode just the non-ASCII parts like any mail client does. Does anyone have a recipe on how to do that? Or is there a method in the email module of the standard library that does what I need? Or should I split by regular expression to extract the email address beforehand? Or a list comprehension to just look for non-ASCII character and Header() them? Sounds dirty. Why dirty? from email.Header import Header from itertools import groupby h = Header() addr = u'Jörg Nørgens [EMAIL PROTECTED]' def is_ascii(char): return ord(char) 128 for ascii, group in groupby(addr, is_ascii): h.append(''.join(group),latin-1) print h = J =?iso-8859-1?q?=F6?= rg N =?iso-8859-1?q?=F8?= rgens [EMAIL PROTECTED] -- Leo -- http://mail.python.org/mailman/listinfo/python-list
NFS server
i wish to develop an NFS server usin python from scratch( some wise guy told me i'ts easy!). can i get any kinda tutorial for this?? any suggestions on how 2 begin? -- http://mail.python.org/mailman/listinfo/python-list
Re: Email headers and non-ASCII characters
Christoph Haas skrev: On Thursday 23 November 2006 16:31, Max M wrote: Christoph Haas skrev: Hello, everyone... I'm trying to send an email to people with non-ASCII characters in their names. A recpient's address may look like: Jörg Nørgens [EMAIL PROTECTED] My example code: = def sendmail(sender, recipient, body, subject): message = MIMEText(body) message['Subject'] = Header(subject, 'iso-8859-1') message['From'] = Header(sender, 'iso-8859-1') message['To'] = Header(recipient, 'iso-8859-1') s = smtplib.SMTP() s.connect() s.sendmail(sender, recipient, message.as_string()) s.close() = However the Header() method encodes the whole expression in ISO-8859-1: =?iso-8859-1?q?=22J=C3=B6rg_N=C3=B8rgens=22_=3Cjoerg=40nowhere=3E?= However I had expected something like: =?utf-8?q?J=C3=B6rg?= =?utf-8?q?_N=C3=B8rgens?= [EMAIL PROTECTED] Of course my mail transfer agent is not happy with the first string Why offcourse? Because my MTA doesn't care about MIME. It just transports the email. And it expects an email address in ... but doesn't decode =?iso...? strings. But it seems that you are passing the Header object a utf-8 encoded string, not a latin-1 encoded. You are telling the header the encoding. Not asking it to encode. Uhm, okay. Let's see: u'Jörg Nørgens [EMAIL PROTECTED]'.encode('latin-1') = 'J\xc3\xb6rg N\xc3\xb8rgens [EMAIL PROTECTED]' So far so good. Now run Header() on it: = '=?utf-8?b?IkrDtnJnIE7DuHJnZW5zIiA8am9lcmdAbm93aGVyZT4=?=' Still nothing like ... in it and my MTA is unhappy again. What am I missing? Doesn't anyone know how mail clients handle that encoding? address = u'Jörg Nørgens [EMAIL PROTECTED]'.encode('latin-1') address 'J\xf6rg N\xf8rgens [EMAIL PROTECTED]' from email.Header import Header hdr = str(Header(address, 'latin-1')) hdr '=?iso-8859-1?q?=22J=F6rg_N=F8rgens=22_=3Cjoerg=40nowhere=3E?=' Is this not correct? At least roundtripping works: from email.Header import decode_header encoded, coding = decode_header(hdr)[0] encoded, coding ('J\xf6rg N\xf8rgens [EMAIL PROTECTED]', 'iso-8859-1') encoded.decode(coding) u'J\xf6rg N\xf8rgens [EMAIL PROTECTED]' And parsing the address works too. from email.Utils import parseaddr parseaddr(encoded.decode(coding)) (u'J\xf6rg N\xf8rgens', u'[EMAIL PROTECTED]') -- hilsen/regards Max M, Denmark http://www.mxm.dk/ IT's Mad Science -- http://mail.python.org/mailman/listinfo/python-list
Re: socket.error connection refused
Vania wrote: For anyone interested restarting windows fixed the connection problem. Some nifty firewall software? 8) Regards, Björn -- BOFH excuse #78: Yes, yes, its called a design limitation -- http://mail.python.org/mailman/listinfo/python-list
Re: Abelson and Python
On 11/23/06, Scott David Daniels [EMAIL PROTECTED] wrote: markscottwright wrote: Fredrik Lundh wrote: markscottwright wrote: If it were that easy, the PyPy guys would be done by now. if the PyPy guys had focused on writing a Python interpreter in Python, they'd been done by now. /F Isn't that the point of PyPy? It's what their mission statement says (http://codespeak.net/pypy/dist/pypy/doc/architecture.html#mission-statement): PyPy is an implementation of the Python programming language written in Python itself, flexible and easy to experiment with. This is something that is amazingly easy to do in scheme, since the language is so simple, but is typically pretty difficult to do in other languages That said, I see now that the course we're talking about isn't the same as the old 6.001 course, and presumably has different pedagogical goals. There are a more than a few library functions in the Python code that are written in C in CPython. Not only is PyPy trying to get the _entire_ Python system into Python, it is trying to do so in a friendly-to-translation-in-a-statically-typed-language way. Besides, if you can freely use eval and exec, how hard is a pure python language interpreter? It's pretty trivial, and thats why I've always been unimpressed by implemente a x language interpreter in y lines type statements. It's a cute toy but what's the real learning opportunity there? Now, writing a compiler/interpreter from the ground up is a more valuable experience, but does it really matter if the language is the same one you wrote the compiler in? It gets harder the more complicated the syntax and semantics of the language are, but, say, python 1.0 would probably be a suitable goal for coursework. -- http://mail.python.org/mailman/listinfo/python-list
Re: NFS server
srj wrote: i wish to develop an NFS server usin python from scratch( some wise guy told me i'ts easy!). can i get any kinda tutorial for this?? any suggestions on how 2 begin? Ask the wise guy. All others install an NFS server. Diez -- http://mail.python.org/mailman/listinfo/python-list
How do I access a main frunction from an import module?
Hi, I have created an import module. And would like to access a function from the main script, e.g., file abc.py: ### def a(): m() return None file main.py: # from abc import * def m(): print 'something' return None a() ## python25.exe main.py Thanks, Jim -- http://mail.python.org/mailman/listinfo/python-list
Re: How do I access a main frunction from an import module?
Jim wrote: Hi, I have created an import module. And would like to access a function from the main script, e.g., file abc.py: ### def a(): m() return None file main.py: # from abc import * def m(): print 'something' return None a() ## python25.exe main.py import __main__ ... __main__.m() but better make a start.py and import main - then its symmetric Robert -- http://mail.python.org/mailman/listinfo/python-list
Re: Pimping the 'cgi' module
Christoph Haas wrote: well, note, for that they have named it Ruby-On-Rails, so its still the language - leveraged. While it is Zope/Django/Ego-on-Python ... ? If by that you mean that neither Zope nor Django are exactly pythonic I think I concur. Django is highly Pythonic (it's pure Python plus templates, and has the same pencil-like qualities as Python itself). Zope 3 is highly Pythonic too, but a rather more advanced form of Python. but they're both application servers, not CGI scripting environments. First need of course: an update of that cgi module. Oh, yeah. I just joined the Web SIG and found out that WSGI seems the way to go. At a first look it seems horrible if you just want to provide a CGI module. WSGI is a CGI replacement, not a CGI implementation. Which is a good thing, because what really matters, if you think about what a web server is doing, is the HTTP protocol, not an old and not always practical httpd extension standard. WSGI simply provides plumbing for working very close to the HTTP level. (you can of course create a WSGI-compatible adapter for CGI in no time at all, but that's not really the point of WSGI). Somehow I sadly feel I would just add another incomplete framework to that pile. as they say, if you don't understand history, you're bound to repeat it ;-) I'm especially unsure whether it's good or bad to create another I'm sick of the standard library-style module. I've just become a bit less confident to actually contribute something useful there. Overwhelming. Building a like cgi.py, but with more support for the kind of things people actually need library would be an excellent idea. It's not clear from your posts that you get what things like Django and Zope do, and how that's different from CGI programming, but if you have a deep understanding of the latter, I'm sure you could come up with a nice cgi2.py library with relatively little effort. Get to work! /F -- http://mail.python.org/mailman/listinfo/python-list
Re: Abelson and Python
Chris Mellon wrote; Now, writing a compiler/interpreter from the ground up is a more valuable experience, but does it really matter if the language is the same one you wrote the compiler in? It gets harder the more complicated the syntax and semantics of the language are, but, say, python 1.0 would probably be a suitable goal for coursework. I'd pick mini-python plus basic classes: http://hetland.org/python/mini-python.php /F -- http://mail.python.org/mailman/listinfo/python-list
Re: How do I access a main frunction from an import module?
Jim wrote: I have created an import module. And would like to access a function from the main script, e.g., file abc.py: ### def a(): m() return None file main.py: # from abc import * def m(): print 'something' return None a() ## You can do it with from __main__ import m atop abc.py (the module invoked at the command line is always called __main__). However, I *highly* suggest you put m in another file. Importing variables from __main__ would make your program incompatible with many useful tools. For example, if you invoke the Python profiler on your code, like this: python -m profile main.py it will break your code, because __main__ no longer refers to main.py but to profile.py (from the Python library). Importing from __main__ adversely affects tools such as PyChecker and PyLint. The exception to this would be if abc.py is specifically designed as a utility for interactive use; then it would be ok and useful. Carl Banks -- http://mail.python.org/mailman/listinfo/python-list
Re: How do I access a main frunction from an import module?
Jim wrote: I have created an import module. And would like to access a function from the main script, e.g., file abc.py: ### def a(): m() return None file main.py: # from abc import * def m(): print 'something' return None a() import sys def a(): sys.modules['__main__'].m() return None Anton 'now why would anyone want to do *that* ?' -- http://mail.python.org/mailman/listinfo/python-list
Re: Active State and Komodo...
Steve Thompson wrote: I was wondering the differnced there were betwee Active State's python and the open source version of python. The biggest difference at the moment is that ActiveState is still using Python 2.4.3 in their distribution. They should be coming out with 2.5 soon. Sounds like you are running Suse? So you already have some version of Python, right? You can search this group at comp.lang.python on Google Groups--try python versions linux--or something like that--but the issue you need to watch out for is running two different versions on Linux. Long and short, you don't want to uninstall the version of Python that came with your Suse, because other programs on your machine probably use that particular version. It's easy to install an ADDITIONAL distribution of Python and run it separately, but again. Search the list for how to do that, and how to run them separately once you do. I'm just moving to Linux myself, so can't provide the expertise. Unless there is some killer feature of 2.5 you need, I would just use the Python that came with your Suse. rd -- http://mail.python.org/mailman/listinfo/python-list
Re: Local variables persist in functions?
http://www.python.org/doc/faq/general.html#why-are-default-values-shared-between-objects Thanks for the link. I think I'll stick to None as the default value, as that's a good way to keep the usability and make my code work ;) -- http://mail.python.org/mailman/listinfo/python-list
Re: Pimping the 'cgi' module
Christoph Haas wrote: ... Oh, yeah. I just joined the Web SIG and found out that WSGI seems the way to go. ... I don't want a standard, i want *one* implementation. In the Java world, there are a lot of standards and N*standards implementations. In the end you have the opposite of what a standard should give you: Bad interopability. One implemantation (which is in the standard library) would be the right coice. But what could I do? (I am not a python core developer)? I could only create a new web framework. And that's why there are so many. I hope Guido (or someone else who can do this) will decide to choose one soon. Thomas -- Thomas Güttler, http://www.thomas-guettler.de/ http://www.tbz-pariv.de/ E-Mail: guettli (*) thomas-guettler + de Spam Catcher: [EMAIL PROTECTED] -- http://mail.python.org/mailman/listinfo/python-list
Re: Local variables persist in functions?
John Machin wrote: [EMAIL PROTECTED] wrote: I'm a bit baffled. Here is a bit of fairly straightforward code: def _chunkify( l, chunkSize, _curList = list() ): Quite apart from the default argument problem, which Duncan has addressed, you have some problems with style and variable names. In particular: give variables meaningful names ; L.lower() is not meaningful and also suffers from confusion with the digit 1 in some fonts. There is no necessity for the _ in _curList in the above line. Please consider reading http://www.python.org/dev/peps/pep-0008/ print _curList # yay for printf debugging if len( l ) = chunkSize: _curList.append( l ) else: newChunk = l[:chunkSize] _curList.append( newChunk ) _chunkify( l[chunkSize:], chunkSize, _curList ) return _curList _chunkify simply breaks a sequence into a sequence of smaller lists of size = chunkSize. The first call works fine, but if I call it multiple times, weirdness happens. chunks = _chunkify( list, size ) # _curList keeps its previous value! chunks = _chunkify( list, size, list() )# this works as expected Is the first list a list, or is it the name of the same function that you are calling to provide the 3rd argument? [snip] HTH, John Please consider reading http://www.python.org/dev/peps/pep-0008/ Done. Veru useful, thank you. Even though it's not the most correct way or using the leading _, I was using it to sort of say 'don't set this when calling', and yes--L is a bad name for a list, and I probably should have used something else (even if this code is more of a one-off than anything else). Anyhow, thanks. -- http://mail.python.org/mailman/listinfo/python-list
Re: fast listdir stat
robert wrote: I want to get the files and sizes and times etc. stats of a dir fast. os.listdir iterating with os.stat seems not to run at optimal speed for network folders. Is there a faster possibility? (both for Win *nix ; best platform independent) Robert An alternative is to work with os.walk() it returns a generator - see http://docs.python.org/lib/lib.html, and os.path.getsize(), os.path.gettmtime() - see http://docs.python.org/lib/module-os.path.html -- http://mail.python.org/mailman/listinfo/python-list
Re: Python work in UK
On Thu, 23 Nov 2006 19:28:26 +, Will McGugan [EMAIL PROTECTED] wrote: Hi, I'd love to work in Python, for the sake of my blood pressure, but there doesnt seem to be that many jobs that look for Python as the main skill. I use Python at work from time to time, and occasionaly get to spend several days on a Python project but the majority of the time I use C++. How can I make that leap to working with Python? There doesn't seem to be many UK positions on the jobs section of Python.org or the usual jobs sites. Any recommended jobs sites or tips? (I have googled) In the off chance that a potential empolyer is reading this, I'm looking for something in web development, applications, graphics or other interesting field. Here is a copy of my CV. http://www.willmcgugan.com/cvwillmcgugan.pdf Regards, Will McGugan www.riverhall.co.uk are looking. Steven -- .''`. : :' : `. `'` `- -- http://mail.python.org/mailman/listinfo/python-list
Re: Active State and Komodo...
On Fri, 24 Nov 2006 06:35:21 -0500, Steve Thompson wrote: Hello all, I was wondering the differnced there were betwee Active State's python and the open source version of python. Would I have to unistall my opend souce python? Additonally, how does Active State's Komodo IDE vs. the eric3 IDE unler SuSE Linux v. 10.i? Addionally, is the eric IDE (version 3) an acceptible IDE or are there more easy and more productive IDE's for perl? I'm urining Gnome v. 12.2.2 and Eric v 3.8.1 Thanks Steve Sorry, it was too early in the morning when I wrote this. The last 2 paragraphs should read Addionally, is the eric IDE (version 3) an acceptible IDE or are there more easy and more productive IDE's for python?. I'm using Gnome v. 12.2.2 and Eric v 3.8.1 Thanks again, Steve -- http://mail.python.org/mailman/listinfo/python-list
Re: fast listdir stat
[EMAIL PROTECTED] wrote: robert wrote: I want to get the files and sizes and times etc. stats of a dir fast. os.listdir iterating with os.stat seems not to run at optimal speed for network folders. Is there a faster possibility? (both for Win *nix ; best platform independent) An alternative is to work with os.walk() it returns a generator - see http://docs.python.org/lib/lib.html, and os.path.getsize(), os.path.gettmtime() - see http://docs.python.org/lib/module-os.path.html would be even slower - 2 or 3 (network) calls for each file. os.walk just uses listdir. Robert -- http://mail.python.org/mailman/listinfo/python-list
synching with os.walk()
Hi all os.walk() is a nice generator for performing actions on all files in a directory and subdirectories. However, how can one use os.walk() for walking through two hierarchies at once? I want to synchronise two directories (just backup for now), but cannot see how I can traverse a second one. I do this now with os.listdir() recursively, which works fine, but I am afraid that recursion can become inefficient for large hierarchies. thanks for your help André -- http://mail.python.org/mailman/listinfo/python-list
ANNOUNCE: WSGI XSS Prevention Middleware
Hi, I've just written a python WSGI middleware class to mitigate XSS flaws, it's released under the python license. I've attached the docs below. Cheers Rich. WSGI Middleware class that prevents cross-site scripting flaws in WSGI applications being exploited. Potentially malicious GET and POST variables are checked for, and if found, a 403 Forbidden response is sent to the client. Note that this class can false positive on input such as XML or passwords containing the '' character, so it is not useful in all contexts. In addition, you should note that this middleware is not a replacement for properly validating input and quoting output. This class can be downloaded from: http://www.westpoint.ltd.uk/dist/wsgisecurity.zip Author: Richard Moore, [EMAIL PROTECTED] Copyright: (c) 2006 Westpoint Ltd License: Released under the Python License Version: 1.0 -- http://mail.python.org/mailman/listinfo/python-list
Re: Active State and Komodo...
On Fri, 24 Nov 2006 07:09:36 -0800, BartlebyScrivener wrote: Steve Thompson wrote: I was wondering the differnced there were betwee Active State's python and the open source version of python. The biggest difference at the moment is that ActiveState is still using Python 2.4.3 in their distribution. They should be coming out with 2.5 soon. Sounds like you are running Suse? So you already have some version of Python, right? You can search this group at comp.lang.python on Google Groups--try python versions linux--or something like that--but the issue you need to watch out for is running two different versions on Linux. Long and short, you don't want to uninstall the version of Python that came with your Suse, because other programs on your machine probably use that particular version. It's easy to install an ADDITIONAL distribution of Python and run it separately, but again. Search the list for how to do that, and how to run them separately once you do. I'm just moving to Linux myself, so can't provide the expertise. Unless there is some killer feature of 2.5 you need, I would just use the Python that came with your Suse. rd Thanks BartlebyScrivener, but are there any other IDE's that are better, in your opinion, than Eric version 3. I'm using gnome and eric is built for KDE. I don't care it there open source or Id I have tp puchase one. Thanks again, Steve -- http://mail.python.org/mailman/listinfo/python-list
pexpect problems
I am trying to essentially fork a rsync process from my python script and I am having some issues with the forking part. My program basically checks to see if I need to transfer a file and if it does, it calls the transferItem() function below: def transferItem(filelist): hostname, passwd, transdir, filepath = filelist command = nice -n +19 %s --partial --bwlimit=\%d\ \%s\ %s:%s % (COMMAND_TO_CHECK, BANDWIDTH_LIMIT, filepath, hostname, transdir) p = pexpect.spawn(command) try: ret = p.expect([(yes/no), Password:]) if ret == 0: p.sendline(yes) p.expect(Password:) p.sendline(passwd) p.expect(pexpect.EOF, timeout=999) except: print 'problem transferring file' Now this seems to partially work (it transfers the file) but I have a few issues I'm hoping someone can help me with. First there is the timeout issue. Without the timeout=999 parameter, the default timeout is 30 seconds. I'd rather not have any timeout because the files I need to transfer can be quite large and may take several days in some cases. I tried p.close(wait=False) but that creates a defunct process and doesn't seem to transfer any of the file. I can also say p.interact() which won't timeout on me but it also doesn't fork into the background. I thought the best solution would be to use the p.interact() and fork the process but I can't seem to get that working. Anyone have any ideas or suggestions that might help me? Also just as a background in case it helps, I am currently writing a pickled object (List of list) to a file using a web frontend (using django) and then I have a monitor script which first checks if it should transfer a file (based on how many transfers are currently running) and then opens the pickled object and pop's off the first item and sends that as input to the above function which I'm hoping will start the rsync and then keep on chugging. I'd really appreciate any help anyone could offer. -Chris -- http://mail.python.org/mailman/listinfo/python-list
Re: Pimping the 'cgi' module
Christoph Haas wrote: On Friday 24 November 2006 13:08, robert wrote: well, note, for that they have named it Ruby-On-Rails, so its still the language - leveraged. While it is Zope/Django/Ego-on-Python ... ? If by that you mean that neither Zope nor Django are exactly pythonic I think I concur. on-python, but not python-on :-) - as we discussed about framework vs. directness/intuition Zope and Django's Ego certainly won't fit into/near the stdlib Unless a Guido'ed version of such thing is not _selected_ into the stdlib or at least promoted single-mindedly and prominently by far before high-tech-but-low-number names like Zope and Django, Python will continue to bleed out heavily on numbers vs. Ruby. Guido seems to have been confused about the rank growth of web based frameworks himself. So it's even less likely one of them gets included as part of the standard library in finite time. Yet so he will decide about the magnitude of order of future Python users. I'm sure the door will open once .. Py3K will not make as big a change regarding this magnitude. First need of course: an update of that cgi module. Oh, yeah. I just joined the Web SIG and found out that WSGI seems the way to go. At a first look it seems horrible if you just want to provide a CGI module. But there must be some reason for its existence. :) Looking further through http://wiki.python.org/moin/WebFrameworks my head starts to spin. Somehow I sadly feel I would just add another incomplete framework to that pile. I'm especially unsure whether it's good or bad to create another I'm sick of the standard library-style module. I've just become a bit less confident to actually contribute something useful there. Overwhelming. tying selected techniques together on the right level is the task. Its not forbidden to learn a little from Rails and Perl module structure. python-dev is fully occupied with top-notch inner life. Of course that is the basis. But key issues in libtools were simply forgotten - left to a random community. Which doesn't match the batteries included fuss at all. Of course the basis has to be good, too. And there are so many paradigms today that no core-python developer can really be expected to provide good standard modules for everyone. Go for a start. In order to realize that essential batteries in good quality within time - even after 10 years now - it is necessary, to hook python-dev for even requesting it actively. Just adding to http://wiki.python.org/moin/WebProgramming and http://wiki.python.org/moin/WebFrameworks is not the task. It requires some organization and somewhat a selection process in addition to good (probably existing) code v0.1xxx material. I think it would not be overly complex. Both, a new cgi and possibly included snake rails (vs oil) Oil is deprecated anyway. :) I'll see if I can find my way into the SIG. And - yes - adding another framework will surely not help us out of the divergence. The more frameworks there are the more people seem to feel urged to say heck, it will be easier to write my own framework than evaluate all 30 packages on that page. Christoph -- http://mail.python.org/mailman/listinfo/python-list
Re: synching with os.walk()
os.walk() is a nice generator for performing actions on all files in a directory and subdirectories. However, how can one use os.walk() for walking through two hierarchies at once? I want to synchronise two directories (just backup for now), but cannot see how I can traverse a second one. I do this now with os.listdir() recursively, which works fine, but I am afraid that recursion can become inefficient for large hierarchies. I've run into wanting to work with parallel directory structures before, and what I generally do is something like: for root, dirs, files in os.walk( dir1 ): dir2_root = dir2 + root[len(dir1):] for f in files: dir1_path = os.path.join( root, f ) dir2_path = os.path.join( dir2_root, f ) Does this work for your needs? -- Nils -- http://mail.python.org/mailman/listinfo/python-list
Re: Newbie Developing a Python Extension
Jeremy wrote: Hi, I have been working on Linux 2.6.9 to adapt a C++ module to work as a Python extension with the following setup.py file: from distutils.core import setup, Extension sm=Extension( 'tdma', define_macros=[('__USE_POSIX199309','1')], include_dirs=['/usr/include','/usr/include/python2.3'], library_dirs=['/usr/lib'], sources=['Bitstrea.cpp','bytequeu.cpp','debug.cpp','dlist.cpp', 'GrPort.cpp','IoPort.cpp','LMEmu.cpp','LMEmuPdu.cpp', 'MacPyIf.cpp','per_os_clk.cpp','timer.cpp']) setup(name='MySm', version='0.1.0', description='TDMA MAC', ext_modules=[sm]) The extension uses the POSIX call clock_gettime() and things seem fine when generating the tdma.so file. However, when running the Python program, at a line 'from tdma import init,txdn,txup,...', I get an error message saying 'ImportError: /home/.../tdma.so: undefined symbol: clock_gettime'. You're missing a library. From the clock_gettime man page: NOTE Most systems require the program be linked with the librt library to use these functions. So you need to build the extention with librt. Try adding a 'libraries = ['rt']' option to the extension definition. (Unfortunately, on Linux, builduing a shared object without specifying libraries needed passes silently. It'd be nice if there was an option to require all undefined non-Python symbols to be accounted for by some library, but that would be a lot of work to implement.) Carl Banks -- http://mail.python.org/mailman/listinfo/python-list
Re: Pimping the 'cgi' module
Thomas Guettler wrote: Christoph Haas wrote: ... Oh, yeah. I just joined the Web SIG and found out that WSGI seems the way to go. ... I don't want a standard, i want *one* implementation. In the Java world, there are a lot of standards and N*standards implementations. In the end you have the opposite of what a standard should give you: Bad interopability. One implemantation (which is in the standard library) would be the right coice. But what could I do? (I am not a python core developer)? I could only create a new web framework. And that's why there are so many. I hope Guido (or someone else who can do this) will decide to choose one soon. yes. this talking about formation of somewhat a standardization gremium within some years etc. is not the task. There is enough base material. There are guys who have an overview of what is good. There are guys who know the details. A decision call from the inner circle for an actual (probably joint) implementation is necessary. Regarding the python-on..-framework the greatest danger would be, to make it too big. ( its not about full replacement of the existing big packages ) Robert -- http://mail.python.org/mailman/listinfo/python-list
Re: synching with os.walk()
Andre Meyer wrote: Hi all os.walk() is a nice generator for performing actions on all files in a directory and subdirectories. However, how can one use os.walk() for walking through two hierarchies at once? I want to synchronise two directories (just backup for now), but cannot see how I can traverse a second one. I do this now with os.listdir() recursively, which works fine, but I am afraid that recursion can become inefficient for large hierarchies. thanks for your help André Walk each tree individually gathering file names relative to the head of the tree and modification data. compare the two sets of data to generate: 1. A list of what needs to be copied from the original to the copy. 2. A list of what needs to be copied from the copy to the original Do the copying. |You might want to show the user what needs to be done and give them the option of aborting after generating the copy lists. - Paddy. -- http://mail.python.org/mailman/listinfo/python-list
Invoking Python from Cygwin problem.
Hi all, Using cygwin and Python 2.5, I have the following scripts, one bash script and the other a python script: --- #!/bin/bash TEST_VAR=`./test.py` TEST_VAR2=Test2 echo Test var: $TEST_VAR OK echo Test var2: $TEST_VAR2 OK -- #!/usr/bin/python print Testing, Running the bash script, I get the following output: OKt var: Testing Test var2: Test2 OK Does anyone have any idea why the script would mess up the first echo? Are there some kind of control characters being appended to the python output in Windows? Looks like a CR character, but why? Cheers, -- http://mail.python.org/mailman/listinfo/python-list
Re: How do I access a main frunction from an import module?
Jim wrote: I have created an import module. And would like to access a function from the main script, e.g., May I ask why? This style violates normal module philosophy. Regards, Björn -- BOFH excuse #307: emissions from GSM-phones -- http://mail.python.org/mailman/listinfo/python-list
Re: NFS server
srj wrote: i wish to develop an NFS server usin python from scratch( some wise guy told me i'ts easy!). That wise guy must be very wise, or stupid 8) can i get any kinda tutorial for this?? any suggestions on how 2 begin? - Read RFCs about NFS - Read the Python tutorial - If you want it even easier, read the Twisted tutorial additionally Regards, Björn -- BOFH excuse #279: The static electricity routing is acting up... -- http://mail.python.org/mailman/listinfo/python-list
Re: synching with os.walk()
Paddy wrote: Andre Meyer wrote: Hi all os.walk() is a nice generator for performing actions on all files in a directory and subdirectories. However, how can one use os.walk() for walking through two hierarchies at once? I want to synchronise two directories (just backup for now), but cannot see how I can traverse a second one. I do this now with os.listdir() recursively, which works fine, but I am afraid that recursion can become inefficient for large hierarchies. thanks for your help André Walk each tree individually gathering file names relative to the head of the tree and modification data. compare the two sets of data to generate: 1. A list of what needs to be copied from the original to the copy. 2. A list of what needs to be copied from the copy to the original Do the copying. |You might want to show the user what needs to be done and give them the option of aborting after generating the copy lists. - Paddy. P.S. If you are on a Unix type system you can use tar to do the copying as you can easily compress the data if it needs to go over a sow link, and tar will take care of creating any needed directories in the destination if you create new directories as well as new files. - Paddy. -- http://mail.python.org/mailman/listinfo/python-list
Re: reading id3 tags with python
well, heres the error:: ## Traceback (most recent call last): File ./main.py, line 28, in ? info = id3.Reader(file) File /home/jeffrey/Documents/Music/.rename/id3reader.py, line 187, in __init__ self._readId3() File /home/jeffrey/Documents/Music/.rename/id3reader.py, line 306, in _readId3 self._interpretFlags() File /home/jeffrey/Documents/Music/.rename/id3reader.py, line 341, in _interpretFlags self._readExtHeader = _readExtHeader_rev3 NameError: global name '_readExtHeader_rev3' is not defined also, i didnt account for Y/N/Yes/No, whatever because this script is just for myself (also why i didnt use that function to join pathnames, i oonly realy use linux anymore) and what do you mean by 'id3reader' cant do directories? my for loop just does each file in the dirextory -- http://mail.python.org/mailman/listinfo/python-list
Re: Pimping the 'cgi' module
Fredrik Lundh wrote: Christoph Haas wrote: well, note, for that they have named it Ruby-On-Rails, so its still the language - leveraged. While it is Zope/Django/Ego-on-Python ... ? If by that you mean that neither Zope nor Django are exactly pythonic I think I concur. Django is highly Pythonic (it's pure Python plus templates, and has the same pencil-like qualities as Python itself). Zope 3 is highly Pythonic too, but a rather more advanced form of Python. but they're both application servers, not CGI scripting environments. pythonic yes, but ..-on-python First need of course: an update of that cgi module. Oh, yeah. I just joined the Web SIG and found out that WSGI seems the way to go. At a first look it seems horrible if you just want to provide a CGI module. WSGI is a CGI replacement, not a CGI implementation. Which is a good thing, because what really matters, if you think about what a web server is doing, is the HTTP protocol, not an old and not always practical httpd extension standard. WSGI simply provides plumbing for working very close to the HTTP level. (you can of course create a WSGI-compatible adapter for CGI in no time at all, but that's not really the point of WSGI). its a low level tech basis. Regarding the discussion here, its also the enabler for the confusion :-) Somehow I sadly feel I would just add another incomplete framework to that pile. as they say, if you don't understand history, you're bound to repeat it ;-) we are currently bound to repeat 30+ histories. no wonder - nobody will ever understand it and go to Rails Co. I'm especially unsure whether it's good or bad to create another I'm sick of the standard library-style module. I've just become a bit less confident to actually contribute something useful there. Overwhelming. Building a like cgi.py, but with more support for the kind of things people actually need library would be an excellent idea. It's not clear from your posts that you get what things like Django and Zope do, and how that's different from CGI programming, but if you have a deep understanding of the latter, I'm sure you could come up with a nice cgi2.py library with relatively little effort. Get to work! think both are missing standard modules: cgi2 and a comfortable OO-dispatcher/server with clear tutorials. And to have them in front on the Python display window. Robert -- http://mail.python.org/mailman/listinfo/python-list
Re: synching with os.walk()
os.walk() is a nice generator for performing actions on all files in a directory and subdirectories. However, how can one use os.walk() for walking through two hierarchies at once? I want to synchronise two directories (just backup for now), but cannot see how I can traverse a second one. I do this now with os.listdir() recursively, which works fine, but I am afraid that recursion can become inefficient for large hierarchies. I've run into wanting to work with parallel directory structures before, and what I generally do is something like: for root, dirs, files in os.walk( dir1 ): dir2_root = dir2 + root[len(dir1):] for f in files: dir1_path = os.path.join( root, f ) dir2_path = os.path.join( dir2_root, f ) Wouldn't it be better to implement tree traversing into a class, then you can traverse two directory trees at once and can do funny things with it? Thomas -- http://mail.python.org/mailman/listinfo/python-list
Re: Active State and Komodo...
Steve Thompson wrote: On Fri, 24 Nov 2006 06:35:21 -0500, Steve Thompson wrote: Addionally, is the eric IDE (version 3) an acceptible IDE or are there more easy and more productive IDE's for perl? Perl? You're on a Python list? Anyway, the subject of IDEs comes up every other day. If you want comparisons or discussion of Eric and Python, search the group for Eric IDE http://groups.google.com/group/comp.lang.python/search?q=eric+idestart=0scoring=d; If the link breaks, use: http://tinyurl.com/yxy8vv I use vim 7.0 and Komodo myself. Both are cross platform. You'll see hundreds of different opinions here. rd A couple of months in the laboratory can save a couple of hours in the library. -- http://mail.python.org/mailman/listinfo/python-list
Re: Local variables persist in functions?
[EMAIL PROTECTED] wrote in message news:[EMAIL PROTECTED] I'm a bit baffled. Here is a bit of fairly straightforward code: def _chunkify( l, chunkSize, _curList = list() ): print _curList # yay for printf debugging Check out Winpdb at http://www.digitalpeers.com/pythondebugger/. -- Paul -- http://mail.python.org/mailman/listinfo/python-list
Re: synching with os.walk()
That sounds like a good approach. On 24 Nov 2006 08:27:09 -0800, Paddy [EMAIL PROTECTED] wrote: Andre Meyer wrote: Hi all os.walk() is a nice generator for performing actions on all files in a directory and subdirectories. However, how can one use os.walk() for walking through two hierarchies at once? I want to synchronise two directories (just backup for now), but cannot see how I can traverse a second one. I do this now with os.listdir() recursively, which works fine, but I am afraid that recursion can become inefficient for large hierarchies. thanks for your help André Walk each tree individually gathering file names relative to the head of the tree and modification data. compare the two sets of data to generate: 1. A list of what needs to be copied from the original to the copy. 2. A list of what needs to be copied from the copy to the original Do the copying. |You might want to show the user what needs to be done and give them the option of aborting after generating the copy lists. - Paddy. -- http://mail.python.org/mailman/listinfo/python-list -- http://mail.python.org/mailman/listinfo/python-list
Re: Python popenX() slowness on AIX?
Stefaan A Eeckels wrote: On 21 Nov 2006 13:02:14 -0800 [EMAIL PROTECTED] wrote: The fact that it does this in Python code instead of C is the main cause of the slowness. So, unless Python is changed to do this in C, it's always going to be slow on AIX :-( I guess that the reason it's slow is that there are many descriptors to try and close. Reducing them using ulimit -n could improve the speed. AIX has a fcntl command to close all open file descriptors from a descriptor onwards: fcntl(3, F_CLOSEM); This of course should be used instead of the loop: import sys import fcntl __all__ = [popen2, popen3, popen4] ... def _run_child(self, cmd): if isinstance(cmd, basestring): cmd = ['/bin/sh', '-c', cmd] try: os.fcntl(3, 10, 0) except OSError: pass try: os.execvp(cmd[0], cmd) finally: os._exit(1) 10 happens to be the value of F_CLOSEM (from /usr/include/fcntl.h). I've currently no access to an AIX system with Python, but it could be worth trying. Yes, very much worth it. F_CLOSEM is _so_ much better than the loop, even in C. Using your brilliant suggestion, I now have a simple patch to the python source that implements it for any OS that happens to have the fcntl F_CLOSEM option. It is below in its entirety. I believe I got the try: stuff correct, but since I'm new to Python, I'd appreciate any comments. I have another patch to implement my os.rclose(x,y) method, which would improve the speed of popenX() for the OSes that don't have F_CLOSEM, by doing the close() loop in C instead of Python, but I don't know if it would be as likely to be accepted as this probably would be. Now, where do I send my proposed patch for consideration? John. --- ./Modules/fcntlmodule.c.origThu Jun 3 08:47:26 2004 +++ ./Modules/fcntlmodule.c Fri Nov 24 11:18:23 2006 @@ -545,6 +545,11 @@ if (ins(d, DN_MULTISHOT, (long)DN_MULTISHOT)) return -1; #endif +/* For systems like AIX that have F_CLOSEM to close multiple fds */ +#ifdef F_CLOSEM +if (ins(d, F_CLOSEM, (long)F_CLOSEM)) return -1; +#endif + #ifdef HAVE_STROPTS_H /* Unix 98 guarantees that these are in stropts.h. */ INS(I_PUSH); --- ./Lib/popen2.py.origThu Feb 10 08:46:14 2005 +++ ./Lib/popen2.py Fri Nov 24 11:37:15 2006 @@ -8,6 +8,7 @@ import os import sys +import fcntl __all__ = [popen2, popen3, popen4] @@ -65,11 +66,18 @@ def _run_child(self, cmd): if isinstance(cmd, basestring): cmd = ['/bin/sh', '-c', cmd] -for i in range(3, MAXFD): -try: -os.close(i) -except OSError: -pass + try: + if fcntl.F_CLOSEM: + try: + fcntl.fcntl(3, fcntl.F_CLOSEM, 0) + except OSError: + pass + except AttributeError: + for i in range(3, MAXFD): + try: + os.close(i) + except OSError: + pass try: os.execvp(cmd[0], cmd) finally: -- http://mail.python.org/mailman/listinfo/python-list
Re: synching with os.walk()
What I forgot to mention is that I want this to run unmodified from both Windows and Linux (and Mac). Otherwise, there are enough options to choose from, besides developing it myself, I guess. On 24 Nov 2006 08:37:13 -0800, Paddy [EMAIL PROTECTED] wrote: Paddy wrote: Andre Meyer wrote: Hi all os.walk() is a nice generator for performing actions on all files in a directory and subdirectories. However, how can one use os.walk() for walking through two hierarchies at once? I want to synchronise two directories (just backup for now), but cannot see how I can traverse a second one. I do this now with os.listdir() recursively, which works fine, but I am afraid that recursion can become inefficient for large hierarchies. thanks for your help André Walk each tree individually gathering file names relative to the head of the tree and modification data. compare the two sets of data to generate: 1. A list of what needs to be copied from the original to the copy. 2. A list of what needs to be copied from the copy to the original Do the copying. |You might want to show the user what needs to be done and give them the option of aborting after generating the copy lists. - Paddy. P.S. If you are on a Unix type system you can use tar to do the copying as you can easily compress the data if it needs to go over a sow link, and tar will take care of creating any needed directories in the destination if you create new directories as well as new files. - Paddy. -- http://mail.python.org/mailman/listinfo/python-list -- Dr. Andre P. Meyerhttp://python.openspace.nl/meyer TNO Defence, Security and Safety http://www.tno.nl/ Delft Cooperation on Intelligent Systems http://www.decis.nl/ Ah, this is obviously some strange usage of the word 'safe' that I wasn't previously aware of. - Douglas Adams -- http://mail.python.org/mailman/listinfo/python-list
Re: synching with os.walk()
Paddy wrote: P.S. If you are on a Unix type system you can use tar to do the copying as you can easily compress the data if it needs to go over a sow link, Sow links, transfers your data and then may form a tasty sandwich when cooked. (The original should, of course, read ...slow...) - Pad. -- http://mail.python.org/mailman/listinfo/python-list
Re: synching with os.walk()
Cool, this seems to work. thanks! On 24 Nov 2006 08:12:08 -0800, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote: os.walk() is a nice generator for performing actions on all files in a directory and subdirectories. However, how can one use os.walk() for walking through two hierarchies at once? I want to synchronise two directories (just backup for now), but cannot see how I can traverse a second one. I do this now with os.listdir() recursively, which works fine, but I am afraid that recursion can become inefficient for large hierarchies. I've run into wanting to work with parallel directory structures before, and what I generally do is something like: for root, dirs, files in os.walk( dir1 ): dir2_root = dir2 + root[len(dir1):] for f in files: dir1_path = os.path.join( root, f ) dir2_path = os.path.join( dir2_root, f ) Does this work for your needs? -- Nils -- http://mail.python.org/mailman/listinfo/python-list -- Dr. Andre P. Meyerhttp://python.openspace.nl/meyer TNO Defence, Security and Safety http://www.tno.nl/ Delft Cooperation on Intelligent Systems http://www.decis.nl/ Ah, this is obviously some strange usage of the word 'safe' that I wasn't previously aware of. - Douglas Adams -- http://mail.python.org/mailman/listinfo/python-list
Re: Modules - Jython Vs Python?
Patrick Finnegan writes: How many of the Python modules written in C have been rewritten and and ported to Java to run under Jython? I am talking about SMTP, LDAP, WIN2K,XML etc. Is there a list anywhere ? There's a list on the jython wiki of absent modules: http://wiki.python.org/jython/AbsentModules though i can't vouch for it being up to date. - kz -- http://mail.python.org/mailman/listinfo/python-list
Re: How do I access a main frunction from an import module?
Bjoern Schliessmann wrote: Jim wrote: I have created an import module. And would like to access a function from the main script, e.g., May I ask why? This style violates normal module philosophy. Regards, Björn -- BOFH excuse #307: emissions from GSM-phones Application abc is designed as a complete module. The user is to script their own functions to work with application abc. Thanks, JIm -- http://mail.python.org/mailman/listinfo/python-list
Re: Active State and Komodo...
Steve Thompson wrote: On Fri, 24 Nov 2006 07:09:36 -0800, BartlebyScrivener wrote: Steve Thompson wrote: I was wondering the differnced there were betwee Active State's python and the open source version of python. The biggest difference at the moment is that ActiveState is still using Python 2.4.3 in their distribution. They should be coming out with 2.5 soon. Sounds like you are running Suse? So you already have some version of Python, right? You can search this group at comp.lang.python on Google Groups--try python versions linux--or something like that--but the issue you need to watch out for is running two different versions on Linux. Long and short, you don't want to uninstall the version of Python that came with your Suse, because other programs on your machine probably use that particular version. It's easy to install an ADDITIONAL distribution of Python and run it separately, but again. Search the list for how to do that, and how to run them separately once you do. I'm just moving to Linux myself, so can't provide the expertise. Unless there is some killer feature of 2.5 you need, I would just use the Python that came with your Suse. rd Thanks BartlebyScrivener, but are there any other IDE's that are better, in your opinion, than Eric version 3. I'm using gnome and eric is built for KDE. I don't care it there open source or Id I have tp puchase one. Thanks again, Steve I like Eclipse/Pydev better hg -- http://mail.python.org/mailman/listinfo/python-list
Pydev configuration
Hi, Did anyone managed to change the code font family/size in Pydev (Python Editor Plugin for Eclipse) ? I found how to change the color mapping (Windows/Preference/Pydev) but did not found the font setting. Cheers, SB -- http://mail.python.org/mailman/listinfo/python-list
Re: Access to variable from external imported module
On Friday 24 November 2006 03:30, John Machin wrote: jim-on-linux wrote: GinTon, I think this is what you want. class Kdoi: Is that a typo? No, it's a style. life seems to be easier to me if one is consistent, all my classes begin with K. def __init__(self) : self.Fdo() What is all this K and F stuff? It's my style. life seems to be easier to me if one is consistent all my function begin with F. I started doing things like this when the only way to debug was to read each line of code and try to figgure out if it was the problem. They are my personal sign posts. def Fdo(self): searchterm = 'help' print searchterm #local self.searchterm = searchterm print self.searchterm #used inside the class Kdo.searchterm = searchterm # print Kdo.searchterm #used outside the class Kdomore() class Kdomore(Kdo): def __init__(self) : self.Fdomore() def Fdomore(self): searchterm = Kdo.searchterm # print searchterm It's not apparent what the print statements are for -- are they part of an attempt to debug your code? print shows the results wherever a print statement turns up the results = 'help' . I didn't run the code, and it has it has a coding error but if removed, the results should be; searchterm = 'help' self.searchterm = 'help' Kdo.searchterm = 'help' Sound silly but many people have trouble with getting a variable from here to there in their code. This shows that it can be done What gives you the idea that this is what the OP wants or needs? If I remember right, he refrased his first question and asked a second one. Sometimes people don't take the time to write correctly, the questions that are really in their mind. So I guessed. If Im wrong, he will ignore it. If I'm right, he will use it. Also, I have found that other will latch on to the ideas presented in these email responses. And they will use them, even though the response was not exactly what the original emailer wanted. And, I sometimes I do use print statements to debug, I have used other ways but on linux, I prefer a print statement. jim-on-linux http://www.inqvista.com -- http://mail.python.org/mailman/listinfo/python-list
Re: How do I access a main frunction from an import module?
Jim wrote: Hi, I have created an import module. And would like to access a function from the main script, e.g., file abc.py: ### def a(): m() return None file main.py: # from abc import * def m(): print 'something' return None a() ## python25.exe main.py Although there are literally correct answers to your question, the best answer is Don't do that. You would be creating circular references between modules, and run the risk of emulating the mythical ooloo bird by disappearing up your own fundamental orifice. Some possible practical solutions: 1. Put the m function in a 3rd file/module. Then any other module which needs it can import/call. 2. If you think that's not a good idea, then put it in abc.py (it's not used in main.py in your example). 3. Maybe this will suit what you are really trying to do: file abc.py: ### def a(argfunc): # = argfunc() # = file main.py: # from abc import * def m(): print 'something' a(m) # = ## 4. If you think *that's* not a good idea, then you might like to explain at a higher level what you are *really* trying to achieve :-) E.g. Function m is one of n functions in main.py of which abc.py may/must call 0, 1, or many because blah blah blah ... BTW, return None at the very end of a function is redundant. The Python compiler generates return None automagically (implicitly!?) instead of letting you fall off the end of the world. Which book or tutorial are you using? BTW #2: python25.exe main.py ?? If you are on Windows, have Python 2.4 as your default setup, and are trialling 2.5: you may like to ask (in a new thread) about more convenient ways of doing it. Otherwise you might like to tell what you are up to (in a new thread) so that your problem can be diagnosed correctly and cured :-) HTH, John -- http://mail.python.org/mailman/listinfo/python-list
Re: Access to variable from external imported module
On Friday 24 November 2006 13:01, jim-on-linux wrote: On Friday 24 November 2006 03:30, John Machin wrote: jim-on-linux wrote: GinTon, I think this is what you want. class Kdoi: Is that a typo? No, it's a style. life seems to be easier to me if one is consistent, all my classes begin with K. Sorry, Kdoi should be Kod def __init__(self) : self.Fdo() What is all this K and F stuff? It's my style. life seems to be easier to me if one is consistent all my function begin with F. I started doing things like this when the only way to debug was to read each line of code and try to figgure out if it was the problem. They are my personal sign posts. def Fdo(self): searchterm = 'help' print searchterm #local self.searchterm = searchterm print self.searchterm #used inside the class Kdo.searchterm = searchterm # print Kdo.searchterm #used outside the class Kdomore() the line above should be Kdomore(), not class Kdomore() (For the technocrats) class Kdomore(Kdo): def __init__(self) : self.Fdomore() def Fdomore(self): searchterm = Kdo.searchterm # print searchterm It's not apparent what the print statements are for -- are they part of an attempt to debug your code? print shows the results wherever a print statement turns up the results = 'help' . I didn't run the code, and it has it has a coding error but if removed, the results should be; searchterm = 'help' self.searchterm = 'help' Kdo.searchterm = 'help' Sound silly but many people have trouble with getting a variable from here to there in their code. This shows that it can be done What gives you the idea that this is what the OP wants or needs? If I remember right, he refrased his first question and asked a second one. Sometimes people don't take the time to write correctly, the questions that are really in their mind. So I guessed. If Im wrong, he will ignore it. If I'm right, he will use it. Also, I have found that other will latch on to the ideas presented in these email responses. And they will use them, even though the response was not exactly what the original emailer wanted. And, I sometimes I do use print statements to debug, I have used other ways but on linux, I prefer a print statement. jim-on-linux http://www.inqvista.com -- http://mail.python.org/mailman/listinfo/python-list
Re: How do I access a main frunction from an import module?
Jim wrote: Application abc is designed as a complete module. The user is to script their own functions to work with application abc. so use execfile() with a prepared namespace: namespace = { ...stuff to export to the module ... } execfile(directory/module.py, namespace) /F -- http://mail.python.org/mailman/listinfo/python-list
Re: How do I access a main frunction from an import module?
John Machin wrote: Jim wrote: Hi, I have created an import module. And would like to access a function from the main script, e.g., file abc.py: ### def a(): m() return None file main.py: # from abc import * def m(): print 'something' return None a() ## python25.exe main.py Although there are literally correct answers to your question, the best answer is Don't do that. You would be creating circular references between modules, and run the risk of emulating the mythical ooloo bird by disappearing up your own fundamental orifice. Some possible practical solutions: 1. Put the m function in a 3rd file/module. Then any other module which needs it can import/call. 2. If you think that's not a good idea, then put it in abc.py (it's not used in main.py in your example). 3. Maybe this will suit what you are really trying to do: file abc.py: ### def a(argfunc): # = argfunc() # = file main.py: # from abc import * def m(): print 'something' a(m) # = ## 4. If you think *that's* not a good idea, then you might like to explain at a higher level what you are *really* trying to achieve :-) E.g. Function m is one of n functions in main.py of which abc.py may/must call 0, 1, or many because blah blah blah ... BTW, return None at the very end of a function is redundant. The Python compiler generates return None automagically (implicitly!?) instead of letting you fall off the end of the world. Which book or tutorial are you using? BTW #2: python25.exe main.py ?? If you are on Windows, have Python 2.4 as your default setup, and are trialling 2.5: you may like to ask (in a new thread) about more convenient ways of doing it. Otherwise you might like to tell what you are up to (in a new thread) so that your problem can be diagnosed correctly and cured :-) HTH, John BTW#1: I have most of the python books from O'Reilly. I'm sure that some of them say that its a good idea to use 'return None'. However, most their examples do not us it. Anyway I find that its useful when reading my own scripts. BTW#2: I do not have Python 2.4 installed anymore. Therefore, it is not a trialling problem. I thought that it would be NICE to keep the application and the user's script separate from each other, being that python is so flexible. However, there seems to be no end to the problems that occur by doing this. So I will abandon this exercise, since it appears not to be a very good programming practise. Thanks, Jim -- http://mail.python.org/mailman/listinfo/python-list
Re: Access to variable from external imported module
On Friday 24 November 2006 13:20, jim-on-linux wrote: On Friday 24 November 2006 13:01, jim-on-linux wrote: On Friday 24 November 2006 03:30, John Machin wrote: jim-on-linux wrote: GinTon, I think this is what you want. class Kdoi: Is that a typo? No, it's a style. life seems to be easier to me if one is consistent, all my classes begin with K. Sorry, Kdoi should be Kod Sorry again Kdoi should be Kdo (Haste makes waste.) def __init__(self) : self.Fdo() What is all this K and F stuff? It's my style. life seems to be easier to me if one is consistent all my function begin with F. I started doing things like this when the only way to debug was to read each line of code and try to figgure out if it was the problem. They are my personal sign posts. def Fdo(self): searchterm = 'help' print searchterm #local self.searchterm = searchterm print self.searchterm #used inside the class Kdo.searchterm = searchterm # print Kdo.searchterm #used outside the class Kdomore() the line above should be Kdomore(), not class Kdomore() (For the technocrats) class Kdomore(Kdo): def __init__(self) : self.Fdomore() def Fdomore(self): searchterm = Kdo.searchterm # print searchterm It's not apparent what the print statements are for -- are they part of an attempt to debug your code? print shows the results wherever a print statement turns up the results = 'help' . I didn't run the code, and it has it has a coding error but if removed, the results should be; searchterm = 'help' self.searchterm = 'help' Kdo.searchterm = 'help' Sound silly but many people have trouble with getting a variable from here to there in their code. This shows that it can be done What gives you the idea that this is what the OP wants or needs? If I remember right, he refrased his first question and asked a second one. Sometimes people don't take the time to write correctly, the questions that are really in their mind. So I guessed. If Im wrong, he will ignore it. If I'm right, he will use it. Also, I have found that other will latch on to the ideas presented in these email responses. And they will use them, even though the response was not exactly what the original emailer wanted. And, I sometimes I do use print statements to debug, I have used other ways but on linux, I prefer a print statement. jim-on-linux http://www.inqvista.com -- http://mail.python.org/mailman/listinfo/python-list
Re: How do I access a main frunction from an import module?
This is an interesting question. It almost looks like a case of event-driven programming, where main is the plug-in and abc is the framework. http://eventdrivenpgm.sourceforge.net/ So how about something like this: ## abc.py # # an abstract function. # It should be over-ridden in the calling program # def m(): raise AssertionError(You should have over-ridden abstract function m()) def a(): m() return None ### main.py import abc # instantiate the framework # define our our concrete function m def m(): print 'something' return None #--- # override the abstract function abc.m() # with our own concrete function m(). # Comment out this line and see what happens. #--- abc.m = m # invoke the a() function in the abc framework abc.a() # -- http://mail.python.org/mailman/listinfo/python-list
Re: Access to variable from external imported module
jim-on-linux wrote: On Friday 24 November 2006 03:30, John Machin wrote: jim-on-linux wrote: GinTon, I think this is what you want. class Kdoi: Is that a typo? No, it's a style. life seems to be easier to me if one is consistent, all my classes begin with K. and end with i? def __init__(self) : self.Fdo() What is all this K and F stuff? It's my style. life seems to be easier to me if one is consistent all my function begin with F. You left out a word; the correct way of phrasing that is: All my function _are_ begin with F :-) This appears to be a variation on Hungarian notation; google that for opinions pro con. In a certain vernacular, it would be called an effed concept :-) I started doing things like this when the only way to debug was to read each line of code and try to figgure out if it was the problem. When was that? Even years ago, there were slightly better ways. For example, my first boss' boss was an enthusiastic coder and debugger and also a workaholic. Colleagues who lived along the same railway line as he and were foolish enough not to hide behind a newspaper could have their morning or evening reverie disturbed by a cry of Glad you're here! I'll hold the listing, you hold the dump!. I get the impression that debugging techniques have moved along a little bit since then. :-) They are my personal sign posts. def Fdo(self): searchterm = 'help' print searchterm #local self.searchterm = searchterm print self.searchterm #used inside the class Kdo.searchterm = searchterm # print Kdo.searchterm #used outside the class Kdomore() class Kdomore(Kdo): def __init__(self) : self.Fdomore() def Fdomore(self): searchterm = Kdo.searchterm # print searchterm It's not apparent what the print statements are for -- are they part of an attempt to debug your code? print shows the results wherever a print statement turns up the results = 'help' . I didn't run the code, and it has it has a coding error I noticed. but if removed, the results should be; searchterm = 'help' self.searchterm = 'help' Kdo.searchterm = 'help' No, the result would be help help help Plug in a text-to-speech module and a phone dialer and you're done ;-) Sound silly but many people have trouble with getting a variable from here to there in their code. This shows that it can be done What gives you the idea that this is what the OP wants or needs? If I remember right, he refrased his first question and asked a second one. Sometimes people don't take the time to write correctly, the questions that are really in their mind. So I guessed. If Im wrong, he will ignore it. If I'm right, he will use it. With luck. Kindly consider another possibility: that you are wrong (or just marching to the beat of your own tambourine) and he (or she) is a newbie will use it :-) [snip] HTH, John -- http://mail.python.org/mailman/listinfo/python-list
cron job times out
Hello, I have a few lines of code retrieving a web page and saving some variables from it to a log. And everything works nice from command line. but, when I make a cron job, I get an error: Your cron job on fly cd $HOME/bin/ ; python newartlog.py ; cd produced the following output: Traceback (most recent call last): File newartlog.py, line 11, in ? response = urllib2.urlopen(req) File /usr/local/lib/python2.4/urllib2.py, line 130, in urlopen return _opener.open(url, data) File /usr/local/lib/python2.4/urllib2.py, line 358, in open response = self._open(req, data) File /usr/local/lib/python2.4/urllib2.py, line 376, in _open '_open', req) File /usr/local/lib/python2.4/urllib2.py, line 337, in _call_chain result = func(*args) File /usr/local/lib/python2.4/urllib2.py, line 1021, in http_open return self.do_open(httplib.HTTPConnection, req) File /usr/local/lib/python2.4/urllib2.py, line 996, in do_open raise URLError(err) urllib2.URLError: urlopen error (145, 'Connection timed out') It seems that the connection timed out. But, every time I execute the script from the command line, everything goes fine. And every time he cron job triggers, it times out. How come? -- Now the storm has passed over me I'm left to drift on a dead calm sea And watch her forever through the cracks in the beams Nailed across the doorways of the bedrooms of my dreams -- http://mail.python.org/mailman/listinfo/python-list
Re: Trying to understand Python objects
In article [EMAIL PROTECTED], Bruno Desthuilliers [EMAIL PROTECTED] wrote: Aahz a écrit : In article [EMAIL PROTECTED], Ben Finney [EMAIL PROTECTED] wrote: Typically, classes are created as a subclass of another class. The top-level basic type in Python is 'object', so if your class doesn't make sense deriving from anything else, derive from 'object'. class Point(object): pass Defining a class with *no* superclass is not recommended. If you don't yet understand the difference between the above style (called a new-style class) and the style you presented, you should always derive from a superclass ('object' or something more specific) until you encounter a situation where that causes a problem. Side note: I disagree with the above advice, but it's Thanksgiving and I don't have enough room on the margin for the proof. I think classic classes are just fine. Don't see it as a religious point please, but I fail to understand why you seem so in love with old-style classes ? new-style classes are the official Python object model since 2.2 (which is a few years ago now), and the last mandatory use of them (exceptions...) disappeared with the 2.5. AFAIK, everything you do with old-style classes can be done with new-style ones. FWIW, old-style classes support is now only for backward compat. So *why* insisting on using them ? There's a big difference between saying always use old-style classes and classic classes are just fine. So I'm certainly not in love with or insisting on using classic classes. Mostly what I'm saying is that I think it's kinda gross and grotesque for newcomers to be told to use class Point(object): pass instead of class Point: pass You are also wrong about new-style classes being the official object model -- the tutorial doesn't even mention them yet! I also think that new-style classes should be avoided in Python 2.2 because of the subtle differences that were introduced in 2.3 -- and 2.2 is still in active use. -- Aahz ([EMAIL PROTECTED]) * http://www.pythoncraft.com/ In many ways, it's a dull language, borrowing solid old concepts from many other languages styles: boring syntax, unsurprising semantics, few automatic coercions, etc etc. But that's one of the things I like about it. --Tim Peters on Python, 16 Sep 1993 -- http://mail.python.org/mailman/listinfo/python-list
Re: How do I access a main frunction from an import module?
Jim wrote: John Machin wrote: Jim wrote: Hi, I have created an import module. And would like to access a function from the main script, e.g., file abc.py: ### def a(): m() return None file main.py: # from abc import * def m(): print 'something' return None a() ## python25.exe main.py Although there are literally correct answers to your question, the best answer is Don't do that. You would be creating circular references between modules, and run the risk of emulating the mythical ooloo bird by disappearing up your own fundamental orifice. Some possible practical solutions: 1. Put the m function in a 3rd file/module. Then any other module which needs it can import/call. 2. If you think that's not a good idea, then put it in abc.py (it's not used in main.py in your example). 3. Maybe this will suit what you are really trying to do: file abc.py: ### def a(argfunc): # = argfunc() # = file main.py: # from abc import * def m(): print 'something' a(m) # = ## 4. If you think *that's* not a good idea, then you might like to explain at a higher level what you are *really* trying to achieve :-) E.g. Function m is one of n functions in main.py of which abc.py may/must call 0, 1, or many because blah blah blah ... BTW, return None at the very end of a function is redundant. The Python compiler generates return None automagically (implicitly!?) instead of letting you fall off the end of the world. Which book or tutorial are you using? BTW #2: python25.exe main.py ?? If you are on Windows, have Python 2.4 as your default setup, and are trialling 2.5: you may like to ask (in a new thread) about more convenient ways of doing it. Otherwise you might like to tell what you are up to (in a new thread) so that your problem can be diagnosed correctly and cured :-) HTH, John BTW#1: I have most of the python books from O'Reilly. I'm sure that some of them say that its a good idea to use 'return None'. Instead of return None, consider using return for refund ;-) However, most their examples do not us it. Anyway I find that its useful when reading my own scripts. BTW#2: I do not have Python 2.4 installed anymore. Therefore, it is not a trialling problem. Looks like it *was* a trialling problem, with weird residual effects. The point was that it's a very strange practice to (a) name the executable python25.exe [standard installation would produce C:\Python25\python.exe] (b) want/need to use .exe when invoking it. I thought that it would be NICE to keep the application and the user's script separate from each other, being that python is so flexible. Most other people think that that's a very nice idea too; there was just no clue in your original posting about what you were really trying to do. However, there seems to be no end to the problems that occur by doing this. So I will abandon this exercise, since it appears not to be a very good programming practise. So what about my suggestion 3? I got the impression from your reply to Bjoern that it was a good fit for your case. The functions are in what we now know to be the user's script, and the app calls them. What problems? Cheers, John -- http://mail.python.org/mailman/listinfo/python-list
Re: SQLite3__Python2.3-SQLite__Problem
SQLite3 data bases created via the command line and those created using the python2.3-sqlite package version 1.0.1-2 from within a Python program are not compatible with each other If I create an SQLite3 data base from the command line and populate it with data, then I cannot use that db from Python If I create an SQLite3 data base from within Python and populate it with data, then I cannot use that db from the command line This problem is occuring under Debian GNU/Linux Sarge using Python 2.3 This morning for a sanity check on myself I installed SQLite3 and PySQLite2 on a Win2K box running ActiveState Python 2.4 The only things that I had to change in the Python code for creating tables, inserting data, and querying the db that I'm also using under Debian were the import lines from import sqlite to .. from pysqlite2 import dbapi2 as DB Using this setup under Win2K everything works as expected That is SQLite3 data bases created either via the sqlite3 command line or from within Python are 100% transparent, and no errors are produced I'm now off to look for a version of PySQLite2 that is built for Debian Sarge and Python 2.3 to see if that might help to rectify the problem -- Stanley C. Kitching Human Being Phoenix, Arizona == Posted via Newsfeeds.Com - Unlimited-Unrestricted-Secure Usenet News== http://www.newsfeeds.com The #1 Newsgroup Service in the World! 120,000+ Newsgroups = East and West-Coast Server Farms - Total Privacy via Encryption = -- http://mail.python.org/mailman/listinfo/python-list
Re: Pydev configuration
Sébastien Boisgérault a écrit : Hi, Did anyone managed to change the code font family/size in Pydev (Python Editor Plugin for Eclipse) ? I found how to change the color mapping (Windows/Preference/Pydev) but did not found the font setting. Cheers, SB Salut Sébastien, Preferences/General/Appearence/ColorsFonts/ in the right menu choose Basic/Text Font 6TooL9 -- http://mail.python.org/mailman/listinfo/python-list
Re: SQLite3__Python2.3-SQLite__Problem
Cousin Stanley wrote: It's been almost 2 years since I've done anything with Python and SQLite and I'm having some problems that I don't recall from my last usage It seems that SQLite3 data bases created at the command line and those created using the sqlite module from within Python are no longer compatible with each other using the setup that I now have I thought I remembered that the data bases created either way were always 100% transparent with each other and that I could use an SQLite3 data base either from the command line or from within Python without any problems at all My guess is that 2 years ago you were using sqlite 2, not 3. I did a fair amount of Google-izing looking for related problems but didn't have much success In that case your googler is absolutely rooted and should be replaced immediately. With mine, google(file is encrypted or is not a database) produces as first hit (would you believe!?) http://wiki.rubyonrails.org/rails/pages/HowtoUseSQLite which contains the text: Q: SQLite::Exceptions::\DatabaseException file is encrypted or is not a database. A: It seems that sqlite databases created with version 2 do not work with sqlite version 3 and vice versa. IOW sqlite is a candidate for nomination to the We Could Have Given A Much More Helpful Error Message Hall of Illfame :-) Alternatively, you could get it straight from the the horse's mouth, at http://www.sqlite.org/version3.html The format used by SQLite database files has been completely revised. The old version 2.1 format and the new 3.0 format are incompatible with one another. Version 2.8 of SQLite will not read a version 3.0 database files and version 3.0 of SQLite will not read a version 2.8 database file. According to http://www.sqlite.org/oldnews.html, the first non-beta version of 3.0 was released in September 2004. You appear to have a 3.2 version of the sqlite3 command-line utility. So far, so good. However, I would be very suspicious of an sqlite that came with Python 2.3 -- it's probably sqlite version 2.something From your 2nd message: I'm now off to look for a version of PySQLite2 that is built for Debian Sarge and Python 2.3 to see if that might help to rectify the problem Sounds like a good idea. Change it to read that has been built *recently* and it sounds like an even better idea :-) On Windows, with Python 2.4 (just like your trial): | from pysqlite2 import dbapi2 as DB | DB.version # version of pysqlite2 | '2.3.2' | DB.sqlite_version # This is the one that matters! | '3.3.6' Try extracting sqlite_version from your Linux setup. Aside: with Python 2.5: | import sys; sys.version | '2.5 (r25:51908, Sep 19 2006, 09:52:17) [MSC v.1310 32 bit (Intel)]' | import sqlite3; sqlite3.sqlite_version | '3.3.4' # time warp? As you are discovering with Debian, one of the downsides of having 3rd-party goodies bundled in instead of downloading and installing them yourself is that thay can become frozen in time -- not quite as bad as the ruins of Pompeii; although Python 2.3 is getting close :-) HTH, John -- http://mail.python.org/mailman/listinfo/python-list
Re: SQLite3__Python2.3-SQLite__Problem
Le Fri, 24 Nov 2006 13:18:14 -0600, Cousin Stanley [EMAIL PROTECTED] a écrit : This problem is occuring under Debian GNU/Linux Sarge using Python 2.3 Hi, if you look at http://packages.debian.org/stable/python/python2.3-sqlite, you will see that the python2.3-sqlite package is built against SQLite 2. This is why you have a file is encrypted or is not a database message, since databases created with SQLite 2.x are not file-compatible with SQLite 3.x file. So, if you can find a Python binding for SQLite 3, go for it, but, unless you are building it from scratch (I mean, not from a Debian package), it might be difficult to find. Otherwise, use the sqlite command line tool (not sqlite3), which is built against SQLite 2.x. If you go for this solution, it's easy to migrate from a 2.x to a 3.x database, something like : $ echo .dump sqlite database.db.2x | sqlite3 database.db.3x (you will have to change the Python accordingly, of course ;) Hope it helps, - Jon -- http://mail.python.org/mailman/listinfo/python-list
Re: Active State and Komodo...
Steve Thompson wrote: Hello all, I was wondering the differnced there were betwee Active State's python and the open source version of python. Would I have to unistall my opend souce python? Additonally, how does Active State's Komodo IDE vs. the eric3 IDE unler SuSE Linux v. 10.i? Addionally, is the eric IDE (version 3) an acceptible IDE or are there more easy and more productive IDE's for perl? I'm urining Gnome v. 12.2.2 and Eric v 3.8.1 I'm not sure which to recommend: a spelling checker or a catheter :-) -- http://mail.python.org/mailman/listinfo/python-list
Re: Pydev configuration
On Nov 24, 9:42 pm, tool69 [EMAIL PROTECTED] wrote: Sébastien Boisgérault a écrit : Hi, Did anyone managed to change the code font family/size in Pydev (Python Editor Plugin for Eclipse) ? I found how to change the color mapping (Windows/Preference/Pydev) but did not found the font setting. Cheers, SBSalut Sébastien, Preferences/General/Appearence/ColorsFonts/ in the right menu choose Basic/Text Font Ah ... Thanks a lot ! I had tweaked in the neighbourhood of this option but it was unclear for me that Text Font did also refer to Python code. 'Bitsream Vera Sans Mono', here I come ;) Cheers SB 6TooL9 -- http://mail.python.org/mailman/listinfo/python-list
Re: How good is CORBA?
Chris Mellon [EMAIL PROTECTED] (CM) wrote: CM FYI: Ice is available under the GPL, so if by pay you mean pay CM money that's not your only option. You can also get a commercial CM license, similiar to Qt. CM I like Ice a lot, it's got hardly any of the ramp up time and learning CM curve that CORBA does, and it's extremely efficent. If GPL or cash are CM acceptable licensing options to you, then I encourage you to use it CM before you head to CORBA. OmniORB's author did some benchmarking and it appeared that omniORB was faster than Ice. -- Piet van Oostrum [EMAIL PROTECTED] URL: http://www.cs.uu.nl/~piet [PGP 8DAE142BE17999C4] Private email: [EMAIL PROTECTED] -- http://mail.python.org/mailman/listinfo/python-list
Re: Active State and Komodo...
John Machin wrote: Steve Thompson wrote: Hello all, I was wondering the differnced there were betwee Active State's python and the open source version of python. Would I have to unistall my opend souce python? Additonally, how does Active State's Komodo IDE vs. the eric3 IDE unler SuSE Linux v. 10.i? Addionally, is the eric IDE (version 3) an acceptible IDE or are there more easy and more productive IDE's for perl? I'm urining Gnome v. 12.2.2 and Eric v 3.8.1 I'm not sure which to recommend: a spelling checker or a catheter :-) You _are_ bad ! -- http://mail.python.org/mailman/listinfo/python-list
Re: Access to variable from external imported module
On Friday 24 November 2006 13:41, John Machin wrote: jim-on-linux wrote: On Friday 24 November 2006 03:30, John Machin wrote: jim-on-linux wrote: GinTon, I think this is what you want. class Kdoi: Is that a typo? No, it's a style. life seems to be easier to me if one is consistent, all my classes begin with K. and end with i? def __init__(self) : self.Fdo() What is all this K and F stuff? It's my style. life seems to be easier to me if one is consistent all my function begin with F. You left out a word; the correct way of phrasing that is: All my function _are_ begin with F :-) No, for Non-Hungrian programmers it's all-ah me Functions gona begin witha F, not Func. anda all-ah-me classes gona begin witha K, not Klas. Anda only me gona Know the Fdiff cause me codea is not opena. Anda I finda that it savea me time causea I doa thisa way fora a longa time. Whena I gonna hava to changea maybe I willa. This appears to be a variation on Hungarian notation; google that for opinions pro con. In a certain vernacular, it would be called an effed concept :-) I started doing things like this when the only way to debug was to read each line of code and try to figgure out if it was the problem. When was that? That was when bill gates just left Harvard, basic was brand new, and 4k of memory was installed free when you bought a computer, (TRS80), my first,. Assemble was the alternative to Basic and you had to backup on tape because floppies didn't exist. And, most people on this site wern't even a gleem in their fathers eye. Even years ago, there were slightly better ways. For example, my first boss' boss was an enthusiastic coder and debugger and also a workaholic. Colleagues who lived along the same railway line as he and were foolish enough not to hide behind a newspaper could have their morning or evening reverie disturbed by a cry of Glad you're here! I'll hold the listing, you hold the dump!. I get the impression that debugging techniques have moved along a little bit since then. :-) They are my personal sign posts. def Fdo(self): searchterm = 'help' print searchterm #local self.searchterm = searchterm print self.searchterm #used inside the class Kdo.searchterm = searchterm # print Kdo.searchterm #used outside the class Kdomore() class Kdomore(Kdo): def __init__(self) : self.Fdomore() def Fdomore(self): searchterm = Kdo.searchterm # print searchterm It's not apparent what the print statements are for -- are they part of an attempt to debug your code? print shows the results wherever a print statement turns up the results = 'help' . I didn't run the code, and it has it has a coding error I noticed. but if removed, the results should be; searchterm = 'help' self.searchterm = 'help' Kdo.searchterm = 'help' Correct but when writing one must be clear. Would it be better for me to write, your question above was Is that a typo? Or is it better if I were to write, your question above, Is that a typo?, is a legimate question, but not clear. So, to be clear one might write is Kdoi correct?. A clear response would be, it is not Kdoi, it is Kdo. But that's not correct either, it is Kdo. If one runs the code I don't expect the user to look for help, I think we will see help and will THINK that the results are correct. THINK is also incorrect, it should be written. think, or should it? No, the result would be help help help Plug in a text-to-speech module and a phone dialer and you're done ;-) Sound silly but many people have trouble with getting a variable from here to there in their code. This shows that it can be done What gives you the idea that this is what the OP wants or needs? If I remember right, he refrased his first question and asked a second one. Sometimes people don't take the time to write correctly, the questions that are really in their mind. So I guessed. If Im wrong, he will ignore it. If I'm right, he will use it. With luck. Kindly consider another possibility: that you are wrong (or just marching to the beat of your own tambourine) and he (or she) is a newbie will use it :-) Because he being of course judge of that tendency will make his opinions the rule of judgment, and approve or condemn the sentiments of others only as they shall square with or differ from his own… Thomas Jefferson I enjoied this, but time is money, jim-on-linux http://www.inqvista.com -- http://mail.python.org/mailman/listinfo/python-list
Re: synching with os.walk()
Andre Meyer wrote: Hi all os.walk() is a nice generator for performing actions on all files in a directory and subdirectories. However, how can one use os.walk() for walking through two hierarchies at once? I want to synchronise two directories (just backup for now), but cannot see how I can traverse a second one. I do this now with os.listdir() recursively, which works fine, but I am afraid that recursion can become inefficient for large hierarchies. thanks for your help André http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/191017 might be what you are looking for, or at least a starting point... Regards, antoine -- http://mail.python.org/mailman/listinfo/python-list
Installing CVXOPT
hi, how can I install and start using CVXOPT. I have python 2.5 version installed. what else do i need to download and install for CVXOPT. thanks amit -- http://mail.python.org/mailman/listinfo/python-list
Re: Python popenX() slowness on AIX?
On 24 Nov 2006 09:03:41 -0800 [EMAIL PROTECTED] wrote: Stefaan A Eeckels wrote: On 21 Nov 2006 13:02:14 -0800 [EMAIL PROTECTED] wrote: The fact that it does this in Python code instead of C is the main cause of the slowness. So, unless Python is changed to do this in C, it's always going to be slow on AIX :-( I guess that the reason it's slow is that there are many descriptors to try and close. Reducing them using ulimit -n could improve the speed. AIX has a fcntl command to close all open file descriptors from a descriptor onwards: fcntl(3, F_CLOSEM); This of course should be used instead of the loop: 10 happens to be the value of F_CLOSEM (from /usr/include/fcntl.h). I've currently no access to an AIX system with Python, but it could be worth trying. Yes, very much worth it. F_CLOSEM is _so_ much better than the loop, even in C. Using your brilliant suggestion, I now have a simple patch to the python source that implements it for any OS that happens to have the fcntl F_CLOSEM option. The *BSDs and Solaris have closefrom(3) which does the same as F_CLOSEM in AIX. As with AIX, the speedup is dramatic when there are a lot of file descriptors to try and close. It is below in its entirety. I believe I got the try: stuff correct, but since I'm new to Python, I'd appreciate any comments. I'm no great Python specialist myself. I'll leave it to those better qualified to comment. I have another patch to implement my os.rclose(x,y) method, which would improve the speed of popenX() for the OSes that don't have F_CLOSEM, by doing the close() loop in C instead of Python, but I don't know if it would be as likely to be accepted as this probably would be. Now, where do I send my proposed patch for consideration? The README file in the Python distribution has the following to say: Patches and contributions - To submit a patch or other contribution, please use the Python Patch Manager at http://sourceforge.net/patch/?group_id=5470. Guidelines for patch submission may be found at http://www.python.org/patches/. Take care, -- Stefaan A Eeckels -- Never explain by malice what can be adequately explained by stupidity. However: Sufficiently advanced stupidity is indistinguishable from malice. -- http://mail.python.org/mailman/listinfo/python-list