wxmsw26uh_vc.dll not found when using wxAgg backend
Hello, I've installed matplotlib recently because I want to add graphing functionality to a GUI that i'm making. I decided to try using the wxAgg backend instead of plain old wx because: a) I hear it's quicker, and b) when i use the wx backend, the axis labels don't seem to work properly - i can't change their font, and the axis label always overwrites my tickbox labels. So i'm not too concerned about these wx problems anymore because i'm changing to wxAgg. Here's the problem i'd like help with. - i import the wxAgg backends, Figurecanvas, etc. - i run the file - the following error box pops up: This application has failed to start because wxmsw26uh_vc.dll was not found. Reinstalling the application may fix this problem. This problem occurs even when I run the matplotlib example files that you can download from the matplotlib homepage. I have tried reinstalling, and that has not rectified the problem. I googled for wxmsw26uh_vc.dll and found a small number of posts. The following post: https://svn.enthought.com/enthought/ticket/774 suggests that it will be fixed in 1.0.0.rc1 which was supposedly released a few weeks ago. I didn't really follow the discussion of why this error is occurring, i just want to find out how to fix it! I'm running a windows XP machine with: python 2.4, matplotlib 87.4 and wxPython ansi-2.6.3.3 Any help would be much appreciated Cheers Samantha -- http://mail.python.org/mailman/listinfo/python-list
Re: Dr. Dobb's Python-URL! - weekly Python news and links (Aug 15)
I'll be out of the office until approximately August 20th. If you have any questions, please email [EMAIL PROTECTED] -- David Wahler -- http://mail.python.org/mailman/listinfo/python-list
Re: Abstracts - Leipzig Python Workshop
I'll be out of the office until approximately August 20th. If you have any questions, please email [EMAIL PROTECTED] -- David Wahler -- http://mail.python.org/mailman/listinfo/python-list
Re: using python at the bash shell?
On Tue, Aug 15, 2006 at 06:45:33PM EDT, Simon Forman wrote: cga2000 wrote: [..] Why do you write most commands .. what type of command might not be run by putting '!' before them? Well, I wrote that just to hedge my bets, but here's an example: I set up lesspipe and source-highlight to add syntax highlighting to various file types when viewed through less. But using !less neat.py in Ipython doesn't work because (I'm guessing here) Ipython doesn't handle the color escape codes. It winds up looking like this: ESC[31m#!/usr/local/bin/python2.5ESC[m ESC[01;34mfromESC[m random ESC[01;34mimportESC[m random as f ESC[01;34mdefESC[m ESC[01;30mgESC[mESC[31m(ESC[mESC[31m)ESC[mESC[31m:ESC[m n1 ESC[31m=ESC[m ESC[01;30mfESC[mESC[31m(ESC[mESC[31m)ESC[m ESC[01;34mwhileESC[m TrueESC[31m:ESC[m n2 ESC[31m=ESC[m ESC[01;30mfESC[mESC[31m(ESC[mESC[31m)ESC[m yield n1 ESC[31m-ESC[m n2 n1 ESC[31m=ESC[m n2 Ew. So in this case I'd have to !bash then less neat.py... you could use vim -R -- or its alter ego view .. !view neat.py I tried that just now under ipython and I end up with the exact same syntax highlighting that I have when I run vim from the bash prompt. The problems I am having are mainly due to my bash customization -- aliases, functions .. all that stuff is no longer being recognized .. and also some bash built-ins such as cd do not do anything .. maybe ipython starts a subprocess that switches and then immediately exits .. so when I get the prompt back I'm back where I started. I guess reading the ipython manual and trying to understand what I'm doing before going any further wouldn't hurt.. :-) In the linux world it would be rather interesting if a distro was available that uses nothing but python. The installer .. the startup scripts .. utilities .. etc. Maybe there is such a thing and I'm just not aware of it? IMHO it would be neat, but it'd be kind of a stunt. There's a ton of excellent code in most any linux distro *not* written in python. quite a large project, I would imagine. Since it would be byt-code being executed it would be faster than regular shell stuff and a lot easier to customize/maintain. Mmmm... I bet it'd be hard to beat, say, grep... Or any of the small, custom-purpose C-coded tools. (then there's make... gcc... not easy to rewrite those.. just off the top of my head...) Sorry .. couldn't think of a better word .. but by utilities I meant all those shell scripts in /usr/bin that come with gnu/linux distros and mostly appear to front-end real programs. I guess a python system shell could invoke all the C-coded stuff the same way bash does, no..? 'nuff [OT] for now.. Thanks, cga -- http://mail.python.org/mailman/listinfo/python-list
Memory usage of an 'empty' python interpreter
I was wondering what the approximate amount of memory needed to load a Python interpreter (only, no objects, no scripts, no nothing else) in a Linux 2.6 environment. According to ps, it appears to be 3312 bytes, which seems absurdly low to me. However, when I check the size of my Python executable, it looks like it is only about 5600 bytes in size, so maybe this is reasonable? Right now, I currently have one bare Python interpreter running and no other Python programs. Here is the output of ps -aux | grep python (headers added for readability): USER PID %CPU %MEMVSZ RSS TTY STAT START TIME COMMAND paul 17561 0.1 0.6 14616 3312 pts/2S+ 02:33 0:00 python paul 17569 0.0 0.1 2600 520 pts/3R+ 02:34 0:00 grep python If I am reading this right, it says the Python interpreter itself is using 3312 bytes of memory, but has 14616 bytes of shared memory it can access (which, i assume, is mostly shared libraries). Here's my ls -l /usr/bin/python2.4: -rwxr-xr-x 1 root root 5424 Jul 21 08:02 /usr/bin/python2.4 Am I interpreting this stuff more or less correctly? Thanks! -- http://mail.python.org/mailman/listinfo/python-list
Re: state of SOAP and python?
I had success with ZSI: http://pywebsvcs.sourceforge.net/It worked very nicely for publishing a SOAP we service and accessing it from a client writtenusing the same library. What I didn't manage to achieve was to write the client in AJAX (tried http://www-128.ibm.com/developerworks/webservices/library/ws-wsajax/).regardsAndreOn 8/16/06, Mark Harrison [EMAIL PROTECTED] wrote: Gabriel Genellina [EMAIL PROTECTED] wrote: At Thursday 10/8/2006 03:38, Mark Harrison wrote: So I'm investigating doing some SOAP work... Any concensus on what the best python libraries are for doing this? Too bad, xmlrpc is choking on our long longs. :-( Just thinking, if you have control over the two ends, and dont need real interoperability, maybe just extending int to support long integers could be easier... I remember extending double once to support NaN's, moving to SOAP was too much effort for that application. Good thinking!It turns out all you have to do is commentout the range check:def dump_int(self, value, write):# in case ints are 32 bits##if value MAXINT or value MININT: ##raise OverflowError, int exceeds XML-RPC limitswrite(valueint)write(str(value))write(/int/value\n) Thanks,Mark--Mark HarrisonPixar Animation Studios--http://mail.python.org/mailman/listinfo/python-list -- Dr. Andre P. Meyerhttp://python.openspace.nl/meyerTNO Defence, Security and Safety http://www.tno.nl/Delft Cooperation on Intelligent Systemshttp://www.decis.nl/Ah, this is obviously some strange usage of the word 'safe' that I wasn't previously aware of. - Douglas Adams -- http://mail.python.org/mailman/listinfo/python-list
Very weird behavior that's driving me crazy
Hello, I am experiencing a weird behavior that is driving me crazy. I have module called Sensors containing, among other things: class Manager: def getStatus(self): print getStatus(self=%s) % self return {a: b, c: d} and then I have another module called SensorSingleton that emulates the hard-to-code-on-python singleton in this way: manager = Manager() print manager=%s % manager def getStatus(): print getStatus() return manager.getStatus() and then in some other module, I import SensorSingleton and I do, among other things: print SensorSingleton.getStatus() and the output is more or less like this. First, the manager: manager: Sensor.Manager object at 0xb7b9efec ok, then Manager.getStatus(self=Sensor.Manager object at 0xb77cde8c) = {a: b, c: d} None None is the return of SensorSingleton.getStatus(), now, my questions are: - Shouldn't the manager be the same in the first print and the second, that is, the id is different, shouldn't it be the same ? - What happened with all the output of SensorSingleton.getStatus() ? there's no trace of it (but there's output of the method it calls). - Why doesn't the SensorSingleton.getStatus() return the return value of manager.getStatus(), it's a very straight forward call to it and return it. Thank you. -- Pupeno [EMAIL PROTECTED] (http://pupeno.com) -- http://mail.python.org/mailman/listinfo/python-list
Python form Unix to Windows
Hi friends, We are changing the python application from Unix to Windows. The source code of Python application should work well in windows. How to make changed to windows environment. In Python code we have login module, ftp, socket programming. Please help in changing the code from Unix envirnment to Windows Environment. Thanks in Advance. Regards, Pradeep -- http://mail.python.org/mailman/listinfo/python-list
Weekly Python Patch/Bug Summary
Patch / Bug Summary ___ Patches : 404 open ( +2) / 3376 closed (+16) / 3780 total (+18) Bugs: 860 open ( -1) / 6131 closed (+17) / 6991 total (+16) RFE : 229 open ( +1) / 235 closed ( +1) / 464 total ( +2) New / Reopened Patches __ option to leave tempfile.NamedTemporaryFile around on close (2006-08-10) http://python.org/sf/1537850 opened by djmdjm Patch to fix __index__() clipping (2006-08-11) CLOSED http://python.org/sf/1538606 opened by Travis Oliphant Patch cElementTree to export CurrentLineNumber (2006-08-11) http://python.org/sf/1538691 opened by Robin Bryce Replace unicode.__eq__ exceptions with a warning (2006-08-11) CLOSED http://python.org/sf/1538956 opened by M.-A. Lemburg Add readinto method to StringIO and cStringIO (2006-08-12) http://python.org/sf/1539381 opened by Alexander Belopolsky Backports from trunk to release24-maint (2006-08-15) http://python.org/sf/1540329 opened by flub tarfile __slots__ addition (2006-08-14) http://python.org/sf/1540385 opened by Brian Harring Patches for OpenBSD 4.0 (2006-08-15) http://python.org/sf/1540470 opened by djmdjm Use Py_ssize_t for rangeobject members (2006-08-15) http://python.org/sf/1540617 opened by Alexander Belopolsky except too broad (2006-08-15) http://python.org/sf/1540849 opened by Jim Jewett with is now a blockopener (2006-08-15) CLOSED http://python.org/sf/1540851 opened by Jim Jewett IOBinding overly broad except (2nd try) (2006-08-15) CLOSED http://python.org/sf/1540856 opened by Jim Jewett except too broad (2006-08-15) CLOSED http://python.org/sf/1540857 opened by Jim Jewett IOBinding broad except - try 3 (2006-08-15) CLOSED http://python.org/sf/1540859 opened by Jim Jewett CodeContext visibility (2006-08-15) http://python.org/sf/1540869 opened by Jim Jewett broken shortcut keys (2006-08-15) http://python.org/sf/1540874 opened by Jim Jewett make IDLE honor the quit() builtin (2006-08-15) CLOSED http://python.org/sf/1540892 opened by Jim Jewett Patches Closed __ Add notes on locale module changes to whatsnew25.tex (2006-08-03) http://python.org/sf/1534027 closed by akuchling Build ctypes on OpenBSD x86_64 (2006-08-08) http://python.org/sf/1536908 closed by theller Fix __index__() clipping really big numbers (2006-07-29) http://python.org/sf/1530738 closed by ncoghlan PyShell.recall - fix indentation logic (2006-07-25) http://python.org/sf/1528468 closed by kbk Patch to fix __index__() clipping (2006-08-11) http://python.org/sf/1538606 closed by nnorwitz Replace unicode.__eq__ exceptions with a warning (2006-08-11) http://python.org/sf/1538956 closed by lemburg Replace the ctypes internal '_as_parameter_' mechanism (2006-08-02) http://python.org/sf/1532975 closed by theller writelines() in bz2 module does not raise check for errors (2006-08-06) http://python.org/sf/1535500 closed by gbrandl trace.py on win32 has problems with lowercase drive names (2006-08-07) http://python.org/sf/1536071 closed by gbrandl Give Cookie.py its own _idmap (2006-07-13) http://python.org/sf/1521882 closed by gbrandl socket.gethostbyaddr fix for machines with incomplete DNS (2006-06-23) http://python.org/sf/1511317 closed by gbrandl with is now a blockopener (2006-08-15) http://python.org/sf/1540851 closed by kbk IOBinding overly broad except (2nd try) (2006-08-15) http://python.org/sf/1540856 closed by jimjjewett except too broad (2006-08-15) http://python.org/sf/1540857 closed by jimjjewett IOBinding broad except - try 3 (2006-08-15) http://python.org/sf/1540859 closed by jimjjewett make IDLE honor the quit() builtin (2006-08-15) http://python.org/sf/1540892 closed by kbk New / Reopened Bugs ___ 2nd issue with need for speed patch (2006-08-09) http://python.org/sf/1537167 opened by Robin Bryce Missing platform information in subprocess documentation (2006-08-09) CLOSED http://python.org/sf/1537195 opened by Aaron Bingham urllib2 httplib _read_chunked timeout (2006-08-09) http://python.org/sf/1537445 opened by devloop Installation on Windows Longhorn (2006-08-10) http://python.org/sf/1537601 opened by O.R.Senthil Kumaran import on cElementTree on Windows (2006-08-09) http://python.org/sf/1537685 reopened by thomasbhickey import on cElementTree on Windows (2006-08-09) http://python.org/sf/1537685 opened by Thomas B Hickey indent changes when copying command (2006-08-10) CLOSED http://python.org/sf/1538445 opened by mjd__ PyThreadState_SetAsyncExc bug (2006-08-11) http://python.org/sf/1538556 opened by ganges master pyo's are not overwritten by different optimization levels (2006-08-11)
round not rounding to 0 places
I have been using a round command in a few places to round a value to zero decimal places using the following format, round('+value+', 0) but this consistantly returns the rounded result of the value to one decimal place with a zero EG: 4.97 is returned as 5.0 when i want it returned as 5, does anyone know why this is and if i can get the round to make the value 5? David P -- http://mail.python.org/mailman/listinfo/python-list
Re: what is the keyword is for?
Dan Bishop [EMAIL PROTECTED] wrote: | Sybren Stuvel wrote [on the difference between is and ==]: | Obviously a is b implies a == b, | | Not necessarily. | | a = b = 1e1000 / 1e1000 | a is b | True | a == b | False Huh? - wtf is this - I find this deeply disturbing - Sybren's explanation kind of was congruent with my own understanding, and this is just weird - Hendrik -- http://mail.python.org/mailman/listinfo/python-list
Re: Python form Unix to Windows
Pradeep wrote: We are changing the python application from Unix to Windows. The source code of Python application should work well in windows. How to make changed to windows environment. In Python code we have login module, ftp, socket programming. Please help in changing the code from Unix envirnment to Windows Environment. You ask a good question. However, the question is too large to be answered in a newsgroup post. The appropriate thing for you to do is to go through the Python documentation and see which modules your application depends on that are not available on Windows. Then, you need to decide how you'll either provide the missing functionality or recode your app to better fit with the Windows environment. Also, I'd like to note that if this is an app of any size, the work involved might be fairly sizeable. In that case, your best bet is to either slog through the process i outlined above (returning to the newsgroup when you're stuck on how to proceed), or pay someone to do it. I don't think you'll find anyone here willing to do that amount and that kind of work for free. O:-) -- http://mail.python.org/mailman/listinfo/python-list
Re: round not rounding to 0 places
Fuzzydave wrote: I have been using a round command in a few places to round a value to zero decimal places using the following format, round('+value+', 0) but this consistantly returns the rounded result of the value to one decimal place with a zero EG: 4.97 is returned as 5.0 when i want it returned as 5, does anyone know why this is and if i can get the round to make the value 5? David P | n = 4.97 | round(n) 5.0 | int(round(n)) 5 | help(round) Help on built-in function round in module __builtin__: round(...) round(number[, ndigits]) - floating point number Round a number to a given precision in decimal digits (default 0 digits). This always returns a floating point number. Precision may be negative. HTH, ~Simon BTW, '+value+' ..? Huh? -- http://mail.python.org/mailman/listinfo/python-list
Re: how to deepcopy a slice object?
thx for all the help simon. good ideas i can work with. thx again. alex. Simon Forman wrote: Alexandre Guimond wrote: Here is my reason: I have an object that contrains a 2D regular grid (matrix). In this regular grid, I place points at regular intervals. In essence, i have something like (my code is obviously more complex, this is just to show what I want to do) obj.grid = numpy.zeros( ( 100, 100 ) ) obj.grid[ obj.y1: obj.y2 : obj.ys, obj.x1 : obj.x2 : obj.xs ] = embedded_parameters result = somefunc( obj.grid ) My goal was to reduce the number of elements in my obj object by replacing y1, y2, ys, and x1, x2, xs by 2 slice objects, and then do: obj.grid[ obj.slicey, obj.slicex ] = embedded_parameters But when I do this and then try to deepcopy my object, it doesn't work, as in the example below. Its not a big thing. I just liked the idea of having less elements in my obj class and actually modeling my slice concept by a slice object, specially since i'm going to 3D and 4D grid, and its somewhat annoying to carry so many indices in my class definition. Simon Forman wrote: Alexandre Guimond wrote: Hi all, i'm trying to deepcopy a slice object but i get the following error. Does anyone know a workaround? ActivePython 2.4.3 Build 12 (ActiveState Software Inc.) based on Python 2.4.3 (#69, Apr 11 2006, 15:32:42) [MSC v.1310 32 bit (Intel)] on win32 Type help, copyright, credits or license for more information. import copy copy.deepcopy( slice( 1, 10, 2 ) ) Traceback (most recent call last): File stdin, line 1, in ? File C:\Program Files\Python\lib\copy.py, line 204, in deepcopy y = _reconstruct(x, rv, 1, memo) File C:\Program Files\Python\lib\copy.py, line 336, in _reconstruct y = callable(*args) File C:\Program Files\Python\lib\copy_reg.py, line 92, in __newobj__ return cls.__new__(cls, *args) TypeError: slice expected at least 1 arguments, got 0 thx for any help. Why would you want to [deep]copy a slice object? Anyway, I don't know much about them, other than that they are slightly unusual objects that play a very restricted role in python, rather like the Ellipsis. Workarounds are possible, I think, but really you almost certainly don't need to do this. Peace, ~Simon Ah, so you *do* want to deepcopy slice objects.. Neat. :-) I can't do that, but I can show you a couple of ways to deepcopy objects that have slices as attributes. First, if the __init__() method and its args are sufficient to recreate your objects then you could do something like this: class DeepCopyable0: def __init__(self, x, y, z, a, b, c): self.slicex = slice(x, y, z) self.slicey = slice(a, b, c) def __deepcopy__(self, memo): # Create local vars for brevity. sx, sy = self.slicex, self.slicey # Create a new DeepCopyable0 instance. return DeepCopyable0( sx.start, sx.stop, sx.step, sy.start, sy.stop, sy.step ) | d0 = DeepCopyable0(1, 2, 3, 4, 5, 6) | d0.slicex, d0.slicey (slice(1, 2, 3), slice(4, 5, 6)) | d1 = deepcopy(d0) | d1.slicex, d1.slicey (slice(1, 2, 3), slice(4, 5, 6)) Otherwise, another way to do it would be to provide the pickling protocol: class DeepCopyable1: def __init__(self, x, y, z, a, b, c): # Pretend this was something more complicated. self.slicex = slice(x, y, z) self.slicey = slice(a, b, c) def __getstate__(self): state = self.__dict__.copy() # Create local vars for brevity. sx, sy = self.slicex, self.slicey # Save the indices rather than the slices. state['slicex'] = sx.start, sx.stop, sx.step state['slicey'] = sy.start, sy.stop, sy.step return state def __setstate__(self, state): # Recreate the slice objects. state['slicex'] = slice(*state['slicex']) state['slicey'] = slice(*state['slicey']) self.__dict__.update(state) | d0 = DeepCopyable1(1, 2, 3, 4, 5, 6) | d0.slicex, d0.slicey (slice(1, 2, 3), slice(4, 5, 6)) | d1 = deepcopy(d0) | d1.slicex, d1.slicey (slice(1, 2, 3), slice(4, 5, 6)) Circular references seem work fine here too. Observe: | d0 = DeepCopyable1(1, 2, 3, 4, 5, 6) | d0.rec = d0 | d0 delme.DeepCopyable instance at 0xb7d5cb2c | d0.rec.rec #etc... delme.DeepCopyable instance at 0xb7d5cb2c | d1 = deepcopy(d0) | d1 delme.DeepCopyable instance at 0xb7d7878c | d1.rec delme.DeepCopyable instance at 0xb7d7878c Since you're going to be using more dimensions, you could make python do the work for you rather than cutting and pasting: class DeepCopyable2: # __init__() omitted... def __getstate__(self): state = self.__dict__.copy() # Keep track of the slice attributes
Re: round not rounding to 0 places
On 16 Aug 2006 00:19:24 -0700, Fuzzydave [EMAIL PROTECTED] wrote: I have been using a round command in a few places to round a value to zero decimal places using the following format, round('+value+', 0) but this consistantly returns the rounded result of the value to one decimal place with a zero EG: 4.97 is returned as 5.0 when i want it returned as 5, does anyone know why this is and if i can get the round to make the value 5? round returns a float. You probably want to convert it to an int. int(round(4.97)) 5 Cheers, Tim David P -- http://mail.python.org/mailman/listinfo/python-list -- http://mail.python.org/mailman/listinfo/python-list
Re: Python form Unix to Windows
Pradeep wrote: Hi friends, We are changing the python application from Unix to Windows. The source code of Python application should work well in windows. How to make changed to windows environment. In Python code we have login module, ftp, socket programming. Please help in changing the code from Unix envirnment to Windows Environment. Thanks in Advance. Regards, Pradeep Simplest way: Run the app in windows, see what breaks (probably less than you might think), fix it. I have written large apps that required less than a dozen, or no, changes to move between windows and *nix. YMMV Peace, ~Simon -- http://mail.python.org/mailman/listinfo/python-list
Re: Very weird behavior that's driving me crazy
In [EMAIL PROTECTED], Pupeno wrote: - Shouldn't the manager be the same in the first print and the second, that is, the id is different, shouldn't it be the same ? - What happened with all the output of SensorSingleton.getStatus() ? there's no trace of it (but there's output of the method it calls). - Why doesn't the SensorSingleton.getStatus() return the return value of manager.getStatus(), it's a very straight forward call to it and return it. How have you tested this? Is there any chance it was an interactive session and you forgot to reload the module after making changes to it? Ciao, Marc 'BlackJack' Rintsch -- http://mail.python.org/mailman/listinfo/python-list
Re: round not rounding to 0 places
Sybren Stuvel wrote: round returns a float. Use int(round('+value+', 0)) to get an integer. Sybren ahh of course it does, slaps own forehead sorted thanks :) David P -- http://mail.python.org/mailman/listinfo/python-list
Re: Very weird behavior that's driving me crazy
Pupeno wrote: Hello, I am experiencing a weird behavior that is driving me crazy. I have module called Sensors containing, among other things: class Manager: def getStatus(self): print getStatus(self=%s) % self return {a: b, c: d} and then I have another module called SensorSingleton that emulates the hard-to-code-on-python singleton in this way: manager = Manager() print manager=%s % manager def getStatus(): print getStatus() return manager.getStatus() and then in some other module, I import SensorSingleton and I do, among other things: print SensorSingleton.getStatus() and the output is more or less like this. First, the manager: manager: Sensor.Manager object at 0xb7b9efec ok, then Manager.getStatus(self=Sensor.Manager object at 0xb77cde8c) = {a: b, c: d} None None is the return of SensorSingleton.getStatus(), now, my questions are: - Shouldn't the manager be the same in the first print and the second, that is, the id is different, shouldn't it be the same ? - What happened with all the output of SensorSingleton.getStatus() ? there's no trace of it (but there's output of the method it calls). - Why doesn't the SensorSingleton.getStatus() return the return value of manager.getStatus(), it's a very straight forward call to it and return it. Thank you. -- Pupeno [EMAIL PROTECTED] (http://pupeno.com) The code you posted doesn't match the output you posted. Try coding the smallest version of what you're trying to do and post its output. Peace, ~Simon -- http://mail.python.org/mailman/listinfo/python-list
Re: what is the keyword is for?
Sybren Stuvel wrote: Dan Bishop enlightened us with: a = b = 1e1000 / 1e1000 a is b True a == b False If a is b then they refer to the same object, hence a == b. It cannot be otherwise, unless Python starts to defy logic. I copied your code and got the expected result: a = b = 1e1000 / 1e1000 a is b True a == b True Probably depends on the implementation. 1e1000/1e1000 yields a NaN here, and I get True for a is b but False for a==b. Presumably comparing a NaN for equality (any comparison?) always yields False. -- http://mail.python.org/mailman/listinfo/python-list
Re: Very weird behavior that's driving me crazy
Nevermind, it was fixed. Thanks. Pupeno wrote: Hello, I am experiencing a weird behavior that is driving me crazy. I have module called Sensors containing, among other things: class Manager: def getStatus(self): print getStatus(self=%s) % self return {a: b, c: d} and then I have another module called SensorSingleton that emulates the hard-to-code-on-python singleton in this way: manager = Manager() print manager=%s % manager def getStatus(): print getStatus() return manager.getStatus() and then in some other module, I import SensorSingleton and I do, among other things: print SensorSingleton.getStatus() and the output is more or less like this. First, the manager: manager: Sensor.Manager object at 0xb7b9efec ok, then Manager.getStatus(self=Sensor.Manager object at 0xb77cde8c) = {a: b, c: d} None None is the return of SensorSingleton.getStatus(), now, my questions are: - Shouldn't the manager be the same in the first print and the second, that is, the id is different, shouldn't it be the same ? - What happened with all the output of SensorSingleton.getStatus() ? there's no trace of it (but there's output of the method it calls). - Why doesn't the SensorSingleton.getStatus() return the return value of manager.getStatus(), it's a very straight forward call to it and return it. Thank you. -- Pupeno [EMAIL PROTECTED] (http://pupeno.com) -- http://mail.python.org/mailman/listinfo/python-list
Re: what is the keyword is for?
Sybren Stuvel wrote: Dan Bishop enlightened us with: a = b = 1e1000 / 1e1000 a is b True a == b False If a is b then they refer to the same object, hence a == b. It cannot be otherwise, unless Python starts to defy logic. I copied your code and got the expected result: a = b = 1e1000 / 1e1000 a is b True a == b True Sybren Python 2.4.3 (#2, Apr 27 2006, 14:43:58) [GCC 4.0.3 (Ubuntu 4.0.3-1ubuntu5)] on linux2 Type help, copyright, credits or license for more information. | a = b = 1e1000 / 1e1000 | a is b True | a == b False Huh. Weird. I copied it too and got the wrong result. -- http://mail.python.org/mailman/listinfo/python-list
Re: what is the keyword is for?
In [EMAIL PROTECTED], Sybren Stuvel wrote: Dan Bishop enlightened us with: a = b = 1e1000 / 1e1000 a is b True a == b False If a is b then they refer to the same object, hence a == b. It cannot be otherwise, unless Python starts to defy logic. I copied your code and got the expected result: a = b = 1e1000 / 1e1000 a is b True a == b True I get the same as Dan: In [13]: a = b = 1e1000 / 1e1000 In [14]: a is b Out[14]: True In [15]: a == b Out[15]: False In [16]: a Out[16]: nan On my platform the division results in Not A Number. Two NaNs compared are always `False`. You could argue that this is the very same NaN but to get this effect the interpreter has to take care that every NaN produced while a program is running is unique. Quite huge overhead for such a corner case IMHO. Ciao, Marc 'BlackJack' Rintsch -- http://mail.python.org/mailman/listinfo/python-list
RE: What would be the best way to run python client in the background
| Tim Golden wrote: | | [gel] | | | I have written a python client server app [...] | | I want to run the client end of the app more or less invisibly | | (no console) on the XP clients when ever a users logs on. [Tim G] | The normal way is to run a Win32 service. There are several | posts on the subject around the Python and Python-Win32 | mailing lists / newsgroups. The alternative is to set something | to run when any user logs in to run without a window. Again, | there are posts on the subject, including one I seem to remember | from Robin Becker, which tell how to do this kind of thing. [gel] | Yes running the client as a service seems to be the way to go. I have | had a bit of a look at the py2exe way of doing it, but have not got my | head around it yet. What would be your preferred way of creating a | service for an XP client? I've always coded pretty much from scratch, reusing a tried-and-trusted skeleton and fitting things in. That said, I've never had to put together a service that was anything more than lightweight. The attached template I culled from someone's webpage, can't remember where I'm afraid. I believe people have had success in using py2exe to create a service but I haven't tried it myself. Hopefully more experienced service-writers will chime in with coherent advice. You might also try the python-win32 mailing list, since not everyone who reads that reads this I imagine. TJG This e-mail has been scanned for all viruses by Star. The service is powered by MessageLabs. For more information on a proactive anti-virus service working around the clock, around the globe, visit: http://www.star.net.uk service_template.py Description: service_template.py -- http://mail.python.org/mailman/listinfo/python-list
Re: using python at the bash shell?
In [EMAIL PROTECTED], cga2000 wrote: and also some bash built-ins such as cd do not do anything .. maybe ipython starts a subprocess that switches and then immediately exits .. so when I get the prompt back I'm back where I started. If you put a ``!`` in front of ``cd`` this is what happens. Just leave out the ``!``. IPython has it's own built-in ``cd`` command. Ciao, Marc 'BlackJack' Rintsch -- http://mail.python.org/mailman/listinfo/python-list
Re: how to deepcopy a slice object?
Alexandre Guimond wrote: thx for all the help simon. good ideas i can work with. thx again. alex. You're very welcome, a pleasure. ;-) ~Simon -- http://mail.python.org/mailman/listinfo/python-list
Re: Memory usage of an 'empty' python interpreter
[EMAIL PROTECTED] wrote: I was wondering what the approximate amount of memory needed to load a Python interpreter (only, no objects, no scripts, no nothing else) in a Linux 2.6 environment. According to ps, it appears to be 3312 bytes, which seems absurdly low to me. However, when I check the size of my Python executable, it looks like it is only about 5600 bytes in size, so maybe this is reasonable? Are you sure ps is reporting in bytes not KB? The bare interpreter in Windows is 3368KB. On my Gentoo server ps reports 2788KB for the bare interpreter. -- http://mail.python.org/mailman/listinfo/python-list
Re: Very weird behavior that's driving me crazy
Pupeno wrote: Hello, I am experiencing a weird behavior that is driving me crazy. I have module called Sensors containing, among other things: class Manager: def getStatus(self): print getStatus(self=%s) % self return {a: b, c: d} and then I have another module called SensorSingleton that emulates the hard-to-code-on-python singleton in this way: manager = Manager() print manager=%s % manager def getStatus(): print getStatus() return manager.getStatus() and then in some other module, I import SensorSingleton and I do, among other things: print SensorSingleton.getStatus() and the output is more or less like this. First, the manager: manager: Sensor.Manager object at 0xb7b9efec ### Uh-oh. The code should print manager=, not manager: ok, then Manager.getStatus(self=Sensor.Manager object at 0xb77cde8c) = ### Uh-oh. The code should print getStatus(self=blahblahblah i.e. without Manager. in the front. {a: b, c: d} None None is the return of SensorSingleton.getStatus(), ### What evidence do you have for that statement? now, my questions are: - Shouldn't the manager be the same in the first print and the second, that is, the id is different, shouldn't it be the same ? ### Yes. - What happened with all the output of SensorSingleton.getStatus() ? there's no trace of it (but there's output of the method it calls). ### All what output? The only expected output is getStatus() - Why doesn't the SensorSingleton.getStatus() return the return value of manager.getStatus(), it's a very straight forward call to it and return it. If you want help, forget the more or less caper -- it's useless. It's obvious from the above that the output that you describe can *not* have come from the code fragments that you showed.Cut your 3 modules down to the bare minimum that still shows the bug. Include copies of those plus the exact (copy/paste) results of running the test at the OS command-line (I.e. not in an IDE). Do make sure that none of your modules are being shadowed or are outdated -- have all 3 in your current working directory, and delete all .pyc files before running the test. What version of Python are you running? 2.3? Which platform? Below's what I tried -- it's essentially the same as your code, with a bit more output and with lower-case module names and I didn't bother with a 2-line calling module. It works as expected. HTH, John C:\junkpython Python 2.4.3 (#69, Mar 29 2006, 17:35:34) [MSC v.1310 32 bit (Intel)] on win32 Type help, copyright, credits or license for more information. | import singleton [singleton] manager=sensors.Manager instance at 0x00AF43A0 | singleton.getStatus() [singleton] entered getStatus() [sensors]getStatus(self sensors.Manager instance at 0x00AF43A0) [singleton] stuff = {'a': 'b', 'c': 'd'} {'a': 'b', 'c': 'd'} | ^Z C:\junktype sensors.py class Manager: def getStatus(self): print [sensors]getStatus(self %s) % self return {a: b, c: d} C:\junktype singleton.py from sensors import Manager manager = Manager() print [singleton] manager=%s % manager def getStatus(): print [singleton] entered getStatus() stuff = manager.getStatus() print [singleton] stuff =, stuff return stuff 8--- -- http://mail.python.org/mailman/listinfo/python-list
Re: Memory usage of an 'empty' python interpreter
neokosmos [EMAIL PROTECTED] writes: I was wondering what the approximate amount of memory needed to load a Python interpreter (only, no objects, no scripts, no nothing else) in a Linux 2.6 environment. According to ps, it appears to be 3312 bytes, which seems absurdly low to me. However, when I check the size of my Python executable, it looks like it is only about 5600 bytes in size, so maybe this is reasonable? It is, when you consider that ps reports in kilobytes :-). It's meaningless just to compare the size of the python binary. In your case it's obvious that the python binary is linking to a shared python library. Ganesan -- Ganesan Rajagopal -- http://mail.python.org/mailman/listinfo/python-list
Re: Memory usage of an 'empty' python interpreter
[EMAIL PROTECTED] wrote: I was wondering what the approximate amount of memory needed to load a Python interpreter (only, no objects, no scripts, no nothing else) in a Linux 2.6 environment. According to ps, it appears to be 3312 bytes, which seems absurdly low to me. Your spidey sense is working properly, 3312 bytes is absurdly low. Here is the output of ps -aux | grep python USER PID %CPU %MEMVSZ RSS TTY STAT START TIME COMMAND paul 17561 0.1 0.6 14616 3312 pts/2S+ 02:33 0:00 python [SNIP] If I am reading this right, it says the Python interpreter itself is using 3312 bytes of memory, but has 14616 bytes of shared memory it can access (which, i assume, is mostly shared libraries). Nope, ps output for those values is in kilobytes. It's a bit over 3 MB RSS, 14MB shared. Here's my ls -l /usr/bin/python2.4: -rwxr-xr-x 1 root root 5424 Jul 21 08:02 /usr/bin/python2.4 I'm not sure what's up here (maybe a shell script wrapper?) try file /usr/bin/python2.4 and ls -alh /usr/bin/python2.4. -- http://mail.python.org/mailman/listinfo/python-list
Re: Memory usage of an 'empty' python interpreter
Ant wrote: [EMAIL PROTECTED] wrote: I was wondering what the approximate amount of memory needed to load a Python interpreter (only, no objects, no scripts, no nothing else) in a Linux 2.6 environment. According to ps, it appears to be 3312 bytes, which seems absurdly low to me. However, when I check the size of my Python executable, it looks like it is only about 5600 bytes in size, so maybe this is reasonable? Are you sure ps is reporting in bytes not KB? The bare interpreter in Windows is 3368KB. Where did you get that from? With Python 2.4.3, on my machine (Win XP SP2): C:\junkdir \python24\python* [snip] 29/03/2006 05:35 PM 4,608 python.exe 29/03/2006 05:35 PM 1,871,872 python24.dll 29/03/2006 05:35 PM 5,120 pythonw.exe -- http://mail.python.org/mailman/listinfo/python-list
Re: Printing n elements per line in a list
unexpected wrote: If have a list from 1 to 100, what's the easiest, most elegant way to print them out, so that there are only n elements per line. So if n=5, the printed list would look like: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 etc. My search through the previous posts yields methods to print all the values of the list on a single line, but that's not what I want. I feel like there is an easy, pretty way to do this. I think it's possible to hack it up using while loops and some ugly slicing, but hopefully I'm missing something just variations on previous answers: rng = range(1,101) #ad hoc for line in ( rng[i:i+5] for i in xrange(0,100,5) ): print ' '.join(map(str,line)) #in general def lines( seq, count=1 ): n = len(seq) for x in ( seq[i:i+count] for i in xrange(0,n,count) ): yield x for line in lines( rng, 5 ): print ' '.join(map(str,line)) Gerard -- http://mail.python.org/mailman/listinfo/python-list
Re: What would be the best way to run python client in the background
You can use the Task Scheduler to run a script at login. It's not as robust as creating a service, but it's much less work. Roger gel [EMAIL PROTECTED] wrote in message news:[EMAIL PROTECTED] Hi I have written a python client server app that keeps an eye on processes starting and ending on a client and makes decision on what to do based on information from the server end. I want to run the client end of the app more or less invisibly (no console) on the XP clients when ever a users logs on. What would be the best way to get this done? A bit more info on the purpose of the app... it is to act as a licence server, where we have a limited number of licences for software and the software installed on all PCs. The app will only allow a pre defined number of clients to run the software at any one time. -- http://mail.python.org/mailman/listinfo/python-list
Re: Printing n elements per line in a list
Gerard Flanagan wrote: just variations on previous answers: rng = range(1,101) #ad hoc for line in ( rng[i:i+5] for i in xrange(0,100,5) ): print ' '.join(map(str,line)) #in general def lines( seq, count=1 ): n = len(seq) for x in ( seq[i:i+count] for i in xrange(0,n,count) ): yield x Don't those last two lines deflate to: for i in xrange(0,n,count): yield seq[i:i+count] ??? -- http://mail.python.org/mailman/listinfo/python-list
Re: Reference Variables In Python Like Those In PHP
Chaos a écrit : Is It possible to have reference variables like in PHP ex. ?php $x = 1; $y = $x; $y += 1; echo $x; echo \n echo $y; ? This would show 2 2 Is this available in python? See other replies (ie. in Python all variables are names refering to objects). You may achieve same result using an object as a namespace, like this: Python 2.4.3 (#69, Mar 29 2006, 17:35:34) [MSC v.1310 32 bit (Intel)] on win32 Type help, copyright, credits or license for more information. class Dummy(object) : pass ... x=Dummy() x.val = 1 y = x -- here x and y refer to *same* Dummy object y.val += 1 x.val 2 y.val 2 A+ Laurent. -- http://mail.python.org/mailman/listinfo/python-list
Re: Creating Charts in Excel with pyExcelerator.ExcelMagic
implicate_order wrote: Greetings, Here's an Excel class I use. I'm afraid I can't recall where I found the basic class. I have a vague recollection it is due to Mark Hammond, author of the win32com package. Might have been in win32com demos. (Whoever the original author is anyway, many thanks). I added a few methods, including XY plotting (you can probably tell by the change in coding style to that of a newb). Not very generic but you may find it useful, as the hardest part I found was discovering what the Excel specific methods etc where. The MSDN developer site for Excel is a big help. http://msdn.microsoft.com/developercenters/ import win32com.client from win32com.client import Dispatch, constants class ExcelWorkbook: An Excel workbook object def __init__(self, filename=None): # Use these commands in Python code to auto generate .py support for excel from win32com.client import gencache gencache.EnsureModule('{00020813---C000-0046}', 0, 1, 4) # start excel self.xlApp = Dispatch('Excel.Application') if filename and os.path.exists(filename): self.xlBook = self.xlApp.Workbooks.Open(filename) else: self.xlBook = self.xlApp.Workbooks.Add() self.filename = filename def save(self, newfilename=None): if newfilename: self.filename = newfilename self.xlBook.SaveAs(newfilename) else: self.xlBook.Save() def close(self): self.xlBook.Close(SaveChanges=0) del self.xlApp def show(self): self.xlApp.Visible = 1 def hide(self): self.xlApp.Visible = 0 def newSheet(self, sheet): try:# fails if sheet already exists self.xlBook.Sheets(sheet).Name == sheet except: self.xlSheet = self.xlBook.Worksheets.Add() self.xlSheet.Name = sheet def deleteSheet(self, sheet): try:# ignore if sheet doesn't exist self.xlBook.Sheets(sheet).Delete() except: pass def selectSheet(self, sheet): self.xlBook.Worksheets(sheet).Select() def getCell(self, sheet, row, col): Get value of one cell sht = self.xlBook.Worksheets(sheet) return sht.Cells(row, col).Value def setCell(self, sheet, row, col, value): set value of one cell sht = self.xlBook.Worksheets(sheet) sht.Cells(row, col).Value = value def getRange(self, sheet, row1, col1, row2, col2): return a 2d array (i.e. tuple of tuples) sht = self.xlBook.Worksheets(sheet) return sht.Range(sht.Cells(row1, col1), sht.Cells(row2, col2)).Value def setRange(self, sheet, topRow, leftCol, data): insert a 2d array starting at given location. Works out the size needed for itself bottomRow = topRow + len(data) - 1 rightCol = leftCol + len(data[0]) - 1 sht = self.xlBook.Worksheets(sheet) sht.Range( sht.Cells(topRow, leftCol), sht.Cells(bottomRow, rightCol) ).Value = data def getContiguousRange(self, sheet, row, col): Tracks down and across from top left cell until it encounters blank cells; returns the non-blank range. Looks at first row and column; blanks at bottom or right are OK and return None witin the array sht = self.xlBook.Worksheets(sheet) # find the bottom row bottom = row while sht.Cells(bottom + 1, col).Value not in [None, '']: bottom = bottom + 1 # right column right = col while sht.Cells(row, right + 1).Value not in [None, '']: right = right + 1 return sht.Range(sht.Cells(row, col), sht.Cells(bottom, right)).Value def fixStringsAndDates(self, aMatrix): # converts all unicode strings and times newmatrix = [] for row in aMatrix: newrow = [] for cell in row: if type(cell) is UnicodeType: newrow.append(str(cell)) elif type(cell) is TimeType: newrow.append(int(cell)) else: newrow.append(cell) newmatrix.append(tuple(newrow)) return newmatrix def convertRCToA1(self, R1C1): fromReferenceStyle = constants.xlR1C1, toReferenceStyle= constants.xlA1, toabsolute = constants.xlRelative) return self.xlApp.ConvertFormula(R1C1, constants.xlR1C1, constants.xlA1, constants.xlRelative) def insertFormulaInRange(self, sheet, row, col, len, formula): self.selectSheet(sheet) sht = self.xlBook.Worksheets(sheet) sht.Cells(row, col).FormulaR1C1 =
Re: Global Objects...
KraftDiner wrote: I have a question.. myGlobalDictionary = dictionary() class someClass: def __init__(self): self.x = 0; def getValue(self, v) myGlobalDictionary.getVal(v) myGlobalDictionary doesn't seem to be visible to my someClass methods. Why? What should I do? Is it an oversight that you forgot the ':' on the getValue definition? You also forgot to do the return. I say the code should look like: def getValue(self,v) : return myGlobalDictionary[v] I am also confused as to what getVal() does. Chaz -- http://mail.python.org/mailman/listinfo/python-list
Re: what is the keyword is for?
On Wed, 16 Aug 2006 10:06:03 +0200, Marc 'BlackJack' Rintsch [EMAIL PROTECTED] wrote: In [14]: a is b Out[14]: True In [15]: a == b Out[15]: False In [16]: a Out[16]: nan On my platform the division results in Not A Number. Two NaNs compared are always `False`. You could argue that this is the very same NaN but to get this effect the interpreter has to take care that every NaN produced while a program is running is unique. Quite huge overhead for such a corner case IMHO. The interpreter isn't doing anything special; nans have [the equivalent of] an __eq__ method that always returns False. Regards, Dan -- Dan Sommers http://www.tombstonezero.net/dan/ I wish people would die in alphabetical order. -- My wife, the genealogist -- http://mail.python.org/mailman/listinfo/python-list
Re: programming with Python 3000 in mind
Steven D'Aprano [EMAIL PROTECTED] wrote in message news:[EMAIL PROTECTED] (1) How far away is Python 3000? Years away, although not that many years. Three? Four? Try 1 1/2. Guido hopes to release 3.0a1 next January and 3.0 final a year after. (2) Will there be automated tools for converting source code from Python 2 to Python 3000? Almost certainly. There will be tools for detecting things that need examination. Complete auto conversion will probably not be possible. One way to program for the future is to import the future, in particular, 'integer division'. Terry Jan Reedy -- http://mail.python.org/mailman/listinfo/python-list
Re: programming with Python 3000 in mind
Steven D'Aprano wrote: On Tue, 15 Aug 2006 13:16:27 -0700, beliavsky wrote: The current beta version of Python is 2.5 . How can a Python programmer minimize the number of changes that will be needed to run his code in Python 3000? In general, he should know what is being removed from Python 3000 and if possible use the modern analogs in Python. In general, you can't, as Python 3000 hasn't been nailed down yet. You shouldn't be asking How do I write for a language that doesn't exist yet? but instead should ask: (1) How far away is Python 3000? Years away, although not that many years. Three? Four? Two. (2) Will there be automated tools for converting source code from Python 2 to Python 3000? Almost certainly. Yes. (3) Once Python 3000 is released, will Python 2 still be supported and if so, for how long? I'm sure there will be a nice long transition period, and if the Python developers don't want to support Python 2, it will be a wonderful opportunity for some commercial operation to charge for support. For the answers to questions like these see http://video.google.com/videoplay?docid=-6459339159268485356 which is Guido's rehearsal for his OSCON presentation on Python 3000. 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
wxPython Install
Hallo James I had the same problems. But I could solve them. The problem which is left: I do not know exaktly how I solved it. I have tried a lots of times, two weeks or fight against dependency-problems. In FedoraCore5 I did: yum update yum yum install python python-2.4.2-3.2.1 yum install python-devel python-devel-2.4.2-3.2.1 you need gtk+-1.2.10-50 and glib-1.2.10-18.2.2 which was already installed by FedoraCore5 with wxPython I had a lots of problems. Lots of tries to install from the tarball with lots of dependency-problems. http://www.wxpython.org/download.php Now I have got wxPython-2.6.3.2-1.fc5 installed, but, excuse me, I really don't know anymore what at least helped. Did you solve your problem? Because I am writing a documentation for wiki I could need your experience. Thanks Philipp -- http://mail.python.org/mailman/listinfo/python-list
Re: Printing n elements per line in a list
John Machin wrote: Gerard Flanagan wrote: just variations on previous answers: rng = range(1,101) #ad hoc for line in ( rng[i:i+5] for i in xrange(0,100,5) ): print ' '.join(map(str,line)) #in general def lines( seq, count=1 ): n = len(seq) for x in ( seq[i:i+count] for i in xrange(0,n,count) ): yield x Don't those last two lines deflate to: for i in xrange(0,n,count): yield seq[i:i+count] ??? Yes! Thank you. (pre-caffeine...) Gerard -- http://mail.python.org/mailman/listinfo/python-list
Re: programming with Python 3000 in mind
Kay Schluehr wrote: Fredrik Lundh wrote: [EMAIL PROTECTED] wrote: The current beta version of Python is 2.5 . How can a Python programmer minimize the number of changes that will be needed to run his code in Python 3000? by ignoring it, until it exists. And why not ignoring it, when it comes to exist? The risk of Python 3000 being ignored or marginalised may increase in direct proportion to the amount of exotic new stuff introduced upon its release, mostly because people have a large amount of code that may not work with an extensively modified language, library and runtime (although the latter is only a remote possibility), and because newcomers may not see Python 3000 as significantly interesting to adopt in preference to other languages. This observation, which I'm sure I've stated before, seems to have influenced (perhaps coincidentally) various pronouncements about how conservative Python 3000 will be, at least when compared to the expectations of the python-3000 mailing list where various participants seem obsessed with reenacting 20th century Types-SIG mailing list discussions and reproducing works with varying degrees of similarity to the conclusions of that old activity: http://www.python.org/community/sigs/retired/types-sig/ Note that links to the Types-SIG archives are broken on python.org, but the archives are viewable via ASPN: http://aspn.activestate.com/ASPN/Mail/Browse/Plain/types-sig/ Ultimately, and to the disappointment of a few people, Python 3000's benefits may very well seem incremental, if only to avoid fracturing the community. Paul -- http://mail.python.org/mailman/listinfo/python-list
Defining our own types?
Hello: I know this will probably turn about to be another dumb question and I know I have asked a few really dumb ones lately on this list, but I am hoping otherwise this time: suppose I type: ip = 123.45.67.89 (no quotes) - is it possible (maybe by catching an exception), to have this automatically converted to an ip address and maybe have the exception convert this into: ip = make_ip_address (123, 45, 67, 89) Or even better, if possible. Can I define my own type IP = BYTE + '.' + BYTE + '.' + BYTE + '.' + BYTE BYTE = in range(256) and have Python over-ride its rules so that if I type in a number followed by a dot followed by number followed by a dot followed by a number followed by a dot and another number, it can call make_ip_address() on the value? Thanks in advance: Michael Yanowitz -- http://mail.python.org/mailman/listinfo/python-list
Re: Defining our own types?
Michael Yanowitz wrote: Hello: I know this will probably turn about to be another dumb question and I know I have asked a few really dumb ones lately on this list, but I am hoping otherwise this time: suppose I type: ip = 123.45.67.89 (no quotes) - is it possible (maybe by catching an exception), to have this automatically converted to an ip address and maybe have the exception convert this into: ip = make_ip_address (123, 45, 67, 89) Or even better, if possible. Can I define my own type IP = BYTE + '.' + BYTE + '.' + BYTE + '.' + BYTE BYTE = in range(256) and have Python over-ride its rules so that if I type in a number followed by a dot followed by number followed by a dot followed by a number followed by a dot and another number, it can call make_ip_address() on the value? No, because the interpreter will raise a syntax error rather than compiling the code. 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: Printing n elements per line in a list
In article [EMAIL PROTECTED], Dan Sommers [EMAIL PROTECTED] wrote: Perhaps not the prettiest, but I can't think of anything simpler to read six months from now: counter = 0 for an_element in the_list: print an_element, counter = counter + 1 if counter == n: print counter = 0 for counter, an_element in enumerate(the_list): print an_element, if not (counter+1) % n: print # Plus the final print fixed in an earlier follow-up: if len(the_list) % n: print -- \S -- [EMAIL PROTECTED] -- http://www.chaos.org.uk/~sion/ ___ | Frankly I have no feelings towards penguins one way or the other \X/ |-- Arthur C. Clarke her nu becomeþ se bera eadward ofdun hlæddre heafdes bæce bump bump bump -- http://mail.python.org/mailman/listinfo/python-list
Re: what is the keyword is for?
Simon Forman [EMAIL PROTECTED] wrote: Python 2.4.3 (#2, Apr 27 2006, 14:43:58) [GCC 4.0.3 (Ubuntu 4.0.3-1ubuntu5)] on linux2 Type help, copyright, credits or license for more information. | a = b = 1e1000 / 1e1000 | a is b True | a == b False I agree with you: $ python Python 2.4.1 (#2, May 5 2005, 11:32:06) [GCC 3.3.5 (Debian 1:3.3.5-12)] on linux2 Type help, copyright, credits or license for more information. a = b = 1e1000 / 1e1000 a is b True a == b False Or maybe I don't: $ python2.3 Python 2.3.5 (#2, Sep 4 2005, 22:01:42) [GCC 3.3.5 (Debian 1:3.3.5-13)] on linux2 Type help, copyright, credits or license for more information. a = b = 1e1000 / 1e1000 a is b True a == b True See: http://mail.python.org/pipermail/python-bugs-list/2004-February/022133.html -- \S -- [EMAIL PROTECTED] -- http://www.chaos.org.uk/~sion/ ___ | Frankly I have no feelings towards penguins one way or the other \X/ |-- Arthur C. Clarke her nu becomeþ se bera eadward ofdun hlæddre heafdes bæce bump bump bump -- http://mail.python.org/mailman/listinfo/python-list
Re: Printing n elements per line in a list
Yu-Xi Lim wrote: John Machin wrote: How did you avoid division when testing for leap year? Well, you're testing for a modulus, not really a division, so a nasty hack: def isleapyear(year): return not year3 works for 1901-2099. But programming like this causes all kinds of problems in future. Let's just hope there aren't too many 1MHz 8-bit computers left by then. No, I meant a wider range, at least 1 = year = . And it's not only 1MHz 8-bit computers where non-nasty division/modulus avoidance hacks can come in handy -- IIRC the millicode for the 32-bit HP PA-RISC architecture takes 32 divide-step instructions to do an unsigned 32-bit division. Division is intrinsically relatively slow on most boxes, but division by a non-power-of-2 constant can be sped up, and so can x % constant == 0. Cheers, John -- http://mail.python.org/mailman/listinfo/python-list
classes on GladeGen
Hi. I create simple program using glade and GladeGen. In main.py is main class and in wind.py is wind class. In main class is entry1 and button1. When I click on button1 I open wind class wind.Wind() In wind class is entry1 field when I type some values and how can I send this value to main class. When I type main.Main().widgets['entry1'].set_text(something) it open new class but I want do it in window which is open How to do it? Rafal -- http://mail.python.org/mailman/listinfo/python-list
Current module reference
HiHow do I get a reference for the current module I'm in ?I have a package called services with a __init__.pythat need to use getattr() to fill out a hash whithmy package attributes. But to use getattr, I need a object that references my package (kind of this this reference in Java).How can I do it ? the only way I found to o this is to call get attr from anothermodule that imports the services package. But I suppose it's not the only wayThanks for your helpMiguel-- Miguel Galves - Engenheiro de ComputaçãoJá leu meus blogs hoje? Para geeks http://log4dev.blogspot.com Pra pessoas normaishttp://miguelgalves.blogspot.comNão sabendo que era impossível, ele foi lá e fez... -- http://mail.python.org/mailman/listinfo/python-list
Optimization of __len__() in cgi.py
I have a suggestion for speeding up the performance of code like this: fields = cgi.FieldStorage() if fields: ... which, as it turns out, invokes FieldStorage.__len__(), which in turn calls FieldStorage.keys(), which builds a list of keys by hand, taking several minutes for large forms. This implementation of keys() reduces the amount of time taken by several orders of magnitude: def keys(self): return {}.fromkeys([i.name for i in self.list]).keys() Is there a better place for submitting suggestions like this? Bob Kline -- http://mail.python.org/mailman/listinfo/python-list
Re: Current module reference
Miguel Galves wrote: Hi How do I get a reference for the current module I'm in ? I have a package called services with a __init__.py that need to use getattr() to fill out a hash whith my package attributes. But to use getattr, I need a object that references my package (kind of this this reference in Java). How can I do it ? the only way I found to o this is to call get attr from another module that imports the services package. But I suppose it's not the only way sys.modules[__name__] ? 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: recommended general-purpose string template packages?
vj wrote: I use preppy from reportlab: http://www.reportlab.org/preppy.html wow. thanks for the link. I second you on pretty. It is ultra-simple and nothing but a gateway to python. also, reportlab makes a number of high-quality open source python wares. -- http://mail.python.org/mailman/listinfo/python-list
RE: What would be the best way to run python client in the background
| [gel] | | | I have written a python client server app [...] | | I want to run the client end of the app more or less invisibly | | (no console) on the XP clients when ever a users logs on. While this isn't answering the question you first asked, might I suggest an alternative approach? Obviously, I'm working from no more than the sketch you gave of your app and its requirements, but might it be worth turning the problem on its head, and using WMI? Advantages: 1) WMI will -- almost certainly -- already be running on your target machines. No need to install your own service. 2) WMI has a fair range of mechanisms for determining what processes are starting, stopping, etc. and for manipulating them remotely. 3) You can, at least in theory, access any number of machines from a central server, and with a bit of judicious threading or looping, you should be able to generate a fair bit of resilience to machine dropouts etc. Disadvantages: 1) What you're doing may be far more complex than you've outlined, requiring a local service per target machine for other reasons. 2) You may have already invested some amount of time and effort in developing an app which does what you want. 3) I may have entirely misunderstood what you're trying to do in any case. If you're interested and want a code sample, let me know. If you're not, that's fine. TJG This e-mail has been scanned for all viruses by Star. The service is powered by MessageLabs. For more information on a proactive anti-virus service working around the clock, around the globe, visit: http://www.star.net.uk -- http://mail.python.org/mailman/listinfo/python-list
Re: idea on how to get/set nested python dictionary values
[EMAIL PROTECTED] wrote: | would use a recursive approach for this - given that you have a sort of recursive datastructure: py def SetNewDataParam2(Data, NewData): ... if type(Data[Data.keys()[0]]) == type(dict()): ... SetNewDataParam2(Data[Data.keys()[0]], NewData) ... else: ... Data[Data.keys()[0]] = NewData ... Data[Data.keys()[0]] is used 3 times in the above code. Is there some way to factor out that usage? I'm just starting python but I'm always on the lookout for DRY :) -- http://mail.python.org/mailman/listinfo/python-list
Re: Optimization of __len__() in cgi.py
In [EMAIL PROTECTED], Bob Kline wrote: I have a suggestion for speeding up the performance of code like this: fields = cgi.FieldStorage() if fields: ... which, as it turns out, invokes FieldStorage.__len__(), which in turn calls FieldStorage.keys(), which builds a list of keys by hand, taking several minutes for large forms. This implementation of keys() reduces the amount of time taken by several orders of magnitude: def keys(self): return {}.fromkeys([i.name for i in self.list]).keys() This does not maintain the order of `self.list`. Don't know if there's code relying on this. In a recent Python version one could use `set()` and a generator expression:: return list(set(item.name for item in self.list)) But maybe it's even faster to change `FieldStorage.__len__()` to return the length of `self.list` directly without the need to create an intermediate list that's thrown away immediately. Ciao, Marc 'BlackJack' Rintsch -- http://mail.python.org/mailman/listinfo/python-list
Re: trying to reach kevin smith, author of plastex
On 2006-08-15 15:28:36 -0400, metaperl [EMAIL PROTECTED] said: Email to Kevin Smith regarding his plastex package failed. I hope he read this group. The tarball that he needs to reproduce the error is here: http://arc.livingcosmos.org/wolfram-fruit2/wolfram-fruit.tar.gz Hi, when attempting to type plastex wolfram-fruit.tex on the attached latex document, I got some errors. The main issue is that I hadn't implemented the wrapfig package yet. plasTeX tried to load it natively, but it was a bit too complicated. The good news is that it was very simple to implement in Python. I've pushed my changes to the CVS repository, but I probably won't be creating a new release for a while. If you need a fix right away, you can either check out the CVS project, or simply download the two needed files from the URLs below and copy them into your plasTeX installation. BTW, thanks for the test case. Copy to plasTeX/Packages/wrapfig.py http://plastex.cvs.sourceforge.net/*checkout*/plastex/plastex/plasTeX/Packages/wrapfig.py?revision=1.1 Copy to plasTeX/Renderers/XHTML/wrapfig.zpts http://plastex.cvs.sourceforge.net/*checkout*/plastex/plastex/plasTeX/Renderers/XHTML/wrapfig.zpts?revision=1.1 Kevin D. Smith -- http://mail.python.org/mailman/listinfo/python-list
Re: round not rounding to 0 places
In article [EMAIL PROTECTED], Tim Leslie [EMAIL PROTECTED] wrote: On 16 Aug 2006 00:19:24 -0700, Fuzzydave [EMAIL PROTECTED] wrote: I have been using a round command in a few places to round a value to zero decimal places using the following format, round('+value+', 0) but this consistantly returns the rounded result of the value to one decimal place with a zero EG: 4.97 is returned as 5.0 when i want it returned as 5, does anyone know why this is and if i can get the round to make the value 5? round returns a float. You probably want to convert it to an int. int(round(4.97)) 5 . . . I'm surprised no one has recommended %.0f % 4.97 -- http://mail.python.org/mailman/listinfo/python-list
Adding a char inside path string
Hi, I get path strings from a DB like: \\serverName\C:\FolderName1\FolderName2\example.exe I am writing a script that can give me access to that exe file. But problem is that string is not universal path, I need to add C$. Any idea how I can add $ char in that string. ServerName is not fixed length. It could be any chars length. Thank you, hj -- http://mail.python.org/mailman/listinfo/python-list
Re: Adding a char inside path string
Hitesh wrote: I get path strings from a DB like: \\serverName\C:\FolderName1\FolderName2\example.exe I am writing a script that can give me access to that exe file. But problem is that string is not universal path, I need to add C$. Any idea how I can add $ char in that string. ServerName is not fixed length. It could be any chars length. upath = path.replace(C:, C$) /F -- http://mail.python.org/mailman/listinfo/python-list
Re: Defining our own types?
Michael Yanowitz wrote: Hello: I know this will probably turn about to be another dumb question and I know I have asked a few really dumb ones lately on this list, but I am hoping otherwise this time: suppose I type: ip = 123.45.67.89 (no quotes) - is it possible (maybe by catching an exception), to have this automatically converted to an ip address and maybe have the exception convert this into: ip = make_ip_address (123, 45, 67, 89) This will fail already on the parser level. The tokenizer recogizes '123.45' as a number as well as '.67' and '.89' and can't fit them together to something meaningfull. So you must adapt the tokenizer to accept '123.45.67.89' as a number and handle the corresponding NUMBER token by visiting the syntax tree later on i.e. returning either a NUMBER or a function call. I've written a framework that lets you do this [1] but be aware that you actually create a new language. Personally I don't think it's worth the effort and would define an IP object instead: ip = IP (123, 45, 67, 89) and/or ip = IP (123.45.67.89) Regards, Kay [1] http://www.fiber-space.de/EasyExtend/doc/EE.html -- http://mail.python.org/mailman/listinfo/python-list
Re: Memory usage of an 'empty' python interpreter
Are you sure ps is reporting in bytes not KB? The bare interpreter in Windows is 3368KB. Where did you get that from? With Python 2.4.3, on my machine (Win XP SP2): C:\junkdir \python24\python* [snip] 29/03/2006 05:35 PM 4,608 python.exe 29/03/2006 05:35 PM 1,871,872 python24.dll 29/03/2006 05:35 PM 5,120 pythonw.exe He's asking for the memory required, not the disk space used by the exe. The 3368KB is reported by the Task Manager. -- http://mail.python.org/mailman/listinfo/python-list
Re: programming with Python 3000 in mind
[EMAIL PROTECTED] wrote: The current beta version of Python is 2.5 . How can a Python programmer minimize the number of changes that will be needed to run his code in Python 3000? Since we don't know what Python 3000 will look like yet (it's still in very early development), that is a question that can't be answered today. Skip It may not be answerable precisely, but it most likely can be answered in general terms. As far as I can tell, there is one really major, overwhelmingly large change in 3.0, and that is making the str class unicode, with the corresponding elimination of the 8-bit string type in favor of a new bytes type. That also implies lots of changes in the I/O classes as well. In comparison, the elimination of the print statement is a so-what. It can be handled by a conversion program. Most of the rest of the changes seem to be either forward compatable or easily handable by a conversion program. The change in the raise statement, for example, can be handled right now. John Roth -- http://mail.python.org/mailman/listinfo/python-list
Re: inheritance?
Steven D'Aprano wrote: On Tue, 15 Aug 2006 19:35:11 -0700, KraftDiner wrote: I have two classes: class implicitClass: def __init__(self): def isIVR(self): #This is a class private method. The convention is to flag classes as private with a leading underscore: def _isIVR(self): or double underscores for really private, no, honestly: def __isIVR(self): but google on python name mangling before using that. [snip] As you can see the interface is almost identical. How can I define a base class that will abstract the type such that I don't know if its really and inplicit or explicit object? Something like this? class baseClass: def __init__(self): raise NotImplementedError(Don't instantiate the base class!) def fromfile(self): def getElement(self): # etc. class implicitClass(baseClass): def __init__(self): # code def _isIVR(self): # code def fromfile(self, fileObj, byteOrder): # code # etc. Now, you can define instance = implicitClass() or explicitClass(). When you come to use instance, you don't need to know whether it is one or the other. If you need to type-test, call isinstance(instance, baseClass). The only minor issue is that the fromfile method has a different interface. If you really want to do duck typing, they need to have the same interface. That might be as simple as: class explicitClass(baseClass): def fromfile(self, fileObj, byteOrder=None): # byteOrder is ignored; it is included only for # compatibility with implicitClass Is that what you're asking for? Yes I believe so but in fromfile I want to call the appropriate method depending on the in a parameter in fromfile... like: class baseClass: def fromfile(self, fileObj, byteOrder=None, explicit=False): if explicit: call fromfile of explicit class else: call fromfile of implicit class How is that done? -- Steven D'Aprano -- http://mail.python.org/mailman/listinfo/python-list
Re: classes on GladeGen
On Aug 16, 2006, at 8:05 AM, Rafal Janas wrote: Hi. I create simple program using glade and GladeGen. In main.py is main class and in wind.py is wind class. In main class is entry1 and button1. When I click on button1 I open wind class wind.Wind() In wind class is entry1 field when I type some values and how can I send this value to main class. When I type main.Main().widgets['entry1'].set_text(something) it open new class but I want do it in window which is open How to do it? I assume you're referring to GladeGen that was in Linux Journal (July 2004 I think) - I'm the person who wrote it. main.Main() creates a new instance of the class, but you want to use the existing instance. A simple way around this is to pass the instance of the main class to the wind class when you create it. Assuming you're in a method of the main class when you create it do something like: self.wind = wind(self) and then your wind constructor includes: def __init__(self, main): self.main = main and then in your wind method that you want to set the text entry, you write: self.main.widgets['entry1].set_text('something') HTH, Dave -- http://mail.python.org/mailman/listinfo/python-list
Re: Error with: pickle.dumps(numpy.float32)
I have reproduced the error with Numpy 1.0b1 The output with v.1.0b1 reads: PicklingError: Can't pickle type 'float32scalar': it's not found as __builtin__.float32scalar Has anyone else encountered this? Thanks, Iljya Iljya wrote: Hello, I need to pickle the type numpy.float32 but encounter an error when I try to do so. I am able to pickle the array itself, it is specifically the type that I cannot pickle. I am using: Numpy version: 0.9.4 Python version: 2.4.3 Windows XP Here is the code that reproduces the error: __ import numpy import pickle pickle.dumps(numpy.float32) Output: PicklingError: Can't pickle type 'float32_arrtype': it's not found as __builtin__.float32_arrtype __ Any suggestions would be much appreciated. Thanks, Iljya Kalai -- http://mail.python.org/mailman/listinfo/python-list
Question on extracting doc strings from .py files
If you type: import os; help(os) Then you see the following (see below). But I don't understand where the line MODULE DOCS http://www.python.org/doc/current/lib/module-os.html is encoded in os.py anywhere. If you search for the words 'module-os.html' you find nothing. Ditto for 'MODULE DOCS' --- output follows --- Help on module os: NAME os - OS routines for Mac, DOS, NT, or Posix depending on what system we're o n. FILE /usr/lib/python2.4/os.py MODULE DOCS http://www.python.org/doc/current/lib/module-os.html DESCRIPTION This exports: - all functions from posix, nt, os2, mac, or ce, e.g. unlink, stat, etc. - os.path is one of the modules posixpath, ntpath, or macpath - os.name is 'posix', 'nt', 'os2', 'mac', 'ce' or 'riscos' - os.curdir is a string representing the current directory ('.' or ':') - os.pardir is a string representing the parent directory ('..' or '::') -- http://mail.python.org/mailman/listinfo/python-list
Re: what is the keyword is for?
Sybren Stuvel [EMAIL PROTECTED] wrote: Dan Bishop enlightened us with: a = b = 1e1000 / 1e1000 a is b True a == b False If a is b then they refer to the same object, hence a == b. It cannot be otherwise, unless Python starts to defy logic. I copied your Python also needs to respect standards (such as IEEE 754 for floating-point arithmetic, and the SQL standards) which do specify the existence of special objects that are not equal to anything including themselves -- Nan and NULL respectively for these two standards. We're talking about extremely widespread international standards developed by huge body of professionals which do include professional logicians, so I doubt they defy logic. Python tries to delegate FP to the underlying hardware and SQL to an external relational DB engine, so it should be as compliant as the pieces of infrastructure it's using -- which seems to me to be a good architectural decision (not just for speed and ease of coding, but to ensure any anomaly is somebody else's fault:-). Alex -- http://mail.python.org/mailman/listinfo/python-list
How to delete a directory tree in FTP
I connect to a FTP server which can be either unix or windows server. Once in the FTP session, I would like to delete a directory tree on the server. Is there a command that will do this? If not, can someone point me to a right direction? Thanks! -- http://mail.python.org/mailman/listinfo/python-list
Re: Question on extracting doc strings from .py files
metaperl wrote: import os; help(os) Then you see the following (see below). But I don't understand where the line MODULE DOCS http://www.python.org/doc/current/lib/module-os.html is encoded in os.py anywhere. If you search for the words 'module-os.html' you find nothing. Ditto for 'MODULE DOCS' try searching for 'www.python.org/doc/current' /F -- http://mail.python.org/mailman/listinfo/python-list
Re: Optimization of __len__() in cgi.py
Bob Kline wrote: I have a suggestion for speeding up the performance of code like this: fields = cgi.FieldStorage() if fields: ... which, as it turns out, invokes FieldStorage.__len__(), which in turn calls FieldStorage.keys(), which builds a list of keys by hand, taking several minutes for large forms. This implementation of keys() reduces the amount of time taken by several orders of magnitude: def keys(self): return {}.fromkeys([i.name for i in self.list]).keys() Is there a better place for submitting suggestions like this? Post a RFE to the Python Tracker at http://sourceforge.net/tracker/?group_id=5470atid=355470 If you want, assign it to me (gbrandl). Georg -- http://mail.python.org/mailman/listinfo/python-list
Re: idea on how to get/set nested python dictionary values
metaperl wrote: [EMAIL PROTECTED] wrote: | would use a recursive approach for this - given that you have a sort of recursive datastructure: py def SetNewDataParam2(Data, NewData): ... if type(Data[Data.keys()[0]]) == type(dict()): ... SetNewDataParam2(Data[Data.keys()[0]], NewData) ... else: ... Data[Data.keys()[0]] = NewData ... Data[Data.keys()[0]] is used 3 times in the above code. Is there some way to factor out that usage? I'm just starting python but I'm always on the lookout for DRY :) Bearophilehugs gave a much better answer than I did, it also takes away the need to evaluate the keys() more than one time -- http://mail.python.org/mailman/listinfo/python-list
QListView and text
Hello, Can I get all text from first column in QListView? How? PS. Sorry for my bad English ;) Than you, Vojta -- http://mail.python.org/mailman/listinfo/python-list
Re: Optimization of __len__() in cgi.py
Marc 'BlackJack' Rintsch wrote: def keys(self): return {}.fromkeys([i.name for i in self.list]).keys() This does not maintain the order of `self.list`. Don't know if there's code relying on this. Such code would be flying in the face of an implication that the order of the keys is *not* preserved, as the keys() method is documented as Dictionary style keys() method (and the documentation for dictionary keys() says ... listed in an arbitrary order which is non-random ...). If it were decided that the behavior of keys() should be preserved even to the extent of preserving the order of the first occurrence of each field name, then the optimization could just be moved to __len__(): def __len__(self): return len({}.fromkeys([i.name for i in self.list])) But maybe it's even faster to change `FieldStorage.__len__()` to return the length of `self.list` directly without the need to create an intermediate list that's thrown away immediately. This approach also risks breaking code that assumes it's getting the number of unique field names (an assumption which in this case would be justified, given the documentation of the keys() method quoted above). Bob -- http://mail.python.org/mailman/listinfo/python-list
Re: Optimization of __len__() in cgi.py
Sybren Stuvel wrote: FieldStorage.__nonzero__ tried first if it exists. You might want to use that for more optimization. Excellent suggestion! It would be nice if this were adopted to supplement the original optimization, rather than replace it. Bob -- http://mail.python.org/mailman/listinfo/python-list
Re: Adding a char inside path string
Thank you Fredrik. That works for a string. But I am getting list of tuples from DB. rows = [('\\serverName\C:\FolderName1\FolderName2\example.exe',), ('\\serverName\C:\FolderName1\FolderName2\example2.exe',), ('\\serverName\C:\FolderName1\FolderName2\example3.exe',), ('\\serverName\C:\FolderName1\FolderName2\example4.exe',)] I tried this: for i in rows: row = str(i) path = row.replace(C: , c$) print path I am getting path something like ('\\serverName\c$:\FolderName1\FolderName2\example.exe',) How on the earth I can remove those paranthesis? ty hj Fredrik Lundh wrote: Hitesh wrote: I get path strings from a DB like: \\serverName\C:\FolderName1\FolderName2\example.exe I am writing a script that can give me access to that exe file. But problem is that string is not universal path, I need to add C$. Any idea how I can add $ char in that string. ServerName is not fixed length. It could be any chars length. upath = path.replace(C:, C$) /F -- http://mail.python.org/mailman/listinfo/python-list
python-dev and setting up setting up f2py on Windows XP
Hi, I've been trying to get f2py working on Windows XP, I am using Python 2.3. I'm new to python so I'm not too sure what I'm doing yet. I need the python-dev package to run f2py. I have been told this is just the header files and .dll and I need to put them somewhere my C compiler can find them. I've searched the web and none of the python-dev packages I've found are for windows. I was wondering is this automatically part of the windows version and if so how I set it up so my C compiler can find them. If it is not part of the standard package does anyone know where I can find it??? Any help at all would be much appreciated. Thanks, Sile -- http://mail.python.org/mailman/listinfo/python-list
Re: inheritance?
Yes I believe so but in fromfile I want to call the appropriate method depending on the in a parameter in fromfile... like: class baseClass: def fromfile(self, fileObj, byteOrder=None, explicit=False): if explicit: call fromfile of explicit class else: call fromfile of implicit class class baseClass: def fromfile(self, fileObj, **kwargs): raise NotImplementedError() class implicitClass: def fromfile(self, fileObj, **kwargs): byteOrder = kwargs.get('byteOrder', None) # do something class explicitClass: def fromfile(self, fileObj, **kwargs): # do something -- http://mail.python.org/mailman/listinfo/python-list
Re: QListView and text
On Wednesday 16 August 2006 4:43 pm, Vojta Drbohlav wrote: Hello, Can I get all text from first column in QListView? How? PS. Sorry for my bad English ;) Than you, Vojta Assuming you are talking about PyQt v3 rather than v4 then use the columnText() method. Phil -- http://mail.python.org/mailman/listinfo/python-list
QListView and text
Oh, sorry. I explained it bad. I use PyQt3 and I need text from all rows. -- http://mail.python.org/mailman/listinfo/python-list
Re: Adding a char inside path string
In [EMAIL PROTECTED], Hitesh wrote: That works for a string. But I am getting list of tuples from DB. rows = [('\\serverName\C:\FolderName1\FolderName2\example.exe',), ('\\serverName\C:\FolderName1\FolderName2\example2.exe',), ('\\serverName\C:\FolderName1\FolderName2\example3.exe',), ('\\serverName\C:\FolderName1\FolderName2\example4.exe',)] I tried this: for i in rows: row = str(i) path = row.replace(C: , c$) print path I am getting path something like ('\\serverName\c$:\FolderName1\FolderName2\example.exe',) How on the earth I can remove those paranthesis? Well, don't convert the tuple to a string but get the string out of the tuple instead. for row in rows: path = row[0].replace('C:', 'C$') print path Ciao, Marc 'BlackJack' Rintsch -- http://mail.python.org/mailman/listinfo/python-list
Re: QListView and text
On Wednesday 16 August 2006 5:29 pm, Vojta Drbohlav wrote: Oh, sorry. I explained it bad. I use PyQt3 and I need text from all rows. row = listView.firstChild() while row: for col in range(listView.columns()): text = row.text(col) row = row.nextSibling() ...or something like that. Phil -- http://mail.python.org/mailman/listinfo/python-list
Re: Adding a char inside path string
On 16/08/06, Dennis Lee Bieber [EMAIL PROTECTED] wrote: On 16 Aug 2006 09:00:57 -0700, Hitesh [EMAIL PROTECTED] declaimed the following in comp.lang.python: Thank you Fredrik. That works for a string. But I am getting list of tuples from DB. rows = [('\\serverName\C:\FolderName1\FolderName2\example.exe',), ('\\serverName\C:\FolderName1\FolderName2\example2.exe',), ('\\serverName\C:\FolderName1\FolderName2\example3.exe',), ('\\serverName\C:\FolderName1\FolderName2\example4.exe',)] I tried this: for i in rows: row = str(i) path = row.replace(C: , c$) print path I am getting path something like ('\\serverName\c$:\FolderName1\FolderName2\example.exe',) How on the earth I can remove those paranthesis? By accessing the contents of the tuple, not the tuple itself rows = [('\\serverName\C:\FolderName1\FolderName2\example.exe',), ('\\serverName\C:\FolderName1\FolderName2\example2.exe',), ('\\serverName\C:\FolderName1\FolderName2\example3.exe',), ('\\serverName\C:\FolderName1\FolderName2\example4.exe',)] rows [('\\serverName\\C:\\FolderName1\\FolderName2\\example.exe',), ('\\serverName\\C:\\FolderName1\\FolderName2\\example2.exe',), ('\\serverName\\C:\\FolderName1\\FolderName2\\example3.exe',), ('\\serverName\\C:\\FolderName1\\FolderName2\\example4.exe',)] modRows = [itm[0].replace(C:, C$) for itm in rows] modRows ['\\serverName\\C$\\FolderName1\\FolderName2\\example.exe', '\\serverName\\C$\\FolderName1\\FolderName2\\example2.exe', '\\serverName\\C$\\FolderName1\\FolderName2\\example3.exe', '\\serverName\\C$\\FolderName1\\FolderName2\\example4.exe'] Try modRows = ['\\'+itm[0].replace(:, $) for itm in rows] It will work with any drive letter and makes an allowance for the first escape character. modRows ['serverName\\C$\\FolderName1\\FolderName2\\example.exe', 'serverName\\C$\\FolderName1\\FolderName2\\example2.exe', etc for r in modRows: print r \\serverName\C$\FolderName1\FolderName2\example.exe \\serverName\C$\FolderName1\FolderName2\example2.exe ..etc :) -- http://mail.python.org/mailman/listinfo/python-list
ELAN IT - Python Developer - South East
A successful company with global ties is seeking a Software Developer to work at their site in Reading. As a company they are expanding fast and want good developers to join and progress with them, offering the opportunity for a successful career. My client is a market leading provider of B2B software who will offer expert training to ensure their staff are the best at what they do. They are looking for a candidate with at least 2 years programming experience in either java, JavaScript, c++, or python. The right candidates will be highly technical and have a desire to programme in Python. They are a highly progressive team and work in a dynamic environment. Please send CV for further details. £Competitive Salary£ plus excellent benefits and progression Jan de Swart Elan IT | 1st Floor New Minster House 27 - 29 Baldwin Street | Bristol, BS1 1LT Tel:01179309737 Fax:01179304205 'Recruitment Consultancy of the Year 2003 2004' - 'Computing Awards for Excellence' Candidate Attraction Reward Scheme Do you have a friend or colleague that is looking for a new position? If so, please pass their details onto Elan and we will reward you with Virgin Vouchers when we successfully place them in a permanent position or on a contract assignment (Terms and Conditions apply). For more information on Virgin Vouchers please visit:- www.virgin.com/virginvoucher http://www.virgin.com/virginvoucher - - Elan is the world's leading ITT recruitment company. For more information go to www.ElanIT.com. - - The contents of this email and any attachment are confidential to the addressee and are intended solely for the addressee's use. If you are not the addressee, you have received this email in error. If so, you must not disclose, copy or take any action in reliance on this email and any attachment. If you received this in error, please contact the sender and delete the material from your computer. Although this email and any attachment have been checked for viruses, no liability is accepted by Elan in this regard. The recipient should carry out virus and other checks as it deems necessary to ensure that this email and any attachments will not adversely affect its systems or data. -- http://mail.python.org/mailman/listinfo/python-list
Re: X windows and Python?
Grant Edwards [EMAIL PROTECTED] writes: The way (well, _one_ way) it's supposed to work is you make an Xlib call to claim ownership of the selection. ... Thanks, this explanation was very interesting. It would be great if tkinter had some calls to do this stuff, which I guess means the underlying Tk needs them (I dunno if it has them). Anyway, for what I was doing, it wasn't that urgent, and I'm using an awful workaround. -- http://mail.python.org/mailman/listinfo/python-list
profanity filter
Hi guys, does anyone have any idea where I can find a profanity filter written in python? -ron -- http://mail.python.org/mailman/listinfo/python-list
Re: Error with: pickle.dumps(numpy.float32)
Iljya wrote: I have reproduced the error with Numpy 1.0b1 The output with v.1.0b1 reads: PicklingError: Can't pickle type 'float32scalar': it's not found as __builtin__.float32scalar Has anyone else encountered this? Thanks, Iljya Iljya wrote: Hello, I need to pickle the type numpy.float32 but encounter an error when I try to do so. I am able to pickle the array itself, it is specifically the type that I cannot pickle. I am using: Numpy version: 0.9.4 Python version: 2.4.3 Windows XP Here is the code that reproduces the error: __ import numpy import pickle pickle.dumps(numpy.float32) Output: PicklingError: Can't pickle type 'float32_arrtype': it's not found as __builtin__.float32_arrtype __ Any suggestions would be much appreciated. Thanks, Iljya Kalai This looks like a numpy bug. It seems that float32_arrtype's name is incomplete. Its tp_name field should start with a module name, but since it doesn't, Python assumes that it is a builtin type: import numpy numpy.float32.__module__ '__builtin__' You should report this bug either to the numpy list: https://lists.sourceforge.net/lists/listinfo/numpy-discussion or to their bug tracker: http://projects.scipy.org/scipy/numpy Ziga -- http://mail.python.org/mailman/listinfo/python-list
Re: Adding a char inside path string
Thank you all it worked!. Tim, modRows = ['\\'+itm[0].replace(:, $) for itm in rows] What are those two forward slashes for? I had to remove them otherwise I was getting output like '\\' inside list or if I print I was getting like \\\ Thanks, hj Tim Williams wrote: On 16/08/06, Dennis Lee Bieber [EMAIL PROTECTED] wrote: On 16 Aug 2006 09:00:57 -0700, Hitesh [EMAIL PROTECTED] declaimed the following in comp.lang.python: Thank you Fredrik. That works for a string. But I am getting list of tuples from DB. rows = [('\\serverName\C:\FolderName1\FolderName2\example.exe',), ('\\serverName\C:\FolderName1\FolderName2\example2.exe',), ('\\serverName\C:\FolderName1\FolderName2\example3.exe',), ('\\serverName\C:\FolderName1\FolderName2\example4.exe',)] I tried this: for i in rows: row = str(i) path = row.replace(C: , c$) print path I am getting path something like ('\\serverName\c$:\FolderName1\FolderName2\example.exe',) How on the earth I can remove those paranthesis? By accessing the contents of the tuple, not the tuple itself rows = [('\\serverName\C:\FolderName1\FolderName2\example.exe',), ('\\serverName\C:\FolderName1\FolderName2\example2.exe',), ('\\serverName\C:\FolderName1\FolderName2\example3.exe',), ('\\serverName\C:\FolderName1\FolderName2\example4.exe',)] rows [('\\serverName\\C:\\FolderName1\\FolderName2\\example.exe',), ('\\serverName\\C:\\FolderName1\\FolderName2\\example2.exe',), ('\\serverName\\C:\\FolderName1\\FolderName2\\example3.exe',), ('\\serverName\\C:\\FolderName1\\FolderName2\\example4.exe',)] modRows = [itm[0].replace(C:, C$) for itm in rows] modRows ['\\serverName\\C$\\FolderName1\\FolderName2\\example.exe', '\\serverName\\C$\\FolderName1\\FolderName2\\example2.exe', '\\serverName\\C$\\FolderName1\\FolderName2\\example3.exe', '\\serverName\\C$\\FolderName1\\FolderName2\\example4.exe'] Try modRows = ['\\'+itm[0].replace(:, $) for itm in rows] It will work with any drive letter and makes an allowance for the first escape character. modRows ['serverName\\C$\\FolderName1\\FolderName2\\example.exe', 'serverName\\C$\\FolderName1\\FolderName2\\example2.exe', etc for r in modRows: print r \\serverName\C$\FolderName1\FolderName2\example.exe \\serverName\C$\FolderName1\FolderName2\example2.exe ..etc :) -- http://mail.python.org/mailman/listinfo/python-list
Re: profanity filter
Ronny does anyone have any idea where I can find a profanity filter Ronny written in python? No, but maybe SpamBayes (or a tiny little part of it) would suit your needs. Do you want to remove profanity and let the document (email, web page, etc) pass, just score if for profanity or block it altogether? Skip -- http://mail.python.org/mailman/listinfo/python-list
Re: inheritance?
As others pointed out already, this kind of if then else determination of type is best avoided. If it looks like a duck, quakes like a duck, must be a duck. KraftDiner wrote: Steven D'Aprano wrote: On Tue, 15 Aug 2006 19:35:11 -0700, KraftDiner wrote: I have two classes: class implicitClass: def __init__(self): def isIVR(self): #This is a class private method. The convention is to flag classes as private with a leading underscore: def _isIVR(self): or double underscores for really private, no, honestly: def __isIVR(self): but google on python name mangling before using that. [snip] As you can see the interface is almost identical. How can I define a base class that will abstract the type such that I don't know if its really and inplicit or explicit object? Something like this? class baseClass: def __init__(self): raise NotImplementedError(Don't instantiate the base class!) def fromfile(self): def getElement(self): # etc. class implicitClass(baseClass): def __init__(self): # code def _isIVR(self): # code def fromfile(self, fileObj, byteOrder): # code # etc. Now, you can define instance = implicitClass() or explicitClass(). When you come to use instance, you don't need to know whether it is one or the other. If you need to type-test, call isinstance(instance, baseClass). The only minor issue is that the fromfile method has a different interface. If you really want to do duck typing, they need to have the same interface. That might be as simple as: class explicitClass(baseClass): def fromfile(self, fileObj, byteOrder=None): # byteOrder is ignored; it is included only for # compatibility with implicitClass Is that what you're asking for? Yes I believe so but in fromfile I want to call the appropriate method depending on the in a parameter in fromfile... like: class baseClass: def fromfile(self, fileObj, byteOrder=None, explicit=False): if explicit: call fromfile of explicit class else: call fromfile of implicit class How is that done? -- Steven D'Aprano -- http://mail.python.org/mailman/listinfo/python-list
Re: Open file handles?
danielx wrote: Is there an equivalent in windows? Jon wrote: Perhaps using os you could work with lsof [http://www.linuxcommand.org/man_pages/lsof8.html] Jon Thomas Bartkus wrote: This may be more of a Linux question, but I'm doing this from Python. . How can I know if anything (I don't care who or what!) is in the middle of using a particular file? This comes in context of needing to copy a file BUT only if I can verify that something else doesn't have an open write handle to that file. IOW - I need to decline the operation if something else hasn't finished writing to the file. How can I know? Thomas Bartkus yes, handle by sysinternals. www.sysinternals.com not really a python question, more along the lines of bash, which is why I could answer it -h -- http://mail.python.org/mailman/listinfo/python-list
Re: os.path.normpath
[EMAIL PROTECTED] wrote: [EMAIL PROTECTED] wrote: I am using a windows box and passing a string like "../foo/../foo2" to normpath which then returns "..\\foo2". But if this string is going into a webpage link it should really be "../foo". Is there any way to tell os.path.normpath to act like we are an a unix style box? Use posixpath.normpath() instead. I can't seem to find posixpath in the docs, but I can import posixpath and a dir shows it does indeed have a normpath. -h -- http://mail.python.org/mailman/listinfo/python-list
Re: Optimization of __len__() in cgi.py
Georg Brandl wrote: Post a RFE to the Python Tracker at http://sourceforge.net/tracker/?group_id=5470atid=355470 If you want, assign it to me (gbrandl). Done, thanks. Bob -- http://mail.python.org/mailman/listinfo/python-list
Re: QListView and text
Thank you very much. How can I move slected item up? This is no work: sel = list.currentItem() sel.moveItem(sel.itemAbove()) -- http://mail.python.org/mailman/listinfo/python-list
Re: inheritance?
Steven D'Aprano wrote: On Tue, 15 Aug 2006 19:35:11 -0700, KraftDiner wrote: I have two classes: class implicitClass: def __init__(self): def isIVR(self): #This is a class private method. The convention is to flag classes as private with a leading underscore: def _isIVR(self): or double underscores for really private, no, honestly: def __isIVR(self): but google on python name mangling before using that. [snip] As you can see the interface is almost identical. How can I define a base class that will abstract the type such that I don't know if its really and inplicit or explicit object? Something like this? class baseClass: def __init__(self): raise NotImplementedError(Don't instantiate the base class!) def fromfile(self): def getElement(self): # etc. class implicitClass(baseClass): def __init__(self): # code def _isIVR(self): # code def fromfile(self, fileObj, byteOrder): # code # etc. Now, you can define instance = implicitClass() or explicitClass(). When you come to use instance, you don't need to know whether it is one or the other. If you need to type-test, call isinstance(instance, baseClass). The only minor issue is that the fromfile method has a different interface. If you really want to do duck typing, they need to have the same interface. That might be as simple as: class explicitClass(baseClass): def fromfile(self, fileObj, byteOrder=None): # byteOrder is ignored; it is included only for # compatibility with implicitClass Is that what you're asking for? Here I tried this example and maybe this will explain the difficulties I'm having. 1) at the time the baseClass is constructed shouldn't the constructor of the appropriate type be called. 2) getName is doing nothing... class baseClass: def __init__(self): pass def fromfile(self, str): if (str == 'A'): a = typeA() else: a = typeB() def getName(self): pass class typeA(baseClass): def __init__(self): self.name='A' print 'typeA init' def fromfile(self, str=None): print 'typeA fromfile' def getName(self): print self.name class typeB(baseClass): def __init__(self): self.name='B' print 'typeB init' def fromfile(self, str=None): print 'typeB fromfile' def getName(self): print self.name bc = baseClass() bc.fromfile('A') bc.getName() bc.fromfile('B') bc.getName() bc.getName() log: typeA init typeB init -- Steven D'Aprano -- http://mail.python.org/mailman/listinfo/python-list
Re: python-dev and setting up setting up f2py on Windows XP
I'm really not familiar with the package you are trying to use, nor that familiar with what you get on windows. I would guess you did a binary installation download, and you may need to get the python source tarball instead - in order to get the files you need. Barring that, I'm certain the headers are available through sourceforge, they provide svn access for building python itself: more info @: http://www.python.org/dev/faq/ Hope this helps. Anand Sile wrote: Hi, I've been trying to get f2py working on Windows XP, I am using Python 2.3. I'm new to python so I'm not too sure what I'm doing yet. I need the python-dev package to run f2py. I have been told this is just the header files and .dll and I need to put them somewhere my C compiler can find them. I've searched the web and none of the python-dev packages I've found are for windows. I was wondering is this automatically part of the windows version and if so how I set it up so my C compiler can find them. If it is not part of the standard package does anyone know where I can find it??? Any help at all would be much appreciated. Thanks, Sile -- http://mail.python.org/mailman/listinfo/python-list
Re: profanity filter
Ronny replacement of profanity would be good, like * or so. It's Ronny for a website as opposed to checking email. Can SpamBayes be Ronny applied to comments or strings within a program? SpamBayes scores inputs which look like emails (header, blank line, body). All it does is add its score to the headers. You'd still have to elide the profanity encountered. If you have a fixed list of profane words or phrases it would probably just be easier to replace them with *** using a (set of) regular expression(s). Skip -- http://mail.python.org/mailman/listinfo/python-list
Segmentation Fault using MySQLdb and twisted
Hello, I just upgraded MySQLdb to the 1.2.0 version provided by Redhat Enterprise Linux ES4. At that point I began to get segfaults when importing twisted after MySQLdb, but not before. -- RedHat Enterprise Linux ES 4 (fully updated) Python 2.3.4 mysql-python (MySQLdb) version 1.2.0 twisted version 2.4.0 -- For example: [EMAIL PROTECTED] ~]$ python Python 2.3.4 (#1, Feb 6 2006, 10:38:46) [GCC 3.4.5 20051201 (Red Hat 3.4.5-2)] on linux2 Type help, copyright, credits or license for more information. import MySQLdb import twisted Segmentation fault [EMAIL PROTECTED] ~]$ python Python 2.3.4 (#1, Feb 6 2006, 10:38:46) [GCC 3.4.5 20051201 (Red Hat 3.4.5-2)] on linux2 Type help, copyright, credits or license for more information. import twisted import MySQLdb Any ideas? Thanks! Jason Garber --- Here is the gdb backtrace of the event: [EMAIL PROTECTED] zcore]$ gdb python GNU gdb Red Hat Linux (6.3.0.0-1.96rh) Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type show copying to see the conditions. There is absolutely no warranty for GDB. Type show warranty for details. This GDB was configured as i386-redhat-linux-gnu...(no debugging symbols found) Using host libthread_db library /lib/tls/libthread_db.so.1. (gdb) run Starting program: /usr/bin/python (no debugging symbols found) (no debugging symbols found) [Thread debugging using libthread_db enabled] [New Thread -1208486208 (LWP 4302)] (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) Python 2.3.4 (#1, Feb 6 2006, 10:38:46) [GCC 3.4.5 20051201 (Red Hat 3.4.5-2)] on linux2 Type help, copyright, credits or license for more information. (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) import MySQLdb (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) import twisted (no debugging symbols found) Program received signal SIGSEGV, Segmentation fault. [Switching to Thread -1208486208 (LWP 4302)] 0x00b849f8 in strcmp () from /lib/tls/libc.so.6 (gdb) bt #0 0x00b849f8 in strcmp () from /lib/tls/libc.so.6 #1 0x00494e9d in OBJ_NAME_new_index () from /lib/libcrypto.so.4 #2 0x0049122f in lh_free () from /lib/libcrypto.so.4 #3 0x004914ff in lh_insert () from /lib/libcrypto.so.4 #4 0x00495075 in OBJ_NAME_add () from /lib/libcrypto.so.4 #5 0x00499405 in EVP_add_cipher () from /lib/libcrypto.so.4 #6 0x00590bc7 in SSL_library_init () from /lib/libssl.so.4 #7 0x00969294 in init_ssl () from /usr/lib/python2.3/lib-dynload/_ssl.so #8 0x00d140f9 in _PyImport_LoadDynamicModule () from /usr/lib/libpython2.3.so.1.0 #9 0x00d11ea5 in PyImport_ImportFrozenModule () from /usr/lib/libpython2.3.so.1.0 #10 0x00d12303 in PyImport_ImportFrozenModule () from /usr/lib/libpython2.3.so.1.0 #11 0x00d12535 in PyImport_ImportFrozenModule () from /usr/lib/libpython2.3.so.1.0 #12 0x00d1299a in PyImport_ImportModuleEx () from /usr/lib/libpython2.3.so.1.0 #13 0x00cf1dee in _PyUnicodeUCS4_IsAlpha () from /usr/lib/libpython2.3.so.1.0 #14 0x00cca961 in PyCFunction_Call () from /usr/lib/libpython2.3.so.1.0 #15 0x00ca7637 in PyObject_Call () from /usr/lib/libpython2.3.so.1.0 #16 0x00cf92a0 in PyEval_CallObjectWithKeywords () from /usr/lib/libpython2.3.so.1.0 #17 0x00cfaca7 in _PyEval_SliceIndex () from /usr/lib/libpython2.3.so.1.0 #18 0x00cff196 in PyEval_EvalCodeEx () from /usr/lib/libpython2.3.so.1.0 #19 0x00cff45d in PyEval_EvalCode () from /usr/lib/libpython2.3.so.1.0 #20 0x00d107db in PyImport_ExecCodeModuleEx () from /usr/lib/libpython2.3.so.1.0 #21 0x00d10c0d in PyImport_ExecCodeModule () from /usr/lib/libpython2.3.so.1.0 #22 0x00d11e81 in PyImport_ImportFrozenModule () from /usr/lib/libpython2.3.so.1.0 #23 0x00d12303 in PyImport_ImportFrozenModule () from /usr/lib/libpython2.3.so.1.0 #24 0x00d12571 in PyImport_ImportFrozenModule () from /usr/lib/libpython2.3.so.1.0 #25 0x00d1299a in PyImport_ImportModuleEx () from /usr/lib/libpython2.3.so.1.0 #26 0x00cf1dee in _PyUnicodeUCS4_IsAlpha () from /usr/lib/libpython2.3.so.1.0 #27 0x00cca961 in PyCFunction_Call () from /usr/lib/libpython2.3.so.1.0 #28 0x00ca7637 in PyObject_Call () from /usr/lib/libpython2.3.so.1.0 #29 0x00cf92a0 in PyEval_CallObjectWithKeywords () from /usr/lib/libpython2.3.so.1.0 #30 0x00cfaca7 in _PyEval_SliceIndex () from /usr/lib/libpython2.3.so.1.0 #31 0x00cff196 in
It is __del__ calling twice for some instances?
Hello! It is correct behaviour for python to call __del__ on some identity of a class object more than once? In brief I shall describe a situation. Sorry for my english. For debugin purposes I'm put in my module global counters for counting __init__ and __del__ calls. This is a sample code for clearness: --- init_cnt = 0 del_cnt = 0 class foo: def __init__(self): global init_cnt init_cnt += 1 def __del__(self): global del_cnt del_cnt += 1 def stat(): print init_cnt = %d % init_cnt print del_cnt = %d % del_cnt print difference = %d % init_cnt-del_cnt --- And the result of a stat() call in some moment of time looks like so: init_cnt = 6233 del_cnt = 6234 difference = -1 It is __del__ called twice for some instance? Thanks in advance! -- GMT More Then ... -- http://mail.python.org/mailman/listinfo/python-list
trouble understanding inheritance...
This is not working the way I think it should it would appear that fromfile and getName are calling the baseClass methods which are simple passes What have I done wrong? class baseClass: def __init__(self, type): if type == 'A': self = typeA() else: self = typeB() def fromfile(self): pass def getName(self): pass class typeA(baseClass): def __init__(self): self.name='A' print 'typeA init' def fromfile(self): print 'typeA fromfile' def getName(self): print self.name class typeB(baseClass): def __init__(self): self.name='B' print 'typeB init' def fromfile(self): print 'typeB fromfile' def getName(self): print self.name a = baseClass('A') a.fromfile() a.getName() b = baseClass('B') b.fromfile() b.getName() log: typeA init typeB init -- http://mail.python.org/mailman/listinfo/python-list