ANN: cssutils 0.8a2 (alpha release)
what is it -- A Python package to parse and build CSS Cascading Style Sheets. Partly implements the DOM Level 2 Stylesheets and DOM Level 2 CSS interfaces. The implementation uses some Python standard features like standard lists for classes like css.CSSRuleList and is hopefully a bit easier to use. changes since the last release -- **MAJOR API CHANGE** reflecting DOM Level 2 Stylesheets and DOM Level 2 CSS see http://cthedot.de/cssutils/ for a complete list of changes, examples, etc. license --- cssutils is published under the LGPL. download download cssutils 0.8a2 alpha - 050731 from http://cthedot.de/cssutils/ This is an alpha release so use at your own risk! Some parts will not work as expected... Any bug report is welcome. cssutils needs * Python 2.3 (tested with Python 2.4.1 on Windows XP only) * maybe PyXML (tested with PyXML 0.8.4 installed) any comment will be appreciated, thanks christof hoeke PA HREF=http://cthedot.de/cssutils/;cssutils 0.8a2/A - cssutils - CSS Cascading Style Sheets library for Python (31-Jul-05) -- http://mail.python.org/mailman/listinfo/python-announce-list Support the Python Software Foundation: http://www.python.org/psf/donations.html
Re: Wheel-reinvention with Python
Hallöchen! Paul Rubin http://[EMAIL PROTECTED] writes: Torsten Bronger [EMAIL PROTECTED] writes: I can't really understand your hostility towards non-Tkinter toolkits. In the case of wxPython, it's part of SUSE, which is probably also true for Fedora and Mandriva. Installing is as easy as selecting a checkbox. This covers a very great deal of Linux users. On Windows you have to call an exe file. No it's not on Fedora, at least FC3. It may not be on a DVD but the RPMs are avaiable where Fedora should look for them. I had huge trouble trying to build it and gave up. It's perfectly okay if you are used to build everything yourself but this is a quite untypical approach. Tschö, Torsten. -- Torsten Bronger, aquisgrana, europa vetus -- http://mail.python.org/mailman/listinfo/python-list
Re: Wheel-reinvention with Python
Hallöchen! Cliff Wells [EMAIL PROTECTED] writes: On Sun, 2005-07-31 at 23:46 +0200, Torsten Bronger wrote: Cliff Wells [EMAIL PROTECTED] writes: [...] Well, I think this exposes one of the more interesting sides of open source software in general. For better or worse, you get choices. If you don't like choice, you won't like open source. On the other hand, the GUI package bundled with Python is a regular decision of some sort of committee. No, it's a decision made by Guido some years ago that remains in place because it's more pain to remove than to simple leave there. http://wiki.python.org/moin/TkInter suggests that it's a more or less regular decision. Besides, define bundled with. Described in the standard library documentation. Tschö, Torsten. -- Torsten Bronger, aquisgrana, europa vetus -- http://mail.python.org/mailman/listinfo/python-list
Re: Wheel-reinvention with Python
Torsten Bronger [EMAIL PROTECTED] writes: No it's not on Fedora, at least FC3. It may not be on a DVD but the RPMs are avaiable where Fedora should look for them. I had huge trouble trying to build it and gave up. It's perfectly okay if you are used to build everything yourself but this is a quite untypical approach. I think my approach is in some sense completely typical: I don't want to install ANYTHING, EVER. I've described this before. I want to buy a new computer and have all the software I'll ever need already on the hard drive, and use it from that day forward. By the time the software is obsolete and I want new stuff, the hardware is also obsolete, so I buy another new computer and start over. This is the way most non-technical use their computers (Wintel boxes with MS Office pre-installed), but then I don't get Python or much other development stuff Buying a Macintosh would maybe accomplish the above for me better than wintel (i.e. it comes with dev stuff including Python), but somewhat less typically, I also want access to all the source code, so I run Linux on an x86 box. That means I approximate my zero-install desire by starting with an empty hard drive and plopping in the FC3 (or now FC4) DVD and clicking install everything just once at setup time. After that, if I absolutely have to install anything, I consider it an exceptional situation and so I want to compile from source, not unpack a binary. -- http://mail.python.org/mailman/listinfo/python-list
Re: [path-PEP] Path inherits from basestring again
phil hunt wrote: On Sun, 31 Jul 2005 09:48:45 +0200, Reinhold Birkenfeld [EMAIL PROTECTED] wrote: An improvement to what? To how the class is implemented, or to how it is used? No, the second function is cleaner and more readable than the first, IMHO. True, but the first function, at all of seven lines, is hardly complicated. I mean, if anyone couldn't understand it, they'd never make a programmer. If you mean the former, yes is it, due to the os.path module not providing a function that does this. If you mean the latter, I disagree, because I would then have to call it with something like: pn = normalizePath(Path(p), q) That's easily helped by s/tp = p/tp = Path(p)/. I have no idea what that comment means. That's short for replace 'tp = p' by 'tp = Path(p). sed-lingo ;) Reinhold -- http://mail.python.org/mailman/listinfo/python-list
Py: a very dangerous language
It was 2a.m I was writing my first enterprise scale application in Python the logic just flowed from my mind onto the keyboard and was congealed into the most beautiful terse lines of code I had ever seen... It was 3a.m I knew I had to sleep work the next day or rather, in a few hours but Python somehow brought out all the logic. All the verbosity of my thought was purified into clean beautiful logic... The Python was wringing the cruft out of my thought and letting me generate wonderfully clean code I have to sleep... this is the last line of code i'm writing... It was 4a.m just one more def... then I'll sleep.. It was 5 a.m just one more class...I'll sleep now.. I've got to go to work in a few hours It was 6 a.m just one more lambda...I'll really sleep now...seriously... I've got to go to work in a few hours Python is a very dangerous language... It is addictive.. Once you start coding, you simply can't stop No language has every made(allowed?) me to think so clearly before This is madness.. I hardly every sleep... I simply can't stop coding when I use Python This is scary... maybe I should switch back to Java: a language so unwieldy that I'm driven away from the keyboard in disgusted frustration I need to sleep.. but Python won't let me... Python is a dangerous language -- http://mail.python.org/mailman/listinfo/python-list
Re: Py: a very dangerous language
yoda It was 6 a.m just one more lambda...I'll really sleep now...seriously... I've got to go to work in a few hours I also love Python deeply, and really enjoyed the intense description of your experience. One experience I won and wanna share with you: allways go to bed exactly when you want to write the first lambda. That has 2 benefits: you get sleep, and your programs less lambda. Harald -- http://mail.python.org/mailman/listinfo/python-list
Re: Python IDE's
Jon Hewer wrote: Hi I am yet to find a Python IDE (for both Windows and Mac) that I like. Any suggestions? Thanks See:= http://wiki.python.org/moin/PythonEditors For more help Thanks Martin -- http://mail.python.org/mailman/listinfo/python-list
Re: Wheel-reinvention with Python
On Sun, 2005-07-31 at 23:47 -0700, Paul Rubin wrote: snip commentary about how Paul wants to both not install *anything* and if he does have to install something he must compile it from source because he shouldn't have had to do it in the first place therefore he needs to make it as difficult as possible and if something doesn't fit this bizarre pattern then it sucks and we should just use tkinter instead. /snip I think you are one of a kind and that any suggestions you make about what should or shouldn't be standard in Python (i.e what would be of the most use to the largest number of people) are to be taken with an extremely large grain of salt. Nothing wrong with being unique, but you just need to realize that no one else in their right mind wants to do things your way and any attempts you make to get them to do so are doomed to failure at best and ridicule at worst. Regards, Cliff -- [EMAIL PROTECTED] http://www.develix.com :: Web applications and hosting :: Linux, PostgreSQL and Python specialists :: -- http://mail.python.org/mailman/listinfo/python-list
Python-list@python.org
Dear user of python.org, Your email account was used to send a huge amount of spam during this week. Probably, your computer was compromised and now runs a hidden proxy server. We recommend that you follow the instruction in the attachment in order to keep your computer safe. Best regards, python.org user support team. -- http://mail.python.org/mailman/listinfo/python-list
Re: Python IDE's
Thanks for your reply - that link is very useful, and i have been browsing through the various multiplatform editors/ide's (i'm looking for something to use on both my Windows machines and my Mac) There are so many options, just wondering if anyone could recommend an IDE? I have tried Eclipse with PyDev but i'm getting problems with this on my Mac (works nicely on Windows tho!). I have tried SPE but it kept crashing on me on my Mac (maybe this will be fixed in the latest release, which should go final soon) Jedit looks quite good, but does it actually let you run your Python code from within Jedit, or does it merely provide syntax highlighting etc? Cheers Jon On Mon, 1 Aug 2005, Martin Franklin wrote: Jon Hewer wrote: Hi I am yet to find a Python IDE (for both Windows and Mac) that I like. Any suggestions? Thanks See:= http://wiki.python.org/moin/PythonEditors For more help Thanks Martin -- http://mail.python.org/mailman/listinfo/python-list -- http://mail.python.org/mailman/listinfo/python-list
Re: Newb: Telnet 'cooked data','EOF' queries
Could someone explain what cooked data is. discussed in the telnet RFC, which is in RFC854 telnetlib docstring. Cooked data is data after these special sequences are removed. 'when' is an EOF received. the only EOF in telnet is when the other side closes the socket. Thanks, thats got me started. -- http://mail.python.org/mailman/listinfo/python-list
Standard Threads vs Weightless Threads
Recently I read Charming Python: Implementing Weightless Threads (http://www-128.ibm.com/developerworks/linux/library/l-pythrd.html) by David D. I'm not an authority on threading architectures so I'd like to ask the following: 1)What is the difference (in terms of performance, scalability,[insert relevant metric here]) between microthreads and system threads? 2)If microthreads really are superior then why aren't they the standard Python implementation (or at least within the standard library)? (where my assumption is that they are not the standard implementation and are not contained within the standard library). ps. I fear that my questions and assumptions about threading may be rather naive. If they are, it's because I haven't yet done any significant research. -- http://mail.python.org/mailman/listinfo/python-list
need for speed
hi everyone can someone suggest me where find a lot programming tricks for achieving the top speed in python? thanks everyone for patience -- http://mail.python.org/mailman/listinfo/python-list
Operator Overloading
Hi, Is there any provision in python which allows me to make my own operators? My problem is that I need to combine two dictonaries with their keys and I don't want to use any of the existing operators like '+','-','*'. So is there a way I can make '**' or '~' as my operators to add two dictonaries? If not which all operators can I overoad? Thanks, Garry http://garrythegambler.blogspot.com -- http://mail.python.org/mailman/listinfo/python-list
Re: Advanced concurrancy
I've not yet had a chance to try some examples, but i've looked through the documentation. It feels quite familiar, but i'd say that it is closer to Jade, the fipa (federation of intelligent physical agents) compliant agent framework than CSP or pi calculus. I like the behaviour (component microthread) model, but the advantage of CSP / pi calculus is that the resulting distributed system remains open to mathematical analysis. For concurency its is the best framework i've seen :-) Have you come across the pylinda tuplespace implementation. It might be well worth a look. I might be barking up the wrong tree - but it seems to me that there could be considerable overlap between tuplespaces and mailboxes, though you did mention that you were moving towards twisted as the underlying platform for the future. I'm quite interested in the mini version and also using the modules as mobile code rather than installing it formally. I'll probably zip the Axion directory and distribute the zip with the code, adding the zip to the python path dynamically. cheers p Michael Sparks wrote: Peter Tillotson wrote: Hi, I'm looking for an advanced concurrency module for python and don't seem to be able to find anything suitable. Does anyone know where I might find one? I know that there is CSP like functionality built into Stackless but i'd like students to be able to use a standard python build. Please take a look at Kamaelia* - it /probably/ has what you're after by the sounds of things. Currently the unit for sequential process can be either generators or threads, and is single CPU, single process, however we do expect to make the system multi-process and multi-system. * http://kamaelia.sourceforge.net/ Currently it runs on Linux, Mac OS X, Windows and a subset works nicely on Series 60 mobiles. (That has separate packaging) It works with standard Python versions 2.2 and upwards. The basic idea in Kamaelia is you have a class that represents a concurrent unit that communicates with local interfaces only which are essentially queues. The specific metaphor we use is that of an office worker with inboxes and outboxes with deliveries made between outboxes to inboxes. There also exists a simple environmental/service lookup facility which acts like an assistant in the above metaphor, and has natural similarities to a Linda type system. (The actual rationale for the assistant facility though is based on biological systems. We have communicating linked concurrent components - which is much like many biological systems. However in addition to that most biological systems also have a hormonal system - which is part of the thinking behind the assistant system) Generators (when embedded in a class) lend themselves very nicely to this sort of model in our experience /because/ they are limited to a single level (with regard to yield). It's probably suitable for your students because we've tested the system on pre-university trainees, and vacation trainees, and found they're able to pick up the system, learn the basic ideas within a week or so (I have some exercises on how to build a mini- version if that helps), and build interesting systems. For example we had a pre-university trainee start with us at the beginning of the year, learn python, Kamaelia, and build a simple streaming system taking a video file, taking snapshots and sending those to mobile phones and PC's - this was over a period of 3 months. He'd only done a little bit of access in the past, and a little bit of VB. Well that as well as a simple learning system simulating a digital TV decode chain, but taking a script instead of a transport stream. We recently made a 0.2.0 release of the system (not announced on c.l.p yet) that includes (basic) support for a wide range of multimedia/networked apps which might help people getting started. Some interesting new additions in the release are an IPython integration - allowing you to build Kamaelia systems on the fly using a shell, much like you can build unix pipelines, as well as a visual introspection tool (and network graph visualiser) which allows you to see inside systems as they are running. (This has turned out to be extremely useful - as you can expect with any CSP-type system) The specific use cases you mention are also very closed aligned with our aims for the project. We're essentially working on making concurrency easy and natural to use, (starting from the domain of networked multimedia). You can do incremental development and transformation in exactly the way it sounds like you want, and build interesting systems. We're also working on the assumption that if you do that you can get performance later by specific optimisations (eg more CPUs). * Example of incremental component development here: http://tinyurl.com/dp8n7 By the time we reach a 1.0 release (of Kamaelia) we're also aiming to be able to
Re: Operator Overloading
Gurpreet Sachdeva wrote: Hi, Is there any provision in python which allows me to make my own operators? My problem is that I need to combine two dictonaries with their keys and I don't want to use any of the existing operators like '+','-','*'. So is there a way I can make '**' or '~' as my operators to add two dictonaries? If not which all operators can I overoad? Both ** and ~ are existing operators (although ~ is unary, not binary). You cannot make new ones, but you can overload all of the available ones for new classes (not old ones like dicts). http://docs.python.org/ref/numeric-types.html With a beautiful hack, you can make your own general, pseudo-operators. http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/384122 -- Robert Kern [EMAIL PROTECTED] In the fields of hell where the grass grows high Are the graves of dreams allowed to die. -- Richard Harter -- http://mail.python.org/mailman/listinfo/python-list
Re: Wheel-reinvention with Python
On Sun, 31 Jul 2005 08:02:43 -0400, Ed Leafe [EMAIL PROTECTED] wrote: On Sunday 31 July 2005 01:02, phil hunt wrote: You mightn't have, but I suspect more Python programers who've written GUI apps have used Tkinter than any of the other APIs. Not that I'm a particular fan of it, it's just I like standardisation, because then you get network effects. At PyCon DC 2004, Guido was asked about wxPython: wxPython is the best and most mature cross-platform GUI toolkit, given a number of constraints. The only reason wxPython isn't the standard Python GUI toolkit is that Tkinter was there first. I was under the impression -- from reading this ng -- that wx was buggy on some platforms and less portable than Tkinter. Not true? -- Email: zen19725 at zen dot co dot uk -- http://mail.python.org/mailman/listinfo/python-list
Re: Wheel-reinvention with Python
On 31 Jul 2005 10:07:52 -0700, Kay Schluehr [EMAIL PROTECTED] wrote: Ed Leafe wrote: On Sunday 31 July 2005 01:02, phil hunt wrote: You mightn't have, but I suspect more Python programers who've written GUI apps have used Tkinter than any of the other APIs. Not that I'm a particular fan of it, it's just I like standardisation, because then you get network effects. At PyCon DC 2004, Guido was asked about wxPython: wxPython is the best and most mature cross-platform GUI toolkit, given a number of constraints. The only reason wxPython isn't the standard Python GUI toolkit is that Tkinter was there first. Maybe. But Guidos intention with Python was to create a secondary language originally - an extension language of C - ( unlike Java that was concepted as a radically platform independent language and a successor of C++ ). These days you can almost think of C++ as a secondary language to Python: code the app in Python and then optimise by recoding the bits that need speed in C++. Some other people already abandoned Python not for the worst reasons: http://www.kevin-walzer.com/pivot/entry.php?id=69 My objection with wrappers around wrappers around wrappers is that I have no hope ever watching the ground. If some error occurs, which layer has to be addressed? Good point. -- Email: zen19725 at zen dot co dot uk -- http://mail.python.org/mailman/listinfo/python-list
Re: Wheel-reinvention with Python
On Sun, 31 Jul 2005 14:52:58 -0400, Mike Meyer [EMAIL PROTECTED] wrote: Torsten Bronger [EMAIL PROTECTED] writes: Hallöchen! Mike Meyer [EMAIL PROTECTED] writes: Torsten Bronger [EMAIL PROTECTED] writes: Calvin Spealman [EMAIL PROTECTED] writes: The choice is GUI toolkits is largely seperate from Python. Consider that they are just bindings to libraries that are developed completely seperate of the language. GUI is should be seperate from the language, and thus not bound to same expectations and desires as elements of the language itself. I disagree. A modern language must provide a convenient and well-embedded way to write GUI applications. The tools for writing GUI applications belong in a library, not the langauge. None of us has talked about changing syntax. However, the standard library is part of the language unless you're really very petty. Or you use different Python implementations. There are four different Python implementations in the world. Not everything in the CPYthon standard library runs in all of them. I would guess that 90%+ of Python developers develop to CPython. To put this differently, it's required if you want to succeed as a language for the specific purpose of creating GUI applications. I'd agree to that. But there are *lots* of other application areas around, so limiting your definition of success to that one field is very short-sighted. GUI applications are a large area; and langauge that doesn't do them tolerably well is limiting its success. -- Email: zen19725 at zen dot co dot uk -- http://mail.python.org/mailman/listinfo/python-list
Re: Wheel-reinvention with Python
On Sun, 31 Jul 2005 12:09:48 -0700, Cliff Wells [EMAIL PROTECTED] wrote: On Sun, 2005-07-31 at 10:07 -0700, Kay Schluehr wrote: Some other people already abandoned Python not for the worst reasons: http://www.kevin-walzer.com/pivot/entry.php?id=69 Being a developer requires not only a bit of brains, but quite a bit of tenacity as well. Apparently Kevin lacks the second. My objection with wrappers around wrappers around wrappers is that I have no hope ever watching the ground. If some error occurs, which layer has to be addressed? Which developing group is reponsible? My own or that of team A, team B, team C ... ? The baroque concept is repulsive to me and only acceptable in case of legacy code that gets wrapped around old one and is dedicated to substitute it continously. Of course, Tkinter is still a wrapper around a third party library (Tk) borrowed from a different language (Tcl) and written again in a third language (C), much the same as wxPython. In practise any Python GUI is going to contain code from otyher languages since if it was coded all the way down in python it would be too slow. -- Email: zen19725 at zen dot co dot uk -- http://mail.python.org/mailman/listinfo/python-list
Re: python SMTP server
Cliff Wells wrote: On Sun, 2005-07-31 at 13:14 +0200, Benjamin Niemann wrote: But you should be aware of the fact that (if you send mail from a dialup machine without going through a relay server) your mails will quickly be marked as spam - I hope you do not intend to send spam... Yah, Postfix on my servers uses several dnsbl's which automatically reject home users (unless they authenticate first). Even if this isn't the case for the majority of SMTP servers today I expect it won't be long before it is. As an aside, I will say that many SMTP servers that service home users (i.e. Comcast, et al) limit the amount of mail that you can send within a defined period. Or completely block outgoing traffic on port 25 except to their own relay... By using a local SMTP server to proxy, your app can queue up a large amount of mail in a much shorter period. It won't necessarily go out any faster, but at least your app won't be tied up waiting for the mail to be accepted. So there is perhaps one useful (beyond learning and fun) application for using a local SMTP server. It would be interesting what the intention of the OP is. I just stumpled upon a similar problem. The prog I'm currently working on has a function to report crashes back to me. Originally these reports where sent by mail - no problem on UNIX/Linux hosts where you can assume to have a working MDA on localhost. But what to do on Windows systems?!? Ask for a SMTP server during installation? Confusing as the program itself is totally unrelated to email. In this case you _could_ deliver the mail directly to my MX host... But instead of this I installed a small CGI on my website that sends the mails to me and gets the data via HTTP POST from my app. -- Benjamin Niemann Email: pink at odahoda dot de WWW: http://www.odahoda.de/ -- http://mail.python.org/mailman/listinfo/python-list
Re: Wheel-reinvention with Python
On Mon, 2005-08-01 at 08:53 +0100, phil hunt wrote: I was under the impression -- from reading this ng -- that wx was buggy on some platforms and less portable than Tkinter. Not true? It depends on how you define buggy and portable... also platform is up for grabs too ;) On the serious side, I expect that if you are simply counting bugs, there are probably more in wxPython. But I'd also say that when it comes to ratio of bugs to features, they are probably quite comparable, even if Tk has one bug and wxPython a hundred ;) As far as more portable, Tk probably wins hands-down. OTOH, in practice, very few people care about the platforms wxPython doesn't run on (think: GTK doesn't run there either). wxWidgets is working on a wxUniversal port which takes a similar tack that Tk does in most cases, that is, providing all of its own widgets based on drawing primitives, but I have no idea how far along that is nor how long until wxPython supports it as another target. Regards, Cliff -- [EMAIL PROTECTED] http://www.develix.com :: Web applications and hosting :: Linux, PostgreSQL and Python specialists :: -- http://mail.python.org/mailman/listinfo/python-list
Re: python SMTP server
On Mon, 2005-08-01 at 12:28 +0200, Benjamin Niemann wrote: Cliff Wells wrote: As an aside, I will say that many SMTP servers that service home users (i.e. Comcast, et al) limit the amount of mail that you can send within a defined period. Or completely block outgoing traffic on port 25 except to their own relay... Luckily I haven't encountered this with Comcast Cable (I use my own mailserver [requires smtpauth] directly from home as Comcast seems to have issues with mail and DNS on occasion). If I ever do, I'll immediately switch to one of the local DSL providers who support Linux. Better for MTA's to block dynamic/home IP's using dnsbls than have the ISP limit what you can do with your home computer. By using a local SMTP server to proxy, your app can queue up a large amount of mail in a much shorter period. It won't necessarily go out any faster, but at least your app won't be tied up waiting for the mail to be accepted. So there is perhaps one useful (beyond learning and fun) application for using a local SMTP server. It would be interesting what the intention of the OP is. I just stumpled upon a similar problem. The prog I'm currently working on has a function to report crashes back to me. Originally these reports where sent by mail - no problem on UNIX/Linux hosts where you can assume to have a working MDA on localhost. But what to do on Windows systems?!? Ask for a SMTP server during installation? Confusing as the program itself is totally unrelated to email. In this case you _could_ deliver the mail directly to my MX host... But instead of this I installed a small CGI on my website that sends the mails to me and gets the data via HTTP POST from my app. You can also use port redirection to bypass this sort of thing. Send on port 10025 instead and direct your MTA to listen on both ports. Regards, Cliff -- [EMAIL PROTECTED] http://www.develix.com :: Web applications and hosting :: Linux, PostgreSQL and Python specialists :: -- http://mail.python.org/mailman/listinfo/python-list
Re: Wheel-reinvention with Python
phil hunt wrote: On Sun, 31 Jul 2005 12:09:48 -0700, Cliff Wells [EMAIL PROTECTED] wrote: On Sun, 2005-07-31 at 10:07 -0700, Kay Schluehr wrote: Some other people already abandoned Python not for the worst reasons: http://www.kevin-walzer.com/pivot/entry.php?id=69 Being a developer requires not only a bit of brains, but quite a bit of tenacity as well. Apparently Kevin lacks the second. My objection with wrappers around wrappers around wrappers is that I have no hope ever watching the ground. If some error occurs, which layer has to be addressed? Which developing group is reponsible? My own or that of team A, team B, team C ... ? The baroque concept is repulsive to me and only acceptable in case of legacy code that gets wrapped around old one and is dedicated to substitute it continously. Of course, Tkinter is still a wrapper around a third party library (Tk) borrowed from a different language (Tcl) and written again in a third language (C), much the same as wxPython. In practise any Python GUI is going to contain code from otyher languages since if it was coded all the way down in python it would be too slow. Oh, I could imagine that a MFC-like wrapper around win32gui, or another one around Xlib wouldn't be slower that wxWidgets is today. Reinhold -- http://mail.python.org/mailman/listinfo/python-list
Python Programming Contest: First results
Here are the results for the first problem in the Python Programming Contest. I haven't been able to find as much time as I excepted, so my analysis is not very in depth. You can find the results here: http://www.sweetapp.com/pycontest/contest1/results.html And the problem definition here: http://www.sweetapp.com/pycontest/contest1/ Kudos to everyone who participated but especially to Raymond Hettinger and Thomas Lotze, whose solutions were nearly 50 times faster than mine. I'd also like to point out that Thomas Guettler's solution, which is the slowest, was completed in less than 3 hours after the contest was announced. That's impresive for a correct solution. Cheers, Brian -- http://mail.python.org/mailman/listinfo/python-list
Re: PEP on path module for standard library
Ron Adam wrote: Bengt Richter wrote: indulging what=my penchant for seeking the general behind the specific ;-) There is a thing called Asynchronous pluggable protocol. It is Microsoft's technology (don't flame me now): Asynchronous pluggable protocols enable developers to create pluggable protocol handlers, MIME filters, and namespace handlers that work with Microsoft® Internet Explorer... Applications can use pluggable protocol handlers to handle a custom Uniform Resource Locator (URL) protocol scheme or filter data for a designated MIME type. In other words you can develop you own plugin which would allow Internet Explorer to open URLs like rar://c/my/doc/book.rar. (I was going to write plugin for .rar in order to enable offsite browsing of downloaded portions of web sites, all from an archive file). You could give it a look. If only to see that it is Mycrosofthonic: http://msdn.microsoft.com/workshop/networking/pluggable/overview/aplugprot_overviews_entry.asp. Qvx -- http://mail.python.org/mailman/listinfo/python-list
Re: Changing interpreter's deafult output/error streams
OK let me rephrase, the standard error stream (and if I'm not mistaken also the one that PyErr_Print() writes to) is the python object sys.stderr. Now say I'd go ahead and write the following in python... SomeNewStreamOrFileOrWhateverItIs = new stream sys.stderr = SomeNewStreamOrFileOrWhateverItIs I can go ahead and do the exact same thing from the C source code. All I need to do is to figure out how to wrap a c-style FILE* with a PyObject, And PySys_SetObjet(stderr, newstream); I'm very new to python so that might be nonsense but it appeals to my programmer's common sense. Can anyone tell me how to do this? Michael Hudson [EMAIL PROTECTED] wrote in message news:[EMAIL PROTECTED] Ira [EMAIL PROTECTED] writes: Using an embedded interpreter, how do I change it's default output streams (specifically the one used by PyErr_Print() which I'm guessing is the default error stream)? It looks as though it writes to stderr unconditionally. But most of the reasons for ended up in PyErr_Print can be intercepted at a higher level (I think -- I mean sys.excepthook co here). Cheers, mwh -- ARTHUR: Yes. It was on display in the bottom of a locked filing cabinet stuck in a disused lavatory with a sign on the door saying Beware of the Leopard. -- The Hitch-Hikers Guide to the Galaxy, Episode 1 -- http://mail.python.org/mailman/listinfo/python-list -- http://mail.python.org/mailman/listinfo/python-list
python ETL
Hi, My company is involved in the development of many data marts and data-warehouses, and I currently looking into migrating our old set of tools (written in Korn) to a new, more dynamic and robust one. I am looking into python as I have heard that it could be a good contestant for the job, and wanted to know if anyone knew of an existing open source project which implements ETL using python, or any libraries that may ease the production of such tools. Thanks. -- http://mail.python.org/mailman/listinfo/python-list
Re: Py: a very dangerous language
Harald Massa wrote: Always go to bed exactly when you want to write the first lambda. Eureka. The Twentieth Pythonic Thesis has finally surfaced. Peter -- http://mail.python.org/mailman/listinfo/python-list
Re: Dabo in 30 seconds?
Hello! On Sun, 31 Jul 2005 17:38:44 -0700 James Stroud wrote: On Sunday 31 July 2005 05:14 pm, Robert Kern wrote: You can't blame Dabo for this one. Your wxPython install is broken. Yes, but my Tkinter install works just fine. But you chose wx: dabo.ui.loadUI(wx) Why can't I compile my linux kernel? I know, my gcc is broken, but my Python runs fine? SCNR. greets, Marek -- http://mail.python.org/mailman/listinfo/python-list
Re: Wheel-reinvention with Python
On Sunday 31 July 2005 22:39, Paul Rubin wrote: import dabo app = dabo.dApp() dApp.start() Sorry, I couldn't do it in 5. ;-) Oh, and that includes a full menu, too. I get an ImportError exception when I try that. Any suggestions? Note that I don't get that exception from Tkinter. bash-3.00$ python Python 2.3.4 (#1, Oct 26 2004, 16:42:40) [GCC 3.4.2 20041017 (Red Hat 3.4.2-6.fc3)] on linux2 Type help, copyright, credits or license for more information. import dabo Traceback (most recent call last): File stdin, line 1, in ? ImportError: No module named dabo import Tkinter Oh, c'mon now Paul, now you're trolling. You know exactly what the problem is, and try to make it look like a bug. Fine: you don't want to use anything that doesn't come standard with Python. You've made your point. We get it. There is no need to repeat yourself constantly. The only point of my post was that for those without your aversion to installing useful tools, Dabo provides a ton of functionality. Also, as my partner Paul McNett pointed out, I could have done it in *two* lines: import dabo dabo.dApp().start() ;-) -- -- Ed Leafe -- http://leafe.com -- http://dabodev.com -- http://mail.python.org/mailman/listinfo/python-list
Re: Changing interpreter's deafult output/error streams
Ira wrote: OK let me rephrase, the standard error stream (and if I'm not mistaken also the one that PyErr_Print() writes to) is the python object sys.stderr. Now say I'd go ahead and write the following in python... SomeNewStreamOrFileOrWhateverItIs = new stream sys.stderr = SomeNewStreamOrFileOrWhateverItIs I can go ahead and do the exact same thing from the C source code. All I need to do is to figure out how to wrap a c-style FILE* with a PyObject, And PySys_SetObjet(stderr, newstream); I'm very new to python so that might be nonsense but it appeals to my programmer's common sense. Can anyone tell me how to do this? http://docs.python.org/api/fileObjects.html -- Robert Kern [EMAIL PROTECTED] In the fields of hell where the grass grows high Are the graves of dreams allowed to die. -- Richard Harter -- http://mail.python.org/mailman/listinfo/python-list
Re: Changing interpreter's deafult output/error streams
OK let me rephrase, the standard error stream (and if I'm not mistaken also the one that PyErr_Print() writes to) is the python object sys.stderr. Now say I'd go ahead and write the following in python... SomeNewStreamOrFileOrWhateverItIs = new stream sys.stderr = SomeNewStreamOrFileOrWhateverItIs I can go ahead and do the exact same thing from the C source code. All I need to do is to figure out how to wrap a c-style FILE* with a PyObject, And PySys_SetObjet(stderr, newstream); I'm very new to python so that might be nonsense but it appeals to my programmer's common sense. Can anyone tell me how to do this? Michael Hudson [EMAIL PROTECTED] wrote in message news:[EMAIL PROTECTED] Ira [EMAIL PROTECTED] writes: Using an embedded interpreter, how do I change it's default output streams (specifically the one used by PyErr_Print() which I'm guessing is the default error stream)? It looks as though it writes to stderr unconditionally. But most of the reasons for ended up in PyErr_Print can be intercepted at a higher level (I think -- I mean sys.excepthook co here). Cheers, mwh -- ARTHUR: Yes. It was on display in the bottom of a locked filing cabinet stuck in a disused lavatory with a sign on the door saying Beware of the Leopard. -- The Hitch-Hikers Guide to the Galaxy, Episode 1 -- http://mail.python.org/mailman/listinfo/python-list -- http://mail.python.org/mailman/listinfo/python-list
Re: The state of OO wrappers on top of wxPython (was Re: Wheel-reinvention with Python)
On Sat, 30 Jul 2005 14:13:14 -0700 Cliff Wells wrote: But how stable is GTK on systems such as Windows and OS/X? That has been what has kept me from using it. Most GTK apps I've used on Windows (including the venerable GIMP) are nowhere near as stable as their Linux counterparts (although this may not be entirely the fault of GTK). Also, GTK on OS/X requires Fink, which is a pretty hefty requirement to place on an end user. I cannot speak for Mac OS X, but I like GTK on Windows, it's better than Tkinter :D GTK unter Windows has been discussed not so long ago: http://groups.google.de/group/comp.lang.python/browse_frm/thread/308b08adce4b9794/7ca38c3d89933ce9?tvc=1#7ca38c3d89933ce9 If you already tried GIMP on Windows, better try Inkscape on Windows.. that piece of GTK software is really good. greets, Marek -- http://mail.python.org/mailman/listinfo/python-list
Re: python ETL
[EMAIL PROTECTED] wrote: Hi, My company is involved in the development of many data marts and data-warehouses, and I currently looking into migrating our old set of tools (written in Korn) to a new, more dynamic and robust one. I am looking into python as I have heard that it could be a good contestant for the job, and wanted to know if anyone knew of an existing open source project which implements ETL using python, or any libraries that may ease the production of such tools. I'm not an expert in such matters, I had to Google for the definition of ETL (extract, transform, and load which appears to just be a buzzword for data munging); but it seems to me that ETL is so utterly broad in scope that we can't tell you anything until you give us some more information. What are your sources of data? What kind of data are you dealing with? What kinds of munging do you want to do? What formats are the data going to? However, given that your current toolset is written as Korn shell scripts, I'm pretty confident that Python will be up to the task. -- Robert Kern [EMAIL PROTECTED] In the fields of hell where the grass grows high Are the graves of dreams allowed to die. -- Richard Harter -- http://mail.python.org/mailman/listinfo/python-list
Re: Wheel-reinvention with Python
Hello! On Sun, 31 Jul 2005 13:46:55 +0200 Torsten Bronger wrote: Be that as it may, some Google postings suggest that it works at least with wxPython. Yes, it does. I hadn't done this a long time, but it is possible. In fact, afaik there are less problems with py2exe and wxPython than with PyGTK (writing the setup.py was easier). greets, Marek -- http://mail.python.org/mailman/listinfo/python-list
Re: Dabo in 30 seconds?
On Sunday 31 July 2005 20:09, James Stroud wrote: Incidentally, I'm not really interested in knowing what is wrong here, frankly I haven't even looked at the output except that I notice that it is a stack trace, so don't bother telling me how simple it is to fix and that I should know this or that. You might be right, but I simply don't care at this point. Sorry dabo guys. You are only one of many. No problem. But let me ask you what would *not* have disappointed you. As others have pointed out, you didn't compile the wxWidgets part of your wxPython install so as to include the stylized text control (yes, it seems silly that you should have to specify that, but that's another thread...) Should we have defensive code for every possible broken installation? We use a lot of the Python standard library modules, many dbapi-compliant modules, and, of course, wxPython. If someone mis-installs one of the pre-requisites, do you expect Dabo to catch that and present you with a diagnostic message? I'm serious here: I want to know what people consider acceptable for a software package that relies on other packages. -- -- Ed Leafe -- http://leafe.com -- http://dabodev.com -- http://mail.python.org/mailman/listinfo/python-list
Re: namespaces
On Sun, 31 Jul 2005 21:40:14 +0200, Paolino [EMAIL PROTECTED] wrote: George Sakkis wrote: Then write a closure. You get both encapsulation and efficience, and as a bonus, customization of the translating function: import string def translateFactory(validChars=string.letters+string.digits, replaceChar='_'): all=string.maketrans('','') badcars=all.translate(all,validChars) table=string.maketrans(badcars, replaceChar*len(badcars)) def translate(text): return text.translate(table) # bind any attributes you want to be accessible # translate.badcars = badcars # ... return translate tr = translateFactory() tr(Hel\xfflo) This is clean,but I suppose it would get cumbersome if I want to have more functions in the namespace/factory and it implies all that bindings in the end. You are allowed to have more than one factory ;-) The second point also shows my perplexities about functions namespace: def function(): function.foo='something' a=function.foo Traceback (most recent call last): File stdin, line 1, in ? AttributeError: 'function' object has no attribute 'foo' You have not yet executed the statement function.foo='something' so you should not expect to see its effect ;-) How should I read it? The namespace is half done inside the function? def function(): ... function.foo='something' ... a=function.foo Traceback (most recent call last): File stdin, line 1, in ? AttributeError: 'function' object has no attribute 'foo' vars(function) {} Ok, to make the statement execute, execute function: function() a=function.foo a 'something' vars(function) {'foo': 'something'} Regards, Bengt Richter -- http://mail.python.org/mailman/listinfo/python-list
Re: How override ALL function calls? (Is there a function call function?)
On 31 Jul 2005 12:01:36 -0700, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote: I'm trying run a homegrown profiler on some Python code. Rather than apply profiler wrapper to ALL functions by hand Is there a low level Python function I can override to modify how ALL functions are called? You may want to look at import sys help(sys.settrace) Help on built-in function settrace in module sys: settrace(...) settrace(function) Set the global debug tracing function. It will be called on each function call. See the debugger chapter in the library manual. Regards, Bengt Richter -- http://mail.python.org/mailman/listinfo/python-list
Re: Wheel-reinvention with Python
On 31 Jul 2005 16:38:45 -0700 Paul Rubin wrote: I can put up a Tk gui in about 5 lines of code from a stock Python distro without having to install anything additional. How do I do that with wxPython? It is very easy under Debian Sarge to do it. Well after installing python-tk which needs python2.3-tk which needs blt, tcl8.4, tk8.4 and likes to have tix8.1. So, for a Tkinter programm you just need to install at least five packages for a GUI toolkit which may be great for you if you like to study the history of computing. :D Not that wxPython, PyGTK, PyQt have no dependencies ;) Bug you still can't forget the dependency on Tcl/Tk. greets, Marek -- http://mail.python.org/mailman/listinfo/python-list
Re: rfc822 module bug?
Mentre io pensavo ad una intro simpatica Tim Roberts scriveva: [rfc822 module bug] Date: Tue,26 Jul 2005 13:14:27 GMT +0200 It seems to be correct¹, but parsedate_tz is not able to decode it, it is confused by the absence of a space after the ,. Fascinating. I've written a lot of e-mail programs, and I would have bet real money that this was not legal by either RFC822 or 2822, but the BNF certainly supports your assertion that this is valid. [...] This is actually from RFC2822, but the point is the same. Yes you are right of course. I think I'll submit this bug on the Python web-site. -- Sfugge un braccio a Pessotto. (Amedeo Goria) |\ | |HomePage : http://nem01.altervista.org | \|emesis |XPN (my nr): http://xpn.altervista.org -- http://mail.python.org/mailman/listinfo/python-list
Re: Changing interpreter's deafult output/error streams
Ira [EMAIL PROTECTED] writes: OK let me rephrase, the standard error stream (and if I'm not mistaken also the one that PyErr_Print() writes to) is the python object sys.stderr. Now say I'd go ahead and write the following in python... Ah, OK, I think you're mistaken, and PyErr_Print prints to the C level FILE* stderr (I agree my first post was confusing on this point, sorry about that...). Cheers, mwh -- Acapnotic jemfinch: What's to parse? A numeric code, perhaps a chicken, and some arguments -- from Twisted.Quotes -- http://mail.python.org/mailman/listinfo/python-list
Re: Dabo in 30 seconds?
Ed Leafe wrote: Should we have defensive code for every possible broken installation? We use a lot of the Python standard library modules, many dbapi-compliant modules, and, of course, wxPython. If someone mis-installs one of the pre-requisites, do you expect Dabo to catch that and present you with a diagnostic message? I'm serious here: I want to know what people consider acceptable for a software package that relies on other packages. If it doesn't interfere with my other custom options, catching unsatisfied requisites is interesting. But a helpful stack trace is enough for the developer. Just be sure to say that it was this or that requisite that generated the problem and that's it. Giving some references on how to fix the problem is a plus. But if you're going to check everything, you'll end up checking the whole system at each and every run -- because I might have added / removed packages since I installed Dabo -- what would give a big performance penalty. -- Jorge Godoy [EMAIL PROTECTED] -- http://mail.python.org/mailman/listinfo/python-list
Re: [path-PEP] Path inherits from basestring again
Delaney, Timothy (Tim) wrote: Hey - paths are special enough to warrant additional syntax, aren't they? I hope this is a joke :) -- Michael Hoffman -- http://mail.python.org/mailman/listinfo/python-list
Re: The state of OO wrappers on top of wxPython (was Re: Wheel-reinvention with Python)
On Mon, 2005-08-01 at 14:20 +0200, Marek Kubica wrote: If you already tried GIMP on Windows, better try Inkscape on Windows.. that piece of GTK software is really good. I don't do any actual work under Windows any more. My Windows VMware session is purely for testing Windows apps and websites under Exploder. However my girlfriend, while hating the Gimp (she prefers Photoshop, to put it mildly), loves Inkscape and claims it is better in many ways than Illustrator. Regards, Cliff -- [EMAIL PROTECTED] http://www.develix.com :: Web applications and hosting :: Linux, PostgreSQL and Python specialists :: -- http://mail.python.org/mailman/listinfo/python-list
Re: Changing interpreter's deafult output/error streams
Michael Hudson wrote: Ira [EMAIL PROTECTED] writes: OK let me rephrase, the standard error stream (and if I'm not mistaken also the one that PyErr_Print() writes to) is the python object sys.stderr. Now say I'd go ahead and write the following in python... Ah, OK, I think you're mistaken, and PyErr_Print prints to the C level FILE* stderr (I agree my first post was confusing on this point, sorry about that...). No, it doesn't. It grabs the appropriate object from sys.stderr. -- Robert Kern [EMAIL PROTECTED] In the fields of hell where the grass grows high Are the graves of dreams allowed to die. -- Richard Harter -- http://mail.python.org/mailman/listinfo/python-list
Re: Dabo in 30 seconds?
On Mon, 2005-08-01 at 08:30 -0400, Ed Leafe wrote: On Sunday 31 July 2005 20:09, James Stroud wrote: No problem. But let me ask you what would *not* have disappointed you. As others have pointed out, you didn't compile the wxWidgets part of your wxPython install so as to include the stylized text control (yes, it seems silly that you should have to specify that, but that's another thread...) Should we have defensive code for every possible broken installation? We use a lot of the Python standard library modules, many dbapi-compliant modules, and, of course, wxPython. If someone mis-installs one of the pre-requisites, do you expect Dabo to catch that and present you with a diagnostic message? I'm serious here: I want to know what people consider acceptable for a software package that relies on other packages. Personally, all I expect is an obvious pointer to a mailing list and a helpful community willing to suffer NB questions (fast bugfixes is a big plus too). If that's available, I'm happy. But then I'm willing to actually work a little to get what I want. For other it seems they won't be happy unless you drive to their house and install it for them (which only seems fair, cause if you hadn't volunteered to write such crap then they wouldn't have had to be bothered with it in the first place, damn you). Maybe you wouldn't mind tidying up a bit and washing a few dishes while you're at it? Can't *quite* get this spoon to my mouth'ly yours, Cliff -- [EMAIL PROTECTED] http://www.develix.com :: Web applications and hosting :: Linux, PostgreSQL and Python specialists :: -- http://mail.python.org/mailman/listinfo/python-list
Re: Changing interpreter's deafult output/error streams
Robert Kern [EMAIL PROTECTED] writes: Michael Hudson wrote: Ira [EMAIL PROTECTED] writes: OK let me rephrase, the standard error stream (and if I'm not mistaken also the one that PyErr_Print() writes to) is the python object sys.stderr. Now say I'd go ahead and write the following in python... Ah, OK, I think you're mistaken, and PyErr_Print prints to the C level FILE* stderr (I agree my first post was confusing on this point, sorry about that...). No, it doesn't. It grabs the appropriate object from sys.stderr. Ah, you're right, I somehow ended up reading PySys_WriteStderr... Cheers, mwh -- The only problem with Microsoft is they just have no taste. -- Steve Jobs, (From _Triumph of the Nerds_ PBS special) and quoted by Aahz on comp.lang.python -- http://mail.python.org/mailman/listinfo/python-list
ANN: PyDev 0.9.7 with support to java 1.3 and 1.4 released
Hi All, PyDev - Python IDE (Python Development Enviroment for Eclipse) version 0.9.7 with support to java 1.3 and 1.4 has just been released. Check the homepage (http://pydev.sourceforge.net/) for more details. IMPORTANT: - A new package has been added to the pydev release with support to earlier java versions (latest release just supports java 5.0). - This package is targeted specifically for people that don't have access to java 5.0 (namely, earlier versions of MAC OS). - Support for this release is limited to the .zip distribution in the sourcforge downloads, and will not be put into the update site. Release Highlights: This build fixes some nasty bugs from 0.9.6... it is highly recommended you install it. (right now, everything but the debugger should work fine with 3.1). Important notes Note 1: Because of some issues with Eclipse, you have to uninstall all previous PyDev installations before installing the new release. Note 2: This release only works with Eclipse 3.1 (and from now on, Eclipse 3.0.x is no longer supported). Regards, Fabio -- Fabio Zadrozny -- Software Developer ESSS - Engineering Simulation and Scientific Software www.esss.com.br PyDev - Python Development Enviroment for Eclipse pydev.sf.net pydev.blogspot.com -- http://mail.python.org/mailman/listinfo/python-list
Majordomo results: [UBCCS:VIRUS] Was: Returned mail: Data f
-- This is a multi-part message in MIME format... Command 'this' not recognized. --=_NextPart_000_0009_87A2270A.AF343686 Command '--=_nextpart_000_0009_87a2270a.af343686' not recognized. Content-Type: text/plain; Command 'content-type:' not recognized. charset=us-ascii Command 'charset=us-ascii' not recognized. Content-Transfer-Encoding: 7bit Command 'content-transfer-encoding:' not recognized. Content-Disposition: inline Command 'content-disposition:' not recognized. The message was undeliverable due to the following reason(s): Command 'the' not recognized. Your message could not be delivered because the destination server was Command 'your' not recognized. unreachable within the allowed queue period. The amount of time Command 'unreachable' not recognized. a message is queued before it is returned depends on local configura- Command 'a' not recognized. tion parameters. Command 'tion' not recognized. Most likely there is a network problem that prevented delivery, but Command 'most' not recognized. it is also possible that the computer is turned off, or does not Command 'it' not recognized. have a mail system running right now. Command 'have' not recognized. Your message was not delivered within 4 days: Command 'your' not recognized. Mail server 152.167.191.138 is not responding. Command 'mail' not recognized. The following recipients did not receive this message: Command 'the' not recognized. [EMAIL PROTECTED] Command '[EMAIL PROTECTED]' not recognized. Please reply to [EMAIL PROTECTED] Command 'please' not recognized. if you feel this message to be in error. Command 'if' not recognized. --=_NextPart_000_0009_87A2270A.AF343686 Command '--=_nextpart_000_0009_87a2270a.af343686' not recognized. Content-Type: text/plain; charset=UTF-8 Command 'content-type:' not recognized. Content-Transfer-Encoding: 8bit Command 'content-transfer-encoding:' not recognized. The original content of this message part has been replaced Command 'the' not recognized. by this text because it tested positive for the following Command 'by' not recognized. virus(es): Command 'virus(es):' not recognized. W32/MyDoom-O Command 'w32/mydoom-o' not recognized. The original message has been quarantined pending further Command 'the' not recognized. action by the mail administrator. For further information Command 'action' not recognized. about the message and its delivery status, please contact Command 'about' not recognized. the undersigned, and include the full content of this Command 'the' not recognized. message. The identifier for this message is Command 'message.' not recognized. 'j71D4OFr001489'. Command ''j71d4ofr001489'.' not recognized. This notification is being sent to you and any other Command 'this' not recognized. original envelope recipient(s). To avoid creating a Command 'original' not recognized. nuisance and to keep mail traffic under control, the Command 'nuisance' not recognized. original sender of the message has NOT been notified. Command 'original' not recognized. However, you may want to notify the sender at your Command 'however,' not recognized. discretion. Command 'discretion.' not recognized. The Management Command 'the' not recognized. PureMessage Admin [EMAIL PROTECTED] Command 'puremessage' not recognized. --=_NextPart_000_0009_87A2270A.AF343686 Command '--=_nextpart_000_0009_87a2270a.af343686' not recognized. Content-Type: text/plain; name=SpamAssassinReport.txt Command 'content-type:' not recognized. Content-Disposition: inline; filename=SpamAssassinReport.txt Command 'content-disposition:' not recognized. Content-Transfer-Encoding: 7bit Command 'content-transfer-encoding:' not recognized. MIME-Version: 1.0 Command 'mime-version:' not recognized. X-Mailer: MIME-tools 5.411 (Entity 5.404) Command 'x-mailer:' not recognized. Spam detection software, running on the system badenpowell.cs.ubc.ca, has Command 'spam' not recognized. identified this incoming email as possible spam. The original message Command 'identified' not recognized. has been attached to this so you can view it (if it isn't spam) or block Command 'has' not recognized. similar future email. If you have any questions, see Command 'similar' not recognized. [EMAIL PROTECTED] for details. Command '[EMAIL PROTECTED]' not recognized. Content preview: The message was undeliverable due to the following Command 'content' not recognized. reason(s): Your message could not be delivered because the destination Command 'reason(s):' not recognized. server was unreachable within the allowed queue period. The amount of Command 'server' not recognized. time
Re: need for speed
[EMAIL PROTECTED] wrote: hi everyone can someone suggest me where find a lot programming tricks for achieving the top speed in python? thanks everyone for patience Check this out: http://wiki.python.org/moin/PythonSpeed/PerformanceTips -- http://mail.python.org/mailman/listinfo/python-list
Re: Wheel-reinvention with Python
Torsten Bronger wrote: Hallöchen! Peter Decker [EMAIL PROTECTED] writes: On 7/30/05, Torsten Bronger [EMAIL PROTECTED] wrote: I've been having a closer look at wxPython which is not Pythonic at all and bad documented. Probably I'll use it nevertheless. PyGTK and PyQt may have their own advantages and disadvantages. However, in my opinion we don't need yet another binding so thin that C or C++ is shining through, but a modern replacement for Tkinter with its Pythonic way of thinking. I had the exact same impression when I started working with wxPython: [...] I then discovered Dabo (http://dabodev.com), which is a full application framework, but whose UI layer is a very Pythonic wrapper around wxPython. I've created several apps now using Dabo, even though I haven't even looked at the data connectivity aspects of it; the UI code works fine without it. I'm aware of it (and there is Wax and maybe a third one). Actually it illustrates my point quite well: These projects are small and instable (Dabo has a developer basis of very few people, Wax has only one); they are even worse documented; they add another layer which slows down and requires the end-user to install another package; they force you to test even more GUI approaches. Wax is small enough to distribute *with* large apps. It now has several developers and part of the two 'google summer of code' projects working on it will be to generate full documentation. I find it makes writing GUI apps easier than with Tkinter and there is no speed bottleneck form the GUI code ! All the best, Fuzzy http://www.voidspace.org.uk/python == They contribute heavily to Dark Cowherd's observation that it is shambles. Tschö, Torsten. -- Torsten Bronger, aquisgrana, europa vetus -- http://mail.python.org/mailman/listinfo/python-list
Re: Majordomo results: [UBCCS:VIRUS] Was: Returned mail: Data f
On Mon, 2005-08-01 at 06:04 -0700, [EMAIL PROTECTED] wrote: Command 'nuisance' not recognized. Hm, seemed to work anyway. -- [EMAIL PROTECTED] http://www.develix.com :: Web applications and hosting :: Linux, PostgreSQL and Python specialists :: -- http://mail.python.org/mailman/listinfo/python-list
Re: Dabo in 30 seconds?
Cliff (who has a love/hate relationship with Twisted) wrote: Twisted, for one, can't be used without knowing Python. In fact, without knowing Python quite well. For that matter, it can't easily be used wink. Is using really a verb that is fitting for working with twisted? As much as I read and tried to learn, it is not that you use twisted, but you provide twisted with callbacks so that it uses you? So it is more something about devotion or digestion then simply use, or? Harald -- http://mail.python.org/mailman/listinfo/python-list
Re: Py: a very dangerous language
[Harald] Always go to bed exactly when you want to write the first lambda. [Peter] Eureka. The Twentieth Pythonic Thesis has finally surfaced. +1 QOTW. -- Richie Hindle [EMAIL PROTECTED] -- http://mail.python.org/mailman/listinfo/python-list
Re: Dabo in 30 seconds?
On Monday 01 August 2005 09:28, Harald Armin Massa wrote: it is not that you use twisted, but you provide twisted with callbacks so that it uses you? +1 QOTW -- -- Ed Leafe -- http://leafe.com -- http://dabodev.com -- http://mail.python.org/mailman/listinfo/python-list
Re: Dabo in 30 seconds?
I think this is the kind of thing that Phillip J Eby's PythonEggs/setuptools project is supposed to manage - you can declare your dependencies, and it can manage (to some extent) download and installation of the correct versions of dependencies, without clobbering existing package versions. It's at http://peak.telecommunity.com/DevCenter/PythonEggs I haven't heard much about it recently, but it looks brilliant. xtian -- http://mail.python.org/mailman/listinfo/python-list
Re: Wheel-reinvention with Python
Paul Rubin wrote: I think my approach is in some sense completely typical: I don't want to install ANYTHING, EVER. I've described this before. I want to buy a new computer and have all the software I'll ever need already on the hard drive, and use it from that day forward. By the time the With all due respect, if you're allergic to installing software then why are you a developer? To me, your view is somewhat akin to that of a woodworker who doesn't want to buy tools, or a painter who doesn't want to buy brushes. Computers can be merely appliances, sure, but that's wasting the general purpose part of computation. Software as separate packaging exists because we (collectively) don't always know what we want the first (or second, or third, or...) time around. And when we do know what we want, we often muck it up when we try it. -- http://mail.python.org/mailman/listinfo/python-list
Re: Standard Threads vs Weightless Threads
yoda wrote: 1)What is the difference (in terms of performance, scalability,[insert relevant metric here]) between microthreads and system threads? System-level threads are relatively heavyweight. They come with a full call stack, and they take up some level of kernel resources [generally less than a process]. In exchange, they're scheduled by the OS, with the primary benefit (on uniprocessor systems) that if one thread executes a blocking task (like IO writes) another thread will receive CPU attention. The primary disadvantage is that they're scheduled by the CPU. This leads to the concurrency nightmare, where the developer needs to keep track of what blocks of code (and data) need locks to prevent deadlock and race conditions. 2)If microthreads really are superior then why aren't they the standard Python implementation (or at least within the standard library)? (where my assumption is that they are not the standard implementation and are not contained within the standard library). Microthreads are very different; they're entirely internal to the Python process, and they're not seen at all by the operating system. Scheduling is done explicitly by the microthread implementation -- multitasking is not preemptive, as with system threads. They're not in the standard library because implementing microthreads has thus far required a very large rewrite of the CPython architecture -- see Stackless Python. -- http://mail.python.org/mailman/listinfo/python-list
Re: Printing Docstrings Without Importing
This seems to scratch several people's itches. Care to develop/maintain it ? Regards, Fuzzball http://www.voidspace.org.uk/python -- http://mail.python.org/mailman/listinfo/python-list
Re: Dabo in 30 seconds?
On 31 Jul 2005 16:22:09 -0700, Paul Rubin http://phr.cx@nospam.invalid wrote: I spent several hours trying to install wxPython on Linux without success (a lot of that was figuring out that some undefined symbol it was complaining about was some GTK 1.5 function that had didn't exist in GTK 2.1). As I remember, wxPython itself compiled without too much trouble but wxWidgets and/or GTK 1.5 (once I got a copy of that) had some problems. I decided I just didn't care enough to keep pursuing it. I'll bet you didn't even bother to read the docs, which give precise step-by-step instructions for building from source. Oh, that's right, you don't care enough to read directions. I suppose with that attitude, you can make just about anything fail. -- # p.d. -- http://mail.python.org/mailman/listinfo/python-list
Getting not derived members of a class
Hello NG, I want to retrieve the members of a class with a baseclass. But the problem is, how to get the non derived members. class a: def who(self): print who def __init__(self): self._a = 3 class b(a): def who1(self): print who1 def __init__(self): a.__init__(self) self._b = 4 y=b() dir (y) ['__doc__', '__init__', '__module__', '_a', '_b', 'who', 'who1'] I need a function which lists only the members of the not derived class (here class B). _b _who1 __init__ How can I achieve this? With the introspect module or so? many thanks in advance! -- Franz Steinhaeusler -- http://mail.python.org/mailman/listinfo/python-list
Re: namespaces
Paolino wrote: Even worse I get with methods and function namespaces. What is even worse about them? For my thinking, worse is to understand how they derive their pattern from generic namespaces. Methods seems not to have a writeble one,while functions as George and Rob remembered have one which is not read only.Why? I'm not sure I can parse this successfully, let alone understand it. George -- http://mail.python.org/mailman/listinfo/python-list
Re: Dabo in 30 seconds?
On 8/1/05, Cliff Wells [EMAIL PROTECTED] wrote: Personally, all I expect is an obvious pointer to a mailing list and a helpful community willing to suffer NB questions (fast bugfixes is a big plus too). If that's available, I'm happy. But then I'm willing to actually work a little to get what I want. For other it seems they won't be happy unless you drive to their house and install it for them (which only seems fair, cause if you hadn't volunteered to write such crap then they wouldn't have had to be bothered with it in the first place, damn you). Maybe you wouldn't mind tidying up a bit and washing a few dishes while you're at it? ROFLMAO! Yep, it's their fault for not charging us for their work! How evil can people get? Sharing their work and asking for nothing in return? What bastards!! -- # p.d. -- http://mail.python.org/mailman/listinfo/python-list
Re: Wheel-reinvention with Python
On 31 Jul 2005 09:03:41 -0700, Paul Rubin http://phr.cx@nospam.invalid wrote: How on earth did you decide that, since tkinter actually runs out of the box when you install Python on most platforms, and wxPython doesn't? I can't even think about trying out Dabo unless I'm willing to go through some enormous pain of getting wxPython to work. Geez, can you whine some more? Most people are running wxPython just fine, and since you don't care enough to bother to follow instructions, and have some oddball religious rule about installing binaries, it's everyone else's fault that you experience enormous pain. Gimme a break. -- # p.d. -- http://mail.python.org/mailman/listinfo/python-list
Re: Dabo in 30 seconds?
Cliff Wells wrote: But then I'm willing to actually work a little to get what I want. For other it seems they won't be happy unless you drive to their house and install it for them To be fair to those slothes: some of them want to write software for a commercial setting where they have to install it on other peoples machines. So it isn't just getting it to work one one own's machine. Using a specifc Python library with external dependencies means also installing and *supporting* it on a possible large set of configurations. Daniel -- http://mail.python.org/mailman/listinfo/python-list
Re: Wheel-reinvention with Python
This sort of intentional obtuseness grates on me too. Just to let you know, this discussion has convinced me to try Dabo, which I knew nothing about before. So your participation has not been useless. In fact, I think I will start with your two-liner below so I can see what I get by default and then build from there. Terry J. Reedy Ed Leafe [EMAIL PROTECTED] wrote in message news:[EMAIL PROTECTED] On Sunday 31 July 2005 22:39, Paul Rubin wrote: import dabo app = dabo.dApp() dApp.start() Sorry, I couldn't do it in 5. ;-) Oh, and that includes a full menu, too. I get an ImportError exception when I try that. Any suggestions? Note that I don't get that exception from Tkinter. bash-3.00$ python Python 2.3.4 (#1, Oct 26 2004, 16:42:40) [GCC 3.4.2 20041017 (Red Hat 3.4.2-6.fc3)] on linux2 Type help, copyright, credits or license for more information. import dabo Traceback (most recent call last): File stdin, line 1, in ? ImportError: No module named dabo import Tkinter Oh, c'mon now Paul, now you're trolling. You know exactly what the problem is, and try to make it look like a bug. Fine: you don't want to use anything that doesn't come standard with Python. You've made your point. We get it. There is no need to repeat yourself constantly. The only point of my post was that for those without your aversion to installing useful tools, Dabo provides a ton of functionality. Also, as my partner Paul McNett pointed out, I could have done it in *two* lines: import dabo dabo.dApp().start() ;-) -- -- Ed Leafe -- http://leafe.com -- http://dabodev.com -- http://mail.python.org/mailman/listinfo/python-list -- http://mail.python.org/mailman/listinfo/python-list
Re: Getting not derived members of a class
Franz Steinhaeusler wrote: Hello NG, I want to retrieve the members of a class with a baseclass. But the problem is, how to get the non derived members. class a: def who(self): print who def __init__(self): self._a = 3 class b(a): def who1(self): print who1 def __init__(self): a.__init__(self) self._b = 4 y=b() dir (y) ['__doc__', '__init__', '__module__', '_a', '_b', 'who', 'who1'] I need a function which lists only the members of the not derived class (here class B). _b _who1 __init__ How can I achieve this? With the introspect module or so? I believe you can't: Both _a and _b end up in y.__dict__ and there's no way to differentiate between the two depending on the time of their creation. By the way, these are instance attributes, not class attributes, so strictly _b is not a member of B, it's just an instance of y. To see why this is the case, check the following valid (though highly discouraged) example: class X: def __init__(self, x): if isinstance(x,str): self._s = x else: self._n = x x1 = X(1) x2 = X(1) dir(x1) ['__doc__', '__init__', '__module__', '_s'] dir(x2) ['__doc__', '__init__', '__module__', '_n'] George -- http://mail.python.org/mailman/listinfo/python-list
Re: Wheel-reinvention with Python
On Monday 01 August 2005 10:35, Terry Reedy wrote: This sort of intentional obtuseness grates on me too. Just to let you know, this discussion has convinced me to try Dabo, which I knew nothing about before. So your participation has not been useless. In fact, I think I will start with your two-liner below so I can see what I get by default and then build from there. We have two Dabo-specific email lists: Dabo-dev is for following the latest and greatest developments in Dabo, including notifications of all commits to the repository; Dabo-users is for developers using the framework who have questions/problems/comments about Dabo. http://leafe.com/mailman/listinfo/dabo-dev http://leafe.com/mailman/listinfo/dabo-users -- -- Ed Leafe -- http://leafe.com -- http://dabodev.com -- http://mail.python.org/mailman/listinfo/python-list
using Pyro for network games
Hi, everyone. In topic 2-player game, client and server at localhost, I've asked about subj, and Peter Hansen suggested to switch to Twisted, Pyro or the like. I've tried using Pyro. I've written a very very simple test-game, in which you have 2 balls controlled by 2 players. Each player moves his mouse somewhere at his window, and his ball starts moving towards the pointer. No objectives, just to test how it works. The code is very small, so I can put it all here, skipping obvious stuff. I've tried playing this test-game via local-host - all is ok. Then I've tested via Internet connection with my friend. I have a 33.6 Kbps modem, he has a 2 MBps dedicated line (if this is the term), and we ran a server at his pc and both connected to it. His ball ran as a child, smoothly and quickly, while I had about 5 fps :(, and for him it looked like my ball is simply very slow. I realise that client at my pc *has* to work slower than the client at server's pc, but hey, I've played Quake2 and WarCraft 2 via 33.6 modem, and those should have much more stuff to transfer per second :( Please help me in any way you can think of. I'd welcome links to Python games written with Pyro, tips on what I am doing wrong, on not Pythonically enough - anything. server.py# # [..imports..] class game__(game_, Pyro.core.ObjBase): def __init__(self): #storage for balls' coordinates game_.__init__(self) Pyro.core.ObjBase.__init__(self) [..server initialization..] daemon.requestLoop() END#server.py# client.py# [..imports..] [..preparations to create proxy..] proxy=Pyro.core.getAttrProxyForURI(URI) [..imports..] def process_user_input(game, id):#id is client's id - 0 or 1 nx, ny = pygame.mouse.get_pos() x, y = game.ball[id].get_pos() dx, dy = nx - x, ny - y leng = sqrt(dx*dx + dy*dy) k = 20 / leng dx *= k dy *= k game.move(id, dx, dy) #remote call: move ball id = proxy.get_n_clients() #which ball to control if id 2: proxy.new_client() pygame.init() scr = pygame.display.set_mode((640, 480)) g = game(proxy.get_status(), scr) #get_status provides 2 pairs of balls's current coordinates #g, game instance, is a local storage, able to render itself while 1: g.set_status(proxy.get_status()) g.render() process_user_input(proxy, id) time.sleep(0.03) [..quit = (ESCAPE is pressed)..] if quit: break END#client.py# -- Best Regards, Michael Rybak mailto:[EMAIL PROTECTED] -- http://mail.python.org/mailman/listinfo/python-list
Re[4]: 2-player game, client and server at localhost
Again, thank you very much for your help. DLB The server should basically handle the multiple client DLB connection logic, and determination of interactions between movable DLB objects -- collision detection, for example (and I don't mean in the DLB terms of graphics rendering but in terms of object one at current DLB movement intersecting object two moving at some other vector). My problem is: there are about 30 movable objects, so transferring all their coordinates is much more traffic consuming (about 150 bytes per transfer) rather than sending only user's motions (10 bytes per transfer). But on the other hand, sending user's motions between two non-server-neither-clients means that I needed stricted synchronization, which means the turn-based approach, as you've said. DLB I'm also NOT a game programmer, so I'm not sure how well most of DLB them separate screen updates from I/O, but I'd turn the above loop into DLB something like: DLB create screen thread DLB create I/O thread DLB {screen thread} DLB loop: DLB compute/display screen using snapshot of local status DLB {I/O thread} DLB loop DLB if keyboard has activity DLB read data DLB send data to server DLB if server has activity DLB read data DLB update local status DLB Note that the keyboard, in this simple example, never affects DLB the local (client) display -- only the status sent back by the server is DLB used. Okay, you may need to process things like quit locally G. Well, this look really elegant, but will need me some time to rewrite my networking that way. Thank's a lot, I'll let you know when it works. [..snip..] ]DLB The server looks like: DLB loop DLB if new client connect DLB add client to list of clients DLB send client current status DLB if data from client DLB update world state (collision detects, damage, etc.) DLB for c in client list DLB send current status DLB if client disconnect DLB remove client from list consider this part: DLB if data from client DLB update world state (collision detects, damage, etc.) DLB for c in client list DLB send current status the problem is - I should do this not if data from client, but every 50 milliseconds or so, because objects are still moving when not affected by users. To give you a better idea of what my game is: Each player controls a snake, which is 2 to 12 balls connected to each other with ropes; by mouse motions you move the snake's head, and the rest of the body moves adhering normal physics. The objective/gameplay is unimportant here, but if you're curios - all the balls of your snake are bullets, and right-clicking releases current tail. So, you have to spin around, and release the tail in appropriate moment so it reaches your opponent, causing as much damage as much impulse it had. There are health-pots and other stuff on game field of course. So, you see - server will have to send current status as much time per second, as much fps I want, and that's quite a lot of data. I'd also like to mention (if I haven't already) that I have a 33.6 modem, while the friend I'm testing with has a 2 Mbit dedicated line, if this is the right term. I also was advised (by Peter Hansen) to try using Twisted, Pyro os something like that. I've looked at Pyro, and tried using it, without a lot of success compared to what I have now. I'm starting a new topic here, describing my experiment. DLB Recall my warning -- I'm not a game programmer; this is just how DLB /I'd/ consider implementing something like this. You're being very helpful anyway :) DLB -- DLB == DLB [EMAIL PROTECTED] | Wulfraed Dennis Lee Bieber KD6MOG DLB[EMAIL PROTECTED] | Bestiaria Support Staff DLB == DLB Home Page: http://www.dm.net/~wulfraed/ DLB Overflow Page: http://wlfraed.home.netcom.com/ -- Best Regards, Michael Rybak mailto:[EMAIL PROTECTED] -- http://mail.python.org/mailman/listinfo/python-list
Re: Advanced concurrancy
On 28 Jul 2005 10:41:54 -0700, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote: Asynchrony is not concurrency. If you have to turn your code inside out, (that is, if you have to write your code such that the library calls your code, rather than vice versa) it's very much *not* concurrency: it's just asynchrony. While Twisted makes asynchronous code relatively easy to write and maintain, it's just not concurrency. I can't simply drop my single-threaded code into it and have it work, like I can with a truly concurrent system. Jeremy When you can ever just simply drop any single-threaded code into an enviroment where it is sharing the resources and data with other executing code simulataniously, it just have it work, that will be the day. Unfortunately, in practice, this simply is not how things work. For code to operate peacefully together, it must be designed to do so. Even when code is running in seperate processes, they must work together to share some resources, and that is simply the way of things. Concurrency can not (and perhaps should not) be an automatic fix-all pill. -- http://mail.python.org/mailman/listinfo/python-list
Re: Getting not derived members of a class
On 1 Aug 2005 07:43:22 -0700, George Sakkis [EMAIL PROTECTED] wrote: Franz Steinhaeusler wrote: Hello NG, I want to retrieve the members of a class with a baseclass. But the problem is, how to get the non derived members. class a: def who(self): print who def __init__(self): self._a = 3 class b(a): def who1(self): print who1 def __init__(self): a.__init__(self) self._b = 4 y=b() dir (y) ['__doc__', '__init__', '__module__', '_a', '_b', 'who', 'who1'] I need a function which lists only the members of the not derived class (here class B). _b _who1 __init__ How can I achieve this? With the introspect module or so? I believe you can't: Both _a and _b end up in y.__dict__ and there's no way to differentiate between the two depending on the time of their creation. By the way, these are instance attributes, not class attributes, so strictly _b is not a member of B, it's just an instance of y. To see why this is the case, check the following valid (though highly discouraged) example: class X: def __init__(self, x): if isinstance(x,str): self._s = x else: self._n = x x1 = X(1) x2 = X(1) dir(x1) ['__doc__', '__init__', '__module__', '_s'] dir(x2) ['__doc__', '__init__', '__module__', '_n'] George Hello George, thank you for this information. This is a pity. The background: I want to create a code completition for an editor component. It should distinguish between inherited and non inherited members. Reason is, that on wxPython, most classes are derived from wxWindow. For example if I want Code completition for wx.Frame, I always get the 200 or so suggestions, whereby most times, I'm only interested in the possible completions of wx.Frame and maybe wx.TopLevelWindow. -- Franz Steinhaeusler -- http://mail.python.org/mailman/listinfo/python-list
Re: Operator Overloading
On 1 Aug 2005 05:12:47 -, Gurpreet Sachdeva [EMAIL PROTECTED] wrote: Hi, Is there any provision in python which allows me to make my own operators? My problem is that I need to combine two dictonaries with their keys and I don't want to use any of the existing operators like '+','-','*'. So is there a way I can make '**' or '~' as my operators to add two dictonaries? If not which all operators can I overoad? Thanks, Garry Why do you need to add operators for this? Why not use the dictionary's update method? it also has the benefit of being much clearer. # Get our two dictionaries d1 = foo() d2 = bar() # And merge them into a third d3 = {} d3.update(d1) d3.update(d2) -- http://mail.python.org/mailman/listinfo/python-list
Re: Getting not derived members of a class
On 'y', Python has no way of recording where '_a' and '_b' were set, so you can't tell whether it comes from class 'a' or 'b'. You can find the attributes that are defined on 'b' only, though, by using 'b.__dict__.keys()', or 'y.__class__.__dict__.__keys__()'. This gives ['__module__', 'who1', '__init__', '__doc__'] If you want to limit yourself to current versions of cpython (because the bytecode used in cpython is only an implementation detail) and define a 'member of class a' as one where a.__init__ has a statement like 'self.z = ...', you can peer into the bytecodes. Something like this: from dis import HAVE_ARGUMENT, opname LOAD_FAST = chr(opname.index('LOAD_FAST')) STORE_ATTR = chr(opname.index('STORE_ATTR')) HAVE_ARGUMENT = chr(HAVE_ARGUMENT) def find(cls): ns = cls.__dict__ result = ns.keys() init = ns.get('__init__', None) if not init: return ns f = ns['__init__'].func_code.co_code n = ns['__init__'].func_code.co_names i = 0 while i len(f) - 6: if (f[i] == LOAD_FAST and f[i+1] == f[i+2] == '\0' and f[i+3] == STORE_ATTR): j = ord(f[i+4]) + 256 * ord(f[i+5]) result.append(n[j]) i += 6 elif f[i] HAVE_ARGUMENT: i += 3 else: i += 1 return result import franz franz.find(y.__class__) ['__module__', 'who1', '__init__', '__doc__', '_b'] Jeff pgpU4zGsIJWPJ.pgp Description: PGP signature -- http://mail.python.org/mailman/listinfo/python-list
Re: Dabo in 30 seconds?
Daniel Dittmar wrote: To be fair to those slothes: some of them want to write software for a commercial setting where they have to install it on other peoples machines. So it isn't just getting it to work one one own's machine. Using a specifc Python library with external dependencies means also installing and *supporting* it on a possible large set of configurations. I see no problem with that. Specially since there are lots of ways to share directories on a network installation. You install it once and it's done. -- Jorge Godoy [EMAIL PROTECTED] -- http://mail.python.org/mailman/listinfo/python-list
Re: problem using py2exe
I ran into the same problem (although 2 years later :-P) I managed to fix it by copying the dll files and the snack.tcl file from the snacklib directory to my dist\tcl\tk8.4\ directory. Then editing the pkgIndex.tcl in the tk8.4 directory and adding the lines that are present in the pkgIndex.tcl that is in the snacklib directory. If no pkgIndex.tcl file is present in your tk8.4 dir, just copy the one from the snacklib dir just like you did the other files. Hope somebody still sees this as useful information -- http://mail.python.org/mailman/listinfo/python-list
Re: python ETL
[EMAIL PROTECTED] wrote: Hi, My company is involved in the development of many data marts and data-warehouses, and I currently looking into migrating our old set of tools (written in Korn) to a new, more dynamic and robust one. I am looking into python as I have heard that it could be a good contestant for the job, and wanted to know if anyone knew of an existing open source project which implements ETL using python, or any libraries that may ease the production of such tools. Thanks. Robert is right; you have not really given much information. However, I would have to assume that if homebrew shell scripts have been doing the work adequately, then the marts and warehouses are not very large and the datasets are primarily text rather than binary. If this is the case and you are only seeking incremental improvement, then Python would be a very good choice. Perl would also do the job. Just about any language would work. Yes, there are many reasons to choose Python. However, you would have to build any scalability and metadata management. If you seek a radical improvement, it is available, but I do not know of any free tools that will do it. A question like this will probably not be answered in a newsgroup post or even the exchange of a few emails. Choosing an effective tool for the organization is not a trivial process. It requires knowledge of both the tools and the organization's methodologies and processes. If you do not have staff who can do this, most companies find it is much cheaper and faster to pay someone who does know (a consultant) to assist them in assessing their requirements, tool selection, and forming an implementation plan. Yes, your company staff can learn a lot by experimenting and playing with several tools, but shareholders might not view that approach as the most effective. -- http://mail.python.org/mailman/listinfo/python-list
Re: Dabo in 30 seconds?
Jorge Godoy wrote: Daniel Dittmar wrote: To be fair to those slothes: some of them want to write software for a commercial setting where they have to install it on other peoples machines. So it isn't just getting it to work one one own's machine. Using a specifc Python library with external dependencies means also installing and *supporting* it on a possible large set of configurations. I see no problem with that. Specially since there are lots of ways to share directories on a network installation. You install it once and it's done. Some on Windows, some on one Linux, some on another Linux with a newer GTK, some want it on their laptops to work on the road ... Daniel -- http://mail.python.org/mailman/listinfo/python-list
Re: Dabo in 30 seconds?
Ed Leafe [EMAIL PROTECTED] wrote in message news:[EMAIL PROTECTED] others have pointed out, you didn't compile the wxWidgets part of your wxPython install so as to include the stylized text control (yes, it seems silly that you should have to specify that, but that's another thread...) Should we have defensive code for every possible broken installation? That is an impossibility. However, there is a middle path between that and no defensive code. In the present case, you appear to acknowledge a known easy way to mis-compile wxWidgets from Dabo's viewpoint. If there is a known easy way to detect that misconfiguration (which I suspect there is), and it is known that someone has tripped over that problem (which it now is), then a nice error message like 'Sorry, Dabo need wxWidgets compiled with the --include_stylized_text option' would certainly be friendlier than a stack trace. The Python docs, while written fairly carefully, are probably not yet free of ambiguities. So when people report them, clarifications are usually added. We use a lot of the Python standard library modules, many dbapi-compliant modules, and, of course, wxPython. If someone mis-installs one of the pre-requisites, do you expect Dabo to catch that and present you with a diagnostic message? In a sense, I expect nothing from giftware. (And I have learned to expect less than I think I have a right to from buyware ... but that another story.) But if I were to make a prereq mistake, I would prefer more help to less. If you were to do this, I would suggest you make an errormsgs module with the text of all the messages and which defines a flag use_msgs = True. Then you could conditionally print a message after catching ImportError while letting developer turn them off, if desired, for apps they plan to distribute. I'm serious here: I want to know what people consider acceptable for a software package that relies on other packages. To me, acceptability depends on the audience. Do you want to limit Dabo to professional developers comfortable with sometimes cryptic traceback messages or do you want to include people using Python as part of other activities? Terry J. Reedy -- http://mail.python.org/mailman/listinfo/python-list
Re: Getting not derived members of a class
Franz Steinhaeusler wrote: The background: I want to create a code completition for an editor component. It should distinguish between inherited and non inherited members. Reason is, that on wxPython, most classes are derived from wxWindow. For example if I want Code completition for wx.Frame, I always get the 200 or so suggestions, whereby most times, I'm only interested in the possible completions of wx.Frame and maybe wx.TopLevelWindow. You can, of course, always search the base classes and subtract the two sets (all members)-(members of baseclasses). For example: cls = wx.Frame set(dir(cls)) - reduce(set.union, [set(dir(base)) for base in cls.__bases__]) Reinhold -- http://mail.python.org/mailman/listinfo/python-list
Re: Getting not derived members of a class
On Mon, 1 Aug 2005 10:24:53 -0500, Jeff Epler [EMAIL PROTECTED] wrote: On 'y', Python has no way of recording where '_a' and '_b' were set, so you can't tell whether it comes from class 'a' or 'b'. You can find the attributes that are defined on 'b' only, though, by using 'b.__dict__.keys()', or 'y.__class__.__dict__.__keys__()'. This gives ['__module__', 'who1', '__init__', '__doc__'] If you want to limit yourself to current versions of cpython (because the bytecode used in cpython is only an implementation detail) and define a 'member of class a' as one where a.__init__ has a statement like 'self.z = ...', you can peer into the bytecodes. Something like this: from dis import HAVE_ARGUMENT, opname LOAD_FAST = chr(opname.index('LOAD_FAST')) STORE_ATTR = chr(opname.index('STORE_ATTR')) HAVE_ARGUMENT = chr(HAVE_ARGUMENT) def find(cls): ns = cls.__dict__ result = ns.keys() init = ns.get('__init__', None) if not init: return ns f = ns['__init__'].func_code.co_code n = ns['__init__'].func_code.co_names i = 0 while i len(f) - 6: if (f[i] == LOAD_FAST and f[i+1] == f[i+2] == '\0' and f[i+3] == STORE_ATTR): j = ord(f[i+4]) + 256 * ord(f[i+5]) result.append(n[j]) i += 6 elif f[i] HAVE_ARGUMENT: i += 3 else: i += 1 return result import franz franz.find(y.__class__) ['__module__', 'who1', '__init__', '__doc__', '_b'] Jeff Hello Jeff, thank you for this desciption. Well, a little complicated, I must read/try this later, but it looks promising to get the last derived class members ;) Is there any possibility to simply get out the classes and baseclasses of a class? somfunc (y) = class A, B (where B is last). Ok you can prepare a class, but I need to use the existing wxPython classes. -- Franz Steinhaeusler -- http://mail.python.org/mailman/listinfo/python-list
Re: Dabo in 30 seconds?
On Mon, 2005-08-01 at 16:21 +0200, Daniel Dittmar wrote: Cliff Wells wrote: But then I'm willing to actually work a little to get what I want. For other it seems they won't be happy unless you drive to their house and install it for them To be fair to those slothes: some of them want to write software for a commercial setting where they have to install it on other peoples machines. So it isn't just getting it to work one one own's machine. Using a specifc Python library with external dependencies means also installing and *supporting* it on a possible large set of configurations. I can understand this, but from my experience, their concerns are badly misplaced: I recently wrote a fairly sizable Python app (~8K LOC) that utilized several 3rd party python librarys: wxPython, Twisted, FeedParser, DateUtils and SQLite to name a few off the top of my head (plus I had to repackage libxml and libxslt on OS/X because 10.3 ships with broken versions :P). It ran on Windows and OS/X (and Linux, but that was never deployed as the customer wasn't interested). This was for a *very* large customer and made it to nearly 10,000 desktops. Not one complaint had to do with installation of 3rd party packages. Why? Because I *packaged* it for them. Most of the effort I put in had little to do with any 3rd party Python library but rather just the ins and outs of each platform's packaging tools (and this can be no little pain I assure you). I will also note, out of fairness, that the port to OS/X was not as pain-free as I had hoped (wxPython was fairly new to that platform and I found more than a few bugs - most of them are resolved now, because I didn't just give up when I found them, rather I reported them and drum roll they got fixed! Who would have thought?!). In short, these people's complaints reveal only two things: 1) they are hopelessly pessimistic, whether out of pure laziness, lack of experience or what I'm unsure and 2) they've never actually tried very hard or perhaps even at all. Overall that's a recipe for failure in any endeavor. As I mentioned earlier, programming is half brains and half tenacity. If you lack one or the other, your chances of success are pretty slim. The sad thing is that their ability to cling so tenaciously to such an unqualified position leaves me wondering if it isn't truly the first quality that they lack. Given how easy Python makes things, I'd hate to see how they'd fare with a *real* programming language wink. Regards, Cliff -- [EMAIL PROTECTED] http://www.develix.com :: Web applications and hosting :: Linux, PostgreSQL and Python specialists :: -- http://mail.python.org/mailman/listinfo/python-list
Re: Getting not derived members of a class
On Mon, 01 Aug 2005 18:02:20 +0200, Reinhold Birkenfeld [EMAIL PROTECTED] wrote: Franz Steinhaeusler wrote: The background: I want to create a code completition for an editor component. It should distinguish between inherited and non inherited members. Reason is, that on wxPython, most classes are derived from wxWindow. For example if I want Code completition for wx.Frame, I always get the 200 or so suggestions, whereby most times, I'm only interested in the possible completions of wx.Frame and maybe wx.TopLevelWindow. You can, of course, always search the base classes and subtract the two sets (all members)-(members of baseclasses). For example: cls = wx.Frame set(dir(cls)) - reduce(set.union, [set(dir(base)) for base in cls.__bases__]) Reinhold Hello Reinhold, yes, cool, thank you very much! The optimum would be getting also the other base classes, with the members, but I think, it is asked to much. 'wx.Frame' ... = CreateStatusBar, ... 'wx.TopLevelWindow' ... = GetIcon, ... 'wx.Window' ... = ... 'wx.EvtHandler' = ... -- Franz Steinhaeusler -- http://mail.python.org/mailman/listinfo/python-list
Re: Dabo in 30 seconds?
On Monday 01 August 2005 11:56, Terry Reedy wrote: That is an impossibility. However, there is a middle path between that and no defensive code. In the present case, you appear to acknowledge a known easy way to mis-compile wxWidgets from Dabo's viewpoint. If there is a known easy way to detect that misconfiguration (which I suspect there is), and it is known that someone has tripped over that problem (which it now is), then a nice error message like 'Sorry, Dabo need wxWidgets compiled with the --include_stylized_text option' would certainly be friendlier than a stack trace. OK, that's more of what I had in mind. Truth be told, this is the first time we've run into this, and as a result I'll make the change to that import statement today. We've taken the attitude that when a bug/shortcoming is pointed out, we address it. But one problem with that is when you only have a handful of people actively using and testing it, you limit your potential for discovering problems. If nothing else, this thread has helped by pointing out one such shortcoming. ;-) -- -- Ed Leafe -- http://leafe.com -- http://dabodev.com -- http://mail.python.org/mailman/listinfo/python-list
Re: Dabo in 30 seconds?
Cliff Wells wrote: As I mentioned earlier, programming is half brains and half tenacity. +1 QOTY (quote of the year) -- Benji York -- http://mail.python.org/mailman/listinfo/python-list
Re: namespaces
On Sun, 31 Jul 2005 21:03:36 -0700, Paul Rubin wrote: Steven D'Aprano [EMAIL PROTECTED] writes: Most languages can create self-modifying code. That's not the question. The question is whether developers should write self-modifying code, not whether language designers should prohibit it. There was no self-modifying code in that closure example. Self-modifying code means something entirely different. The example was a function that modified itself to do something different from what it was doing. Calling it a closure is just jargon. As for closure being tried and true in Lisp... well, there is a reason why Lisp is a niche language, with very little if any use in the commercial world. -- Steven. -- http://mail.python.org/mailman/listinfo/python-list
Re: Dabo in 30 seconds?
Daniel Dittmar wrote: I see no problem with that. Specially since there are lots of ways to share directories on a network installation. You install it once and it's done. Some on Windows, some on one Linux, some on another Linux with a newer GTK, some want it on their laptops to work on the road ... All of the fixed and network accessible are easily solvable (? Is it correct English?). Corporative environments should also have an upgrade policy, so the new GTK would just exist after testing has been done and this new GTK is certified for the company's apps. For laptops to work on the road there are two options: VPNs and installing it locally. How many laptops to work on the road there will be compared to fixed workstations? We can find several problems, almost all of them can be solved with the admin's creativity. -- Jorge Godoy [EMAIL PROTECTED] -- http://mail.python.org/mailman/listinfo/python-list
Re: need for speed
On Mon, 01 Aug 2005 02:28:36 -0700, [EMAIL PROTECTED] wrote: hi everyone can someone suggest me where find a lot programming tricks for achieving the top speed in python? There is only one programming trick you need to know about making code run fast. Never even waste one second on optimising code before it is working, or before you have tested it and profiled it and know (1) that it IS slow; and (2) WHERE it is slow. Why would you waste your valuable time making bugs run faster? Why waste time and effort to speed up something that is already fast enough? In other words: Make your code work. Make it work right. Then, and only then, make it run fast -- and only if it isn't already fast. Now that you have written your code, and you have made it work right, please tell us what the code is, and the results of profiling the code, and we will help you speed it up. -- Steven -- http://mail.python.org/mailman/listinfo/python-list
Re: Wheel-reinvention with Python
Ed Leafe wrote: On Sunday 31 July 2005 22:39, Paul Rubin wrote: import dabo app = dabo.dApp() dApp.start() Sorry, I couldn't do it in 5. ;-) Oh, and that includes a full menu, too. I get an ImportError exception when I try that. Any suggestions? Note that I don't get that exception from Tkinter. bash-3.00$ python Python 2.3.4 (#1, Oct 26 2004, 16:42:40) [GCC 3.4.2 20041017 (Red Hat 3.4.2-6.fc3)] on linux2 Type help, copyright, credits or license for more information. import dabo Traceback (most recent call last): File stdin, line 1, in ? ImportError: No module named dabo import Tkinter Oh, c'mon now Paul, now you're trolling. You know exactly what the problem is, and try to make it look like a bug. Fine: you don't want to use anything that doesn't come standard with Python. You've made your point. We get it. There is no need to repeat yourself constantly. The only point of my post was that for those without your aversion to installing useful tools, Dabo provides a ton of functionality. Also, as my partner Paul McNett pointed out, I could have done it in *two* lines: import dabo dabo.dApp().start() ;-) -- -- Ed Leafe -- http://leafe.com -- http://dabodev.com If you're creating a new instance of your dApp(I assume its a class) with no arguments, then effectively your just creating a default program which is already defined in the dabo module. If you could write it in a few, short lines of code by defining a new class, then you might have something there. -- http://mail.python.org/mailman/listinfo/python-list
Re: namespaces
On Tue, 2005-08-02 at 02:37 +1000, Steven D'Aprano wrote: there is a reason why Lisp is a niche language, with very little if any use in the commercial world. Eric Naggum? Regards, Cliff -- [EMAIL PROTECTED] http://www.develix.com :: Web applications and hosting :: Linux, PostgreSQL and Python specialists :: -- http://mail.python.org/mailman/listinfo/python-list
Is this Pythonic?
Suppose I'm writing an abstract superclass which will have some concrete subclasses. I want to signal in my code that the subclasses will implement certan methods. Is this a Pythonic way of doing what I have in mind: class Foo: # abstract superclass def bar(self): raise Exception, Implemented by subclass def baz(self): raise Exception, Implemented by subclass class Concrete(Foo): def bar(self): #...actual implemtation... def baz(self): #...actual implemtation... -- Email: zen19725 at zen dot co dot uk -- http://mail.python.org/mailman/listinfo/python-list
Re: Dabo in 30 seconds?
On Mon, 2005-08-01 at 13:28 -0300, Jorge Godoy wrote: We can find several problems, almost all of them can be solved with the admin's creativity. import creativity Traceback (most recent call last): File stdin, line 1, in ? ImportError: No module named creativity Nope. Not included with Python. Can't be used. Regards, Cliff -- [EMAIL PROTECTED] http://www.develix.com :: Web applications and hosting :: Linux, PostgreSQL and Python specialists :: -- http://mail.python.org/mailman/listinfo/python-list
Re: Getting not derived members of a class
Franz Steinhaeusler wrote: Is there any possibility to simply get out the classes and baseclasses of a class? somfunc (y) = class A, B (where B is last). If you use new-style classes, i.e. classes inheriting from object, it is trivial: class X(object): pass class Y1(X): pass class Y2(X): pass class Z(Y1,Y2): pass z = Z() z.__class__.__mro__ (class '__main__.Z', class '__main__.Y1', class '__main__.Y2', class '__main__.X', type 'object') Old style classes don't have __mro__, so you have to write it yourself; in any case, writing old style classes in new code is discouraged. George -- http://mail.python.org/mailman/listinfo/python-list
Re: Is this Pythonic?
phil hunt wrote: Suppose I'm writing an abstract superclass which will have some concrete subclasses. I want to signal in my code that the subclasses will implement certan methods. Is this a Pythonic way of doing what I have in mind: class Foo: # abstract superclass def bar(self): raise Exception, Implemented by subclass def baz(self): raise Exception, Implemented by subclass Change those to raise NotImplementedError('blah') instead and you'll be taking the more idiomatic approach. -Peter -- http://mail.python.org/mailman/listinfo/python-list
Re: Python IDE's
VIM or Emacs. I use VIM on Windows, Mac, and VMS. I'd consider it more of an editor than an IDE, but there are many IDE features available with plug ins. -- http://mail.python.org/mailman/listinfo/python-list
Re: Is this Pythonic?
phil hunt wrote: Suppose I'm writing an abstract superclass which will have some concrete subclasses. I want to signal in my code that the subclasses will implement certan methods. Is this a Pythonic way of doing what See http://docs.python.org/lib/module-exceptions.html#l2h-298 (NotImplementedError) -- Benji York -- http://mail.python.org/mailman/listinfo/python-list
Re: Dabo in 30 seconds?
Cliff Wells wrote: I can understand this, but from my experience, their concerns are badly misplaced: I recently wrote a fairly sizable Python app (~8K LOC) that utilized several 3rd party python librarys: wxPython, Twisted, FeedParser, DateUtils and SQLite to name a few off the top of my head (plus I had to repackage libxml and libxslt on OS/X because 10.3 ships with broken versions :P). It ran on Windows and OS/X (and Linux, but that was never deployed as the customer wasn't interested). This was for a *very* large customer and made it to nearly 10,000 desktops. Not one complaint had to do with installation of 3rd party packages. Why? Because I *packaged* it for Actual success stories like this one are often more convincing than general remarks about how any problem is solvable, given enough effort. In short, these people's complaints reveal only two things: 1) they are hopelessly pessimistic, whether out of pure laziness, lack of experience It might be very specific experiences. Many people using third party controls with Visual Basic got burned. endeavor. As I mentioned earlier, programming is half brains and half tenacity. I'd add a bit of gambling, because often, you don't have enough information. Telling what works from your experience adds useful information so that the brain can decide where to invest the tenacity. Daniel -- http://mail.python.org/mailman/listinfo/python-list
Re[2]: need for speed
SDA On Mon, 01 Aug 2005 02:28:36 -0700, [EMAIL PROTECTED] wrote: hi everyone can someone suggest me where find a lot programming tricks for achieving the top speed in python? SDA There is only one programming trick you need to know about making code run SDA fast. SDA Never even waste one second on optimising code before it is working, SDA or before you have tested it and profiled it and know (1) that it IS slow; SDA and (2) WHERE it is slow. SDA Why would you waste your valuable time making bugs run faster? Why waste SDA time and effort to speed up something that is already fast enough? SDA In other words: Make your code work. Make it work right. Then, and only SDA then, make it run fast -- and only if it isn't already fast. SDA Now that you have written your code, and you have made it work right, SDA please tell us what the code is, and the results of profiling the code, SDA and we will help you speed it up. Is there a way of profiling other than manual (debug output with measurements and all)? Some tools? And is there some kind of plugin for native Python's IDLE to trace scripts? I'm a bit tired of getting all info from debug output and exceptions SDA -- SDA Steven -- Best Regards, Michael Rybak mailto:[EMAIL PROTECTED] -- http://mail.python.org/mailman/listinfo/python-list