ANN: Porcupine Web Application Server 0.0.8 released
The brand new version of Porcupine introduces quite a few new cool features and many improvements that ease and accelerate the development process. Our main goal was to remove any constraints that expect the files of a Porcupine application to reside inside more than one folder tree. As a result, it is now attainable to develop your application working inside a single folder tree only. The application object was greatly simplified. The application's UI XML definition along with its script are now external files instead of having them embedded inside the object. This way, you can easily edit these files using your favourite editor. Additionally, the Porcupine desktop includes a new utility called HyperSearch. Use this utility to search the entire Porcupine database for objects that meet specific criteria such as text parts contained in their title or description and their modification date. The QuiX engine includes a completely rewritten event subsystem, in order to achieve a unified way of attaching and detaching DOM and custom event handlers. Furthermore, QuiX is now compatible with Internet Explorer 7 including many performance enhancements. Two new widgets are also added to the list of available widgets. An IFrame widget that enables the display of external sites inside the Porcupine desktop, and a group box. Enjoy. Resources = What is Porcupine? http://www.innoscript.org/content/view/30/42/ Porcupine online demo: http://www.innoscript.org/content/view/21/43/ Porcupine Wiki: http://wiki.innoscript.org -- http://mail.python.org/mailman/listinfo/python-announce-list Support the Python Software Foundation: http://www.python.org/psf/donations.html
Re: 3d programming without opengl
nelson - [EMAIL PROTECTED] wrote in message news:[EMAIL PROTECTED] hi! i want to build up a simple 3d interactive geometry application in python. Since i want to run it without 3D acceleration (a scene will be quite simple) I was wondering if there was a library in python that allow me to build 3D graphic without the need to use OpenGL I google but i can't find nothing interesting... (the best would be a pure python solution) Thanks, nelson Here's a page (http://www.vrplumber.com/py3d.py) with links to 73 possible libraries. I've played with Slut (http://slut.sourceforge.net/) and it is quite easy to work with. Here's a Flash movie (recorded using Wink) of a sphere that I programmed and rotated about: http://www.geocities.com/ptmcg/python/sphere1.htm, and here is the program that created it: http://www.geocities.com/ptmcg/python/vecSlut2.py.txt. The demos that come with Slut are quite impressive, too. The Slut project web page summarizes them here (http://slut.sourceforge.net/examples/index.html), but the little videos don't do them justice. -- Paul -- http://mail.python.org/mailman/listinfo/python-list
Re: Python windows interactive.
notejam wrote: Can not figure out how to write more than one line in interpreter mode. press return between the lines. if you get a ... prompt, keep adding more lines to the current statement. press return an extra time to end the multiline-statement. Is that all interpreter is good for, testing one liners? I have it run the program everytime I hit return no, it executes the *current statement* when you press return. a program consists usually consists of many statements. and can not figure out how to enter multiple lines of code. if you'd entered a statement that actually consisted of multiple lines, you'd noticed (try entering an if-statement, for example). I am jsut wondering can a program with 2 or more lines be wrote from the interpreter mode? Type help, copyright, credits or license for more information. import urllib def gettitle(url): ... f = urllib.urlopen(url) ... s = f.read() ... i = s.find(title) ... j = s.find(/title, i) ... return s[i+7:j] ... gettitle(http://www.python.org;) 'Python Programming Language -- Official Website' gettitle(http://www.cnn.com;) 'CNN.com - Breaking News, U.S., World, Weather, Entertainment amp; Video News' sites = [http://news.bbc.co.uk;, http://reddit.com;, ... http://www.fbi.gov; ... ] for site in sites: ... print gettitle(site) ... BBC NEWS | News Front Page reddit.com: what#39;s new online Federal Bureau of Investigation - Home Page etc. /F -- http://mail.python.org/mailman/listinfo/python-list
Re: Tkinter Listbox string formatting question - how to kill a dancing snake ?
Hendrik van Rooyen wrote: Is there a way to format this so it will line up with *any* font ? I would prefer not to give up and use a fixed width font - it looks so teletypish... sounds like contradicting requirements to me. instead of trying to force the listbox to behave like a multicolumn widget, maybe you could switch to another widget? some alternatives include a Text widget (you have to roll your own selection logic) bwidgets multicolumn ListBox: http://tkinter.unpythonic.net/bwidget/ tktable: http://tktable.sourceforge.net/ something based on the wck (that's what I'd would use myself): http://effbot.org/zone/wck-4.htm and perhaps there's something in Pmw: http://pmw.sourceforge.net /F -- http://mail.python.org/mailman/listinfo/python-list
Re: create global variables?
[EMAIL PROTECTED] wrote: J. Clifford Dyer wrote: Alistair King wrote: [... advice and help ...] this worked a treat: def monoVarcalc(atom): a = atom + 'aa' Xaa = a.strip('\'') m = atom + 'ma' Xma = m.strip('\'') Xaa = DS1v.get(atom) Xma = pt.get(atom) return Xaa, Xma Caa, Cma = monoVarcalc('C') In which case I suspect you will find that this works just as well: def monoVarcalc(atom): Xaa = DS1v.get(atom) Xma = pt.get(atom) return Xaa, Xma Unless there is something decidedly odd about the side-effects of the statements I've removed, since you never appear to use the values of a, m, Xaa and Xma there seems little point in calculation them. regards Steve -- Steve Holden +44 150 684 7255 +1 800 494 3119 Holden Web LLC/Ltd http://www.holdenweb.com Skype: holdenweb http://holdenweb.blogspot.com Recent Ramblings http://del.icio.us/steve.holden -- http://mail.python.org/mailman/listinfo/python-list
Re: Cann't connect zope server
steve wrote: Can I ask question about zope here? Unless it has more to do with Python than with Zope itself, you'd better ask on Zope's mailing-list. I started Zserver but could not connect to it using firefox.The runzope gave message: /usr/bin/zope/instance/bin/runzope -X debug-mode=on 2006-10-31 12:50:45 INFO ZServer HTTP server started at Tue Oct 31 12:50:45 2006 Hostname: 0.0.0.0 Port: 8080 2006-10-31 12:50:45 CRITICAL Zope A user was not specified to setuid to; fix this to start as root (change the effective-user directive in zope.conf) And this has absolutely nothing to do with Python. -- bruno desthuilliers python -c print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for p in '[EMAIL PROTECTED]'.split('@')]) -- http://mail.python.org/mailman/listinfo/python-list
Re: scared about refrences...
J. Clifford Dyer wrote: Thanks, that's very helpful. Playing with your code a bit, I narrowed the problem down to the array.array() structure. Looking at help(array), there's a method defined called __deepcopy__, which, it seems, takes no arguments, while deepcopy is passing it one argument. Looks like a bug in the array module to me. Maybe others with more Fixed in subversion: http://www.python.org/sf/1545837 -- http://mail.python.org/mailman/listinfo/python-list
Re: 3d programming without opengl
Paul McGuire [EMAIL PROTECTED] wrote in message news:[EMAIL PROTECTED] nelson - [EMAIL PROTECTED] wrote in message news:[EMAIL PROTECTED] hi! i want to build up a simple 3d interactive geometry application in python. Since i want to run it without 3D acceleration (a scene will be quite simple) I was wondering if there was a library in python that allow me to build 3D graphic without the need to use OpenGL I google but i can't find nothing interesting... (the best would be a pure python solution) Thanks, nelson Here's a page (http://www.vrplumber.com/py3d.py) with links to 73 possible libraries. I've played with Slut (http://slut.sourceforge.net/) and it is quite easy to work with. Here's a Flash movie (recorded using Wink) of a sphere that I programmed and rotated about: http://www.geocities.com/ptmcg/python/sphere1.htm, and here is the program that created it: http://www.geocities.com/ptmcg/python/vecSlut2.py.txt. The demos that come with Slut are quite impressive, too. The Slut project web page summarizes them here (http://slut.sourceforge.net/examples/index.html), but the little videos don't do them justice. -- Paul Well, shoot, I killed my free bandwidth on GeoCities with that link to the Flash animation! I've uploaded a smaller video, should support 20-25 views/hour, instead of 3 like the old one. Please bear with me. Thanks, -- Paul -- http://mail.python.org/mailman/listinfo/python-list
Re: 3d programming without opengl
Paul McGuire wrote: nelson - [EMAIL PROTECTED] wrote in message news:[EMAIL PROTECTED] hi! i want to build up a simple 3d interactive geometry application in python. Since i want to run it without 3D acceleration (a scene will be quite simple) I was wondering if there was a library in python that allow me to build 3D graphic without the need to use OpenGL I google but i can't find nothing interesting... (the best would be a pure python solution) Thanks, nelson Here's a page (http://www.vrplumber.com/py3d.py) with links to 73 possible libraries. I've played with Slut (http://slut.sourceforge.net/) and it is quite easy to work with. Here's a Flash movie (recorded using Wink) of a sphere that I programmed and rotated about: http://www.geocities.com/ptmcg/python/sphere1.htm, and here is the program that created it: http://www.geocities.com/ptmcg/python/vecSlut2.py.txt. The demos that come with Slut are quite impressive, too. The Slut project web page summarizes them here (http://slut.sourceforge.net/examples/index.html), but the little videos don't do them justice. Looks like c.l.py just slashdotted you ... The GeoCities web site you were trying to view has temporarily exceeded its data transfer limit. Please try again later. regards Steve -- Steve Holden +44 150 684 7255 +1 800 494 3119 Holden Web LLC/Ltd http://www.holdenweb.com Skype: holdenweb http://holdenweb.blogspot.com Recent Ramblings http://del.icio.us/steve.holden -- http://mail.python.org/mailman/listinfo/python-list
Re: create global variables?
Steve Holden wrote: [EMAIL PROTECTED] wrote: J. Clifford Dyer wrote: Alistair King wrote: [... advice and help ...] this worked a treat: def monoVarcalc(atom): a = atom + 'aa' Xaa = a.strip('\'') m = atom + 'ma' Xma = m.strip('\'') Xaa = DS1v.get(atom) Xma = pt.get(atom) return Xaa, Xma Caa, Cma = monoVarcalc('C') In which case I suspect you will find that this works just as well: def monoVarcalc(atom): Xaa = DS1v.get(atom) Xma = pt.get(atom) return Xaa, Xma Unless there is something decidedly odd about the side-effects of the statements I've removed, since you never appear to use the values of a, m, Xaa and Xma there seems little point in calculation them. regards Steve Yup...it works..but now i have to create a dictionary of 'a' and 'm', ie... Xaa and Xma string, key:value pairs so i can use other functions on the Xaa, Xma variables by iterating over them and retrieving the values from the variables. I think if i just input Xaa and Xma, only the values associated with those variables will go into the dictionary and ill just be iterating over nonsence. atomsmasses = {} def monoVarcalc(atom): a = atom + 'aa' m = atom + 'ma' atomsmasses[a]=m Xaa = a.strip('\'') Xma = m.strip('\'') Xma = pt.get(atom) if DS1v.get(atom) != None: Xaa = DS1v.get(atom) else: Xaa = 0 return Xaa, Xma Caa, Cma = monoVarcalc('C') Oaa, Oma = monoVarcalc('O') Haa, Hma = monoVarcalc('H') Naa, Nma = monoVarcalc('N') Saa, Sma = monoVarcalc('S') Claa, Clma = monoVarcalc('Cl') Braa, Brma = monoVarcalc('Br') Znaa, Znma = monoVarcalc('Zn') i think? :) thanks a -- Dr. Alistair King Research Chemist, Laboratory of Organic Chemistry, Department of Chemistry, Faculty of Science P.O. Box 55 (A.I. Virtasen aukio 1) FIN-00014 University of Helsinki Tel. +358 9 191 50392, Mobile +358 (0)50 5279446 Fax +358 9 191 50366 -- http://mail.python.org/mailman/listinfo/python-list
Re: create global variables?
Alistair King wrote: Steve Holden wrote: [EMAIL PROTECTED] wrote: J. Clifford Dyer wrote: Alistair King wrote: [... advice and help ...] this worked a treat: def monoVarcalc(atom): a = atom + 'aa' Xaa = a.strip('\'') m = atom + 'ma' Xma = m.strip('\'') Xaa = DS1v.get(atom) Xma = pt.get(atom) return Xaa, Xma Caa, Cma = monoVarcalc('C') In which case I suspect you will find that this works just as well: def monoVarcalc(atom): Xaa = DS1v.get(atom) Xma = pt.get(atom) return Xaa, Xma Unless there is something decidedly odd about the side-effects of the statements I've removed, since you never appear to use the values of a, m, Xaa and Xma there seems little point in calculation them. regards Steve Yup...it works..but now i have to create a dictionary of 'a' and 'm', ie... Xaa and Xma string, key:value pairs so i can use other functions on the Xaa, Xma variables by iterating over them and retrieving the values from the variables. I think if i just input Xaa and Xma, only the values associated with those variables will go into the dictionary and ill just be iterating over nonsence. atomsmasses = {} def monoVarcalc(atom): a = atom + 'aa' m = atom + 'ma' atomsmasses[a]=m Xaa = a.strip('\'') Xma = m.strip('\'') Xma = pt.get(atom) if DS1v.get(atom) != None: Xaa = DS1v.get(atom) else: Xaa = 0 return Xaa, Xma Caa, Cma = monoVarcalc('C') Oaa, Oma = monoVarcalc('O') Haa, Hma = monoVarcalc('H') Naa, Nma = monoVarcalc('N') Saa, Sma = monoVarcalc('S') Claa, Clma = monoVarcalc('Cl') Braa, Brma = monoVarcalc('Br') Znaa, Znma = monoVarcalc('Zn') i think? :) thanks a No fair: you only just added atomsmasses! ;-) However, it seems to me that your atomsmasses dictionary is going to be entirely predictable, and you are still focusing on storing the *names* of things rather than building up a usable data structure. Indeed I suspect that your problem can be solved using only the names of the elements, and not the names of the variables that hold various attributes of the elements. Perhaps if you explain in plain English what you *really* want to do we can help you find a more Pythonic solution. It'll probably end up something like this: mass = {} for element in ['C', 'O', ..., 'Zn'] mass[element] = monoVarcalc(element) But I could, of course, be completely wrong ... it wouldn't be the first time. Do you understand what I'm saying? regards Steve -- Steve Holden +44 150 684 7255 +1 800 494 3119 Holden Web LLC/Ltd http://www.holdenweb.com Skype: holdenweb http://holdenweb.blogspot.com Recent Ramblings http://del.icio.us/steve.holden -- http://mail.python.org/mailman/listinfo/python-list
Re: Where do nested functions live?
Rob Williscroft wrote: Frederic Rentsch wrote in news:mailman.1428.1162113628.11739.python- [EMAIL PROTECTED] in comp.lang.python: def increment_time (interval_ms): outer weeks, days, hours, minutes, seconds, mseconds # 'outer' akin to 'global' (...) mseconds = new_ms - s * 1000# Assignee remains outer m, seconds = divmod (s, 60) h, minutes = divmod (m, 60) d, hours = divmod (h, 24) weeks, days = divmod (d, 7) # No return necessary The call would now be: increment_time (msec) # No reassignment necessary Hope this makes sense Yes it does, but I prefer explicit in this case: def whatever( new_ms ): class namespace( object ): pass scope = namespace() def inner(): scope.mseconds = new_ms - s * 1000 m, scope.seconds = divmod (s, 60) h, scope.minutes = divmod (m, 60) d, scope.hours = divmod (h, 24) scope.weeks, scope.days = divmod (d, 7) This is interesting. I am not too familiar with this way of using objects. Actually it isn't all that different from a list, because a list is also an object. But this way it's attribute names instead of list indexes which is certainly easier to work with. Very good! The only thing I find anoying is that I can't write: scope = object() Additionally if appropriate I can refactor further: def whatever( new_ms ): class namespace( object ): def inner( scope ): scope.mseconds = new_ms - s * 1000 m, scope.seconds = divmod (s, 60) h, scope.minutes = divmod (m, 60) d, scope.hours = divmod (h, 24) scope.weeks, scope.days = divmod (d, 7) scope = namespace() scope.inner() In short I think an outer keyword (or whatever it gets called) will just add another way of doing something I can already do, and potentially makes further refactoring harder. Here I'm lost. What's the advantage of this? It looks more convoluted. And speaking of convoluted, what about efficiency? There is much talk of efficiency on this forum. I (crudely) benchmark your previous example approximately three times slower than a simple inner function taking and returning three parameters. It was actually the aspect of increased efficiency that prompted me to play with the idea of allowing direct outer writes. Thats -2 import-this points already. Which ones are the two? Rob. Frederic -- http://mail.python.org/mailman/listinfo/python-list
Re: import in threads: crashes strange exceptions on dual core machines
Klaas wrote: It seems clear that the import lock does not include fully-executing the module contents. To fix this, just import cookielib before the What is the exact meaning of not include fully-executing - regarding the examples import cookielib ? Do you really mean the import statement can return without having executed the cookielib module code fully? (As said, a simple deadlock is not at all my problem) threads are spawned. Better yet, use your own locks around the acquisition of the opener instance (this code seems fraughtfully thread-unsafe--fix that and you solve other problems besides this one). thanks. I will probably have to do the costly pre-import of things in main thread and spread locks as I have also no other real idea so far. Yet this costs the smoothness of app startup and corrupts my believe in Python capabs of lazy execution on demand. I'd like to get a more fundamental understanding of the real problems than just a general stay away and lock and lock everything without real understanding. * I have no real explanation why the import of a module like cookielib is not thread-safe. And in no way I can really explain the real OS-level crashes on dual cores/fast CPU's. Python may throw this and that, Python variable states maybe wrong, but how can it crash on OS-level when no extension libs are (hopefully) responsible? * The Import Lock should be a very hard lock: As soon as any thread imports something, all other threads are guaranteed to be out of any imports. A dead lock is not the problem here. * cookielib module execution code consists only of definitions and of re.compile's. re.compile's should be thread safe? * the things in my code patter are function local code except opener = urlcookie_openers.get(user) and urlcookie_openers[user] = opener : Simple dictionary accesses which are atomic from all my knowledge and experience. I think, I have thought about enough, what could be not thread safe. The only questionable things have to do with rare change of some globals, but this has not at all to do with the severe problems here and could only affect e.g wrong url2_proxy or double/unecessary re-creation of an opener, which is uncritical in my app. I'm still puzzled and suspect there is a major problem in Python, maybe in win32ui or - no idea ... ? -robert == def f(): ... opener = urlcookie_openers.get(user) if not opener: import cookielib#1 cj=cookielib.CookieJar()#2 build_opener = urllib2.build_opener httpCookieProcessor = urllib2.HTTPCookieProcessor(cj) if url2_proxy: opener = build_opener(url2_proxy,httpCookieProcessor) else: opener = build_opener(httpCookieProcessor) opener.addheaders #$pycheck_no opener.addheaders= app_addheaders urlcookie_openers[user] = opener ufile = opener.open(urllib2.Request(url,data,dict(headers))) ... thread.start_new(f,()) -- http://mail.python.org/mailman/listinfo/python-list
Re: python, threading and a radio timer
Renato wrote: Dear all, I found this nifty article on how to record your favourite radio show using cron and mplayer: http://grimthing.com/archives/2004/05/20/recording-streaming-audio-with-mplayer/ Because I couldn't get the date in the filename (and was too lazy to look into sh/bash manuals), I decided to use Python. It was a good choice, because I decided to improve the timer - learning some more Python along the way! So, the idea is: - cron runs the script at a specific time - the script starts mplayer, and will keep checking the clock until it's time to kill mplayer - after mplayer has exited, oggenc is started to turn the raw WAV into ogg - and finally the remaining WAV is deleted This basic setting is quite easy, and I used os.spawnvp(os.P_WAIT,...), along with another CRON entry to kill mplayer. But then I got more ambitious: I wanted the script to keep checking if mplayer was alive - in case the connection goes down. Moreover, I would rather have the script stop mplayer than cron. At this point, I thought I should get some professional help... :) What is the right way to go? Would threads be overkill? If so, where can I go about looking for process control/management without delving into complex daemon architectures? So, rather than asking for code, I'm looking for guidance - this is a didactic experience! Cheers, Renato I would suggest you take a look at Python 'commands' module. The module lets you run Unix commands by taking them as parameters to function calls. That is all I can say with my level of expertise. -- http://mail.python.org/mailman/listinfo/python-list
Re: Compile Python With SSL On Solaris 10
Martin v. Löwis wrote: [EMAIL PROTECTED] schrieb: I am trying to compile py2.4.3/2.5 on a Solaris 10x86 machine, but cannot get it to build an SSL enabled version. I have added the relevant sfw directories into the path/crle, with no success. I've even explicitly added ssl via the --with-libs directive, yet an import _ssl still fails. Has anyone else come across this? setup.py ignores all this. You have to edit Modules/Setup if you want to specify non-standard search locations for header files and libraries. Regards, Martin That worked a treat, thank you! Regards John -- http://mail.python.org/mailman/listinfo/python-list
Re: enumerate improvement proposal
On Mon, 30 Oct 2006 23:42:16 +, Steve Holden wrote: Divorce is obviously the only answer. How could you end up marrying someone who counts from one and not zero? ;-) Should array indices start at 0 or 1? My compromise of 0.5 was rejected without, I thought, proper consideration. (Stan Kelly-Bootle) -- Steven. -- http://mail.python.org/mailman/listinfo/python-list
Re: How can I import a script with an arbitrary name ?
On Tue, 31 Oct 2006 11:00:52 +1100, Ben Finney wrote: If you want a solution that gives you an actual module object, here's what I use: def make_module_from_file(module_name, file_name): Make a new module object from the code in specified file from types import ModuleType module = ModuleType(module_name) module_file = open(file_name, 'r') exec module_file in module.__dict__ return module Isn't that awfully complicated? What's wrong with using __import__ to get a module object? mod = __import__(math) mod module 'math' from '/usr/lib/python2.4/lib-dynload/mathmodule.so' The only advantage (or maybe it is a disadvantage?) I can see to your function is that it doesn't search the Python path and you can specify an absolute file name. -- Steven. -- http://mail.python.org/mailman/listinfo/python-list
Re: create global variables?-the full story
Steve Holden wrote: Alistair King wrote: Steve Holden wrote: [EMAIL PROTECTED] wrote: J. Clifford Dyer wrote: Alistair King wrote: [... advice and help ...] this worked a treat: def monoVarcalc(atom): a = atom + 'aa' Xaa = a.strip('\'') m = atom + 'ma' Xma = m.strip('\'') Xaa = DS1v.get(atom) Xma = pt.get(atom) return Xaa, Xma Caa, Cma = monoVarcalc('C') In which case I suspect you will find that this works just as well: def monoVarcalc(atom): Xaa = DS1v.get(atom) Xma = pt.get(atom) return Xaa, Xma Unless there is something decidedly odd about the side-effects of the statements I've removed, since you never appear to use the values of a, m, Xaa and Xma there seems little point in calculation them. regards Steve Yup...it works..but now i have to create a dictionary of 'a' and 'm', ie... Xaa and Xma string, key:value pairs so i can use other functions on the Xaa, Xma variables by iterating over them and retrieving the values from the variables. I think if i just input Xaa and Xma, only the values associated with those variables will go into the dictionary and ill just be iterating over nonsence. atomsmasses = {} def monoVarcalc(atom): a = atom + 'aa' m = atom + 'ma' atomsmasses[a]=m Xaa = a.strip('\'') Xma = m.strip('\'') Xma = pt.get(atom) if DS1v.get(atom) != None: Xaa = DS1v.get(atom) else: Xaa = 0 return Xaa, Xma Caa, Cma = monoVarcalc('C') Oaa, Oma = monoVarcalc('O') Haa, Hma = monoVarcalc('H') Naa, Nma = monoVarcalc('N') Saa, Sma = monoVarcalc('S') Claa, Clma = monoVarcalc('Cl') Braa, Brma = monoVarcalc('Br') Znaa, Znma = monoVarcalc('Zn') i think? :) thanks a No fair: you only just added atomsmasses! ;-) However, it seems to me that your atomsmasses dictionary is going to be entirely predictable, and you are still focusing on storing the *names* of things rather than building up a usable data structure. Indeed I suspect that your problem can be solved using only the names of the elements, and not the names of the variables that hold various attributes of the elements. Perhaps if you explain in plain English what you *really* want to do we can help you find a more Pythonic solution. It'll probably end up something like this: mass = {} for element in ['C', 'O', ..., 'Zn'] mass[element] = monoVarcalc(element) But I could, of course, be completely wrong ... it wouldn't be the first time. Do you understand what I'm saying? regards Steve OK... from the start. im trying to develop a simple command line application for determining the degree of substitution (DS) on a polymer backbone from elemental analysis, i.e., the % weights of different elements in the monomer-substituent compound ( i want each element to give a result and heaviest atoms give the most accurate results). most basic comp chem programs use input files but i dont know anything about file iteration yet and want the program to be as user friendly as possible..i.e. command line prompt. GUI would be great but too much for me at this stage at the start of the script i have 2 dictionaries 1) containing every atom in the periodic table with associated isotopic average masses 2) containing the molecular forumla of the monomer unit...eg for cellulose AGU {'C': 6, 'H': 10, 'O': 5}. the basic steps are 1. calculate the weight percentage values for each atom in the monomer 2. iterate into dictionaries from DS=0 - DS=15 (0.5 step) the projected % values for the monomer plus substituent, for EACH atom in the compound. 3. find the (local) minimum from each dictionary/atom to give the appropriate DS value. *Note* I have to iterate ALL the values as there is a non-linear relationship between % values and DS due to the different atomic weights The computer seems to cope with this in about 10 seconds with the above parameters and about 8 elements for the iteration step I have a script which works perfectly from some time ago but the problem is, some of the samples contain excess water so i was going to use the heaviest atom to give the most accurate DS value i could and then adjust the polymer back bone dictionary to include the initial substituent from step 3. Then do the calculation again for water {'H': 2, 'O': 1} as the new substituent. Once i determine the new 'DS' value of water its simple to recalculate the % values...iterate..find (local) minima and get more accurate DS values for all the heavy atoms (not including Hydrogen or Oxygen). ... I would like to get the script running now to get some results from our experimental data which shoudnt take too long but eventually i dont want to rely on the monomer dictionary...just input the elements and number of atoms of each element in the starting
Re: 3d programming without opengl
Hi paul, i look at slut and it seem very good... Can i embed it into a wxpython application? thanks, nelson -- http://mail.python.org/mailman/listinfo/python-list
Help me understand this iterator
Hi, I've found this script over at effbot (http://effbot.org/librarybook/os-path.htm), and I can't get my head around its inner workings. Here's the script: import os class DirectoryWalker: # a forward iterator that traverses a directory tree def __init__(self, directory): self.stack = [directory] self.files = [] self.index = 0 def __getitem__(self, index): while 1: try: file = self.files[self.index] self.index = self.index + 1 except IndexError: # pop next directory from stack self.directory = self.stack.pop() self.files = os.listdir(self.directory) self.index = 0 else: # got a filename fullname = os.path.join(self.directory, file) if os.path.isdir(fullname) and not os.path.islink(fullname): self.stack.append(fullname) return fullname for file in DirectoryWalker(.): print file Now, if I look at this script step by step, I don't understand: - what is being iterated over (what is being called by file in DirectoryWalker()?); - where it gets the index value from; - where the while 1:-loop is quitted. Thanks in advance, Mathieu -- http://mail.python.org/mailman/listinfo/python-list
Re: How can I import a script with an arbitrary name ?
Steven D'Aprano wrote: The only advantage (or maybe it is a disadvantage?) I can see to your function is that it doesn't search the Python path and you can specify an absolute file name. that's the whole point of doing an explicit load, of course. if you think that's a disadvantage, you haven't done enough plugin work... /F -- http://mail.python.org/mailman/listinfo/python-list
Re: How can I import a script with an arbitrary name ?
Steven D'Aprano [EMAIL PROTECTED] writes: On Tue, 31 Oct 2006 11:00:52 +1100, Ben Finney wrote: If you want a solution that gives you an actual module object, here's what I use: def make_module_from_file(module_name, file_name): Make a new module object from the code in specified file The only advantage (or maybe it is a disadvantage?) I can see to your function is that it doesn't search the Python path and you can specify an absolute file name. Which is exactly what the OP asked for (though he didn't necessarily need a module object). -- \We have to go forth and crush every world view that doesn't | `\ believe in tolerance and free speech. -- David Brin | _o__) | Ben Finney -- http://mail.python.org/mailman/listinfo/python-list
Re: Help me understand this iterator
LaundroMat wrote: Now, if I look at this script step by step, I don't understand: - what is being iterated over (what is being called by file in DirectoryWalker()?); as explained in the text above the script, this class emulates a sequence. it does this by implementing the __getindex__ method: http://effbot.org/pyref/__getitem__ - where it gets the index value from; from the call to __getitem__ done by the for-in loop. - where the while 1:-loop is quitted. the loop stops when the stack is empty, and pop raises an IndexError exception. note that this is an old example; code written for newer versions of Python would probably use a recursing generator instead (see the source code for os.walk in the standard library for an example). /F -- http://mail.python.org/mailman/listinfo/python-list
Re: Help me understand this iterator
LaundroMat wrote: Hi, I've found this script over at effbot (http://effbot.org/librarybook/os-path.htm), and I can't get my head around its inner workings. Here's the script: import os class DirectoryWalker: # a forward iterator that traverses a directory tree def __init__(self, directory): self.stack = [directory] self.files = [] self.index = 0 def __getitem__(self, index): while 1: try: file = self.files[self.index] self.index = self.index + 1 except IndexError: # pop next directory from stack self.directory = self.stack.pop() self.files = os.listdir(self.directory) self.index = 0 else: # got a filename fullname = os.path.join(self.directory, file) if os.path.isdir(fullname) and not os.path.islink(fullname): self.stack.append(fullname) return fullname for file in DirectoryWalker(.): print file Now, if I look at this script step by step, I don't understand: - what is being iterated over (what is being called by file in DirectoryWalker()?); - where it gets the index value from; - where the while 1:-loop is quitted. With dw = DirectoryWalker(.) the for loop is equivalent to index = 0 # internal variable, not visible from Python while True: try: file = dw[index] # invokes dw.__getitem__(index) except IndexError: break print file This is an old way of iterating over a sequence which is only used when the iterator-based approach dwi = iter(dw) # invokes dw.__iter__() while True: try: file = dwi.next() except StopIteration: break print file fails. Peter -- http://mail.python.org/mailman/listinfo/python-list
Re: Help me understand this iterator
On Tue, 31 Oct 2006 03:36:08 -0800, LaundroMat wrote: Hi, I've found this script over at effbot (http://effbot.org/librarybook/os-path.htm), and I can't get my head around its inner workings. [snip code] Now, if I look at this script step by step, I don't understand: - what is being iterated over (what is being called by file in DirectoryWalker()?); What is being iterated over is the list of files in the current directory. In Unix land (and probably DOS/Windows as well) the directory . means this directory, right here. - where it gets the index value from; When Python see's a line like for x in obj: it does some special magic. First it looks to see if obj has a next method, that is, it tries to call obj.next() repeatedly. That's not the case here -- DirectoryWalker is an old-style iterator, not one of the fancy new ones. Instead, Python tries calling obj[index] starting at 0 and keeps going until an IndexError exception is raised, then it halts the for loop. So, think of it like this: pretend that Python expands the following code: for x in obj: block into something like this: index = 0 while True: # loop forever try: x = obj[index] block # can use x in block except IndexError: # catch the exception and escape the while loop break index = index + 1 # and now we're done, continue the rest of the program That's not exactly what Python does, of course, it is much more efficient, but that's a good picture of what happens. - where the while 1:-loop is quitted. The while 1 loop is escaped when the function hits the return statement. -- Steven. -- http://mail.python.org/mailman/listinfo/python-list
Re: Where do nested functions live?
Frederic Rentsch wrote in news:mailman.1536.1162292996.11739.python- [EMAIL PROTECTED] in comp.lang.python: Rob Williscroft wrote: Frederic Rentsch wrote in news:mailman.1428.1162113628.11739.python- [EMAIL PROTECTED] in comp.lang.python: def whatever( new_ms ): class namespace( object ): pass scope = namespace() def inner(): scope.mseconds = new_ms - s * 1000 m, scope.seconds = divmod (s, 60) h, scope.minutes = divmod (m, 60) d, scope.hours = divmod (h, 24) scope.weeks, scope.days = divmod (d, 7) This is interesting. I am not too familiar with this way of using objects. Actually it isn't all that different from a list, because a list is also an object. But this way it's attribute names instead of list indexes which is certainly easier to work with. Very good! In short I think an outer keyword (or whatever it gets called) will just add another way of doing something I can already do, and potentially makes further refactoring harder. Here I'm lost. What's the advantage of this? It looks more convoluted. I'll agree that having to explicitly define a namespace class first does add some convolution. But if you refer to having to prefix you outer variables with scope. then this would be the same as claiming that the explict use of self is convoluted, which is a valid opinion, so fair enough, but I can't say that I agree. It should also be noted that although I have to declare and create a scope object. My method doesn't require the attributes passed back from the inner function be pre-declared, should I during coding realise that I need to return another attribute I just assign it in the inner function and use it in the outer function. I would count that as less convoluted, YMMV. And speaking of convoluted, what about efficiency? There is much talk of efficiency on this forum. I (crudely) benchmark your previous example approximately three times slower than a simple inner function taking and returning three parameters. It was actually the aspect of increased efficiency that prompted me to play with the idea of allowing direct outer writes. Did you have optimisation turned on ? As I see it there should be no reason an optimiser couldn't transform my code into the same code we might expect from your outer keyword example, as the scope object's type and attributes are all contained within (thus known to) the outer function defenition. Wether CPython's optimiser does this or not, I don't know. Thats -2 import-this points already. Which ones are the two? Explicit is better than implicit. There should be one-- and preferably only one --obvious way to do it. Rob. -- http://www.victim-prime.dsl.pipex.com/ -- http://mail.python.org/mailman/listinfo/python-list
Re: Help me understand this iterator
LaundroMat wrote: [me hitting send too soon] Now, if I look at this script step by step, I don't understand: - where the while 1:-loop is quitted. class DirectoryWalker: # a forward iterator that traverses a directory tree def __init__(self, directory): self.stack = [directory] self.files = [] self.index = 0 def __getitem__(self, index): while 1: try: file = self.files[self.index] self.index = self.index + 1 except IndexError: # pop next directory from stack self.directory = self.stack.pop() If self.stack is empty, pop() will raise an IndexError which terminates both the 'while 1' loop in __getitem__() and the enclosing 'for file in ...' loop self.files = os.listdir(self.directory) self.index = 0 else: # got a filename fullname = os.path.join(self.directory, file) if os.path.isdir(fullname) and not os.path.islink(fullname): self.stack.append(fullname) return fullname The return statement feeds the next file to the for loop. Peter -- http://mail.python.org/mailman/listinfo/python-list
Python tools for managing static websites?
Are there Python tools to help webmasters manage static websites? I'm talking about regenerating an entire static website - all the HTML files in their appropriate directories and sub-directories. Each page has some fixed parts (navigation menu, header, footer) and some changing parts (body content, though in specific cases the normally fixed parts might change as well). The tool should help to keep site editing DRY every piece of data, including the recurring parts, should exist only once. The above should be doable with any decent templating tool, such as those forming part of most CMSes and full-stack web-frameworks. Normally I might have just resorted to a CMS/web-framework, running locally on the webmaster's station, with the only addition being a mechanism for generating all pages composing the site and saving them as files. But such a solution might not be enough, as the system I'm looking for must be able to control the physical traits of the website as a collection of files - e.g., creation and distribution of files among several physical directories and subdirectories. Any advice would be appreciated, -Chris -- http://mail.python.org/mailman/listinfo/python-list
concatenating numpy arrays
Hi, I want to concatenate two numpy arrays with shape (n1,n2) and (n1,n3) into a single array with shape (n1,n2+n3). I guess there is an elegant way to do this but I couldn't figure it out. So any help is very much appreciated. Regards Rolf -- http://mail.python.org/mailman/listinfo/python-list
Re: How can I import a script with an arbitrary name ?
On Tue, 31 Oct 2006 12:44:50 +0100, Fredrik Lundh wrote: Steven D'Aprano wrote: The only advantage (or maybe it is a disadvantage?) I can see to your function is that it doesn't search the Python path and you can specify an absolute file name. that's the whole point of doing an explicit load, of course. if you think that's a disadvantage, you haven't done enough plugin work... Guilty as charged. -- Steven. -- http://mail.python.org/mailman/listinfo/python-list
Re: How can I import a script with an arbitrary name ?
On Tue, 31 Oct 2006 22:53:56 +1100, Ben Finney wrote: Steven D'Aprano [EMAIL PROTECTED] writes: On Tue, 31 Oct 2006 11:00:52 +1100, Ben Finney wrote: If you want a solution that gives you an actual module object, here's what I use: def make_module_from_file(module_name, file_name): Make a new module object from the code in specified file The only advantage (or maybe it is a disadvantage?) I can see to your function is that it doesn't search the Python path and you can specify an absolute file name. Which is exactly what the OP asked for (though he didn't necessarily need a module object). I'm not arguing, you could very well be right, but I'm just curious what part of the OP's post led you to believe he needed to specify an absolute filename. Unless I'm missing a second post, he certainly never suggested that his scripts weren't in the Python path, or that he couldn't add their location to the path. *shrug* It probably isn't important -- given the constraints as you read them (extrapolated them?) your solution looks good. -- Steven. -- http://mail.python.org/mailman/listinfo/python-list
Re: How can I import a script with an arbitrary name ?
Steven D'Aprano wrote: I'm not arguing, you could very well be right, but I'm just curious what part of the OP's post led you to believe he needed to specify an absolute filename. Unless I'm missing a second post, he certainly never suggested that his scripts weren't in the Python path, or that he couldn't add their location to the path. the fact that he's using dashes in the module name might be a hint, though. in current versions, __import__ doesn't care as long as the file has the right extension, but import requires valid Python identifiers, for obvious reasons. execfile doesn't care about any part of the filename, of course (and if you replace it with exec, you don't even have to read the script from a file). /F -- http://mail.python.org/mailman/listinfo/python-list
Re: Python tools for managing static websites?
Firedrop2 is a content management system for static web sites. I have used it to manage www.awaretek.com for 3-4 yearts now. it is perfect for what you descibe. You can mkae a change in format and apply it to all pages in a flash. It is very stable, and it is easy to use. It is written in Python, actively maintained by Michael foord, and you can easi;ly extend it with Python plugins. Open source, free as in beer, etc. http://www.voidspace.org.uk/python/firedrop2/ Ron Stephens -- http://mail.python.org/mailman/listinfo/python-list
Re: Printing out the objects stack
On Sunday 29 October 2006 17:48, I wrote: Now the following things are not clear to me: -Why does the VM crash? Did I use the wrong stack boundaries? -Why are no locales printed? -Why is the function stack not right before or after foo on the stack? When I disassemble the code of f with dis.dis, it reveals that sys.stack and foo are pushed onto the stack successively. No hints? Greetings, Fips -- http://mail.python.org/mailman/listinfo/python-list
Re: concatenating numpy arrays
Rolf Wester wrote: Hi, I want to concatenate two numpy arrays with shape (n1,n2) and (n1,n3) into a single array with shape (n1,n2+n3). I guess there is an elegant way to do this but I couldn't figure it out. So any help is very much appreciated. Suppose a1.shape is (n1,n2) and a2.shape is (n1,n3) Then you want to do a3 = concatenate((a1,a2),axis=1) or equivalently a3 = hstack([a1,a2]) a3 = r_['1',a1,a2] -Travis -- http://mail.python.org/mailman/listinfo/python-list
Re: Event driven server that wastes CPU when threaded doesn't
On Tue, 31 Oct 2006 07:33:59 GMT, Bryan Olson [EMAIL PROTECTED] wrote: Snor wrote: I'm attempting to create a lobby game server for a multiplayer game, and have hit a problem early on with the server design. I am stuck between using a threaded server, and using an event driven server. I've been told time and time again that I should use an event driven server design (that is, use twisted). I didn't hear the specifics of how you got that advice, so I can't comment specifically. I will say that I've have heard a lot of advice against threads that struck me as simply naive. Much of it is quite well informed. There is a lot of interaction between the clients and they would often need to write to the same list of values, which of course becomes a problem with a threaded server - so event driven solves that problem, and I assumed it would solve all my problems. [...] The purely event-driven style solves some problems, but creates others. You're forced to structure your code around the blocking behavior, and that's not the structure anyone would choose for clarity or maintainability. This is not the case. However, much event-driven code is written this way anyway, intentionally, for clarity. If you _want_ opaque code, or for some reason think it is not opaque to write code in this manner, then there you can use a library which supports this. Suppose we're enhancing an event-driven system, and decide to relocate some datum from a variable to the database. Suppose in one or more places, accessing the data happens in a call chain several function down from the event loop. We can't just change the function that accesses the data because a synchronous database call could block and stop event processing. Every interface on the call chain is broken. As it must be, because you have changed the atomicity of an operation. Transparently propagating this up a call stack leads to bugs which are similar to those found in a system based on pre-emptive multithreading. [...] I will want the server to support as many users as is possible on any given machine - and so wasted CPU cycles is something I am trying to avoid. Python is a great scripting language, but squeezing out machine performance is not where scripting languages shine. That said, you might start in Python, to see if your system is successful and the performance of your server really is a limiting factor. Is the only solution to use a threaded server to let my clients make their requests and receive a response in the fastest possible time? Maybe. Probably not. It's all good -- multi-threading is your friend. Multithreading is _someone's_ friend. Probably not the OP's, whose original post made it sound very strongly like he just needed network concurrency, which is a perfectly fine use-case for event-driven style rather than pre-emptive threading. Jean-Paul -- http://mail.python.org/mailman/listinfo/python-list
Re: 3d programming without opengl
Steve Holden [EMAIL PROTECTED] wrote in message news:[EMAIL PROTECTED] Looks like c.l.py just slashdotted you ... The GeoCities web site you were trying to view has temporarily exceeded its data transfer limit. Please try again later. regards Steve -- Steve Holden +44 150 684 7255 +1 800 494 3119 Holden Web LLC/Ltd http://www.holdenweb.com Skype: holdenweb http://holdenweb.blogspot.com Recent Ramblings http://del.icio.us/steve.holden It didn't take long either! I replaced the 1.4M .swf file with a 170K .swf file, so things seem to be working again. (My b/w limit is 4.2M/hour, but I can't complain when it's free!) -- Paul -- http://mail.python.org/mailman/listinfo/python-list
Re: Help me understand this iterator
Ack, I get it now. It's not the variable's name (index) that is hard-coded, it's just that the for...in... loop sends an argument by default. That's a lot more comforting. -- http://mail.python.org/mailman/listinfo/python-list
Re: Tkinter Listbox string formatting question - how to kill a dancingsnake ?
Fredrik Lundh [EMAIL PROTECTED] wrote: instead of trying to force the listbox to behave like a multicolumn widget, maybe you could switch to another widget? some alternatives include a Text widget (you have to roll your own selection logic) I _really_ don't feel strong enough for this, or for sticking them loose on a canvas... bwidgets multicolumn ListBox: http://tkinter.unpythonic.net/bwidget/ tktable: http://tktable.sourceforge.net/ something based on the wck (that's what I'd would use myself): http://effbot.org/zone/wck-4.htm and perhaps there's something in Pmw: http://pmw.sourceforge.net /F Thanks I will check these out... - Hendrik -- http://mail.python.org/mailman/listinfo/python-list
Re: Help me understand this iterator
Thanks all, those were some great explanations. It seems I have still still a long way for me to go before I grasp the intricacies of this language. That 'magic index' variable bugs me a little however. It gives me the same feeling as when I see hard-coded variables. I suppose the generator class has taken care of this with its next() method (although - I should have a look - __next__() probable takes self and index as its arguments). Although I'm very fond of the language (as a non-formally trained hobbyist developer), that magic bit is a tad disturbing. Still, thanks for the quick and complete replies! -- http://mail.python.org/mailman/listinfo/python-list
Re: Python tools for managing static websites?
Chris Pearl wrote: Are there Python tools to help webmasters manage static websites? [...] You might give XIST a try: http://www.livinglogic.de/Python/xist/ Basically XIST is an HTML generator, that can be extended to generate the HTML you need for your site. The website http://www.livinglogic.de/Python/ itself was generated with XIST. You can find the source for the website here: http://www.livinglogic.de/viewcvs/index.cgi/LivingLogic/WWW-Python/site/ Hope that helps! Bye, Walter Dörwald -- http://mail.python.org/mailman/listinfo/python-list
Re: Tkinter Listbox string formatting question - how to kill adancingsnake ?
Hendrik van Rooyen [EMAIL PROTECTED] wrote: Fredrik Lundh [EMAIL PROTECTED] wrote: instead of trying to force the listbox to behave like a multicolumn widget, maybe you could switch to another widget? some alternatives include a Text widget (you have to roll your own selection logic) I _really_ don't feel strong enough for this, or for sticking them loose on a canvas... 8 sorry - thought has just occurred to me - my basic problem is text formatting, as variable width fonts make it difficult to get two things to line up under one another by using spaces as padding - so how would the Text widget have helped me with this ? or - Luxury ! - can I set a tab stop in pixels ? - maybe I can catch a general clue here... - Hendrik -- http://mail.python.org/mailman/listinfo/python-list
Re: Help me understand this iterator
LaundroMat wrote: That 'magic index' variable bugs me a little however. It gives me the same feeling as when I see hard-coded variables. what magic index? the variable named index is an argument to the method it's used in. /F -- http://mail.python.org/mailman/listinfo/python-list
Re: Python tools for managing static websites?
Walter Dörwald skrev: Chris Pearl wrote: Are there Python tools to help webmasters manage static websites? You might give XIST a try: http://www.livinglogic.de/Python/xist/ See also the list on the python.org Wiki: http://wiki.python.org/moin/Templating The Static Website Generators section has some references to various tools, although I note that XIST is only featured in the HTML Generation Packages section. Paul -- http://mail.python.org/mailman/listinfo/python-list
Re: wxPython TextCtrl - weird scrolling behavior
abcd wrote: On Oct 30, 3:47 pm, John Salerno [EMAIL PROTECTED] wrote: I noticed that one object you refer to is self.textPane, is that supposed to be self.textPanel? no, self.textPane is the actual wx.TextCtrl. I used a GUI Builder to the layout stuff...perhaps that's my problem :) is there a good site to refer to for how to use sizers? i am essentially creating a chat window (textPane is the history of the chat, then a textCtrl below it for typing a new message and a button next to the input field and buttons below the input field). After I watched the screencasts for how Dabo uses sizers, I really understood them a lot better. I've never used Dabo itself for GUI design, but the screencast, though it shows them in terms of that program, still gives a great visual presentation of how sizers work in general and I suggest you take a look at that: http://leafe.com/screencasts/sizers1.html http://leafe.com/screencasts/sizers2.html P.S. I suggest you post the full code to the wxPython mailing list. I'll take a look at it to see if anything strikes me, but also you will have a ton of other (more experienced) people looking at it too, and I guarantee they will spot your problem. -- http://mail.python.org/mailman/listinfo/python-list
PIL on Python 2.4 - ImportError: No module named _imagingft
Dear list members, I have installed Python 2.4.3. and PIL 1.1.5. on a Suse Linux 10 64 Bit machine. If I try import _imagingft I get this error: ImportError: No module named _imagingft Did I miss something? On my 32 But Linux with Python 2.3.5. everything works fine. Kind regards, Nico -- http://mail.python.org/mailman/listinfo/python-list
Re: What is the cleanest way to for a module to access objects from the script that imports it?
On Fri, 2006-10-27 at 14:53 -0700, [EMAIL PROTECTED] wrote: Hi, I am new to python and am currently writing my first application. One of the problems I quickly ran into, however, is that python's imports are very different from php/C++ includes in the sense that they completely wrap the imported script in a module object. One of the problems with this was that a plugin system that I am making requires use of objects, classes and the such from the original script. Thus, on one hand, I am hesitant to use execfile(), since I *do* want to wrap the plugin up, but on the other hand, I want the plugin to be able to use functions from the original script. Any ideas? I have a system that uses modules as plugins also. These are loaded dynamically when the user specifies them from a gui. I put all these modules in an array using the __import__ function. I found, though, that I needed to specify whether or not each module had actually loaded, or if there had been an exception (module not found or whatever). So I wrote a wrapper object that would try to load the module and store it as a local attribute. I made my wrapper object implement functions like __getattr__ and pass any unknown calls into the module object itself, making the wrapper object act as if it was the module, but having extra capabilities, such as being able to tell me if the module had actually loaded or not. Michael Sincerely, Noam Samuel. -- http://mail.python.org/mailman/listinfo/python-list
Re: Python tools for managing static websites?
Chris Pearl wrote: Are there Python tools to help webmasters manage static websites? rest2web is a tool designed specifically for creating and managing static websites. It uses templates and has built-in tools to aid with creating side bars and navigation trails. It allows you to store your pages in reStructured Text or HTML format. It gives you full control of the 'shape' (in terms of directories) of both your source files and target files (the html it generates). http://www.voidspace.org.uk/python/rest2web/ Fuzzyman -- http://mail.python.org/mailman/listinfo/python-list
Re: Help me understand this iterator
On Oct 31, 3:53 pm, Fredrik Lundh [EMAIL PROTECTED] wrote: LaundroMat wrote: That 'magic index' variable bugs me a little however. It gives me the same feeling as when I see hard-coded variables.what magic index? the variable named index is an argument to the method it's used in. Yes, I reacted too quickly. Sorry. -- http://mail.python.org/mailman/listinfo/python-list
Re: PIL on Python 2.4 - ImportError: No module named _imagingft
Nico Grubert wrote: I have installed Python 2.4.3. and PIL 1.1.5. on a Suse Linux 10 64 Bit machine. If I try import _imagingft I get this error: ImportError: No module named _imagingft Did I miss something? installed how? _imagingft is an optional component, and requires the FreeType library to work. /F -- http://mail.python.org/mailman/listinfo/python-list
Re: scared about refrences...
J. Clifford Dyer wrote: SpreadTooThin wrote: J. Clifford Dyer wrote: SpreadTooThin wrote: Steven D'Aprano wrote: On Mon, 30 Oct 2006 13:10:47 -0800, SpreadTooThin wrote: I seems that some of the objects in the list don't get along well with deep copy.. See my second example post that used deepcopy... When run blows up... When it blows up, is there a lot of shrapnel, or just smoke and fire? Is the shrapnel mostly metal, or is it plastic and glass? In short, if we don't know what's happening, we can't help. * Did the program spit out a bunch of text you didn't understand? If so, show us the text. That text may be incomprehensible at first, but it contains crucial clues. * Did it close your python window without a word? Tell us. * Did your computer freeze up? Tell us. If you don't tell us what went wrong *exactly*, you won't get a satisfactory answer. I would assume that looking at the code you should be able to tell.. Silly me.. Here.. is the log.. If I were helping.. I would have cut and pasted the code myself and ran it.. instead of trying to interpret this... I know it seems unnecessary to post the traceback when I could get the same thing by running your code on my machine, but it's actually useful, for a couple reasons: First, when I run the code, I might not get an error, or if I do, it might not be the same error you were getting, and then we'd be on a wild goose chase. This could be because your python installation is goofy, or because you copied in your code incorrectly. Shit happens, and I'd rather not even start down one of those blind alleys. Third, it provides a useful frame for how to look at your code. While a traceback might look like a big mess at first, it's actually pretty easy to skim through once you get used to it, and it tells me where to focus my attention in your code. array('H', [1, 2, 3]) ['a', 'b', 'c'] Traceback (most recent call last): File /Volumes/Data/Users/bjobrien/Applications/Komodo.app/Contents/SharedSupport/dbgp/pythonlib/dbgp/client.py, line 1806, in runMain self.dbg.runfile(debug_args[0], debug_args) File /Volumes/Data/Users/bjobrien/Applications/Komodo.app/Contents/SharedSupport/dbgp/pythonlib/dbgp/client.py, line 1529, in runfile h_execfile(file, args, module=main, tracer=self) File /Volumes/Data/Users/bjobrien/Applications/Komodo.app/Contents/SharedSupport/dbgp/pythonlib/dbgp/client.py, line 590, in __init__ execfile(file, globals, locals) File /Volumes/Data/Users/bjobrien/Desktop/pythonDICOM/Text-1.py, line 20, in __main__ test(t) File /Volumes/Data/Users/bjobrien/Desktop/pythonDICOM/Text-1.py, line 16, in test t = copy.deepcopy(x) File /Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/copy.py, line 174, in deepcopy y = copier(x, memo) File /Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/copy.py, line 305, in _deepcopy_inst state = deepcopy(state, memo) File /Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/copy.py, line 174, in deepcopy y = copier(x, memo) File /Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/copy.py, line 268, in _deepcopy_dict y[deepcopy(key, memo)] = deepcopy(value, memo) File /Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/copy.py, line 185, in deepcopy y = copier(x, memo) TypeError: __deepcopy__() takes no arguments (1 given) Cheers, Cliff Thanks, that's very helpful. Playing with your code a bit, I narrowed the problem down to the array.array() structure. Looking at help(array), there's a method defined called __deepcopy__, which, it seems, takes no arguments, while deepcopy is passing it one argument. Looks like a bug in the array module to me. Maybe others with more experience using array will have some deeper insight. I don't understand why python would insist that everything must be a refrence... It is of course helpful sometime but other times its not... and now I'm sorta out of luck... I don't know how to make this structure immutable... Pickle it? Seems very inefficient to me... Every time I pass a variable now I will worry that it will be changed by the function... I haven't worried about things like this since the very early days of BASIC I don't know.. maybe I have more to learn. Cheers, Cliff -- http://mail.python.org/mailman/listinfo/python-list
Re: Python tools for managing static websites?
Hi there I used cheetah (cheetahtemplate) and a makefile for something similar ;-). It worked pretty well for me. I only have a dozen or so pages though. I'm currently converting this to Jinja, which is a similar templating system compatible with Django. I plan to later migrate to dynamic pages under Django. http://www.cheetahtemplate.org http://wsgiarea.pocoo.org/jinja/ HTH Jon N -- http://mail.python.org/mailman/listinfo/python-list
Re: scared about refrences...
I don't know how to make this structure immutable... Pickle it? Seems very inefficient to me... Well, classes can be made mostly immutable by intercepting the attempts to write to it...something like class Foo(object): def __setattr__( self, name, val ): raise TypeError(I'm sorry, Dave. You can't do that.) It might also be feasible to do something like this with a decorator...? Every time I pass a variable now I will worry that it will be changed by the function... I haven't worried about things like this since the very early days of BASIC I don't know.. maybe I have more to learn. Well, there are at least solutions to this paranoia that occur to me: -make a deep-copy of the object in question before calling the function, and then pass the copy to the function so that it can't alter the original -trust/read the functions' documentation. Most functions that alter the contents of their parameters are kind enough to note as much. If functions go bunging with your parameters without documenting it, the function's coder needs to be smacked. -tkc -- http://mail.python.org/mailman/listinfo/python-list
Re: enumerate improvement proposal
James Stroud wrote: I think that it would be handy for enumerate to behave as such: def enumerate(itrbl, start=0, step=1): i = start for it in itrbl: yield (i, it) i += step I proposed something like this long ago and Guido has already rejected it. Part of the reason is that it doesn't match his mental model of enumerate being about pairing sequence elements with their indices. Another reason is that the syntax has more than one obvious interpretation: enumerate('abcdef', 2) -- (2, 'c'), (3, 'd'), ... enumerate('abcdef', 2) -- (0, 'c'), (1, 'd'), ... enumerate('abcdef', 2) -- (2, 'a'), (2, 'b'), ... Also, the order of arguments is odd in comparison with the output order -- this suggests a syntax like enumerate(2, 'abcdef') -- (2, 'a'), (3, 'b') ... FWIW, it is not hard to roll-your-own with something like: for pagenum, page in izip(count(1), book): ... The izip/count combination runs at C speed, matches enumerate() in its efficiency, and is arguably clearer in expressing its intended behavior. Raymond -- http://mail.python.org/mailman/listinfo/python-list
Re: ANN: Leo 4.4.2.1 final released
Yes, it's Python 2.3, running under Windows XP. I managed to get it working using the ZIP file. Thanks, Edward K. Ream wrote: I downloaded the Windows exe, ran it and a small blank message window poped up and that was it. I am still running 2.3. I assume you mean Python 2.3, not Leo 2.3 :-) I know for sure that Leo works with Python 2.3. In the future, please report problems to one of Leo's forums. And when reporting problems please tell me what platform you are using. You can probably see more information by running Leo in a console. See Leo's FAQ for instructions: http://webpages.charter.net/edreamleo/FAQ.html#how-can-i-run-leo-from-a-console-window Edward Edward K. Ream email: [EMAIL PROTECTED] Leo: http://webpages.charter.net/edreamleo/front.html -- http://mail.python.org/mailman/listinfo/python-list
Re: ANN: Leo 4.4.2.1 final released
Yes, it's Python 2.3, running under Windows XP. I managed to get it working using the ZIP file. Thanks, Edward K. Ream wrote: I downloaded the Windows exe, ran it and a small blank message window poped up and that was it. I am still running 2.3. I assume you mean Python 2.3, not Leo 2.3 :-) I know for sure that Leo works with Python 2.3. In the future, please report problems to one of Leo's forums. And when reporting problems please tell me what platform you are using. You can probably see more information by running Leo in a console. See Leo's FAQ for instructions: http://webpages.charter.net/edreamleo/FAQ.html#how-can-i-run-leo-from-a-console-window Edward Edward K. Ream email: [EMAIL PROTECTED] Leo: http://webpages.charter.net/edreamleo/front.html -- http://mail.python.org/mailman/listinfo/python-list
Re: Python tools for managing static websites?
Walter Dörwald [EMAIL PROTECTED] writes: Chris Pearl wrote: Are there Python tools to help webmasters manage static websites? [...] You might give XIST a try: http://www.livinglogic.de/Python/xist/ Basically XIST is an HTML generator, that can be extended to generate the HTML you need for your site. The website http://www.livinglogic.de/Python/ itself was generated with XIST. You can find the source for the website here: http://www.livinglogic.de/viewcvs/index.cgi/LivingLogic/WWW-Python/site/ Hope that helps! Bye, Walter Dörwald 1. If the static page can be autogenerated (e.g., from a data file or from an analysis), the best bet is to just write the html directly. Typically do as triple quoted text blocks with named variable substitutions, then print them with the substitutions filled. The chunks are dictated by the structure of the problem (e.g., functions for beginning and end of html page, for beginning and end of a form, for repeating rows in a table, etc.) Just structure the app reasonably and put in the chnks where needed. NOTE - When I first moved from Perl to Python, I thought I'd need CGI.pm, so I did cgipm.py: http://www.seanet.com/~hgg9140/comp/index.html http://www.seanet.com/~hgg9140/comp/cgipm/doc/manual.html However, I (and others in this newsgroup) recommend the write-directly approach instead. 2. If there must be human-in-the-loop, then it is good to use a markup language which can be converted to html (or to other backends). Perrl's POD format is one, and I've done that as a Pdx. http://www.seanet.com/~hgg9140/comp/index.html http://www.seanet.com/~hgg9140/comp/pdx/doc/manual.html -- Harry George PLM Engineering Architecture -- http://mail.python.org/mailman/listinfo/python-list
Re: 3d programming without opengl
nelson - wrote: hi! i want to build up a simple 3d interactive geometry application in python. Since i want to run it without 3D acceleration (a scene will be quite simple) I was wondering if there was a library in python that allow me to build 3D graphic without the need to use OpenGL I google but i can't find nothing interesting... (the best would be a pure python solution) Thanks, nelson I have no idea why you would want to do that. The fact that the scene is simple shouldn't be the only reason. After all, if a user is able to run the latest insert_game_or_modelling_package_here but your simple scene runs much slower, he is going to assume there is something wrong with it. If the target user has even a simple 3D accelerator, you are taking a huge performance hit. That shouldn't be done without a good reason. What's more, giving it is should be a pure Python solution, you won't even take advantage of MMX/SSE/3d now!, which all recent processors have. I'm avoiding talking about raw Python performance here. I did that once, so that I could learn how to make a software renderer, but that's not your case, since it is a library you are looking for. Perhaps there are other requirements that require what you are asking for, but I can't see in your message. Stephen -- http://mail.python.org/mailman/listinfo/python-list
Re: Where do nested functions live?
Rob Williscroft wrote: Frederic Rentsch wrote in news:mailman.1536.1162292996.11739.python- [EMAIL PROTECTED] in comp.lang.python: Rob Williscroft wrote: Frederic Rentsch wrote in news:mailman.1428.1162113628.11739.python- [EMAIL PROTECTED] in comp.lang.python: def whatever( new_ms ): class namespace( object ): pass scope = namespace() def inner(): scope.mseconds = new_ms - s * 1000 m, scope.seconds = divmod (s, 60) h, scope.minutes = divmod (m, 60) d, scope.hours = divmod (h, 24) scope.weeks, scope.days = divmod (d, 7) This is interesting. I am not too familiar with this way of using objects. Actually it isn't all that different from a list, because a list is also an object. But this way it's attribute names instead of list indexes which is certainly easier to work with. Very good! In short I think an outer keyword (or whatever it gets called) will just add another way of doing something I can already do, and potentially makes further refactoring harder. Here I'm lost. What's the advantage of this? It looks more convoluted. I'll agree that having to explicitly define a namespace class first does add some convolution. But if you refer to having to prefix you outer variables with scope. then this would be the same as claiming that the explict use of self is convoluted, which is a valid opinion, so fair enough, but I can't say that I agree. I didn't mean to call into question. I didn't understand the advantage of the added complexity of your second example over the first. It should also be noted that although I have to declare and create a scope object. My method doesn't require the attributes passed back from the inner function be pre-declared, should I during coding realise that I need to return another attribute I just assign it in the inner function and use it in the outer function. I would count that as less convoluted, YMMV. That is certainly a very interesting aspect. And speaking of convoluted, what about efficiency? There is much talk of efficiency on this forum. I (crudely) benchmark your previous example approximately three times slower than a simple inner function taking and returning three parameters. It was actually the aspect of increased efficiency that prompted me to play with the idea of allowing direct outer writes. Did you have optimisation turned on ? No. I did a hundred thousand loops over each in IDLE using xrange. As I see it there should be no reason an optimiser couldn't transform my code into the same code we might expect from your outer keyword example, as the scope object's type and attributes are all contained within (thus known to) the outer function defenition. I doubt that very much. The 'outer' keyword would give me the choice between two alternatives. Such a choice can hardly be automated. Wether CPython's optimiser does this or not, I don't know. Thats -2 import-this points already. Which ones are the two? Explicit is better than implicit. There should be one-- and preferably only one --obvious way to do it. Rob. Frederic -- http://mail.python.org/mailman/listinfo/python-list
best rational number library for Python?
A guy at work asked for functionality commonly found with rational numbers, so I said I'd find and install something. I figured gmpy would be suitable, alas I'm having trouble successfully building the underlying GMP 4.2.1 library on a PC running Solaris 10 (won't compile with the default --host, fails make check if I go the no-assembly route). Before I invest a bunch of time into this, am I barking up the wrong tree? Performance is, for now, certainly not an issue. Even a pure Python rational number class would probably suffice. Thx, Skip -- http://mail.python.org/mailman/listinfo/python-list
Missing _init_types in MS VisualStudio 2005 (PCBuild8)
Hi folks, I was trying to build Python using MS VisualStudio 2005 (VC++ 8.0) according to the instructions in PCBuild8/ and got a link error in config.obj referencing _init_types. I (barely) know enough about VS 2005 to add files to the project, so I added Modules/_typesmodule.c to the pythoncore subproject, and that seemed to fix it -- I can now build the python executable. -- --Donovan -- http://mail.python.org/mailman/listinfo/python-list
Re: 3d programming without opengl
nelson - [EMAIL PROTECTED] wrote in message news:[EMAIL PROTECTED] Hi paul, i look at slut and it seem very good... Can i embed it into a wxpython application? thanks, nelson I've no earthly idea, nelson, sorry. The sphere program is the extent of my slut experience (for which my wife is quite grateful!). I think the slut website mentions a mailing list, that should be able to answer your technical questions. Good luck! -- Paul -- http://mail.python.org/mailman/listinfo/python-list
Re: PIL on Python 2.4 - ImportError: No module named _imagingft [Solved]
If I try import _imagingft I get this error: ImportError: No module named _imagingft Did I miss something? Yes, I did. Somehow, there was no _imagingft.so in the PIL directory. -- http://mail.python.org/mailman/listinfo/python-list
Re: best rational number library for Python?
[EMAIL PROTECTED] writes: Performance is, for now, certainly not an issue. Even a pure Python rational number class would probably suffice. There are certainly some of those around, but I'm surprised there's a problem with GMP and Solaris. -- http://mail.python.org/mailman/listinfo/python-list
Re: best rational number library for Python?
Paul There are certainly some of those around, but I'm surprised Paul there's a problem with GMP and Solaris. That was my thought as well. Skip -- http://mail.python.org/mailman/listinfo/python-list
Re: Event driven server that wastes CPU when threaded doesn't
Fredrik Lundh wrote: by running the database queries in one or more separate threads, you can still serve requests that don't hit the database (either because they're entirely self-contained, or because they only rely on cached data). Nothing that couldn't also be solved without threads. :) Regards, Björn -- BOFH excuse #362: Plasma conduit breach -- http://mail.python.org/mailman/listinfo/python-list
Overriding traceback print_exc()?
I want to cause any traceback output from my applications to show up in one of my dialog boxes, instead of in the command or terminal window (between running on Solaris, Linux, OSX and Windows systems there might not be any command window or terminal window to show the traceback messages in). Do I want to do something like override the print_exc (or format_exc?) method of traceback to get the text of the message and call my dialog box routine? If that is right how do I do that (monkeying with classes is all still a grey area to me)? I kind of understand using the traceback module to alter the output of exceptions that I am looking for, but I'm after those pesky ones that should never happen. :) Thanks! Bob -- http://mail.python.org/mailman/listinfo/python-list
Re: scared about refrences...
At Tuesday 31/10/2006 14:16, SpreadTooThin wrote: I don't understand why python would insist that everything must be a refrence... It is of course helpful sometime but other times its not... and now I'm sorta out of luck... I don't know how to make this structure immutable... Pickle it? Seems very inefficient to me... Every time I pass a variable now I will worry that it will be changed by the function... I haven't worried about things like this since the very early days of BASIC I don't know.. maybe I have more to learn. If you haven't read this yet, you should: http://www.effbot.org/zone/python-objects.htm -- Gabriel Genellina Softlab SRL __ Correo Yahoo! Espacio para todos tus mensajes, antivirus y antispam ¡gratis! ¡Abrí tu cuenta ya! - http://correo.yahoo.com.ar -- http://mail.python.org/mailman/listinfo/python-list
Why can't you assign to a list in a loop without enumerate?
In the following code snippet, I attempt to assign 10 to every index in the list a and fail because when I try to assign number to 10, number is a deep copy of the ith index (is this statement correct?). a = [1,2,3,4,5] for number in a: ... number = 10 ... a [1, 2, 3, 4, 5] So, I have to resort to using enumerate to assign to the list: for i, number in enumerate(a): ... a[i] = 10 ... a [10, 10, 10, 10, 10] My question is, what was the motivation for returning a deep copy of the value at the ith index inside a for loop instead of the value itself? Also, is there any way to assign to a list in a for loop (with as little code as used above) without using enumerate? Thanks, Danny -- http://mail.python.org/mailman/listinfo/python-list
Re: scared about refrences...
SpreadTooThin wrote: Every time I pass a variable now I will worry that it will be changed by the function... why? who's writing those scary functions that you cannot trust? and what makes you think they won't abuse any immutable data you give them? /F -- http://mail.python.org/mailman/listinfo/python-list
Re: FreeImagePy creating thumbnails from TIFF
[EMAIL PROTECTED] wrote: I a trying to create a series of thumbnail images from a multpage TIFF file. The sample code is below. When it executes, we get the following error; FreeImagePy.constants.FreeImagePy_ColorWrong: 'Wrong color 1 in function: FreeImage_MakeThumbnail. I can use: (8, 24, 32)' Any suggestions? Found a bug! Change, into the funct_list, at line 119, ('FreeImage_MakeThumbnail', '@12', (CO.COL_8, CO.COL_24, CO.COL_32) ), to ('FreeImage_MakeThumbnail', '@12', CO.COL_1TO32 ), and it'll work. Or update to the new svn version (r21), that adds the __iter__ method for the Image class. Now you can do this: fname = 01-PJ2306.tif img = FIPY.Image(fname) for bmp in img: new_img = bmp.thumbnail(300) Bye, Michele -- http://mail.python.org/mailman/listinfo/python-list
Re: Why can't you assign to a list in a loop without enumerate?
Danny Colligan wrote: My question is, what was the motivation for returning a deep copy of the value at the ith index inside a for loop instead of the value itself? I'm not sure the words deep copy and value really means what you think they do. maybe you should spend a little time with Python's documentation, instead of making up absurd theories about how things might work, only to get disappointed every time reality disagrees. Also, is there any way to assign to a list in a for loop (with as little code as used above) without using enumerate? what's wrong with using enumerate? or a list comprehension? or some other of the many different ways you can use to build a list from a set of values? /F -- http://mail.python.org/mailman/listinfo/python-list
Re: best rational number library for Python?
At Tuesday 31/10/2006 14:53, [EMAIL PROTECTED] wrote: A guy at work asked for functionality commonly found with rational numbers, so I said I'd find and install something. I figured gmpy would be suitable, alas I'm having trouble successfully building the underlying GMP 4.2.1 library on a PC running Solaris 10 (won't compile with the default --host, fails make check if I go the no-assembly route). Before I invest a bunch of time into this, am I barking up the wrong tree? Try clnum included in: http://sourceforge.net/projects/calcrpnpy -- Gabriel Genellina Softlab SRL __ Correo Yahoo! Espacio para todos tus mensajes, antivirus y antispam ¡gratis! ¡Abrí tu cuenta ya! - http://correo.yahoo.com.ar -- http://mail.python.org/mailman/listinfo/python-list
Re: 3d programming without opengl
On 2006-10-31, nelson - [EMAIL PROTECTED] wrote: i want to build up a simple 3d interactive geometry application in python. Since i want to run it without 3D acceleration (a scene will be quite simple) If you just want slow, it's probably easier to use OpenGL and just put calls to time.sleep() in strategic places. I was wondering if there was a library in python that allow me to build 3D graphic without the need to use OpenGL I google but i can't find nothing interesting... (the best would be a pure python solution) Oy. A pure Python solution would probably be _really_ slow. -- Grant Edwards grante Yow! YOW!! Up ahead! It's at a DONUT HUT!! visi.com -- http://mail.python.org/mailman/listinfo/python-list
Re: Why can't you assign to a list in a loop without enumerate?
Danny Colligan [EMAIL PROTECTED] wrote: In the following code snippet, I attempt to assign 10 to every index in the list a and fail because when I try to assign number to 10, number is a deep copy of the ith index (is this statement correct?). No. There is no copying involved. Before the assignment, number is a reference to the object to which the ith element of the list also refers. After the assignment you have rebound the variable 'number' so it refers to the value 10. You won't affect the list that way. My question is, what was the motivation for returning a deep copy of the value at the ith index inside a for loop instead of the value itself? There is no copying going on. It returns the value itself, or at least a reference to it. Also, is there any way to assign to a list in a for loop (with as little code as used above) without using enumerate? a[:] = [10]*len(a) or more usually something like: a = [ fn(v) for v in a ] for some suitable expression involving the value. N.B. This last form leaves the original list unchanged: if you really need to mutate it in place assign to a[:] as in the first example, but if you are changing all elements in the list then you usually want a new list. -- http://mail.python.org/mailman/listinfo/python-list
Re: Overriding traceback print_exc()?
Bob Greschke wrote: I want to cause any traceback output from my applications to show up in one of my dialog boxes, instead of in the command or terminal window (between running on Solaris, Linux, OSX and Windows systems there might not be any command window or terminal window to show the traceback messages in). Do I want to do something like override the print_exc (or format_exc?) method of traceback to get the text of the message and call my dialog box routine? one way to do that is to put a big try/except around your main program, and display the dialogue box in the except clause: import traceback def main(): raise RuntimeError(oops!) try: main() except (KeyboardInterrupt, SystemExit): raise except: print ERROR, repr(traceback.format_exc()) another approach is to install an exit-handler that uses last_traceback and friends to generate a traceback: import atexit, traceback, sys def postmortem(): if hasattr(sys, last_traceback): print ERROR, repr(traceback.format_exception( sys.last_type, sys.last_value, sys.last_traceback )) atexit.register(postmortem) def main(): raise RuntimeError(oops!) main() the latter is less intrusive, and can be squirreled away in a support module. also, the original exception is still reported to the console, as usual. /F -- http://mail.python.org/mailman/listinfo/python-list
Re: Why can't you assign to a list in a loop without enumerate?
I'm not quite sure what your asking, but I'll give it a shot. You do not have to use enumerate, you can use other methods just as range(len(sequence)), but the reason you cannot asign a value is because a for loop iterates a sequence meaning when you do for a in [1, 2, 3, 4, 5]: ... a is just a value pulled from the sequence iteration. just like i and number is a value pulled from the iteration in for i, number in enumerate(a): ... (That was worded badly :/ I apologise.) Danny Colligan wrote: In the following code snippet, I attempt to assign 10 to every index in the list a and fail because when I try to assign number to 10, number is a deep copy of the ith index (is this statement correct?). a = [1,2,3,4,5] for number in a: ... number = 10 ... a [1, 2, 3, 4, 5] So, I have to resort to using enumerate to assign to the list: for i, number in enumerate(a): ... a[i] = 10 ... a [10, 10, 10, 10, 10] My question is, what was the motivation for returning a deep copy of the value at the ith index inside a for loop instead of the value itself? Also, is there any way to assign to a list in a for loop (with as little code as used above) without using enumerate? Thanks, Danny -- http://mail.python.org/mailman/listinfo/python-list
Re: Overriding traceback print_exc()?
You could always override sys.stderr with a instance of your own with a write() method. Though you will still have to catch the exceptions. Bob Greschke wrote: I want to cause any traceback output from my applications to show up in one of my dialog boxes, instead of in the command or terminal window (between running on Solaris, Linux, OSX and Windows systems there might not be any command window or terminal window to show the traceback messages in). Do I want to do something like override the print_exc (or format_exc?) method of traceback to get the text of the message and call my dialog box routine? If that is right how do I do that (monkeying with classes is all still a grey area to me)? I kind of understand using the traceback module to alter the output of exceptions that I am looking for, but I'm after those pesky ones that should never happen. :) Thanks! Bob -- http://mail.python.org/mailman/listinfo/python-list
Re: 3d programming without opengl
Grant Edwards wrote: Oy. A pure Python solution would probably be _really_ slow. Pure Python doesn't necessarily imply no graphics drawing code written in some other language, though. You can get pretty far by using a 2D library for simple 3D rendering. /F -- http://mail.python.org/mailman/listinfo/python-list
Re: best rational number library for Python?
Gabriel Try clnum included in: Gabriel http://sourceforge.net/projects/calcrpnpy I tried that as well before trying GMP. It (the base clnum library) complained about the absence of GMP during configure and failed to compile. Skip -- http://mail.python.org/mailman/listinfo/python-list
Re: Missing _init_types in MS VisualStudio 2005 (PCBuild8)
Donovan Kolbly schrieb: I was trying to build Python using MS VisualStudio 2005 (VC++ 8.0) according to the instructions in PCBuild8/ and got a link error in config.obj referencing _init_types. That's a known bug, and has been fixed in the subversion repository since. I (barely) know enough about VS 2005 to add files to the project, so I added Modules/_typesmodule.c to the pythoncore subproject, and that seemed to fix it -- I can now build the python executable. That's the correct fix, indeed. Regards, Martin -- http://mail.python.org/mailman/listinfo/python-list
Re: scared about refrences...
SpreadTooThin wrote: [...] I don't understand why python would insist that everything must be a refrence... We can tell that :) It is of course helpful sometime but other times its not... and now I'm sorta out of luck... There are very good reasons for Python's namespace model. Sure it's different from some other languages, but it's actually been some people's preferred semantics for a very long time now (the recently-deceased Ralph Griswold, may he rest in peace, chose a very similar model for Icon. I don't know how to make this structure immutable... Pickle it? Seems very inefficient to me... Every time I pass a variable now I will worry that it will be changed by the function... I haven't worried about things like this since the very early days of BASIC I don't know.. maybe I have more to learn. You do. Firstly, learn to leave your paranoia outside your programming life. If a function or method makes undocumented changes to its mutable parameters then it needs changing (or its documentation does). Adequate testing should reveal such nonsenses before release. regards Steve -- Steve Holden +44 150 684 7255 +1 800 494 3119 Holden Web LLC/Ltd http://www.holdenweb.com Skype: holdenweb http://holdenweb.blogspot.com Recent Ramblings http://del.icio.us/steve.holden -- http://mail.python.org/mailman/listinfo/python-list
Re: Why can't you assign to a list in a loop without enumerate?
In the following code snippet, I attempt to assign 10 to every index in the list a and fail because when I try to assign number to 10, number is a deep copy of the ith index (is this statement correct?). Sorta...just like with function parameters, there are mutables and immutables. a = [1,2,3,4,5] for number in a: ... number = 10 ... a [1, 2, 3, 4, 5] Just as with a function (currently discussed on another thread recently), you have the following behavior: def a(x): ... x = 42 ... deb b(x): ... x.append(42) ... g = 1 h = [1] a(g) b(h) g 1 h [1, 42] you have similar behavior: a = [[1],[2],[3],[4],[5]] for thing in a: ... thing.append(10) ... a [[1, 10], [2, 10], [3, 10], [4, 10], [5, 10]] Lists/sets/etc are mutable. Strings, numbers, So, I have to resort to using enumerate to assign to the list: for i, number in enumerate(a): ... a[i] = 10 ... a [10, 10, 10, 10, 10] This would commonly be written with a list comprehension: a = [10 for _ in a] or a = [10] * len(a) or, if that was a general case of something more specific with some if brains behind it, you can do things like a = [odd(v) and 10 or v for v in a] to only change them to 10 where the value is odd. My question is, what was the motivation for returning a deep copy of the value at the ith index inside a for loop instead of the value itself? Also, is there any way to assign to a list in a for loop (with as little code as used above) without using enumerate? As stated above, it returns the item...if it's mutable, you can mutate it. If it's an immutable (like your numbers), you just change the variable in the local scope of the loop. -tkc -- http://mail.python.org/mailman/listinfo/python-list
Re: Why can't you assign to a list in a loop without enumerate?
I see. Thanks for the helpful response. Danny Duncan Booth wrote: Danny Colligan [EMAIL PROTECTED] wrote: In the following code snippet, I attempt to assign 10 to every index in the list a and fail because when I try to assign number to 10, number is a deep copy of the ith index (is this statement correct?). No. There is no copying involved. Before the assignment, number is a reference to the object to which the ith element of the list also refers. After the assignment you have rebound the variable 'number' so it refers to the value 10. You won't affect the list that way. My question is, what was the motivation for returning a deep copy of the value at the ith index inside a for loop instead of the value itself? There is no copying going on. It returns the value itself, or at least a reference to it. Also, is there any way to assign to a list in a for loop (with as little code as used above) without using enumerate? a[:] = [10]*len(a) or more usually something like: a = [ fn(v) for v in a ] for some suitable expression involving the value. N.B. This last form leaves the original list unchanged: if you really need to mutate it in place assign to a[:] as in the first example, but if you are changing all elements in the list then you usually want a new list. -- http://mail.python.org/mailman/listinfo/python-list
Re: Why can't you assign to a list in a loop without enumerate?
Danny Colligan wrote: In the following code snippet, I attempt to assign 10 to every index in the list a and fail because when I try to assign number to 10, number is a deep copy of the ith index (is this statement correct?). It's quite easy to find out: class Foo(object): def __init__(self, num): self.num = num def __repr__(self): return foo %d at %d % (self.num, id(self)) foos = [Foo(i) for i in range(10)] print foos = [foo 0 at 47281508865040, foo 1 at 47281508865104, foo 2 at 47281508865168, foo 3 at 47281508865232, foo 4 at 47281508865296, foo 5 at 47281508865360, foo 6 at 47281508865424, foo 7 at 47281508865488, foo 8 at 47281508865552, foo 9 at 47281508865616] for foo in foos: foo.num = foo.num * 2 print foos = [foo 0 at 47281508865040, foo 2 at 47281508865104, foo 4 at 47281508865168, foo 6 at 47281508865232, foo 8 at 47281508865296, foo 10 at 47281508865360, foo 12 at 47281508865424, foo 14 at 47281508865488, foo 16 at 47281508865552, foo 18 at 47281508865616] Seems like your statement is *not* correct. a = [1,2,3,4,5] for number in a: ... number = 10 Note that you are *not* assign(ing) 10 to every index in the list here. Rebinding the local name 'number' in each iteration only makes this name refer to another object (implying of course loosing the reference to the current list element). Then - on the following iteration - the name 'number' is rebound to the next object in the list. a [1, 2, 3, 4, 5] for foo in foos: ... original = foo ... foo = Foo(10) ... print original : %s - foo : %s % (original, foo) ... original : foo 0 at 47281508865040 - foo : foo 10 at 47281508864144 original : foo 2 at 47281508865104 - foo : foo 10 at 47281508864144 original : foo 4 at 47281508865168 - foo : foo 10 at 47281508864144 original : foo 6 at 47281508865232 - foo : foo 10 at 47281508864144 original : foo 8 at 47281508865296 - foo : foo 10 at 47281508864144 original : foo 10 at 47281508865360 - foo : foo 10 at 47281508864144 original : foo 12 at 47281508865424 - foo : foo 10 at 47281508864144 original : foo 14 at 47281508865488 - foo : foo 10 at 47281508864144 original : foo 16 at 47281508865552 - foo : foo 10 at 47281508864144 original : foo 18 at 47281508865616 - foo : foo 10 at 47281508864144 So, I have to resort to using enumerate to assign to the list: Yes. That's still far better than having to manually check for sequence boundaries and track current index. for i, number in enumerate(a): ... a[i] = 10 ... a [10, 10, 10, 10, 10] Just for the record: the notation 'a[x] = y' in fact calls 'a.__setitem__(x, y)'. It's really just calling a method that alters the state of object a. My question is, what was the motivation for returning a deep copy of the value at the ith index inside a for loop instead of the value itself? Forget about values. Think objects. i = 10 i.__class__ type 'int' dir(i) ['__abs__', '__add__', '__and__', '__class__', '__cmp__', '__coerce__', '__delattr__', '__div__', '__divmod__', '__doc__', '__float__', '__floordiv__', '__getattribute__', '__getnewargs__', '__hash__', '__hex__', '__init__', '__int__', '__invert__', '__long__', '__lshift__', '__mod__', '__mul__', '__neg__', '__new__', '__nonzero__', '__oct__', '__or__', '__pos__', '__pow__', '__radd__', '__rand__', '__rdiv__', '__rdivmod__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__rlshift__', '__rmod__', '__rmul__', '__ror__', '__rpow__', '__rrshift__', '__rshift__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__str__', '__sub__', '__truediv__', '__xor__'] i.__abs__() 10 Also, is there any way to assign to a list in a for loop (with as little code as used above) without using enumerate? What's the problem with enumerate() ? -- bruno desthuilliers python -c print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for p in '[EMAIL PROTECTED]'.split('@')]) -- http://mail.python.org/mailman/listinfo/python-list
Re: Overriding traceback print_exc()?
Bob Greschke wrote: I want to cause any traceback output from my applications to show up in one of my dialog boxes, instead of in the command or terminal window (between running on Solaris, Linux, OSX and Windows systems there might not be any command window or terminal window to show the traceback messages in). Do I want to do something like override the print_exc (or format_exc?) method of traceback to get the text of the message and call my dialog box routine? If that is right how do I do that (monkeying with classes is all still a grey area to me)? You can overwrite the sys.exepthook() with your own function: import sys from traceback import format_exception def my_excepthook(exctype, value, traceback): details = .join(format_exception(exctype, value, traceback)) # now show the details in your dialog box sys.excepthook = my_excepthook See the documentation for details: http://docs.python.org/lib/module-sys.html#l2h-5125 Hope this helps, Ziga -- http://mail.python.org/mailman/listinfo/python-list
Re: Overriding traceback print_exc()?
I usually have a function like this: def get_excinfo_str(): return exception stack trace as a string (exc_type, exc_value, exc_traceback) = sys.exc_info() formatted_excinfo = traceback.format_exception(exc_type, exc_value, exc_traceback) excinfo_str = .join(formatted_excinfo) del exc_type del exc_value del exc_traceback return(excinfo_str) I can then call it from within except and print it to a log file. Raghu. Bob Greschke wrote: I want to cause any traceback output from my applications to show up in one of my dialog boxes, instead of in the command or terminal window (between running on Solaris, Linux, OSX and Windows systems there might not be any command window or terminal window to show the traceback messages in). Do I want to do something like override the print_exc (or format_exc?) method of traceback to get the text of the message and call my dialog box routine? If that is right how do I do that (monkeying with classes is all still a grey area to me)? I kind of understand using the traceback module to alter the output of exceptions that I am looking for, but I'm after those pesky ones that should never happen. :) Thanks! Bob -- http://mail.python.org/mailman/listinfo/python-list
Re: Python and SSL enabled
Problem: I want to be able to access an HTTPS website read/write commands to this website. From reading this group it appears I need M2Crypto and OpenSSL Current version of Python 2.3.4 I downloaded: M2Crypto 0.16 OpenSSL 0.9.7k SWIG 1.3.29 Compiled OpenSSL libraries are located in /home/mmedina/lib/libcrypto.a and libssl.a I compiled M2Crytpo cengsu01:/home/mmedina/crypt/m2kcrypto/m2crypto-0.16/build/lib.solaris-2.9-sun4u-2.3/M2Crypto ls -alt total 1624 drwxr-xr-x 4 mmedina asip 512 Oct 31 09:45 ./ -rwxr-xr-x 1 mmedina asip 690332 Oct 31 09:45 __m2crypto.so* drwxr-xr-x 3 mmedina asip 512 Oct 30 08:38 ../ drwxr-xr-x 2 mmedina asip 512 Oct 30 08:38 PGP/ drwxr-xr-x 2 mmedina asip 512 Oct 30 08:38 SSL/ -rw-r--r-- 1 mmedina asip8655 Jul 5 13:35 EC.py -rw-r--r-- 1 mmedina asip 771 Jun 12 10:36 __init__.py -rw-r--r-- 1 mmedina asip 14018 May 22 14:06 DSA.py -rw-r--r-- 1 mmedina asip1588 May 10 14:31 util.py -rw-r--r-- 1 mmedina asip7189 Apr 27 2006 SMIME.py -rw-r--r-- 1 mmedina asip2118 Apr 27 2006 m2urllib.py -rw-r--r-- 1 mmedina asip 10784 Apr 26 2006 EVP.py -rw-r--r-- 1 mmedina asip 11238 Apr 26 2006 RSA.py -rw-r--r-- 1 mmedina asip 25817 Apr 11 2006 X509.py -rw-r--r-- 1 mmedina asip 207 Mar 31 2006 callback.py -rw-r--r-- 1 mmedina asip 379 Mar 29 2006 Rand.py -rw-r--r-- 1 mmedina asip7302 Mar 25 2006 BIO.py -rw-r--r-- 1 mmedina asip3306 Mar 20 2006 ASN1.py -rw-r--r-- 1 mmedina asip3085 Mar 20 2006 AuthCookie.py -rw-r--r-- 1 mmedina asip1330 Mar 20 2006 BN.py -rw-r--r-- 1 mmedina asip2374 Mar 20 2006 DH.py -rw-r--r-- 1 mmedina asip 936 Mar 20 2006 Err.py -rw-r--r-- 1 mmedina asip 692 Mar 20 2006 RC4.py -rw-r--r-- 1 mmedina asip2896 Mar 20 2006 ftpslib.py -rw-r--r-- 1 mmedina asip2210 Mar 20 2006 httpslib.py -rw-r--r-- 1 mmedina asip 785 Mar 20 2006 m2.py -rw-r--r-- 1 mmedina asip1804 Mar 20 2006 m2xmlrpclib.py -rw-r--r-- 1 mmedina asip 347 Mar 20 2006 threading.py cengsu01:/home/mmedina/crypt/m2kcrypto/m2crypto-0.16/build/lib.solaris-2.9-sun4u-2.3/M2Crypto However, when I use the following command: python setup.py install I get the following error: creating /usr/local/lib/python2.3/site-packages/M2Crypto error: could not create '/usr/local/lib/python2.3/site-packages/M2Crypto': Permission denied Since I don't have root privleges can I install the M2Crypto somewhere else? Also, am I on the right track if I want to be able to access an Https page? thanks in advance, Monica Heikki Toivonen wrote: matey wrote: I am have version 2.3.4. I want to write a python script to access a secure HTTPS. I tried the following: import urllib urllib.urlopen(https://somesecuresite.com;) s = f.read() f.close() I hope you know the Python stdlib SSL does not provide certificate checking etc. security features you almost certainly want in a production application. There are several 3rd party Python crypto libraries that provide more secure SSL out of the box, for example M2Crypto. -- Heikki Toivonen -- http://mail.python.org/mailman/listinfo/python-list
best way to check if a file exists?
What is the best way to check if a file already exists in the current directory? I saw os.path.isfile(), but I'm not sure if that does more than what I need. I just want to check if a file of a certain name exists before the user creates a new file of that name. Thanks. -- http://mail.python.org/mailman/listinfo/python-list
Re: best way to check if a file exists?
John Salerno wrote: What is the best way to check if a file already exists in the current directory? I saw os.path.isfile(), but I'm not sure if that does more than what I need. I just want to check if a file of a certain name exists before the user creates a new file of that name. Thanks. os.path.exists()? -- http://mail.python.org/mailman/listinfo/python-list
Integrating Python with Fortran
Hi all, I'm currently working on a large, legacy Fortran application. I would like to start new development in Python (as it is mainly I/O related). In order to do so, however, the whole project needs to be able to compile in Fortran. I'm aware of resources like the F2Py Interface generator, but this only lets me access the Fortran modules I need in Python. I'm wondering if there's a way to generate the .o files from Python (maybe using py2exe?) and then link the .o file with the rest of the Fortran project using something like gcc. I realize that all of this is highly dependent on the libraries I use, etc, but I'm just looking for general strategies to attack the problem or someone to tell me that this is impossible. -- http://mail.python.org/mailman/listinfo/python-list
Re: best way to check if a file exists?
At Tuesday 31/10/2006 18:01, John Salerno wrote: What is the best way to check if a file already exists in the current directory? I saw os.path.isfile(), but I'm not sure if that does more than what I need. os.access(full_filename, os.F_OK) http://docs.python.org/lib/os-file-dir.html I just want to check if a file of a certain name exists before the user creates a new file of that name. Remember that things may change between you check the name and you actually create the file. -- Gabriel Genellina Softlab SRL __ Correo Yahoo! Espacio para todos tus mensajes, antivirus y antispam ¡gratis! ¡Abrí tu cuenta ya! - http://correo.yahoo.com.ar -- http://mail.python.org/mailman/listinfo/python-list
Re: Integrating Python with Fortran
unexpected schrieb: I'm aware of resources like the F2Py Interface generator, but this only lets me access the Fortran modules I need in Python. I'm wondering if there's a way to generate the .o files from Python (maybe using py2exe?) and then link the .o file with the rest of the Fortran project using something like gcc. I realize that all of this is highly dependent on the libraries I use, etc, but I'm just looking for general strategies to attack the problem or someone to tell me that this is impossible. Please take a look at the extending and embedding tutorial. This explains you how to integrate Python code into a C application. If you think this could work for you if just your application was C, I think the Python-Fortran people can give you precise instructions on how to integrate Python code into a Fortran program. In the simplest embedding example, you just link the Python VM itself into the hosting application. The actual Python files stay on disk, and invoking a Python function from C/Fortran will just end up doing a regular Python import (with searching sys.path and everything). If, for packaging reasons, you prefer to have the Fortran program stand-alone, I recommend to use freeze. freeze gives you indeed .o files for Python files, plus a global table of all frozen modules. Then, when doing an import, the interpreter won't go to disk anymore, but it will import the byte code from memory (it still would be a regular import operation). Freeze, of course, requires you to recompile/relink your application every time you change a Python source file. HTH, Martin -- http://mail.python.org/mailman/listinfo/python-list
Re: Ctypes Error: Why can't it find the DLL.
Mudcat a écrit : That was it. Once I added the other DLLs then it was able to find and make the call. Thanks for all the help, I just googled for WindowsError: [Errno 126] and followed the links, you know... -- http://mail.python.org/mailman/listinfo/python-list
Re: best way to check if a file exists?
If you want to open the file for writing just open it with append mode. open(¨filename, a). If it doesn't exist - it'll create it, and if it does it'll start appending to the file For reading - os.path.exists(filename). Or (doesn't make much sense, but still) try to open it for reading and python will throw an IOException which you can catch and handle. Michael --- John Salerno [EMAIL PROTECTED] wrote: What is the best way to check if a file already exists in the current directory? I saw os.path.isfile(), but I'm not sure if that does more than what I need. I just want to check if a file of a certain name exists before the user creates a new file of that name. Thanks. -- http://mail.python.org/mailman/listinfo/python-list -- http://mail.python.org/mailman/listinfo/python-list
Re: Python tools for managing static websites?
Chris Pearl wrote: Are there Python tools to help webmasters manage static websites? I'm talking about regenerating an entire static website - all the HTML files in their appropriate directories and sub-directories. Each page has some fixed parts (navigation menu, header, footer) and some changing parts (body content, though in specific cases the normally fixed parts might change as well). The tool should help to keep site editing DRY every piece of data, including the recurring parts, should exist only once. The above should be doable with any decent templating tool, such as those forming part of most CMSes and full-stack web-frameworks. Normally I might have just resorted to a CMS/web-framework, running locally on the webmaster's station, with the only addition being a mechanism for generating all pages composing the site and saving them as files. But such a solution might not be enough, as the system I'm looking for must be able to control the physical traits of the website as a collection of files - e.g., creation and distribution of files among several physical directories and subdirectories. Chris, If you don't mind me pimping my own static website generator, you might find HRL useful: http://www.aerojockey.com/software/hrl On one hand, it's like an ordinary templating engine in that you can define macros and variables and such, and stick them into documents. For example, define a sidebar macro in the file macro.hri: macro name=sidebar ul liFirst menu entry/li liSecond menu entry/li liThrid menu entry/li /ul /macro This creates a new sidebar tag that expands to the macro definition. You can use this macro in your main document file: include file=macro.hri sidebar However, HRL is much more powerful than a simple templating system, because it can embed Python code to be run during page generation. Here's a very simple example: python import time hrl.doc.write(Page last generated on %s % time.asctime(time.localtime())) /python Thus, unlike most templating engines, HRL can adapt very well to unusual situations. You can embed the Python scriptlet into macro definitions to create very powerful macros. For instance, you could write a sidebar macro to automatically disable the link to the current page--impossible with a simple text-substitution engine. Even more powerful uses are possible. You could write a macro that inserts information from a database into the page (which sounds kind of like what you mentioned). On the downside, it's not exactly hip to the latest web trends. It uses sgmllib for input, bleagh. The list of HTML tags it knows about is vintage 1998. (One of my design goals was freedom to be sloppy with closing tags. HRL keeps track of and automatically closes tags when appropriate, but it doesn't know about tags like embed.) And it's not any sort of enterprise-quality content management. It's just a templating engine with power. Carl Banks -- http://mail.python.org/mailman/listinfo/python-list
report progress from C function
Good day all. I rewrote part of my program in C, it's a usually a long task. I wanted to be able to report the progress back to my python program. In my module (in addition to the function that performs the above-mentioned task) there is a function that returns the variable, indicating the progress. However I am not sure how to call it. Once I call the C function that does the work (it's a while loop that takes minutes sometimes) I can't call that progress function. Any ideas? Thanks in advance, Michael -- http://mail.python.org/mailman/listinfo/python-list
Re: best rational number library for Python?
A guy at work asked for functionality commonly found with rational numbers, so I said I'd find and install something. I figured gmpy would be suitable, alas I'm having trouble successfully building the underlying GMP 4.2.1 library on a PC running Solaris 10 (won't compile with the default --host, fails make check if I go the no-assembly route). Before I invest a bunch of time into this, am I barking up the wrong tree? I've successfully compiled GMP 4.2.1 on Solaris 10 x86 using both the GCC and Sun Studio compilers on AMD 32-bit platform. I just compiled GMP 4.2.1 on a P4 using $ CFLAGS= CC=gcc ./configure $ gmake; gmake check and all tests passed. casevh -- http://mail.python.org/mailman/listinfo/python-list
Re: best rational number library for Python?
A guy at work asked for functionality commonly found with rational numbers, so I said I'd find and install something. I figured gmpy would be suitable, alas I'm having trouble successfully building the underlying GMP 4.2.1 library on a PC running Solaris 10 (won't compile with the default --host, fails make check if I go the no-assembly route). Before I invest a bunch of time into this, am I barking up the wrong tree? I've successfully compiled GMP 4.2.1 on Solaris 10 x86 using both the GCC and Sun Studio compilers on AMD 32-bit platform. I just compiled GMP 4.2.1 on a P4 using $ CFLAGS= CC=gcc ./configure $ gmake; gmake check and all tests passed. casevh -- http://mail.python.org/mailman/listinfo/python-list
Re: 3d programming without opengl
Fredrik Lundh wrote: Grant Edwards wrote: Oy. A pure Python solution would probably be _really_ slow. Pure Python doesn't necessarily imply no graphics drawing code written in some other language, though. You can get pretty far by using a 2D library for simple 3D rendering. Someone wrote a 3D demo for the pygame.draw challenge*. It worked but unfortunately he didn't end up finishing and submitting it. It had severe performance limitations :) Richard *: http://media.pyweek.org/static/pygame.draw-0606.html -- http://mail.python.org/mailman/listinfo/python-list