Leo 4.4.3 final released
Leo 4.4.3 final is available at: http://sourceforge.net/project/showfiles.php?group_id=3458package_id=29106 Leo is a text editor, data organizer, project manager and much more. See: http://webpages.charter.net/edreamleo/intro.html The highlights of Leo 4.4.3: - Added support for chapters in Leo's core. - Added support for zipped .leo files. - Added a leoBridge module that allows full access to all of Leo's capabilities from programs running outside of Leo. - Removed all gui-dependent code from Leo's core. - Better support for the winpdb debugger. - Added support for @enabled-plugins nodes in settings files. - Added support for @open-with nodes in settings files. - Added support for @bool write_strips_blank_lines setting. - The__wx_gui plugin is now functional. - Leo can use aspell on Linux when using Python 2.5 or later. - @test nodes can now be run from any .leo file. - Many minor improvements, new settings, commands and bug fixes. Links: -- Leo: http://webpages.charter.net/edreamleo/front.html Home: http://sourceforge.net/projects/leo/ Download: http://sourceforge.net/project/showfiles.php?group_id=3458 CVS: http://leo.tigris.org/source/browse/leo/ Quotes: http://webpages.charter.net/edreamleo/testimonials.html Edward K. Ream email: [EMAIL PROTECTED] Leo: http://webpages.charter.net/edreamleo/front.html -- http://mail.python.org/mailman/listinfo/python-announce-list Support the Python Software Foundation: http://www.python.org/psf/donations.html
Re: The Modernization of Emacs: terminology buffer and keybinding
Twisted wrote: With the latest stuff like Ubuntu, you're pretty much right ... until something goes wrong. Windows has . [...] Linux has ... the command line, or worse a GRUB or fsck prompt at startup. No access to accessible, easy to browse help right when you need it most. I suppose you never used Ubuntu's disc for anything but installing or reformatting either, but that doesn't mean it's the only thing that can be done with it. You can boot with it, have a working net connection (or create it) and solve many problems in the comfort of the full GUI, and with all the help available from the web. As for the available help on Windows, I didn't know Windows Safe mode let you connect to the Intertubes, or that its help was of any help in those situations. Really, if you have no idea, it's ok to refrain from posting. -- Saludos Adriano -- http://mail.python.org/mailman/listinfo/python-list
Re: Python Info.
Brandon wrote: Check it out: www.BrandonsMansion.com Why? Stefan -- http://mail.python.org/mailman/listinfo/python-list
Mirror Urls
I am involving in the development of a crawler. i need my script to detect the mirror urls of the page. so that i can ignor the urls. Please tell me any idea to detect.. -- http://mail.python.org/mailman/listinfo/python-list
Re: can't start Apache on Mac OS X--no listening sockets available?
On Jun 25, 7:23 pm, 7stud [EMAIL PROTECTED] wrote: I'm trying to get Apache set up on my system so I can use mod_python. I installed Apache 2.2.4 according to the following instructions: http://switch.richard5.net/isp-in-a-box-v2/installing-apache-on-mac-o... and everything seemed to install correctly, but I can't start Apache. I typed in the following command: $ sudo /Library/Apache2/bin/apachectl start Password: and I got this error message: httpd: Could not reliably determine the server's fully qualified domain name, using tms-computer.local for ServerName (48)Address already in use: make_sock: could not bind to address 0.0.0.0:80 no listening sockets available, shutting down Unable to open logs Any ideas? Do you have Web Sharing in the prefs on as well? I checked and to my surprise Personal Web Sharing was turned on. I was messing around with it yesterday because I thought that might have something to do with my problems, but I couldn't get Personal Web Sharing to start--it just said Web Sharing starting up..., and it never did. Anyway, I turned Personal Web Sharing off, and then the error message changed to this: $ sudo /Library/Apache2/bin/apachectl start Password: httpd: Could not reliably determine the server's fully qualified domain name, using tms-computer.local for ServerName However, I checked the All Processes page in the Activity Monitor, and it said httpd was running. So I tested my apache installation by typing http:/localhost in Safari's address bar, and a page displayed saying It works!. But I wondered if that page was being served up by the pre-installed version of Apache or my new installation. So, I went into my new installation's directory and looked at the file: /Library/Apache2/htdocs/index.html and changed the text from It works! to Apache 2.2.4, but when I retyped http:/localhost in Safari's address bar, I still got a page saying It works!, so that page is not being served by my new installation. -- http://mail.python.org/mailman/listinfo/python-list
Re: The Modernization of Emacs: terminology buffer and keybinding
On Jun 26, 2:01 am, Adriano Varoli Piazza [EMAIL PROTECTED] wrote: Twisted wrote: With the latest stuff like Ubuntu, you're pretty much right ... until something goes wrong. Windows has . [...] Linux has ... the command line, or worse a GRUB or fsck prompt at startup. No access to accessible, easy to browse help right when you need it most. I suppose you never used Ubuntu's disc for anything but installing or reformatting either, but that doesn't mean it's the only thing that can be done with it. You can boot with it, have a working net connection (or create it) and solve many problems in the comfort of the full GUI, and with all the help available from the web. Ah, if you have a live CD this might indeed be possible. If you can get it to mount your usual hdd partitions to go sniffing around the configuration files that might be gummed up, and if doing this isn't insanely complicated anyway. A Windows restore CD or recovery partition doesn't do anything of the sort, although a genuine install CD has a repair function, which can among other things fix problems with the MBR and reinstall key Windoze components on the hdd. If you can boot to safe mode you can fix most things with System Restore, which simply lets you roll back the configuration to before that ill-advised install, uninstall, driver update, or whatever it was that hosed things. I've had to resort to it exactly twice; once when firewall software b0rked the system on install and put it in infinite-reboot mode (safe mode halted the loop) and once when nVidia released some driver update that hosed the 3D accelerator and screwed up the available graphics modes. System Restore works by quietly backing up key files (DLLs, config files, and suchlike) and registry trees when an installer is run and under some other circumstances, including a manual instruction to create a save point, which you can use before you try anything dodgy so you can roll back to right before the attempt if it goes wrong. Ordinary document files and the like aren't backed up or anything by this, however. If they get hosed, they get hosed, although System Restore won't damage them any more than it will back them up. I've managed to fix driver and networking problems a few times, and sometimes on someone else's computer, with and without system restore. Most of the times if I've seen any flavor of unix misbehaving, it's been find a bigger geek or resort to beads and rattles; it's been far from obvious what the problem was from the error messages, let alone what the fix was, and often the problem precluded access to any useful tools or documentation simultaneously. A live CD might make that less of an issue, though it would still be a pain if you had to keep using it as a workaround for days while waiting for a mailing list or usenet response explaining what the f*#! bad zixflob in fuzzwangle.rc, aborting meant and how to fix it, especially as a system-wide search didn't turn up any files named fuzzwangle.rc -- or whatever the problem was. :) [Insulting insinuation snipped] Oh, sod off. -- http://mail.python.org/mailman/listinfo/python-list
Re: The Modernization of Emacs: terminology buffer and keybinding
. A live CD might make that less of an issue, though it would still be a pain if you had to keep using it as a workaround for days while waiting for a mailing list or usenet response explaining what the f*#! bad zixflob in fuzzwangle.rc, aborting meant and how to fix it, especially as a system-wide search didn't turn up any files named fuzzwangle.rc -- or whatever the problem was. :) If you've used linux for any period of time and made an effort to learn how it works, you'll know that bad zixflob in fuzzwangle.rc means exactly that (the error probably has a line number as well) You might have to wait for a mailing list reply, but it'd be a lot easier to just look up what fuzzwangle.rc expects (through the internet, manpages, /usr/doc or possibly in /etc, or most likely in the top few lines of fuzzwangle.rc) and fix it. You can't have a bad line in fuzzwangle.rc if it doesn't exist. It exists, you may just not know where (there's lots of ways to find out). It's a matter of knowing your OS, whether that's windows or linux, or whatever. I still have no idea where to find docs for some things in windows. In linux, I know where to find the documentation for just about anything I could ever want to do, and sometimes that documentation is source code - and that's fine with me. -- http://mail.python.org/mailman/listinfo/python-list
Re: Python Info.
It was like being slapped with the mid-90s On 6/26/07, Stefan Behnel [EMAIL PROTECTED] wrote: Brandon wrote: Check it out: www.BrandonsMansion.com Why? Stefan -- http://mail.python.org/mailman/listinfo/python-list -- http://mail.python.org/mailman/listinfo/python-list
Re: can't start Apache on Mac OS X--no listening sockets available?
Ok. If I try to start Personal Web Sharing while Apache is running, it says Web Sharing starting up..., but it never does. Then if I close the window and restart my imac, my imac boots up with Personal Web Sharing turned on. I still can't figure out where the page that says It works! is located. It must be in the pre installed apache directory, but I have no idea where it is on my imac. And, I don't understand why the page isn't being served up by my new installation since I started the new Apache using the command: $sudo /Library/Apache2/bin/apachectl start I didn't start the pre-installed Apache. Also, when I look at the Activity monitor, there is an httpd root process with pid 285, and then there are 6 daemon http processes with pids 286, 287, 288, 289, 290, 291. What is that all about? -- http://mail.python.org/mailman/listinfo/python-list
Re: can't start Apache on Mac OS X--no listening sockets available?
On 6/26/07, 7stud [EMAIL PROTECTED] wrote: Ok. If I try to start Personal Web Sharing while Apache is running, it says Web Sharing starting up..., but it never does. Then if I close the window and restart my imac, my imac boots up with Personal Web Sharing turned on. I still can't figure out where the page that says It works! is located. It must be in the pre installed apache directory, but I have no idea where it is on my imac. And, I don't understand why the page isn't being served up by my new installation since I started the new Apache using the command: $sudo /Library/Apache2/bin/apachectl start I didn't start the pre-installed Apache. Also, when I look at the Activity monitor, there is an httpd root process with pid 285, and then there are 6 daemon http processes with pids 286, 287, 288, 289, 290, 291. What is that all about? -- http://mail.python.org/mailman/listinfo/python-list If apache2 works on macs how it does on linux (it should, right?) there should be Apache2/sites-enabled and Apache2/sites-available directories - the default files in these will tell you what pages are being served, I believe. Maybe apachectl restart? Also, I think the processes are normal, but I'm not sure. Apache is a pretty heavyweight server. -- http://mail.python.org/mailman/listinfo/python-list
Re: can't start Apache on Mac OS X--no listening sockets available?
On Jun 26, 12:52 am, kaens [EMAIL PROTECTED] wrote: If apache2 works on macs how it does on linux (it should, right?) there should be Apache2/sites-enabled and Apache2/sites-available directories - the default files in these will tell you what pages are being served, I believe. There are no such directories in my new installation directory / Library/Apache2 Also, I think the processes are normal, but I'm not sure. Apache is a pretty heavyweight server. Ok. -- http://mail.python.org/mailman/listinfo/python-list
Re: The Modernization of Emacs: terminology buffer and keybinding
On Fri, 22 Jun 2007 21:51:34 -, Twisted [EMAIL PROTECTED] wrote: C-h i, C-x b RET is non-trivial?!? [...] I'm sorry. I don't speak Chinese. I trust I've made my point. Not only does it insist you learn a whole other language (though I'm guessing it's not actually Chinese -- Greek, maybe), even when you know that's a bunch of keystrokes and even what they are... HOW IN THE BLOODY HELL IS IT SUPPOSED TO OCCUR TO SOMEONE TO ENTER THEM, GIVEN THAT THEY HAVE TO DO SO TO REACH THE HELP THAT WOULD TELL THEM THOSE ARE THE KEYS TO REACH THE HELP?! No it's not Greek. I can assure you it isn't, because I *am* Greek. Now, regarding your shouting about the keys, have you tried using a recent GNU Emacs installation? The first thing that pops up when a new user runs Emacs looks like this: ,--- | Welcome to GNU Emacs, a part of the GNU operating system. | | Type C-l to begin editing. | | Get help C-h (Hold down CTRL and press h) | Emacs manual C-h r | Emacs tutorial C-h t Undo changes C-x u | Buy manualsC-h C-m Exit Emacs C-x C-c | Browse manuals C-h i | Activate menubar F10 or ESC ` or M-` | (`C-' means use the CTRL key. `M-' means use the Meta (or Alt) key. | If you have no Meta key, you may instead type ESC followed by the character.) | | GNU Emacs 22.1.50.2 (i386-unknown-freebsd7.0, X toolkit) | of 2007-05-29 on kobe | Copyright (C) 2007 Free Software Foundation, Inc. | | GNU Emacs comes with ABSOLUTELY NO WARRANTY; type C-h C-w for full details. | Emacs is Free Software--Free as in Freedom--so you can redistribute copies | of Emacs and modify it; type C-h C-c to see the conditions. | Type C-h C-d for information on getting the latest version. `--- Basic reading skills are necessary to parse this 'splash' screen, but it shouldn't be too hard to read a few lines of text which guide you about the proper key sequence to reach the tutorial, right? Of course, Notepad is so easy to use it doesn't even need help, despite which it's readily available. In case you forgot the bog- standard (and therefore it IS self-evident) F1 there's even a Help menu in plain view as soon as you open a Notepad. There's also a Help menu in plain sight when you fire up Emacs with an X11 interface. I don't see why Notepad is special in any way here. This is the lowly Notepad, which I'll freely admit is the rusty bicycle of text editors, and it's much easier to use (including the help) than the supposed Mercedes-Benz of editors. Isn't this always the case? The 'interface' of a tiny bicycle is something which even very young kids can master pretty fast. On the other hand, I'm relatively sure there's at least one valid reason we don't let pre-school aged children drive around Mercedes-Benz cars, isn't there? -- http://mail.python.org/mailman/listinfo/python-list
Re: The Modernization of Emacs: terminology buffer and keybinding
On Fri, 22 Jun 2007 23:08:02 -, [EMAIL PROTECTED] wrote: lpr /usr/local/share/emacs/21.3/etc/refcard.ps or your install-dir^^ or your version.^ So now we're expected to go on a filesystem fishing expedition instead of just hit F1? One small step (backwards) for a man; one giant leap (backwards) for mankind. :P But then again buying the GNU-book from 'O Reilly would have solved it in the utmost nicest possible of ways anyway. So much for the free in free software. If you can't actually use it without paying money, whether for the software or for some book, it isn't really free, is it? Please do not confuse the term 'free' in 'free software' with 'gratis'. 'Gratis', i.e. 'lacking a monetary price tag' is something *very* different from the meaning of 'free' in 'free software'. -- http://mail.python.org/mailman/listinfo/python-list
Re: Python's only one way to do it philosophy isn't good?
Douglas Alan [EMAIL PROTECTED] writes: In the Maclisp era functions like mapcar worked on lists, and generated equally long lists in memory. I'm aware, but there were various different mapping functions. map, as opposed to mapcar didn't return any values at all, and so you had to rely on side effects with it. The thing is there was no standard way in Maclisp to write something like Python's count function and map over it. This could be done in Scheme with streams, of course. Right -- I wrote iterators, not generators. Python iterators (the __iter__ methods on classes) are written with yield statements as often as not. The point is that mapcar (as the name implies) advances down a list using cdr, i.e. it only operates on lists, not general iterators or streams or whatever. Right, but each sequence type had it's own corresponding mapping fuctions. Precisely, I think that's what Alexander was trying to get across, Lisp didn't have a uniform interface for traversing different types of sequence. they had standardized such things. This would not be particularly difficult to do, other than the getting everyone to agree on just what the interfaces should be. But Lisp programmers, are of course, just as recalcitrant as Python programmers. Python programmers tend to accept what the language gives them and use it and not try to subvert it too much. I don't say that is good or bad. And in Python's case, the reference manual is just an incomplete description of the features offered by the implementation, and people revel in features that are not yet in the reference manual. No I don't think so, unless you count some things that are in accepted PEP's and therefore can be considered part of the reference docs, even though they haven't yet been merged into the manual. That's not ugly. The fact that CPython has a reference-counting GC makes the lifetime of object predictable, which means that like in C++, and unlike in Java, you can use destructors to good effect. This is one of the huge boons of C++. The predictability of lifespan makes the language more expressive and powerful. The move to deprecate relying on this feature in Python is a bad thing, if you ask me, and removes one of the advantages that Python had over Lisp. No that's wrong, C++ has no GC at all, reference counting or otherwise, so its destructors only run when the object is manually released or goes out of scope. The compiler normally doesn't attempt lifetime analysis and it would probably be against the rules to free an object as soon as it became inaccessible anyway. Python (as of 2.5) does that using the new with statement, which finally makes it possible to escape from that losing GC-dependent idiom. The with statement handles most cases that C++ destructors normally handle. Python object lifetimes are in fact NOT predictable because the ref counting doesn't (and can't) pick up cyclic structure. Occasionally a cyclic GC comes along and frees up cyclic garbage, so some destructors don't get run til then. Of course you can manually organize your code so that stuff with destructors don't land in cyclic structures, but now you don't really have automatic GC any more, you have (partially) manual storage management. And the refcounts are a performance pig in multithreaded code, because of how often they have to be incremented and updated. That's why CPython has the notorious GIL (a giant lock around the whole interpreter that stops more than one interpreter thread from being active at a time), because putting locks on the refcounts (someone tried in the late 90's) to allow multi-cpu parallelism slows the interpreter to a crawl. Meanwhile 4-core x86 cpu's are shipping on the desktop, and network servers not dependent on the complex x86 architecture are using 16-core MIPS processors (www.movidis.com). Python is taking a beating all the time because of its inability to use parallel cpu's, and it's only going to get worse unless/until PyPy fixes the situation. And that means serious GC instead of ref counting. And it's not bygone -- it's just nichified. Lisp is forever -- you'll see. Lisp may always be around in some tiny niche but its use as a large-scale systems development language has stopped making sense. If you want to see something really pathetic, hang out on comp.lang.forth sometime. It's just amazing how unaware the inhabitants there are of how irrelevant their language has become. Lisp isn't that far gone yet, but it's getting more and more like that. -- http://mail.python.org/mailman/listinfo/python-list
Re: can't start Apache on Mac OS X--no listening sockets available?
Well, I'm able to put html pages in /Library/Apache2/htdocs/ and access them in Safari as I would expect: http://localhost/test.htm and I can access the index.html page in that directory: http://localhost/index.html and it displays: It works! Apache 2.2.4 But, if I just use the address http://localhost/ in Safari, this is displayed: It works! Where is that coming from? Is the original index.html page(before I changed it and added Apache 2.2.4) cached by Safari somehow? That doesn't make any sense to me because when I explicitly request index.html, I get the changed output. -- http://mail.python.org/mailman/listinfo/python-list
Re: The Modernization of Emacs: terminology buffer and keybinding
On Jun 25, 2:32 pm, Giorgos Keramidas [EMAIL PROTECTED] wrote: So much for the free in free software. If you can't actually use it without paying money, whether for the software or for some book, it isn't really free, is it? Please do not confuse the term 'free' in 'free software' with 'gratis'. 'Gratis', i.e. 'lacking a monetary price tag' is something *very* different from the meaning of 'free' in 'free software'. Having to pay for the documentation, presumably because it's copyrighted, doesn't strike me as much more free as in speech than it is free as in beer. Also being dependent on a particular publisher for access to required documentation violates free as in no vendor lock-in, to boot. So anyone saying some free software is unusable without such-and-such an O'Reilly book can go peddle the software and the book somewhere where spammers are welcome. Being locked in to O'Reilly being just as bad as being locked in to Microsoft or Adobe. -- http://mail.python.org/mailman/listinfo/python-list
Re: can't start Apache on Mac OS X--no listening sockets available?
On Jun 26, 1:34 am, 7stud [EMAIL PROTECTED] wrote: Where is that coming from? Is the original index.html page(before I changed it and added Apache 2.2.4) cached by Safari somehow? That doesn't make any sense to me because when I explicitly request index.html, I get the changed output. I looked around in Safari for a bit, and I found Empty Cache under the Safari menu item. So I emptied the cache and now when I use the address http://localhost, I get the changed index.html page. So Safari was caching the original page. I guess Safari associate the address http://localhost with the original index.html page, and Safari would not display the updated index.html page when I used that address again. -- http://mail.python.org/mailman/listinfo/python-list
Re: The Modernization of Emacs: terminology buffer and keybinding
On Jun 25, 2:28 pm, Giorgos Keramidas [EMAIL PROTECTED] wrote: This is the lowly Notepad, which I'll freely admit is the rusty bicycle of text editors, and it's much easier to use (including the help) than the supposed Mercedes-Benz of editors. Isn't this always the case? The 'interface' of a tiny bicycle is something which even very young kids can master pretty fast. On the other hand, I'm relatively sure there's at least one valid reason we don't let pre-school aged children drive around Mercedes-Benz cars, isn't there? And the myth of the bicycle being easy to learn persists. Did you know that kids learn better than adults do? Why do kids pick up at least one language without any conscious effort, while adults trying to learn one more often struggle in night school? I know people who find all kinds of vehicles easy to learn but never mastered a bicycle (despite trying). People, plural, as in more than one of them. Anyway, I know which comes with a fatter manual -- the Benz... -- http://mail.python.org/mailman/listinfo/python-list
Dispatching a method using PyobjC Selectors/Methods
Hi, I am writing a SIMBL plugin for Mail.app, so far it loads and the correct method has been swizzled. However, i would like to call the original method and that is where the problem lies. If you could see the code(below), in console.app, i get the following error because of old(x) 2007-06-26 03:42:04.053 Mail[2600] *** NSRunLoop ignoring exception 'exceptions.TypeError: 'int' object is not callable' that raised during posting of delayed perform with target 5bd1b10 and selector '_finalSetup' #saved as MailDump.py import objc from Foundation import * from AppKit import * WebMessageEditor = objc.lookUpClass('WebMessageEditor') old=1 swizzled = {} #http://end.com/svn/BionicDOM/tags/1.0/ BionicDOMPalette.py def swizzle(cls, SEL, func): NSLog(cls) oldIMP = cls.instanceMethodForSelector_(SEL) oldMethod = objc.selector(oldIMP.__call__, selector=oldIMP.selector, signature=oldIMP.signature) newMethod = objc.selector(func, selector=oldIMP.selector, signature=oldIMP.signature) objc.classAddMethod(cls, 'OLD'+SEL, oldMethod) objc.classAddMethod(cls, SEL, newMethod) swizzled[(cls, SEL, func)] = (oldMethod, newMethod, oldIMP) return(oldMethod) def updateContentsToShowSignature_(self,x): NSLog(OHMYGOD) old(x) class MWM(NSObject): plugin = None # We will retain a pointer to the plugin to prevent it being garbage-collected @classmethod def sharedInstance(cls): # not strictly necessary, but we only need one instance of our object if not cls.plugin: cls.plugin = cls.alloc().init() return cls.plugin @classmethod def initialize(cls): old=swizzle(WebMessageEditor, 'updateContentsToShowSignature:', updateContentsToShowSignature_) #setup.py # from distutils.core import setup # import py2app # plist = dict( # NSPrincipalClass='MWM', # CFBundleName='MWM', # SIMBLTargetApplications=[dict(BundleIdentifier='com.apple.mail', MinBundleVersion='000', MaxBundleVersion='20')], # ) # setup( # plugin=['MailDump.py'], # options=dict(py2app=dict( # extension='.bundle', # plist=plist, # )), # ) #Run the following #python2.4 setup.py py2app -A #and copy the dist/MailDump.bundle to ~/Library/Application Support/ SIMBL/Plugins/ -- http://mail.python.org/mailman/listinfo/python-list
Re: can't start Apache on Mac OS X--no listening sockets available?
On Jun 25, 11:09 pm, 7stud [EMAIL PROTECTED] wrote: On Jun 25, 7:23 pm, 7stud [EMAIL PROTECTED] wrote: I'm trying to get Apache set up on my system so I can use mod_python. I installed Apache 2.2.4 according to the following instructions: http://switch.richard5.net/isp-in-a-box-v2/installing-apache-on-mac-o... and everything seemed to install correctly, but I can't start Apache. I typed in the following command: $ sudo /Library/Apache2/bin/apachectl start Password: and I got this error message: httpd: Could not reliably determine the server's fully qualified domain name, using tms-computer.local for ServerName (48)Address already in use: make_sock: could not bind to address 0.0.0.0:80 no listening sockets available, shutting down Unable to open logs Any ideas? Do you have Web Sharing in the prefs on as well? I checked and to my surprise Personal Web Sharing was turned on. I was messing around with it yesterday because I thought that might have something to do with my problems, but I couldn't get Personal Web Sharing to start--it just said Web Sharing starting up..., and it never did. Anyway, I turned Personal Web Sharing off, and then the error message changed to this: $ sudo /Library/Apache2/bin/apachectl start Password: httpd: Could not reliably determine the server's fully qualified domain name, using tms-computer.local for ServerName However, I checked the All Processes page in the Activity Monitor, and it said httpd was running. So I tested my apache installation by typing http:/localhost in Safari's address bar, and a page displayed saying It works!. But I wondered if that page was being served up by the pre-installed version of Apache or my new installation. So, I went into my new installation's directory and looked at the file: /Library/Apache2/htdocs/index.html and changed the text from It works! to Apache 2.2.4, but when I retyped http:/localhost in Safari's address bar, I still got a page saying It works!, so that page is not being served by my new installation. Console and the system logs are an invaluable debugging tool on Macs. Bet you have some errors there saying why apache couldnt stop/start. Glad you got it working. ~Sean -- http://mail.python.org/mailman/listinfo/python-list
Tkinter: different results from the same tcl script
Hello, in mixed python-tcl programming I found the following different behaviours of the same tcl script. If I type manually in the python interpreter the following lines from Tkinter import * w = Tk() w.tk.evalfile('my_tcl_script.tcl') where my_tcl_script.tcl is #!/bin/sh package require Tk wm withdraw . toplevel .root wm title .root My title I obtain one toplevel window with title My title, as expected. The same result is obtained with the tcl shell command % wish my_tcl_script.tcl Now, I wish to run the same instructions from a python script. So, I written the following script from time import * from Tkinter import * w = Tk() w.tk.evalfile('my_tcl_script.tcl') sleep(3) I expected to see the same toplevel window for 3 seconds, but the result of this python script is nothing, no window appears. If anybody can explain the different behaviour and how to normalize it with the correct one, I will be very glad. Thank you in advance. F. Pollastri -- http://mail.python.org/mailman/listinfo/python-list
Re: Installing python under the linux
Danyelle Gragsone je napisao/la: Hi, Yeah .. if its ubuntu then you have python already installed. I would suggest that you start reading the documentation on your distro. How did you get your distro if you don't know what it is? That concerns me a bit. Ubuntu has alot of documentation as well as a help channel on irc. irc.freenode.net #ubuntu. You can pull up alot of documentation by just typing ubuntu documentation or ubuntu guides in google. good luck! Danyelle On 6/25/07, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote: Danyelle Gragsone je napisao/la: Greetings, Python is usally already installed on most distros. In a terminal window type python to see if something happens. Also please provide what distro you are running. Danyelle On 6/25/07, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote: Hello, I have problem with installing Python on the Linux platform.Can you tell me step by step how can I install python on linux ( please detailed ) , because I don't know anything about linux and I really don't understand python documentation about installing python on linux. Thanks!!! -- http://mail.python.org/mailman/listinfo/python-list Helo, Probably my distro is ubuntu --- I don't what is it, and ' want install/build python from source -- http://mail.python.org/mailman/listinfo/python-list Hi again, This previously was very useful THANKS. I just want ask you is there, is there any folder with that basic Python on ubuntu linux where can I find file Grammar and change the names of python keywords. THANKS AGAIN! -- http://mail.python.org/mailman/listinfo/python-list
Re: Tkinter: different results from the same tcl script
On Jun 26, 1:06 am, Fabrizio Pollastri [EMAIL PROTECTED] wrote: Hello, in mixed python-tcl programming I found the following different behaviours of the same tcl script. If I type manually in the python interpreter the following lines from Tkinter import * w = Tk() w.tk.evalfile('my_tcl_script.tcl') where my_tcl_script.tcl is #!/bin/sh package require Tk wm withdraw . toplevel .root wm title .root My title I obtain one toplevel window with title My title, as expected. The same result is obtained with the tcl shell command % wish my_tcl_script.tcl Now, I wish to run the same instructions from a python script. So, I written the following script from time import * from Tkinter import * w = Tk() w.tk.evalfile('my_tcl_script.tcl') sleep(3) I expected to see the same toplevel window for 3 seconds, but the result of this python script is nothing, no window appears. If anybody can explain the different behaviour and how to normalize it with the correct one, I will be very glad. Thank you in advance. F. Pollastri You need a call to `w.mainloop()` w=Tk() w.after(3000, lambda: w.quit()) w.mainloop() ~Sean -- http://mail.python.org/mailman/listinfo/python-list
Re: The Modernization of Emacs: terminology buffer and keybinding
On Tue, 26 Jun 2007 07:40:55 -, Twisted [EMAIL PROTECTED] wrote: On Jun 25, 2:32 pm, Giorgos Keramidas [EMAIL PROTECTED] wrote: So much for the free in free software. If you can't actually use it without paying money, whether for the software or for some book, it isn't really free, is it? Please do not confuse the term 'free' in 'free software' with 'gratis'. 'Gratis', i.e. 'lacking a monetary price tag' is something *very* different from the meaning of 'free' in 'free software'. Having to pay for the documentation, presumably because it's copyrighted, doesn't strike me as much more free as in speech than it is free as in beer. You don't have to pay for the documentation because it is copyrighted. You can _download_ the Emacs manual in any format you are more comfortable with. See for example: http://www.gnu.org/manual/manual.html This page lists downloadable documentation in nicely formatted HTML or PDF formats, which is available without any sort of monetary charge. Also being dependent on a particular publisher for access to required documentation violates free as in no vendor lock-in, to boot. So anyone saying some free software is unusable without such-and-such an O'Reilly book can go peddle the software and the book somewhere where spammers are welcome. Being locked in to O'Reilly being just as bad as being locked in to Microsoft or Adobe. Since you are not obliged to _pay_ for the O'Reilly version, this entire paragraph is both meaningless and moot. Feel free to grab an online copy of the manual, or install the documentation of Emacs using your favorite distribution's packaging tools. There is absolutely no lock-in anywhere near Emacs. - Giorgos -- http://mail.python.org/mailman/listinfo/python-list
Re: Face Recognition
Henrik Lied wrote: Hi there! Has anyone made effort to try to create a python binding to a facial recognition software [1]? For those of you with some experience - would this be very hard? OpenCV has a python-binding. And a ctypes-binding. Diez -- http://mail.python.org/mailman/listinfo/python-list
Re: can't start Apache on Mac OS X--no listening sockets available?
Console and the system logs are an invaluable debugging tool on Macs. Bet you have some errors there saying why apache couldnt stop/start. What/where is Console and how do I look at the system logs? -- http://mail.python.org/mailman/listinfo/python-list
Re: [OT] can't start Apache on Mac OS X--no listening sockets available?
7stud a écrit : I'm trying to get Apache set up on my system so I can use mod_python. I installed Apache 2.2.4 according to the following instructions: http://switch.richard5.net/isp-in-a-box-v2/installing-apache-on-mac-os-x/#comment-30704 and everything seemed to install correctly, but I can't start Apache. I typed in the following command: $ sudo /Library/Apache2/bin/apachectl start Password: and I got this error message: httpd: Could not reliably determine the server's fully qualified domain name, using tms-computer.local for ServerName (48)Address already in use: make_sock: could not bind to address 0.0.0.0:80 no listening sockets available, shutting down Unable to open logs Any ideas? yes : please post on a Mac newsgroup. This has nothing to do with Python. This group is highly tolerant[1], but you'll probably find the best answers on a mac-related newsgroup, because that's where the Mac expert are (or at least are supposed to be). [1] as a matter of fact, you got some answers to a totally OT post not even labelled as such - on some ng you would have been shot down in flames instead... -- http://mail.python.org/mailman/listinfo/python-list
Re: The Modernization of Emacs: terminology buffer and keybinding
n == nebulous99 [EMAIL PROTECTED] writes: n On Jun 22, 6:32 pm, Cor Gest [EMAIL PROTECTED] wrote: HOW IN THE BLOODY HELL IS IT SUPPOSED TO OCCUR TO SOMEONE TO ENTER THEM, GIVEN THAT THEY HAVE TO DO SO TO REACH THE HELP THAT WOULD TELL THEM THOSE ARE THE KEYS TO REACH THE HELP?! What's your problem ? Ofcourse a mere program-consumer would not look what was being installed on his/her system in the first place ... So after some trivial perusing what was installed and where : WOW Look, MA ! it's all there! lpr /usr/local/share/emacs/21.3/etc/refcard.ps or your install-dir^ ^ or your version.^ n So now we're expected to go on a filesystem fishing expedition n instead of just hit F1? One small step (backwards) for a man; one n giant leap (backwards) for mankind. :P Waring, possible ID TEN T detected! There's a program called find, not this intuitive but worth learning It could solve the problem from the root with something like find / -name refcard.ps -exec lpr {} \; 2 /dev/null This line requires some brain and some learning, true, but the documents should be on your HD, unless you avoided installing the man to save space. About the brain, you should have received like me a standard issue one at least (or maybe a better one). But then again buying the GNU-book from 'O Reilly would have solved it in the utmost nicest possible of ways anyway. n So much for the free in free software. If you can't actually n use it without paying money, whether for the software or for some n book, it isn't really free, is it? GNU books ARE free, and come in both printed and electronic form. No excuses. BTW, buing a GNU book is a good way to finance FSF. And from your too-lazy (ID TEN T like) point of view even freedom itself is not free, since its defence has a cost. -- /\ ___ /___/\_|_|\_|__|___Gian Uberto Lauri_ //--\| | \| | Integralista GNUslamico \/ e coltivatore diretto di Software A Cesare avrei detto di scrivermi a [EMAIL PROTECTED] -- http://mail.python.org/mailman/listinfo/python-list
Re: PEP 3107 and stronger typing (note: probably a newbie question)
On Jun 21, 4:53 am, Stephen R Laniel [EMAIL PROTECTED] wrote: Before I ask anything, let me note that this is surely an old question that has inspired its share of flame wars; I'm new to Python, but not new to how Internet discussions work. So if there's a canonical thread or web page that documents the whole battle, feel free to point me to it. Reading [1], I wonder: why isn't the compiler making better use of (purely optional) type labeling? Why not make a compiler directive so that a) it will check the types of all my arguments and return values, and maybe even b) do some type inference up the call stack? You might like to look at traits http://code.enthought.com/traits/ -- http://mail.python.org/mailman/listinfo/python-list
Re: The Modernization of Emacs: terminology buffer and keybinding
Long count = 12.19.14.7.15; tzolkin = 1 Men; haab = 3 Tzec. I get words from the Allmighty Great Gnus that T == Twisted [EMAIL PROTECTED] writes: T And the myth of the bicycle being easy to learn persists. Did you T know that kids learn better than adults do? Why do kids pick up at T least one language without any conscious effort, while adults T trying to learn one more often struggle in night school? Mostly because they block themselves with strange fears and due bad teaching, the fear of a test, the lack of fun, the constriction, all block adults learning new language. Pick an over 30, overloaded with (often) frustrating work, and give her an university level course in languages with grammars and/or alphabets completly different from those she uses (yesss, I am thinking of a woman, my wife...) like Arab (alphabet and some grammar) and Turkish (its grammar sound lispish to my ears), and she'll go ahead without fatigue and with flying colours. Children pick up other language without any conscious effort because either they learn it by using with parents, relatives and friends or they are involved in a game-like style of learning. Why else hacker prize fun this much ? :) :) T I know people who find all kinds of vehicles easy to learn but T never mastered a bicycle (despite trying). People, plural, as in T more than one of them. Again, fear, or maybe, some malfunction in the balancing organs. But fear mainly. You do not see what keeps a bike upright and running, you have to trust that you can. You can walk on a 4 inch wide stripe on a floor without problems, but when it is a 4 inch wide bar some feet over the floor... -- /\ ___ /___/\_|_|\_|__|___Gian Uberto Lauri_ //--\| | \| | Integralista GNUslamico \/ e coltivatore diretto di Software A Cesare avrei detto di scrivermi a [EMAIL PROTECTED] -- http://mail.python.org/mailman/listinfo/python-list
text-mode tree viewer?
Hallöchen! I'm looking for a package/routine that can convert [[Peter, [Ian, [[Randy, [Clara], Paul, [Mary, [Arthur]]] into +--- Peter | | | +--- Ian | | | +--- Randy | | | +--- Clara | +--- Paul | +--- Mary | +--- Arthur Neither the input data structure nor the output must be exactly like here but probably you got the idea. Thank you for any hints! Tschö, Torsten. -- Torsten Bronger, aquisgrana, europa vetus Jabber ID: [EMAIL PROTECTED] (See http://ime.webhop.org for ICQ, MSN, etc.) -- http://mail.python.org/mailman/listinfo/python-list
Re: sqlite newbie questions
On Tue, 26 Jun 2007 08:38:29 GMT, Dennis Lee Bieber wrote: In both cases, the whole idea behind letting the adapter do parameter substitution is that the adapter will add the appropriate delimiters (quote marks, for the most part) needed for the data type. That's only the case if the adapter is dumb enough to stuff the parameter into the query as a literal value. Most adapters aren't that dumb. -- Carsten Haese http://informixdb.sourceforge.net -- http://mail.python.org/mailman/listinfo/python-list
Re: Installing python under the linux
On 25 Jun, 22:50, Grant Edwards [EMAIL PROTECTED] wrote: I really do not recommend installing from source for somebody like you who knows nothing about Python or Linux. Can explain why you think you want to install Python from source instead of using the Python that's already installed on your computer? The inquirer has previously shown an interest in changing Python's keywords, so although recommending that someone use the installed Python remains sound advice for most situations, I think compilation from source is the only way to go here, at least for Python 2.4 and earlier - I don't know what grammar tricks were added to Python 2.5 and later, but I imagine that you'd still need to compile everything after modifying any grammar description file that may be provided. To compile from source, the inquirer should read the README file provided in the source distribution, paying attention at the very least to the section entitled If you don't read instructions. The source distribution is found here: http://www.python.org/download/ Paul -- http://mail.python.org/mailman/listinfo/python-list
Re: simplifying algebraic expressions
Hi, Are there any libraries for manipulating algebraic expression trees? In particular, take an expression tree and simplify it down. I'm working up the next release of PyGene, the genetic programming and genetic algorithms library. Part of PyGene works with trees holding algebraic expressions. For example, the expression: f = x**2 + sqrt(y) + 7 is represented as the tree: + ** x 2 + sqrt y 7 My GP code is successfully evolving expression trees to solve problems, however they're often full of redundancies, eg adding y in one part then subtracting y later on. I have seen this sort of evolution strategy in the past and it's very wrong to attempt to simplify outside the genetic framework. The implication is that you know better than the overall fitness requirement. The additional expressions and redundancies allow for extra mutation and combination possibilities which is a good thing for the whole population. If you must, add the requirement to the target ie give extra fitness points to organisms which perform efficiently. -- Robin Becker -- http://mail.python.org/mailman/listinfo/python-list
Customizable GUI package for Win$?
I want to know which GUI package should I turn to if I want to make something resembling MS OneNote. A lot of packages have Notebook style widgets or tabbed stuff, but wxPython's are not really customizable from what I know, and neither are TKs. I'm not sure about pyGTK and it's primarily a Linux GUI package. I'd like to color them(gradients), make them have a custom shape, and other shiny not-so-native stuff. Yes, to some olde-schoole hackers it might seem shallow, but in all honesty, a slick good comfortable AND good looking interface is like a modern car. Sure, to get from point A to B you could use a lawnmower, but we're not doing that, and for a reason, right? :) - Sick sense of humor? Visit Yahoo! TV's Comedy with an Edge to see what's on, when. -- http://mail.python.org/mailman/listinfo/python-list
Re: simplifying algebraic expressions
On Tue, 26 Jun 2007 11:11:39 +0100, Robin Becker wrote: I have seen this sort of evolution strategy in the past and it's very wrong to attempt to simplify outside the genetic framework. The implication is that you know better than the overall fitness requirement. The additional expressions and redundancies allow for extra mutation and combination possibilities which is a good thing for the whole population. If you must, add the requirement to the target ie give extra fitness points to organisms which perform efficiently. I'm sorry, but there's something important I forgot to mention - I only want to do the simplification *after* a winning successful organism has evolved and satisfied the fitness function. -- http://mail.python.org/mailman/listinfo/python-list
Re: Installing python under the linux
[EMAIL PROTECTED] wrote: is there any folder with that basic Python on ubuntu linux where can I find file Grammar and change the names of python keywords. AFAICT, the Grammar file is not part of the binary installation. So, download the Python source distribution from python.org and unpack it if you want to play with it. Stefan -- http://mail.python.org/mailman/listinfo/python-list
Re: simplifying algebraic expressions
Hi David It seems that all you are asking for are the capabilities of Mathematica or Maple or some other CAS. A quick Google reveals that there is a CAS written in Python, called SAGE. That might be a good place to start; but I'll admit that I know nothing about it. I'm with Robin Becker on this one, if GP is good enough for your problem, then the answers it produces should be good enough. Set the fitness criteria in favour of shorter rather than longer expressions and let you system run a little longer. Not only do you avoid having to integrate into your system a novel library, you avoid a world of pain trying to decide whether or not x**2 is 'simpler' than x*x, (is x**4 'simpler' than (x**2)*(x**2) ?) and making sure that you don't define any circular simplification rules. If you don't like the computer algebra approach, you could google for 'program transformation' and follow some of the links. Good luck ! Mark Westwood On 26 Jun, 12:06, DavidM [EMAIL PROTECTED] wrote: On Tue, 26 Jun 2007 11:11:39 +0100, Robin Becker wrote: I have seen this sort of evolution strategy in the past and it's very wrong to attempt to simplify outside the genetic framework. The implication is that you know better than the overall fitness requirement. The additional expressions and redundancies allow for extra mutation and combination possibilities which is a good thing for the whole population. If you must, add the requirement to the target ie give extra fitness points to organisms which perform efficiently. I'm sorry, but there's something important I forgot to mention - I only want to do the simplification *after* a winning successful organism has evolved and satisfied the fitness function. -- http://mail.python.org/mailman/listinfo/python-list
Re: PEP 3107 and stronger typing (note: probably a newbie question)
Bruno Desthuilliers wrote: [...] It seems obvious from this that static typecheking would require dropping all dynamism from Python - then turning it into another, very different (and mostly useless as far as I'm concerned) language. IOW : you can't have Python *and* static typechecks - both are mutually exclusive. Hence my answer : if you want static typecheking, you'll have to use another language - one way or another. Well, static typing for me is usually the way to get the last speed required once the algorithmic improvements are exhausted. The language Pyrex uses combines dynamic and static typing in a very useful manner. Practicality beats purity Harri -- http://mail.python.org/mailman/listinfo/python-list
Re: The Modernization of Emacs: terminology buffer and keybinding
Twisted wrote: First, I didn't claim the ideal WP was necessarily perfectly WYSIWYG. Maybe I should have clarified my viewpoint. When it comes to programs that operate on the content of textual documents a word processor is WYSIWYG by definition. Anything else is a text editor. You may have a different view but that's mine. Your quiet change from discussing word processing to discussing WYSIWYG is interesting. See above. We were actually discussing text editors whose formatting capabilities (unless they are syntax-sensitive) are generally limited to line wrapping and auto-indentation. You introduced more complex document reformatting - something that I regard as a capability of word processors rather than text editors. Programming in role-playing game? And I meant my roguelike-filesystem- interface suggestion at least partly in jest... RPG is Report Generating Program in the context of programming languages. The RPG language is horrid: its a bastardized, fixed column assembler derivative that's been shoehorned into a typical report generator's processing loop. Even PL/1 and COBOL shine as paragons of programming language design by comparison. If it's so great, why hasn't it, and why hasn't OS/400 managed to escape from persistent obscurity? A fair question. I don't know, but it probably has a lot to do with AIX and the UNIX command shell with its great power but lack of consistency in naming, etc. In other words, the implementation was a dog. That doesn't refute the basic concept's validity. True, but doing better would be really hard because of all the information and context that would need to be associated with every mouse click in case it was needed to record a macro. At best it might make macro recording tedious. At worst it could make the whole GUI unresponsive. -- martin@ | Martin Gregorie gregorie. | Essex, UK org | -- http://mail.python.org/mailman/listinfo/python-list
Re: text-mode tree viewer?
Not quite, but almost: data=[[Peter, [Ian, [[Randy, [Clara], Paul, [Mary, [Arthur]]] def show(data,level): for i in data: if i.__class__.__name__=='list': show(i,level+1) else: print '%s-%s' % ('-'*level,i) show(data,0) /Martin -- http://mail.python.org/mailman/listinfo/python-list
Re: Python Info.
On 6/26/07, kaens [EMAIL PROTECTED] wrote: It was like being slapped with the mid-90s That was awesome. On 6/26/07, Stefan Behnel [EMAIL PROTECTED] wrote: Brandon wrote: Check it out: www.BrandonsMansion.com That is horrible. -- http://mail.python.org/mailman/listinfo/python-list
Re: Portable general timestamp format, not 2038-limited
Paul Rubin wrote: Martin Gregorie [EMAIL PROTECTED] writes: pretend the leap seconds never happened, just as Java does. Which leaves you about 30 seconds out by now - smelly. Easy solution: always read Zulu time directly from a recognized real-time clock That's no good, it doesn't let you accurately compute the difference between timestamps. I don't recall the OP mentioning time interval computability - just a requirement for sub second accuracy timestamps. If you want a precise timestamp and you don't want to deal with leap seconds, TAI is one approach. TAI? Care to provide a reference? There is currently some political pressure to get rid of leap seconds to ease computer synchronization, but (at least some of) the astronomy community is opposed; see Yes, that's just silly, especially because if you're trying to do date-time calculations across historic time or non-western calendars (e.g. Islamic) the minuscule accumulated leap second error is dwarfed by all the other uncertainties. No do NOT use stratum 1 sources for something like this. Fair comment. I was thinking about network delays and jitter and should not have forgotten Stratum 1 congestion. Of course, you could always run your own local Stratum 1 clock if accuracy is that important. IIRC the major American interbank networks use GPS as their time standard because its about the only system that can avoid jitter and propagation delays over continental areas without introducing smoothing engines, e.g. ntpd. -- martin@ | Martin Gregorie gregorie. | Essex, UK org | -- http://mail.python.org/mailman/listinfo/python-list
Re: text-mode tree viewer?
Hallöchen! Martin Skou writes: Not quite, but almost: data=[[Peter, [Ian, [[Randy, [Clara], Paul, [Mary, [Arthur]]] This was flawed, there were two brackets too much: data=[[Peter, [Ian, [Randy, [Clara, Paul, [Mary, [Arthur]]] def show(data,level): for i in data: if i.__class__.__name__=='list': show(i,level+1) else: print '%s-%s' % ('-'*level,i) show(data,0) It doesn't show Paul and Mary on the same level. I (think I) solved the problem with this: def print_tree(tree, line_columns=[0]): for i, item in enumerate(tree): current_line = u for j, pos in enumerate(line_columns): current_line += (pos - j) * + | print current_line if isinstance(item, list): print current_line[:-1] + +--- + item[0] new_line_columns = line_columns + [line_columns[-1] + 6 + len(item[0]) // 2] if i == len(tree) - 1: del new_line_columns[-2] print_tree(item[1], new_line_columns) elif isinstance(item, basestring): print current_line[:-1] + +--- + item Tschö, Torsten. -- Torsten Bronger, aquisgrana, europa vetus Jabber ID: [EMAIL PROTECTED] (See http://ime.webhop.org for ICQ, MSN, etc.) -- http://mail.python.org/mailman/listinfo/python-list
Re: Collections of non-arbitrary objects ?
On Jun 24, 10:31 pm, Bruno Desthuilliers [EMAIL PROTECTED] wrote: You perhaps don't know this, but most statically typed languages have the notion of either pointers or references, that can cause similar - and usually worse - problems. Yes, but those languages also have the notion of structures that do not allow arbitrary collections. That is what I was wondering about when I started the thread. It's fine that python has four different ways of creating collections of arbitrary data types, but I thought it might be helpful if python had, at least, one way of a creating a collection of non-arbitrary data. You do program carefully, don't you ?-) I try. But things like typos are a normal part a life. Now did you actually had any effective problem with Python's dynamism ? Or are you just scared ? Just scared. You know, Python is now something like 17 years old, and is used by a *lot* of peoples for a *lot* of programs - some of them far from trivial. I think you can be confident in this experience. IOW, just write your code, and you'll find out that the kind of problems you seem to fear so much will not happens that often. Of course, BASIC is over 40 years old, also used by a *lot* of people. A lot of non-trivial apps have been written in BASIC. But, BASIC is often criticized for it's lack of structure. A language's longevity, and/or popularity, don't mean there isn't room for improvement. Guido must think python has a lot of room for improvement since he's completely throwing out backward compatibility with python 3000. You don't use tuples instead of lists. Lists are collections, tuples are structured data. It seems to me that tuple are essentially immutable lists. So why impose that immutability restriction on a data collection? Why not just have lists and not tuples? What can a tuple do that a list can not do? Why was python designed so that tuples could be used for dictionary indexes, but not lists? Could it be because imposing that restriction on a data collection insures a certain degree of integrity? My point is: sometimes imposing some restrictions can give a degree in built-in integrity. Maybe you don't need that integrity insurance, if you code carefully enough, but can you always count on that? BTW: I'm not assuming that it will always be me running my own app. Sure, if an exception occureed while I was running my own app, I'd probably know what to do. But if somebody else (who - god forbid - didn't know python was running the app, things might be more difficult. -- http://mail.python.org/mailman/listinfo/python-list
Problem with wxPython
Hi I'm not sure if this is the right place to post, pardon me if it's not. I'm having a problem with an application written with wxpython. The frame seems only to refresh when moving my mouse of it, though i frequently call: frame.Refresh(True). In fact, that line is called by another thread, right after having modified some of the frames attributes. here are some snippets of code : class MyFrame(wx.Frame): def __init__(self, *args, **kwds): self.queue=Queue.Queue(0) # begin wxGlade: MyFrame.__init__ kwds[style] = wx.DEFAULT_FRAME_STYLE wx.Frame.__init__(self, *args, **kwds) iconFile = gnobots2.xpm icon1 = wx.Icon(iconFile, wx.BITMAP_TYPE_XPM) self.SetIcon(icon1) self.panel_1 = wx.Panel(self, -1) self.panel_1.Bind(wx.EVT_PAINT, self.on_paint) self.static_line_1 = wx.StaticLine(self, -1) self.text_ctrl_1 = wx.TextCtrl(self, -1, ,style=wx.TE_MULTILINE|wx.TE_READONLY|wx.TE_WORDWRAP) self.__set_properties() self.__do_layout() # end wxGlade def __set_properties(self): # begin wxGlade: MyFrame.__set_properties self.SetTitle(Simulation) self.SetSize((600, 400)) self.static_line_1.SetBackgroundColour(wx.Colour(0, 0, 0)) self.text_ctrl_1.SetMinSize((600, 100)) # end wxGlade self.blues = [] def __do_layout(self): # begin wxGlade: MyFrame.__do_layout sizer_1 = wx.BoxSizer(wx.VERTICAL) sizer_1.Add(self.panel_1, 1, wx.EXPAND, 0) sizer_1.Add(self.static_line_1, 0, wx.EXPAND, 0) sizer_1.Add(self.text_ctrl_1, 0, wx.ADJUST_MINSIZE, 0) self.SetAutoLayout(True) self.SetSizer(sizer_1) self.Layout() # end wxGlade def on_paint(self, event): dim = self.panel_1.GetSize() dc = wx.PaintDC(self.panel_1) total_types = len(Parameters.DEMANDERS_NUMBERS) large = dim[1] / (total_types + 3) long = dim[0] / Parameters.NUMBER_OF_BLUES - 1 for type in range(total_types): counter = long for blue in self.blues: green = (int(blue.biais[type])) * 20 red = - green if red0: red=0 if green0: green=0 color = wx.Colour(red, green, 75) dc.SetPen(wx.Pen(color,long)) dc.DrawLine(counter,50 + (type * (20 + large)),counter, 50 + large + (ty pe * (20 + large))) counter += long while(not self.queue.empty()): self.text_ctrl_1.AppendText(str(self.queue.get()) + \n) # end of class MyFrame class MyApp( wx.App): def OnInit(self): self.text = self.frame = MyFrame(None , -1, 'Frame Window Demo') self.frame.Show(True) self.SetTopWindow(self.frame) return True #this is called by an external thread def paint(self, blues): self.frame.blues = blues self.frame.Refresh(True) I don't know if that is enough information, feel free to ask for more. -- http://mail.python.org/mailman/listinfo/python-list
Re: eggs considered harmful
[EMAIL PROTECTED] (John J. Lee) writes: Harry George [EMAIL PROTECTED] writes: [EMAIL PROTECTED] (John J. Lee) writes: [...] 2. You can run your own private egg repository. IIRC, it's as simple as a directory of eggs and a plain old web server with directory listings turned on. You then run easy_install -f URL package_name instead of easy_install package_name . The distutils-sig archives will have more on this. Again, not speaking for anyone else: With 500 OSS packages, all of which play by the same tarball rules, we don't have resources to handle eggs differently. You said earlier: The rules are that a) a very few authorized downloaders obtain tarballs and put them in a depot and b) other users get tarballs from the depot and build from source. Not sure how this differs significantly from running a repository, in the sense I use it above. John Significant differences: depot: Place(s) where tarballs can be stored, and can then be reached via http. private egg repository: Tuned to the needs of Python eggs. E.g., not scattered over several directories or several versions. Thus a depot of self-contained packages can handle: 1. Multiple releases of the depot live at the same time. 2. Packages factored into CD-sized directories (not all in one -f location) 3. Multiple versions of Python, without having a new egg for each. 4. Multiple target platforms. Various *NIX and MS Win and Mac systems -- each at their own OS versions and own compiler versions. All without having platform-specific and compiler-specific eggs. 5. Different package version selections based on compatibility with other (non-Python) packages. E.g., to tune for GIS systems vs 3D animation systems vs numerical analysis systems vs web server systems. 6. Refresh process which does not need to fiddle with egg-ness, or even know about Python. Everything is a tarball. -- Harry George PLM Engineering Architecture -- http://mail.python.org/mailman/listinfo/python-list
Change Geany Syntax Highlighting
Hi, I think I may have finally found a IDE/text editor that I like, but, it still haves one problem. Geany haves syntax highlighting, but it is not very good for Python. It only seems to have a couple different colours. One for text and another for modules/classes/ functions. Is it possible to change the syntax highlighting for Python, so it highlights more and uses more different colours? I really liked the syntax highlighting for Python in kwrite/kate, but did not like the bugs. Your friend, Scott -- http://mail.python.org/mailman/listinfo/python-list
_hashlib portability issue
Hi all, I build python 2.5 on linux-x86-64 (centos). Why is lib-dynload/_hashlib.so dynamically linked with libssl.so.0.9.7 and not with libssl.so that points on it (same thing for libcrypto.so)? This causes problems when copying all the python distribution and running it on a different os, where the theses lib versions are not allways the same. Is it possible to configure that ? thanks, Olivier -- http://mail.python.org/mailman/listinfo/python-list
Re: text-mode tree viewer?
Torsten Bronger wrote: It doesn't show Paul and Mary on the same level. I (think I) solved the problem with this: I could do so if Poul was in a list of his own, like Arthur and Clara. /Martin -- http://mail.python.org/mailman/listinfo/python-list
Leo 4.4.3 final released
Leo 4.4.3 final is available at: http://sourceforge.net/project/showfiles.php?group_id=3458package_id=29106 Leo is a text editor, data organizer, project manager and much more. See: http://webpages.charter.net/edreamleo/intro.html The highlights of Leo 4.4.3: - Added support for chapters in Leo's core. - Added support for zipped .leo files. - Added a leoBridge module that allows full access to all of Leo's capabilities from programs running outside of Leo. - Removed all gui-dependent code from Leo's core. - Better support for the winpdb debugger. - Added support for @enabled-plugins nodes in settings files. - Added support for @open-with nodes in settings files. - Added support for @bool write_strips_blank_lines setting. - The__wx_gui plugin is now functional. - Leo can use aspell on Linux when using Python 2.5 or later. - @test nodes can now be run from any .leo file. - Many minor improvements, new settings, commands and bug fixes. Links: -- Leo: http://webpages.charter.net/edreamleo/front.html Home: http://sourceforge.net/projects/leo/ Download: http://sourceforge.net/project/showfiles.php?group_id=3458 CVS: http://leo.tigris.org/source/browse/leo/ Quotes: http://webpages.charter.net/edreamleo/testimonials.html Edward K. Ream email: [EMAIL PROTECTED] Leo: http://webpages.charter.net/edreamleo/front.html -- http://mail.python.org/mailman/listinfo/python-list
Re: Installing python under the linux
Hello, No. The only way to change the keywords would be to edit the Python source and re-compile it. This was very helpful information , I already know that but I don't know how to that.PLEASE HELP ME ABOUT THIS, I WILL BE VERY GRATEFUL TO YOU. ( IF you can please step by step how to I install that source ) THANKS -- http://mail.python.org/mailman/listinfo/python-list
Re: The Modernization of Emacs: terminology buffer and keybinding
Twisted wrote: [...] Hey dude, get back to selling used cars and leave us computer geeks alone, will ya? Thanks. -- http://mail.python.org/mailman/listinfo/python-list
Re: Collections of non-arbitrary objects ?
walterbyrd a écrit : On Jun 24, 10:31 pm, Bruno Desthuilliers [EMAIL PROTECTED] wrote: You perhaps don't know this, but most statically typed languages have the notion of either pointers or references, that can cause similar - and usually worse - problems. Yes, but those languages also have the notion of structures that do not allow arbitrary collections. Ever played with casting in C ? That is what I was wondering about when I started the thread. It's fine that python has four different ways of creating collections of arbitrary data types, but I thought it might be helpful if python had, at least, one way of a creating a collection of non-arbitrary data. As I explained, while technically possible (and not specially difficult), this is a waste of time given Python's dynamism. You do program carefully, don't you ?-) I try. But things like typos are a normal part a life. So are they in any language. I fail to see much difference here. Now did you actually had any effective problem with Python's dynamism ? Or are you just scared ? Just scared. So take a deep breath and try to just do the simplest thing (in this case: using builtin collection types). Usually, it JustWorks(tm). You know, Python is now something like 17 years old, and is used by a *lot* of peoples for a *lot* of programs - some of them far from trivial. I think you can be confident in this experience. IOW, just write your code, and you'll find out that the kind of problems you seem to fear so much will not happens that often. Of course, BASIC is over 40 years old, also used by a *lot* of people. Not the same kind of people I'd say !-) A lot of non-trivial apps have been written in BASIC. But, BASIC is often criticized for it's lack of structure. Old time basic effectively lacks of structure, since it uses goto's instead of functions, loops and conditionals (google for structured programming). What I meant here is that one of the lessons of this collective experience is that 'typed' containers are more often harmful than useful. A language's longevity, and/or popularity, don't mean there isn't room for improvement. Indeed. But declarative static typechecking wouldn't be an improvement. Guido must think python has a lot of room for improvement since he's completely throwing out backward compatibility with python 3000. Not completely throwing out. Just allowing *some* major breakages - the kind you usually get with each major release of other languages, but that Python managed to avoid as much as possible so far. You don't use tuples instead of lists. Lists are collections, tuples are structured data. It seems to me that tuple are essentially immutable lists. They are not (even if you can use them that way too). FWIW and IIRC, this is a FAQ. So why impose that immutability restriction on a data collection? Because tuples are *not* collections. They are *structured data*. The canonical tuple is a SQL database row. Why not just have lists and not tuples? because tuples are not lists. What can a tuple do that a list can not do? Be immutable. Why was python designed so that tuples could be used for dictionary indexes, but not lists? How would you compute a hash from a generic mutable collection ? Could it be because imposing that restriction on a data collection insures a certain degree of integrity? Once again: tuples are *not* collections. Would you define a string as a collection ? My point is: sometimes imposing some restrictions can give a degree in built-in integrity. Yes. But the kind of restriction you're talking about won't buy you much, as I already explained, and, in practice, happens to be mostly useless. Maybe you don't need that integrity insurance, if you code carefully enough, Maybe you don't need that integrity insurance, period ?-) but can you always count on that? It seems that tens of thousands of Python users are doing fine without this. BTW: I'm not assuming that it will always be me running my own app. Sure, if an exception occureed while I was running my own app, I'd probably know what to do. But if somebody else (who - god forbid - didn't know python was running the app, things might be more difficult. The canonical solution is to have an application-level error handler that logs uncaught exceptions (so the developper can get at them), display a user-friendly error message (eventually giving the user a way to submit a bug report to the developper), and try to crash as cleanly as possible. However careful and serious you are wrt/ programming and testing, your program *will* have bugs (unless it's some kind of hello world). Better learn to live with it. Let's suppose you implement a restrictedList. It of course raises an exception when trying to add a 'non-compliant' item. All this happening at runtime, of course. Now let's suppose there's one such error in your code that managed to pass thru tests.
Re: The Modernization of Emacs: terminology buffer and keybinding
Matthias Buelow [EMAIL PROTECTED] writes: Twisted wrote: [...] Hey dude, get back to selling used cars and leave us computer geeks alone, will ya? Well, how will his customers react to the stories about avoiding Mercedes cars because of people getting hit in the face by the crank start? -- David Kastrup -- http://mail.python.org/mailman/listinfo/python-list
Re: The Modernization of Emacs: terminology buffer and keybinding
On 2007-06-25, Giorgos Keramidas [EMAIL PROTECTED] wrote: X11 interface. I don't see why Notepad is special in any way here. It's not. I discovered, quite by accident, wordpad is the superior text editor in windows. It even properly formats those cryptic brag pages crackers put in cracked software. nb -- http://mail.python.org/mailman/listinfo/python-list
Re: The Modernization of Emacs: terminology buffer and keybinding
[Robert Uhl [EMAIL PROTECTED]] | | Once again I am forced to wonder if you have _ever_ actually used | emacs. find-file has tab completion: hit tab without anything typed, and | it displays _everything_ in the directory; type a few characters to | narrow it down; hit tab to complete the filename and be done with | it. ...and of course, in addition you have access to history so you can easily find previous parameters and edit them. this makes it very efficient when you need to fiddle about in deep directory trees in a way no GUI can yet offer. ...and then there's bookmarking, which is very good for keeping a set of files (and locations) handy for quick access. -Bjørn -- http://mail.python.org/mailman/listinfo/python-list
Help needed in Handling HTML file
Hi, Right now Iam handling HTML files using Python. Is there any modules to support HTML parsing and rendering ? or suggest me any other way to support HTML. thanks -- http://mail.python.org/mailman/listinfo/python-list
Converting Diff Output to XML?
What would be the best way to convert the regular (unix) diff output into XML? Are there any libraries at all which might help? -- http://mail.python.org/mailman/listinfo/python-list
Re: The Modernization of Emacs: terminology buffer and keybinding
[Twisted [EMAIL PROTECTED]] | | Really? None of this happens if you just do the straightforward file- | open command, which should obviously at least provide a navigable | directory tree, but definitely does not. well, if you insist on using Emacs in the most clumsy way possible, then of course, not it won't be easy. it is very obvious to any Emacs user that you haven't bothered learning Emacs at all. go away, troll. -Bjørn -- http://mail.python.org/mailman/listinfo/python-list
Re: Help needed in Handling HTML file
On Tue, Jun 26, 2007 at 09:42:37AM -0500, senthil arasu wrote: Right now Iam handling HTML files using Python. Is there any modules to support HTML parsing and rendering ? or suggest me any other way to support HTML. Parsing: BeautifulSoup http://www.crummy.com/software/BeautifulSoup/ Rendering: not sure. If worse came to worst, you could always call out to 'w3m -dump' using system(). How sophisticated do you want your rendering to be? Other people on this last may well know of ways to fully render a page, including graphics and JavaScript and whatever else, using a scriptable Python object; I do not. -- Stephen R. Laniel [EMAIL PROTECTED] Cell: +(617) 308-5571 http://laniels.org/ PGP key: http://laniels.org/slaniel.key -- http://mail.python.org/mailman/listinfo/python-list
Re: Installing python under the linux
[EMAIL PROTECTED] wrote: Hello, No. The only way to change the keywords would be to edit the Python source and re-compile it. This was very helpful information , I already know that but I don't know how to that.PLEASE HELP ME ABOUT THIS, I WILL BE VERY GRATEFUL TO YOU. ( IF you can please step by step how to I install that source ) Stop shouting. Start reading this: http://www.catb.org/~esr/faqs/smart-questions.html And for god's sake, follow the suggestions you got when asking the same question over and over: Stop trying to do what you want to do - altering python. That is _NOT_ the way to go. Especially not if someone is obviously not skilled enough to really dig into the guts of the interpreter. Instead, tell us what you really want. Write a preprocessor to alter your user's code to become python code. Diez -- http://mail.python.org/mailman/listinfo/python-list
logging anomaly
I have some fairly simply code in a turbogears controller that uploads files. In this code, I inserted a 'start uploading' and a 'done uploading' log record like this: logger.info('- start uploading file: '+Filename) # copy file to specified location. while 1: # Read blocks of 8KB at a time to avoid memory problems with large files. data = Filedata.file.read(1024 * 8) if not data: break fp.write(data) logger.info('- done uploading file: '+Filename) fp.close() It is nice to occasionally see the upload time for a large file...but what I am seeing is that the 'start' message is not being logged until just immediately before the 'done' message: 2007-06-26 07:59:38,192 vor.uploader INFO - start uploading file: 7_Canyons_Clip_1.flv 2007-06-26 07:59:38,206 vor.uploader INFO - done uploading file: 7_Canyons_Clip_1.flv I know this is wrong because this is a large file that took almost a minute to upload. Seems like, with my experience with log4j, upon which I believe the python logging module was modeled, this should just work as expected. What am I missing here? Jesse. -- http://mail.python.org/mailman/listinfo/python-list
Re: The Modernization of Emacs: terminology buffer and keybinding
[Robert Uhl [EMAIL PROTECTED]] | | Agreed. Stallman got sidetracked by Scheme, which IMHO was a | dead-end. too many people buying SICP and believing what they heard about it being an important book. I too spent some time exploring Scheme, or should I say, wasted some time, years ago, and nothing came of it other than a profound irritation. these people seemed to be completely disconnected from reality. Scheme, and thus Guile, might have been a viable path if these people had only been practical instead of stubbornly insisting on being odd. | A Common Lisp emacs would be pretty sweet. There's a Climacs project, | but they're just focused on providing an editor, not on providing a | full-fledged emacs. if nothing else, a proper Emacs in Common Lisp might give me a reason to learn Lisp properly. -Bjørn -- http://mail.python.org/mailman/listinfo/python-list
Re: The Modernization of Emacs: terminology buffer and keybinding
[Twisted [EMAIL PROTECTED]] | On Jun 23, 2:04 am, Robert Uhl [EMAIL PROTECTED] wrote: | Of course, emacs doesn't take years of mastery. It takes 30, 40 | minutes. | | I gave it twice that, and it failed to grow on me in that amount of | time. then it just wasn't meant to be. stick to Notepad. | If I haven't, it must be the case that finding this tutorial (or even | discovering that it exists) was nontrivial, or it wasn't built into | emacs, one or the other. when Emacs on my machine starts it says the following: Welcome to GNU Emacs, one component of a Linux-based GNU system. Get help C-h (Hold down CTRL and press h) Undo changes C-x u Exit Emacs C-x C-c Get a tutorial C-h t Use Info to read docsC-h i Ordering manuals C-h RET Activate menubar F10 or ESC ` or M-` (`C-' means use the CTRL key. `M-' means use the Meta (or Alt) key. If you have no Meta key, you may instead type ESC followed by the character.) if you haven't found the tutorial, you haven't really tried very hard. -Bjørn -- http://mail.python.org/mailman/listinfo/python-list
Help needed with translating perl to python
I have a perl script which connect to network stream using sockets. The scripts first logins in to the server and then parses the data comming from the socket. Statement 1: my $today = sprintf(%4s%02s%02s, [localtime()]-[5]+1900, [localtime()]-[4]+1, [localtime()]-[3]) ; Statement 2: my $password = md5_hex($today$username) ; Statement group 3: $msglen = bcdlen(length($msg)) ; sub bcdlen { my $strlen = sprintf(%04s, shift) ; my $firstval = substr($strlen, 2, 1)*16 + substr($strlen, 3, 1) ; my $lastval = substr($strlen, 0, 1)*16 + substr($strlen, 1, 1) ; return chr($firstval) . chr($lastval) ; } -- http://mail.python.org/mailman/listinfo/python-list
Re: Output XML buffer?
Stefan Behnel wrote: [---] lxml.etree already implements that, BTW. http://codespeak.net/lxml Ok, thanks. I'll take a look at it. [---] Some people propose just that if you really *want* a declaration. No need to have it, though, as ET will create well-formed XML anyway. Yeah, I checked the specs, and found a '?' there (but not where I expected it to be). I just checked the first mention of the header, and didn't see it marked as optional. However, I want it to be there, simply because it feels better. I'll check lxml out. -- Kind regards, Jan Danielsson -- http://mail.python.org/mailman/listinfo/python-list
Re: The Modernization of Emacs: terminology buffer and keybinding
[Twisted [EMAIL PROTECTED]] | | and you said that depended on the definition of expert. Apparently | you believe there is a type of expert for whom beginner-friendly | software is intrinsically less usable than beginner-hostile | software. no, I was alluding to you thinking that posession of knowledge which is considered rudimentary basics for Emacs somehow elevates the person in question to an expert. just because you have not, by your own admission, been able to even locate the built-in tutorial, I don't think your definition of expert is very relevant. -Bjørn -- http://mail.python.org/mailman/listinfo/python-list
popen and a long running process in a wx.python application
Hello, How can I capture the output of a long runnning process which I open with popen() ? I tried reading line by line, char by char, but the result always comes when the process finishes. (I am trying to make a wx.python program that opens some make ... with popen). How can I receive the output of the program immediatly, so that I can show a progressbar in my application ? I always get the program's output after it finished executing. Is this the right place, or should I post this to wx.python ? Thank you in advance. -- http://mail.python.org/mailman/listinfo/python-list
Re: Help needed with translating perl to python
I posted too soon: Statement 1: my $today = sprintf(%4s%02s%02s, [localtime()]-[5]+1900, [localtime()]-[4]+1, [localtime()]-[3]) ; 1. is localtime the same as time in python? 2. What does - ? do in perl? 3. What is 'my' Statement 2: my $password = md5_hex($today$username) ; is md5_hex the same as md5.new(key).hexdigest() in python? $msglen = bcdlen(length($msg)) ; 1. here the funciton is being called with the length of variable msg. However the function def below does not have any args sub bcdlen { my $strlen = sprintf(%04s, shift) ; my $firstval = substr($strlen, 2, 1)*16 + substr($strlen, 3, 1) ; my $lastval = substr($strlen, 0, 1)*16 + substr($strlen, 1, 1) ; return chr($firstval) . chr($lastval) ; } 2. What does shift do above? 3. is the '.' operator just + in python? Thanks, Vineet -- http://mail.python.org/mailman/listinfo/python-list
RE: Collections of non-arbitrary objects ?
From: walterbyrd Yes, but those languages also have the notion of structures that do not allow arbitrary collections. That is what I was wondering about when I started the thread. It's fine that python has four different ways of creating collections of arbitrary data types, but I thought it might be helpful if python had, at least, one way of a creating a collection of non-arbitrary data. The thing is, in python all data is arbitrary. The differences between the data types float, int, string, etc. are unimportant. What is important is the _behavior_ of those types. If it is really necessary to check data when putting it into your collection (user input, processing side-effects will cause damage, etc.), test that it behaves the way you need it to behave rather than requiring a specific type. It seems to me that tuple are essentially immutable lists. So why impose that immutability restriction on a data collection? Why not just have lists and not tuples? What can a tuple do that a list can not do? Why was python designed so that tuples could be used for dictionary indexes, but not lists? Could it be because imposing that restriction on a data collection insures a certain degree of integrity? My point is: sometimes imposing some restrictions can give a degree in built-in integrity. Maybe you don't need that integrity insurance, if you code carefully enough, but can you always count on that? Tuples are more like structs in C. They are collections of data in a particular order. Lists, on the other hand, are ordered collections of data that all exhibit the same behavior. You don't have to use them like that, but those are the uses they were developed for as I understand it. Function arguments are the obvious example of a tuple. The position of an argument in the argument tuple defines how it is used in the function; get the position wrong, and the function will act unexpectedly and probably raise an exception. Iterating over a set of function arguments doesn't make much sense in the general case. Lists, are generally intended to be iterated over. You may take a list of items that are addable, and add them. You may take a list of file-like objects and concatenate them into one file-like object. (And, note the -like part of that. They don't have to be files, they just have to be things that _behave_ like files for the file-like functions you'll be using.) BTW: I'm not assuming that it will always be me running my own app. Sure, if an exception occureed while I was running my own app, I'd probably know what to do. But if somebody else (who - god forbid - didn't know python was running the app, things might be more difficult. So, what happens when this user tries to put something into your restricted list that isn't allowed? I expect they'll produce an exception of some sort, and the app will crash if you don't handle that exception. Which is exactly what will happen if you don't restrict the list data and it gets processed. -- -Bill Hamilton -- http://mail.python.org/mailman/listinfo/python-list
Re: Problem with wxPython
On 6/26/07, Ali [EMAIL PROTECTED] wrote: Hi I'm not sure if this is the right place to post, pardon me if it's not. I'm having a problem with an application written with wxpython. The frame seems only to refresh when moving my mouse of it, though i frequently call: frame.Refresh(True). In fact, that line is called by another thread, right after having modified some of the frames attributes. In general, the wxpython-users list is a better source of wxPython answers than c.l.p. wxPython gui elements are not threadsafe unless otherwise indicated. Don't make calls against gui objects from other threads. This includes Refresh(). You can make this call in a threadsafe manner using wx.CallAfter like so: wx.CallAfter(frame.Refresh, True) code snipped -- http://mail.python.org/mailman/listinfo/python-list
Re: The Modernization of Emacs: terminology buffer and keybinding
Bjorn Borud [EMAIL PROTECTED] writes: [Twisted [EMAIL PROTECTED]] | | and you said that depended on the definition of expert. Apparently | you believe there is a type of expert for whom beginner-friendly | software is intrinsically less usable than beginner-hostile | software. no, I was alluding to you thinking that posession of knowledge which is considered rudimentary basics for Emacs somehow elevates the person in question to an expert. just because you have not, by your own admission, been able to even locate the built-in tutorial, I don't think your definition of expert is very relevant. Since he did not ever download a copy of Emacs in the last 10 years (and won't according to his own statements download anything or look at any web page because his computer incompetency makes him incapable of avoiding or detecting viruses) one can hardly blame him for not finding the tutorial in software he did not download. -- David Kastrup -- http://mail.python.org/mailman/listinfo/python-list
Re: Help needed with translating perl to python
vj wrote: I posted too soon: Statement 1: my $today = sprintf(%4s%02s%02s, [localtime()]-[5]+1900, [localtime()]-[4]+1, [localtime()]-[3]) ; 1. is localtime the same as time in python? http://perldoc.perl.org/functions/localtime.html It's more like time.localtime() One key thing you'll notice here is the adding of 1900 - the year returned by Perl's localtime is 'number of years since 1900' so in order to convert it to the actual year you have to add 1900. 2. What does - ? do in perl? In this case, it's accessing localtime similar to something like localtime[5]. - can basically be considered similar to dotted notation in Python, used to access items in a container object. 3. What is 'my' http://perldoc.perl.org/functions/my.html It's a way of declaring a local variable in Perl. Statement 2: my $password = md5_hex($today$username) ; is md5_hex the same as md5.new(key).hexdigest() in python? http://www.xav.com/perl/site/lib/Digest/MD5.html#functions $msglen = bcdlen(length($msg)) ; 1. here the funciton is being called with the length of variable msg. However the function def below does not have any args sub bcdlen { my $strlen = sprintf(%04s, shift) ; my $firstval = substr($strlen, 2, 1)*16 + substr($strlen, 3, 1) ; my $lastval = substr($strlen, 0, 1)*16 + substr($strlen, 1, 1) ; return chr($firstval) . chr($lastval) ; } Perl subroutines (functions) can be declared without any arguments if desired, and then you can use 'shift' to access any arguments. So: sub printMe { my $arg = shift; print $arg; } would print the first argument passed to it, e.g. printMe(foo); would output foo. 2. What does shift do above? http://perldoc.perl.org/functions/shift.html See above, it's used for accessing the first value of an array, in this case an arry of arguments to a subroutine. 3. is the '.' operator just + in python? '.' operator is used for string concatenation in Perl, so + would be the equivalent in Python, yes. -Jay -- http://mail.python.org/mailman/listinfo/python-list
Re: PEP 3107 and stronger typing (note: probably a newbie question)
Bruno Desthuilliers schrieb: Stephen R Laniel a écrit : On Wed, Jun 20, 2007 at 09:41:09PM +0100, Michael Hoffman wrote: If you asked Java programmers why you couldn't turn *off* Java's static type checking if you wanted to, you'd probably get a similar response. Perhaps it would help for me to explain what I'd like. Under both Perl and Python, I've found myself having/wanting to write things like so: def my_func( int_arg, str_arg ): try: int_arg = int( int_arg ) str_arg = str( str_arg ) except ValueError: sys.stderr.write( Args are not of the right type\n ) sys.exit(1) Just a question : what will happen if you get rid of the try/except block ?-) The error will remain unnoticed and the argument might survive another few function calls but eventually fails deep down somewhere with: TypeError: cannot concatenate 'str' and 'list' objects then you have to examine the traceback and hope the real error is visible somewhere (an argument not conforming to the specification of the function prototype, or the lack thereof). cheers Paul -- http://mail.python.org/mailman/listinfo/python-list
Re: Python's only one way to do it philosophy isn't good?
On Jun 26, 12:26 am, Paul Rubin http://[EMAIL PROTECTED] wrote: Precisely, I think that's what Alexander was trying to get across, Lisp didn't have a uniform interface for traversing different types of sequence. And he's wrong, at least as far as common lisp is concerned - map does exactly that. http://www.lispworks.com/documentation/HyperSpec/Body/f_map.htm Map doesn't work on generators or iterators because they're not part of the common lisp spec, but if someone implemented them as a library, said library could easily include a map that handled them as well. -- http://mail.python.org/mailman/listinfo/python-list
Return name of caller function?
For example, how do I get this to work? def func(): print This is, __?__ return __caller__ def echo(): print This is , __?__ return func() print echo() This is echo This is func echo Yahoo! oneSearch: Finally, mobile search that gives answers, not web links. http://mobile.yahoo.com/mobileweb/onesearch?refer=1ONXIC -- http://mail.python.org/mailman/listinfo/python-list
Hi How to implement switch case statement.
Hi My requirement is to check a variable with a set of constant values and call a particular function depending on the value of the variable. A C-language implementation might look something like : switch (a) { case 1 : func1(); case 2 : func2() ; default : func3(); } How to do it in Python ? Ofcourse an if-elif construct can also be used to do the job, which is indeed my last option. However i would like to know if a 'switch-case' option is available. I found some implementations involving dictionaries and lambdas but i don't know how suitable they might be for this kind of an implementation. Any suggestions and ideas welcome Thanks and regards Parasuram N.A. I know the answers to all the questions But its just that i don't find some of them worth answering The information contained in this electronic message and any attachments to this message are intended for the exclusive use of the addressee(s) and may contain proprietary, confidential or privileged information. If you are not the intended recipient, you should not disseminate, distribute or copy this e-mail. Please notify the sender immediately and destroy all copies of this message and any attachments. WARNING: Computer viruses can be transmitted via email. The recipient should check this email and any attachments for the presence of viruses. The company accepts no liability for any damage caused by any virus transmitted by this email. www.wipro.com-- http://mail.python.org/mailman/listinfo/python-list
Re: PEP 3107 and stronger typing (note: probably a newbie question)
On 6/26/07, paul [EMAIL PROTECTED] wrote: Bruno Desthuilliers schrieb: Stephen R Laniel a écrit : On Wed, Jun 20, 2007 at 09:41:09PM +0100, Michael Hoffman wrote: If you asked Java programmers why you couldn't turn *off* Java's static type checking if you wanted to, you'd probably get a similar response. Perhaps it would help for me to explain what I'd like. Under both Perl and Python, I've found myself having/wanting to write things like so: def my_func( int_arg, str_arg ): try: int_arg = int( int_arg ) str_arg = str( str_arg ) except ValueError: sys.stderr.write( Args are not of the right type\n ) sys.exit(1) Just a question : what will happen if you get rid of the try/except block ?-) The error will remain unnoticed and the argument might survive another few function calls but eventually fails deep down somewhere with: TypeError: cannot concatenate 'str' and 'list' objects then you have to examine the traceback and hope the real error is visible somewhere (an argument not conforming to the specification of the function prototype, or the lack thereof). In the example given, not catching the example will provide *more* information than the terrible exception handling performed. If you're going to write thick boilerplate to log the values of your locals and arguments around all your functions, I suggest that you not do that and instead make use of the ehanced tracebacks in the cgitb module, which will give you a stack trace with the values of the locals in each stack frame. The only reason to trap an exception is either to redirect the exception (for example, I have a call in a thread which can't be permitted to throw, so exceptions are caught and transfered elsewhere for logging), or to correct the error that caused the exception. Boilerplate like this is at best useless, and in the case of the example given actively worse than simply not catching it at all. -- http://mail.python.org/mailman/listinfo/python-list
Re: Return name of caller function?
On Mon, Jun 25, 2007 at 06:27:29PM -0700, Matthew Peter wrote: For example, how do I get this to work? def func(): print This is, __?__ return __caller__ def echo(): print This is , __?__ return func() inspect is your friend: http://docs.python.org/lib/inspect-stack.html -- Stephen R. Laniel [EMAIL PROTECTED] Cell: +(617) 308-5571 http://laniels.org/ PGP key: http://laniels.org/slaniel.key -- http://mail.python.org/mailman/listinfo/python-list
Re: Python's only one way to do it philosophy isn't good?
On Jun 26, 8:49 am, Andy Freeman [EMAIL PROTECTED] wrote: Map doesn't work on generators or iterators because they're not part of the common lisp spec, but if someone implemented them as a library, said library could easily include a map that handled them as well. Note that this is is a consequence of something that Python does better than lisp. Far more parts of python are defined in terms of named operations which are data-type independent. As a result, they work on things that the implementor (or spec) never considered. That said, it's no big deal for a lisp program that needed an enhanced map that also understands iterators and generators to use it. Compare that with what a programmer using Python 2.4 has to do if she'd like the functionality provided by 2.5's with statement. Yes, with is just syntax, but it's extremely useful syntax, syntax that can be easily implemented with lisp-style macros. -- http://mail.python.org/mailman/listinfo/python-list
Re: Help needed with translating perl to python
On Jun 26, 8:04 am, vj [EMAIL PROTECTED] wrote: I have a perl script which connect to network stream using sockets. The scripts first logins in to the server and then parses the data comming from the socket. Statement 1: my $today = sprintf(%4s%02s%02s, [localtime()]-[5]+1900, [localtime()]-[4]+1, [localtime()]-[3]) ; Perl has Do What I Mean features that allow you to treat strings and number interchangeably. Python's time.localtime returns a tuple of integers so you'll have to use the proper format conversion characters: import time today = %04d%02d%02d % time.localtime()[0:3] # No need to add offsets of 1900 and 1 because Python # does this for you Statement 2: my $password = md5_hex($today$username) ; You should have added that md5_hex is comes from Digest::MD5, not a core Perl module. Regardless: import md5 password = md5.new(%s%s % (today, username)).hexdigest() # seems to be what you wanted Statement group 3: $msglen = bcdlen(length($msg)) ; sub bcdlen { my $strlen = sprintf(%04s, shift) ; my $firstval = substr($strlen, 2, 1)*16 + substr($strlen, 3, 1) ; my $lastval = substr($strlen, 0, 1)*16 + substr($strlen, 1, 1) ; return chr($firstval) . chr($lastval) ; } You can have a variadic function in Python but the parameters are passed via a tuple. Because a tuple is immutable, one cannot shift elements out of a tuple. Here I've used the first parameter via selection by index. Perl's substr is replaced by slice notation; chr is, well, chr. Concatenation (Perl's '.' operator) is replaced by string formatting: def bcdlen(*args): ... strlen = %04s % str(args[0]) ... firstval = int(strlen[2:3]) * 16 + int(strlen[3:4]) ... lastval = int(strlen[0:1]) * 16 + int(strlen[1:2]) ... return %s%s % (chr(firstval), chr(lastval)) ... bcdlen(4546) 'FE' -- Hope this helps, Steven -- http://mail.python.org/mailman/listinfo/python-list
Re: Help needed with translating perl to python
On Tue, Jun 26, 2007 at 08:17:06AM -0700, vj wrote: I posted too soon: Statement 1: my $today = sprintf(%4s%02s%02s, [localtime()]-[5]+1900, [localtime()]-[4]+1, [localtime()]-[3]) ; 1. is localtime the same as time in python? You could use this instead - from time import localtime today = localtime() - 'today' would then contain a tuple: (2007, 6, 26, 17, 41, 27, 327829) which you could access in a similar way as above (eg: today[0] == 2007) obviously the order of the values is different from the perl counterpart. 2. What does - ? do in perl? '-' references a hash (or dict in python) key. In python it would be localtime()[4] 3. What is 'my' 'my' declares local data structures (scalars, arrays or hashes) when 'use strict;' is defined in the perl script. Statement 2: my $password = md5_hex($today$username) ; is md5_hex the same as md5.new(key).hexdigest() in python? Yes it is. $msglen = bcdlen(length($msg)) ; 1. here the funciton is being called with the length of variable msg. However the function def below does not have any args sub bcdlen { my $strlen = sprintf(%04s, shift) ; my $firstval = substr($strlen, 2, 1)*16 + substr($strlen, 3, 1) ; my $lastval = substr($strlen, 0, 1)*16 + substr($strlen, 1, 1) ; return chr($firstval) . chr($lastval) ; } 2. What does shift do above? 'shift' accesses the first argument passed to the function, in this case the value of length($msg) 3. is the '.' operator just + in python? In principle yes. -- Greg Armer [EMAIL PROTECTED] http://www.codelounge.org If it would be cheaper to repair the old one, the company will insist on the latest model. -- http://mail.python.org/mailman/listinfo/python-list
Re: Python changing keywords name
Gabriel Genellina [EMAIL PROTECTED] wrote: (I hope nobody will abuse this technique... Y perd=F3n a los hispanoparlantes por lo horrible de la traducci=F3n). Ah, I only spotted this when I came to post a response. And the reason I was going to post a response was that these: 'assert': 'afirmar', 'exec': 'ejecutar', 'import': 'importar', 'pass': 'pasar', 'print': 'imprimir', 'raise': 'lanzar', 'return': 'retornar', 'try': 'intentar', 'yield': 'producir', look rather odd to this non-native Spanish speaker (or at least reader), and I was going to ask if they sounded more idiomatically correct if it's not your nth language. I guess they don't 8-) -- \S -- [EMAIL PROTECTED] -- http://www.chaos.org.uk/~sion/ Frankly I have no feelings towards penguins one way or the other -- Arthur C. Clarke her nu becomeþ se bera eadward ofdun hlæddre heafdes bæce bump bump bump -- http://mail.python.org/mailman/listinfo/python-list
Re: logging anomaly
On Jun 26, 3:48 pm, Jesse James [EMAIL PROTECTED] wrote: 2007-06-26 07:59:38,192 vor.uploader INFO - start uploading file: 7_Canyons_Clip_1.flv 2007-06-26 07:59:38,206 vor.uploader INFO - done uploading file: 7_Canyons_Clip_1.flv I know this is wrong because this is a large file that took almost a minute to upload. Seems like, with my experience with log4j, upon which I believe the pythonloggingmodule was modeled, this should just work as expected. What am I missing here? Not sure...it depends on your logging configuration. Ordinarily, the event would be processed straight away...delays in seeing output could be because of e.g. unflushed I/O buffers or buffering via MemoryHandler (however, this would not affect the time printed for the event, which is determined at the time the event is logged). Does this same behaviour occur if the message is logged to a console handler? (StreamHandler with sys.stderr as the stream, which is not redirected to a file). Regards, Vinay Sajip -- http://mail.python.org/mailman/listinfo/python-list
Re: eggs considered harmful
Harry George wrote: [EMAIL PROTECTED] (John J. Lee) writes: Not sure how this differs significantly from running a repository, in the sense I use it above. John Significant differences: depot: Place(s) where tarballs can be stored, and can then be reached via http. private egg repository: Tuned to the needs of Python eggs. E.g., not scattered over several directories or several versions. Please note that easy_install can use source tarballs, too. Thus a depot of self-contained packages can handle: 1. Multiple releases of the depot live at the same time. I'm not sure how this is relevant. 2. Packages factored into CD-sized directories (not all in one -f location) Of course, you can specify multiple locations for easy_install to find packages. You can store these in your ~/.pydistutils.cfg file so you never have to type them on the command line. 3. Multiple versions of Python, without having a new egg for each. 4. Multiple target platforms. Various *NIX and MS Win and Mac systems -- each at their own OS versions and own compiler versions. All without having platform-specific and compiler-specific eggs. 5. Different package version selections based on compatibility with other (non-Python) packages. E.g., to tune for GIS systems vs 3D animation systems vs numerical analysis systems vs web server systems. 6. Refresh process which does not need to fiddle with egg-ness, or even know about Python. Everything is a tarball. And all of these are obviated by the fact that easy_install can find and build source tarballs, too. -- Robert Kern I have come to believe that the whole world is an enigma, a harmless enigma that is made terrible by our own mad attempt to interpret it as though it had an underlying truth. -- Umberto Eco -- http://mail.python.org/mailman/listinfo/python-list
Re: Installing python under the linux
On 2007-06-26, Diez B. Roggisch [EMAIL PROTECTED] wrote: No. The only way to change the keywords would be to edit the Python source and re-compile it. This was very helpful information , I already know that but I don't know how to that.PLEASE HELP ME ABOUT THIS, I WILL BE VERY GRATEFUL TO YOU. (IF you can please step by step how to I install that source) Stop shouting. Start reading this: http://www.catb.org/~esr/faqs/smart-questions.html And for god's sake, follow the suggestions you got when asking the same question over and over: Stop trying to do what you want to do - altering python. That is _NOT_ the way to go. He's also already been told where to download the source and pointed towards instructions on building and installing it. He seems rather impervious to help. -- Grant Edwards grante Yow! Now I understand the at meaning of THE MOD SQUAD! visi.com -- http://mail.python.org/mailman/listinfo/python-list
Re: Installing python under the linux
On 6/26/07, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote: Hello, No. The only way to change the keywords would be to edit the Python source and re-compile it. This was very helpful information , I already know that but I don't know how to that.PLEASE HELP ME ABOUT THIS, I WILL BE VERY GRATEFUL TO YOU. ( IF you can please step by step how to I install that source ) You need to execute the following commands: apt-get install build-essential fakeroot apt-get source python apt-get build-dep python cd python-some-more-stuff-here-and-a-version-number (make the changes you want to make) sudo dpkg-buildpackage -rfakeroot -b If you need more help building the deb, you should ask on the Ubuntu mailing lists. -- Evan Klitzke [EMAIL PROTECTED] -- http://mail.python.org/mailman/listinfo/python-list
Re: _hashlib portability issue
Olivier Feys wrote: Hi all, I build python 2.5 on linux-x86-64 (centos). Why is lib-dynload/_hashlib.so dynamically linked with libssl.so.0.9.7 and not with libssl.so that points on it (same thing for libcrypto.so)? This causes problems when copying all the python distribution and running it on a different os, where the theses lib versions are not allways the same. Is it possible to configure that ? I don't think so. I think that ld simply follows the symbolic links down to the actual file. I'm a bit hazy on this, though. `info ld` has not enlightened me, either. -- Robert Kern I have come to believe that the whole world is an enigma, a harmless enigma that is made terrible by our own mad attempt to interpret it as though it had an underlying truth. -- Umberto Eco -- http://mail.python.org/mailman/listinfo/python-list
Re: Python's only one way to do it philosophy isn't good?
Andy Freeman [EMAIL PROTECTED] writes: And he's wrong, at least as far as common lisp is concerned - map does exactly that. http://www.lispworks.com/documentation/HyperSpec/Body/f_map.htm sequence there just means vectors and lists. Map doesn't work on generators or iterators because they're not part of the common lisp spec, but if someone implemented them as a library, said library could easily include a map that handled them as well. Right, more scattered special purpose kludges instead of a powerful uniform interface. -- http://mail.python.org/mailman/listinfo/python-list
Re: popen and a long running process in a wx.python application
On Jun 26, 10:16 am, Doru Moisa [EMAIL PROTECTED] wrote: Hello, How can I capture the output of a long runnning process which I open with popen() ? I tried reading line by line, char by char, but the result always comes when the process finishes. (I am trying to make a wx.python program that opens some make ... with popen). How can I receive the output of the program immediatly, so that I can show a progressbar in my application ? I always get the program's output after it finished executing. Is this the right place, or should I post this to wx.python ? Thank you in advance. When talking about anything advanced with wxPython, you usually want to submit it to the wxPython user's group. Lots of advanced users (including the author of wxPython) answer questions there. I would recommend looking at the following link as this will probably be one of the first suggestions: http://wiki.wxpython.org/index.cgi/LongRunningTasks?highlight=%28task%29%7C%28longrunning%29 wxPython mailing list: http://www.wxpython.org/maillist.php I used a variation of one of the threading example in the LongRunningTasks page to send output to a text widget, through stdout redirection. Good luck! Mike -- http://mail.python.org/mailman/listinfo/python-list
Re: Hi How to implement switch case statement.
Read this thread, which was discussed on the list a few days ago: http://www.mail-archive.com/python-list@python.org/msg150704.html On 6/25/07, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote: Hi My requirement is to check a variable with a set of constant values and call a particular function depending on the value of the variable. A C-language implementation might look something like : switch (a) { case 1 : func1(); case 2 : func2() ; default : func3(); } How to do it in Python ? Ofcourse an if-elif construct can also be used to do the job, which is indeed my last option. However i would like to know if a 'switch-case' option is available. I found some implementations involving dictionaries and lambdas but i don't know how suitable they might be for this kind of an implementation. Any suggestions and ideas welcome Thanks and regards Parasuram N.A. I know the answers to all the questions But its just that i don't find some of them worth answering The information contained in this electronic message and any attachments to this message are intended for the exclusive use of the addressee(s) and may contain proprietary, confidential or privileged information. If you are not the intended recipient, you should not disseminate, distribute or copy this e-mail. Please notify the sender immediately and destroy all copies of this message and any attachments. WARNING: Computer viruses can be transmitted via email. The recipient should check this email and any attachments for the presence of viruses. The company accepts no liability for any damage caused by any virus transmitted by this email. www.wipro.com -- http://mail.python.org/mailman/listinfo/python-list -- Evan Klitzke [EMAIL PROTECTED] -- http://mail.python.org/mailman/listinfo/python-list
Re: Python's only one way to do it philosophy isn't good?
Andy Freeman [EMAIL PROTECTED] writes: Compare that with what a programmer using Python 2.4 has to do if she'd like the functionality provided by 2.5's with statement. Yes, with is just syntax, but it's extremely useful syntax, syntax that can be easily implemented with lisp-style macros. Not really. The with statement's binding targets all have to support the protocol, which means a lot of different libraries need redesign. You can't do that with macros. Macros can handle some narrow special cases such as file-like objects, handled in Python with contextlib.closing. That said, the with statement was missing from Python for much too long, since users were happy to rely on reference counting. -- http://mail.python.org/mailman/listinfo/python-list
Re: Portable general timestamp format, not 2038-limited
Martin Gregorie [EMAIL PROTECTED] writes: I don't recall the OP mentioning time interval computability - just a requirement for sub second accuracy timestamps. That Y2038 is an issue suggests the OP wants a timestamp format that is future-proof and that means it should be good for all plausible applications. That would include computing intervals. If you want a precise timestamp and you don't want to deal with leap seconds, TAI is one approach. TAI? Care to provide a reference? Same one already given: http://cr.yp.to/proto/utctai.html -- http://mail.python.org/mailman/listinfo/python-list
Re: Return name of caller function?
Matthew Peter wrote: For example, how do I get this to work? def func(): print This is, __?__ return __caller__ def echo(): print This is , __?__ return func() print echo() This is echo This is func echo This may not be what you're looking for but here's the solution I ended up with after some help from the list. It's designed for getting the name of an instance method, but in case it applies to your particular situation: #!/usr/bin/python import functools class TestClass: def __init__(self): pass def __getattr__(self, name): try: return getattr(self.__class__, name) except AttributeError: return functools.partial(self.foo, name) def foo(self, name, **args): print This is, name test = TestClass() test.someMethod() test.anotherMethod() Otherwise the inspect module may be the way to go, as Stephen already pointed out (though I must admit it seems a very inelegant route, especially compared to Python's usually clean and clear style). -Jay -- http://mail.python.org/mailman/listinfo/python-list
Re: Help needed with translating perl to python
On Jun 26, 8:59 am, [EMAIL PROTECTED] wrote: (snipped) def bcdlen(*args): ... strlen = %04s % str(args[0]) ... firstval = int(strlen[2:3]) * 16 + int(strlen[3:4]) ... lastval = int(strlen[0:1]) * 16 + int(strlen[1:2]) ... return %s%s % (chr(firstval), chr(lastval)) ... bcdlen(4546) 'FE' Let me add that instead of an an-close-as-possible translation from the original Perl code, one can rewrite this as: def bcdlen(length): ... strlen = %04s % length ... return chr(int(strlen[2:4], 16)) + chr(int(strlen[0:2], 16)) which is more Pythonic to me. -- Hope this helps, Steven -- http://mail.python.org/mailman/listinfo/python-list
Re: Internals and complexity of types, containers and algorithms
On Mon, 25 Jun 2007 James Stroud wrote: Harald Luessen wrote: Hi, I am new to python and I miss some understanding of the internals of some types and containers. With my C/C++ background I hope to get some hints to chose the best data structure for my programs. Here are some questions: This depends on how you define best. If you want speed and optimization, you can use the numpy package built with ATLAS tuned for a specific machine. Are there arrays in numpy that can efficiently be used for other things than matrix arithmetic? Are they faster than lists but still easy to use? no_piece = 0 wpawn = 1 ... board[square] = no_piece board[square+8] = pawn ... could be a typical pawn move. Beyond speed, best in the python community usually means most suited from an idiomatic perspective and from the perspective of structure that lends itself to long term maintainability because [C]python data structures seem to undergo optimizations in their implementation at each revision. I like the python way of best code. But in this particular question the emphasis was on performance and speed. Your best bet is probably to forget about implementation and write code that makes sense. For example, some have suggested a tuple-keyed dictionary to represent a chess board: board = ((c,r) for r in xrange(1, 9) for c in 'abcdefgh') starting = 'RNBQKBNR' + 'P' * 8 + ' ' * 32 + 'p' * 8 + 'rnbqkbnr' position = dict(zip(board, starting)) I am not new to board game programming and I am used to an array approach or even bitboards. Therefore the dictionary looks a little bit strange to me. Harald -- http://mail.python.org/mailman/listinfo/python-list
Re: Internals and complexity of types, containers and algorithms
On Mon, 25 Jun 2007 Martin v. Löwis wrote: Sure, see below: - tuples are represented as arrays, with a single block for the entire objects (object header, tuple size, and data) - list are represented as arrays, with two memory blocks: one for object header and sizes, and the other one for the guts, i.e. the actual data. The list uses over-allocation, to avoid resizing on each addition. - strings are implemented as arrays, with a single block for the entire string. In addition to header, size, and data, it also contains a cached hash and a pointer to the interned version of the string (if any). - dicts are implemented as hash tables, with open addressing. ... and more interesting things ... Thank you. That was the information I was looking for. I just forgot to ask for sets. Harald -- http://mail.python.org/mailman/listinfo/python-list
problem mixing gettext and properties
I've encountered a problem using gettext with properties while using a Python interpreter. Here's a simple program that illustrate the problem. == # i18n_test.py: test of gettext properties import gettext fr = gettext.translation('i18n_test', './translations', languages=['fr']) fr.install() help = _(Help me!) class Test_i18n(object): def get(self): __help = _(HELP!) return __help help_prop = property(get, None, None, 'help') test = Test_i18n() print help print test.help_prop end of file To run the above program, you need to have the strings translated and the proper .po and .mo files created. (for those interested, I can send the whole lot in a zip file) If I run the program as is, the output is: Aidez-moi! AIDE!!! Ok, let's try with the Python interpreter: ActivePython 2.4.2 Build 248 (ActiveState Corp.) based on Python 2.4.2 (#67, Oct 30 2005, 16:11:18) [MSC v.1310 32 bit (Intel)] on win32 Type help, copyright, credits or license for more information. import i18n_test Aidez-moi! AIDE!!! # No surprise there so far. print i18n_test.help Aidez-moi! print i18n_test.test.help_prop AIDE!!! i18n_test.help 'Aidez-moi!' # all of the above are as expected; now for the first surprise i18n_test.test.help_prop Traceback (most recent call last): File stdin, line 1, in ? File i18n_test.py, line 12, in get __help = _(HELP!) TypeError: 'str' object is not callable # and a second surprise where we try to repeat something that used to work print i18n_test.test.help_prop Traceback (most recent call last): File stdin, line 1, in ? File i18n_test.py, line 12, in get __help = _(HELP!) TypeError: 'str' object is not callable #= Dare I say: Help! I really need to use the above at the interpreter prompt. André -- http://mail.python.org/mailman/listinfo/python-list
Re: Indenting in Emacs
Ive been struggling with this same question -- which python mode -- for a while but not getting anywhere! I understand (from the emacs list) that the new python mode has better support for debugging (pdbtrack in addition to pdb) but dont know much more. On 6/26/07, John J. Lee [EMAIL PROTECTED] wrote: Michael Hoffman [EMAIL PROTECTED] writes: John J. Lee wrote: Eugene Morozov [EMAIL PROTECTED] writes: Steven W. Orr пишет: Ok. I'm not stupid but I do not see a 4.78 anywhere even though I see refs from google. I have 4.75 The SVN tree doesn't seem to even have that. I checked the latest copy out from sourceforge and that was 4.75 too. Can someone please tell me where to find the latest? It's from Emacs 22. Note that's a different python-mode to the old one that lives on SF. Yes, there are now two of them. Which one is better? I've not noticed a big difference in usability. I find indentation with the new mode very mildly more annoying than the old mode. YMMV on that. There are probably annoyances with the old mode that I've now forgotten about. I'm told by an emacs developer at work that the new mode is more emacsy in its implementation -- I don't know in what ways exactly, but presumably that, plus the fact that the new mode is included with emacs 22, will mean that it's likely to work better with other emacs code (not that I ever had much problem with the old mode -- but then I didn't push it very far). John -- http://mail.python.org/mailman/listinfo/python-list -- http://mail.python.org/mailman/listinfo/python-list