ANNOUNCE: Hexerei 1.1
Hexerei 1.1! Description Hexerei is a colorful software package for Python (and optionally a web server) that assignsa color value to each word or letter in a database. Hexerei then utilizes the PIL to convert producean image consisting of color blocks which correspond to the given text. Thus, "a thousand words"become a picture! I have provided sourcecode access in HTML format for anyone to view. As all the importantfunctions are in a few scripts and run by another script, it is simple for users to import the codeand run it from a command line or interpreter. Features- Just set the permissions (witha web server) and run the code!- Tools are included for creating XHTML files on-the-fly.- Preferences can be set for many features.- Simple text documents are store encountered words and letters and to maintain a list of statistics. Licensing Hexerei is released under the GNU GPL. Links- Working example: http://ethanransdell.kicks-ass.net/python/hexerei/- On SourceForge.net: http://sourceforge.net/projects/text-hexerei/- Download Hexerei 1.1: http://sourceforge.net/project/showfiles.php?group_id=131580 MeI started learning Python in a computational linguistics class last semester and kept going! If youhave any comments, suggestions, or requests, I'd love it if you emailed me at the address below: [EMAIL PROTECTED] Ethan Ransdell [EMAIL PROTECTED] https://sourceforge.net/projects/text-hexerei/ -- http://mail.python.org/mailman/listinfo/python-announce-list Support the Python Software Foundation: http://www.python.org/psf/donations.html
error: db type could not be determined
why does the following error occur? def quit_time(): data_file = shelve.open("data.dat", "c") data_file["quit_time"] = datetime.datetime.today() print data_file["quit_time"] raw_input("enter") Traceback (most recent call last): File "D:\a\TEXT\Py\going_over\going_over.py", line 192, in -toplevel- main() File "D:\a\TEXT\Py\going_over\going_over.py", line 190, in main quit_time() File "D:\a\TEXT\Py\going_over\going_over.py", line 156, in quit_time data_file = shelve.open("data.dat", "c") File "D:\A\UTILITIES\PYTHON\PYTHON23J\lib\shelve.py", line 231, in open return DbfilenameShelf(filename, flag, protocol, writeback, binary) File "D:\A\UTILITIES\PYTHON\PYTHON23J\lib\shelve.py", line 212, in __init__ Shelf.__init__(self, anydbm.open(filename, flag), protocol, writeback, binary) File "D:\A\UTILITIES\PYTHON\PYTHON23J\lib\anydbm.py", line 80, in open raise error, "db type could not be determined" error: db type could not be determined -- http://mail.python.org/mailman/listinfo/python-list
Re: Yet another logo design...
I like the type logo (on the right of the image). The black snake-like image can be cropped though. :-) Harlin -- http://mail.python.org/mailman/listinfo/python-list
Re: Watermark on images
http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/362879 -- http://mail.python.org/mailman/listinfo/python-list
Error in pywordnet
I am using pywordnet and when ever I import the package from wordnet import *, I get an error: Exception exceptions.AttributeError: DbfilenameShelf instance has no attribute 'writeback' in ignored Now the package works fine until I tried to use that in Apache via CGI. Apache is showing a Server Error and the error_logs states that: [Fri Feb 25 16:06:08 2005] [error] [client 192.168.1.125] from wordnet import *, referer: http://garry/cgi-bin/test.py [Fri Feb 25 16:06:08 2005] [error] [client 192.168.1.125] ImportError: No module named wordnet, referer: http://garry/cgi-bin/test.py While googling, I found: It is a simple fix that adds the writeback argument to shelve.open calls. Source: http://www-128.ibm.com/developerworks/forums/dw_thread.jsp?forum=185thread=72747cat=11 Do anyone have any idea about that? Is there any fix or workaround? Thanks and Regards, Garry http://garrythegambler.blogspot.com/ -- http://mail.python.org/mailman/listinfo/python-list
Re: netmask arithmetic?
Dan Stromberg wrote: Before I go and reinvent the wheel, does anyone already have python code that can do netmask arithmetic - for example, determining if a list of hostnames are on subnets described by a list of networks+netmasks like: 128.200.34.0/24 128.195.16.128/25 ...and so on? http://pynms.sourceforge.net/ipv4.html -- Codito ergo sum Roel Schroeven -- http://mail.python.org/mailman/listinfo/python-list
Re: error: db type could not be determined
[EMAIL PROTECTED] wrote: why does the following error occur? I don't know; I've never used the shelve module. Let's see what as two utter n00bz we can find out. Let's check out where it clagged: lib\anydbm.py, line 80, in open ... Hmm, reading backwards a little, looks like it called whichdb.whichdb to nut out what sort of database it was, and whichdb reported back that it was an existing file, of unknown type. Flicking through whichdb.py confirms this. Let's see if we can reproduce that: === step 1: file doesn't exist === C:\junkc:\python23\python Python 2.3.4 (#53, May 25 2004, 21:17:02) [MSC v.1200 32 bit (Intel)] on win32 Type help, copyright, credits or license for more information. import shelve df = shelve.open('mydata.dat', 'c') ^Z C:\junkdir mydata.dat [snip] 26/02/2005 08:40p 24,576 mydata.dat === looks like file created OK == C:\junkdel mydata.dat C:\junkcopy con mydata.dat any old codswallop ^Z 1 file(s) copied. === OK, now mydata.dat is trash. C:\junkc:\python23\python Python 2.3.4 (#53, May 25 2004, 21:17:02) [MSC v.1200 32 bit (Intel)] on win32 Type help, copyright, credits or license for more information. import shelve df = shelve.open('mydata.dat', 'c') Traceback (most recent call last): File stdin, line 1, in ? File c:\python23\lib\shelve.py, line 231, in open return DbfilenameShelf(filename, flag, protocol, writeback, binary) File c:\python23\lib\shelve.py, line 212, in __init__ Shelf.__init__(self, anydbm.open(filename, flag), protocol, writeback, binary) File c:\python23\lib\anydbm.py, line 80, in open raise error, db type could not be determined anydbm.error: db type could not be determined Uh-huh. By the way, it's probably not a good idea to use a .dat extension; evidently (read whichdb.py for the gory details) some of the dbms add an extension to the supplied name. One of them uses .dat. Could become a source of confusion. Take a hint: they say Google is your friend, but better still is the source in lib\*.py -- it's quite legible, you don't need an Internet connection, and there sure ain't no ads in the margin. And don't just open it in emergencies: pick a module that covers a topic that interests you and just read it. You'll see good coding style, good ways of doing things, wise utterances by the timbot, ... HTH, John -- http://mail.python.org/mailman/listinfo/python-list
Re: Converting HTML to ASCII
Jorgen Grahn [EMAIL PROTECTED] writes: You should probably do what some other poster suggested -- download lynx or some other text-only browser and make your code execute it in -dump mode to get the text-formatted html. You'll get that working in an hour or so, and then you can see if you need something more complicated. Lynx is pathetically slow for large files. It seems to use a quadratic algorithm for remembering where the links point, or something. I wrote a very crude but very fast renderer in C that I can post if someone wants it, which is what I use for this purpose. -- http://mail.python.org/mailman/listinfo/python-list
Re: split a directory string into a list
Josef Meile wrote: This should work ***reasonably*** reliably on Windows and Unix. Are there any cases when it does not work? The most obvious case where it wouldn't work would be for a UNC path name. Using the string split method gives two empty strings: os.path.normpath(r'\\machine\share').split(os.path.sep) ['', '', 'machine', 'share'] whereas the splitpath function I proposed gives you: splitpath(r'\\machine\share') ['', 'machine', 'share'] So to find out the type of path (relative, absolute, unc), you only have to consider the first element with my function but you have to look at the first two elements if you just naively split the string. Also a relative windows path with a drive letter doesn't get fully split: os.path.normpath(r'c:dir\file').split(os.path.sep) ['c:dir', 'file'] splitpath(r'c:dir\file') ['c:', 'dir', 'file'] If you really are worried about speed (and are sure you aren't optimising prematurely), then you could combine some special case processing near the start of the string with a simple split of the remainder. -- http://mail.python.org/mailman/listinfo/python-list
Re: Which module is set in?
[Michael Hartl] It's good that you're using Python 2.3, which does have sets available, as a previous poster mentioned. Users of Python 2.2 or earlier can get most of the Set functionality using the following class (from Peter Norvig's utils.py file): Py2.3's set module also works under Py2.2. Get a copy from viewcvs: http://tinyurl.com/6lqr3 or http://cvs.sourceforge.net/viewcvs.py/*checkout*/python/python/dist/src/Lib/sets.py?content-type=text%2Fplainrev=1.43.4.2 Of course, if upgrading to Py2.4 is an option, that is the way to go. If you're living in a pre 2.2 world without iterators and generators, you're really missing out. Raymond Hettinger -- http://mail.python.org/mailman/listinfo/python-list
Re: generic equivalence partition
# the following solution is submitted by # Sean Gugler and David Eppstein independently # 20050224. @def parti(aList, equalFunc): @result = [] @for i in range(len(aList)): @for s in result: @if equalFunc( aList[i], aList[s[0]] ): @s.append(i) @break @else: @result.append( [i] ) @return [[x+1 for x in L] for L in result] # add 1 to all numbers @ @--- as for my original perl code, i realized it is written to work on a sorted input. Here it is and the translated Python code. # perl sub parti($$) { my @li = @{$_[0]}; my $sameQ = $_[1]; my @tray=(1); my @result; for (my $i=1; $i = ((scalar @li)-1); $i++) { if ($sameQ($li[$i-1], $li[$i])) { push @tray, $i+1} else { push @result, [EMAIL PROTECTED]; @tray=($i+1); } } push @result, [EMAIL PROTECTED]; return [EMAIL PROTECTED]; } @#python @def parti(li,sameQ): @tray=[1]; @result=[]; @ @for i in range(1, len(li) ): @if sameQ(li[i-1],li[i]): @tray.append(i+1) @else: @result.append(tray) @tray=[i+1] @result.append(tray) @return result @ http://xahlee.org/perl-python/gen_parti_by_equiv.html Xah [EMAIL PROTECTED] http://xahlee.org/PageTwo_dir/more.html -- http://mail.python.org/mailman/listinfo/python-list
function expression with 2 arguments
is there a way to write a expression of a function with more than 1 argument? e.g., i want a expression that's equivalent to def f(x,y) return x+y Xah [EMAIL PROTECTED] http://xahlee.org/PageTwo_dir/more.html -- http://mail.python.org/mailman/listinfo/python-list
class factory example needed (long)
I have a class factory problem. You could say that my main problem is that I don't understand class factories. My specific problem: I have a class with several methods I've defined. To this class I want to add a number of other class methods where the method names are taken from a list. For each list member, I want to build a method having the list member name so that I can override another method of the same name for objects which are instances of this class. Finally, I want my class factory which creates the method to call the overridden method. I'm sure my description is confusing, so I'll try to illustrate it. import Numeric # The Numeric module contains a whole lot of methods which operate on certain number types class foo: this is a number type class def __init__(self, value): self.value = float(value) def __str__(self): . . other methods here . import string ufuncs = string.split( sqrt arccos arccosh arcsin arcsinh arctan arctanh cos cosh tan tanh log10 sin sinh sqrt absolute fabs floor ceil fmod exp log conjugate )# these are the methods from Numeric that I want to override/wrap for my number type for u in ufuncs: I need something here which builds methods called sqrt(), arccos(), etc. An illustrative example of the class methods I want to build with some sort of class factory is def sqrt(self): val = Numeric.sqrt(self.value) return foo(Numeric.sqrt(self.value) + 42) def arccos(self): val = Numeric.arccos(self.value) return foo(Numeric.arccos(self.value) + 42) if __name__ == __main__: a = 9 b = foo(7) print Numeric.sqrt(a) print Numeric.sqrt(b) This would print 3 7 Note that the methods I want to create under program control are all identical in form. In this example they all call the wrapped method with an argument 42 greater than the value of the number. Does anyone have an example where they've done something similar or could help me out with an example? thanks in anticipation, Gary -- http://mail.python.org/mailman/listinfo/python-list
Re: function expression with 2 arguments
Not exactly sure what you're looking for but you can do the following: def dosomething(numlist): return numlist[0] + numlist[1] numlist = [ 5, 10] val = dosomething(numlist) If so, that would be somewhat pointless. It's always best to keep it simple. It looks like the function you wrote above is very adequate for the results you want returned. -- http://mail.python.org/mailman/listinfo/python-list
Making a calendar
Hi all. I'm trying to make a calendar for my webpage, python and html is the only programming languages that I know, is it possible to make such a calendar with pythong code and some html. The Idea is that when I click the link calendar on my webpage, then the user will be linked to the calendar. The calendar should show one month at the time, and the user should be able to browse to the other month. I will make a script that puts events and such into a db ( I know how to do this) Then I need a script that puts the events from the db into the calendar, if every day in the calendar has a value id that part will not be hard. What I need is a script that generates the calender, in such a way that each month will be have a value, and that the user then can click the days to see more info about the events. I was thinking something like the iMPcal calender: http://www.heidgerken.org/impcal2/calendar.php Is there any modules I can use, or does any of you hardcore programmers have some advice on how I should proceed with this little project of mine :) Thanks -- http://mail.python.org/mailman/listinfo/python-list
Problem When Unit Testing with PMock
Hi, Anyone was using pmock for unit testing with python? I met a problem and hope someone to help me. For short, the pmock seems can not mock a iterator object. For example, the tested object is foo, who need to send message to another object bar. So, to test the foo, I need mock a mockBar. But the bar is a iterator, the foo use the bar in this way: foo.method(self, bar): for n in bar: do somthing ... my purpose is create a mockBar and pass this mock object to foo.method(), but this ideal simply does not work. Python will complain that calling on an uniteraterable object. I'v already set anything like mockBar.expects(__iter__()) and mockBar.expects(next()). Does anyone has some clues? - narke -- http://mail.python.org/mailman/listinfo/python-list
Re: possible python/linux/gnome issue!!
On 2005-02-26, bruce [EMAIL PROTECTED] wrote: hi... i'm running rh8.0 with gnome.. i'm not sure of the version (it's whatever rh shipped). i've recently updated (or tried to update) python to the latest version. when i try to run the 'Server Settings/Services' Icon within gnome, nothing happens... i tried to run the 'start services' command from a command line, and got the following... it appears to be a conflict somewhere... [EMAIL PROTECTED] bin]# redhat-config-services /usr/share/redhat-config-services/serviceconf.py:331: SyntaxWarning: argument named None def on_mnuRescan_activate(self,None): I don't think this has ever been legal... so that's strange. import gtk ImportError: No module named gtk Which version of python were you using before? Is it still installed? Try something like ... ls -l /usr/bin/python* can someone perhaps suggest a solution, or point me to where i might find a solution to this issue. could the python changes be causing a problem? would upgrading gnome potentially fix the issue? can you upgrade gnome without upgrading the rh kernel? You can try pointing /usr/bin/python (which on many systems is just a link to the actual program) to the old version of python. This is really more of a red hat question than a python question, so I also recommend asking on a red hat list. -- http://mail.python.org/mailman/listinfo/python-list
Re: possible python/linux/gnome issue!!
Lee Harr napisa(a): [EMAIL PROTECTED] bin]# redhat-config-services /usr/share/redhat-config-services/serviceconf.py:331: SyntaxWarning: argument named None def on_mnuRescan_activate(self,None): I don't think this has ever been legal... so that's strange. It was, but currently is not (http://www.python.org/doc/2.4/whatsnew/node12.html). -- Jarek Zgoda http://jpa.berlios.de/ | http://www.zgodowie.org/ -- http://mail.python.org/mailman/listinfo/python-list
remove strings from source
For a python code I am writing I need to remove all strings definitions from source and substitute them with a place-holder. To make clearer: line 45 sVar=this is the string assigned to sVar must be converted in: line 45 sVar=s1 Such substitution is recorded in a file under: s0001[line 45]=this is the string assigned to sVar For curious guys: I am trying to implement a cross variable reference tool and the variability (in lenght) of the string definitions (expecially if multi-line) can cause display problems. I need your help in correctly identifying the strings (also embedding the r'xx..' or u'yy...' as part of the string definition). The problem is mainly on the multi-line definitions or in cached strings (embedding chr() definitions or escape sequences). -- http://mail.python.org/mailman/listinfo/python-list
Re: Threading and consuming output from processes
I asked: I am developing a Python program that submits a command to each node of a cluster and consumes the stdout and stderr from each. I want all the processes to run in parallel, so I start a thread for each node. There could be a lot of output from a node, so I have a thread reading each stream, for a total of three threads per node. (I could probably reduce to two threads per node by having the process thread handle stdout or stderr.) Simon Wittber said: In the past, I have used the select module to manage asynchronous IO operations. I pass the select.select function a list of file-like objects, and it returns a list of file-like objects which are ready for reading and writing. Donn Cave said: As I see another followup has already mentioned, the classic pre threads solution to multiple I/O sources is the select(2) function, ... Thanks for your replies. The streams that I need to read contain pickled data. The select call returns files that have available input, and I can use read(file_descriptor, max) to read some of the input data. But then how can I convert the bytes just read into a stream for unpickling? I somehow need to take the bytes arriving for a given file descriptor and buffer them until the unpickler has enough data to return a complete unpickled object. (It would be nice to do this without copying the bytes from one place to another, but I don't even see how do solve the problem with copying.) Jack -- http://mail.python.org/mailman/listinfo/python-list
any Python equivalent of Math::Polynomial::Solve?
While googling for a non-linear equation solver, I found Math::Polynomial::Solve in CPAN. It seems a great little module, except it's not Python... I'm especially looking for its poly_root() functionality (which solves arbitrary polynomials). Does anyone know of a Python module/package that implements that? Just -- http://mail.python.org/mailman/listinfo/python-list
Re: PythonCard and Py2Exe
That did it. Thanks a lot. -- http://mail.python.org/mailman/listinfo/python-list
Re: any Python equivalent of Math::Polynomial::Solve?
Just wrote: While googling for a non-linear equation solver, I found Math::Polynomial::Solve in CPAN. It seems a great little module, except it's not Python... I'm especially looking for its poly_root() functionality (which solves arbitrary polynomials). Does anyone know of a Python module/package that implements that? Just Does SciPy do what you want? Specifically Scientific.Functions.FindRoot [1] Scientific.Functions.Polynomial [2] Regards, Nick. [1] http://starship.python.net/~hinsen/ScientificPython/ScientificPythonManual/Scientific_9.html [2] http://starship.python.net/~hinsen/ScientificPython/ScientificPythonManual/Scientific_13.html -- Nick Coghlan | [EMAIL PROTECTED] | Brisbane, Australia --- http://boredomandlaziness.skystorm.net -- http://mail.python.org/mailman/listinfo/python-list
Re: getting at raw POST data?
Erik Johnson wrote: I am trying to work with a program that is trying make an HTTP POST of text data without any named form parameter. (I don't know - is that a normal thing to do?) Often, people do require abnormal things. I need to write a CGI program that accepts and processes that data. I'm not seeing how to get at data that's not a named form parameter. As far as CGI is concerned, the POST data resides in stdin. So accessing it is as simple as reading sys.stdin within the CGI script. Of course, it is up to you to interpret the data, though you can just read everything as a string. The POST data could just as well be binary - such as a file upload. To dump the strings to a file to your webserver, try the following script: import sys print 'Content-type: text/plain\r\n\r\n' dumped = open('test.txt', 'wb') for line in sys.stdin.readline(): dumped.write(line) HTH, Sarat Venugopal www.huelix.com -- http://mail.python.org/mailman/listinfo/python-list
Re: cgi: getting at raw POST data?
Erik Johnson wrote: I am trying to work with a program that is trying make an HTTP POST of text data without any named form parameter. (I don't know - is that a normal thing to do?) I need to write a CGI program that accepts and processes that data. I'm not seeing how to get at data that's not a named form parameter. Got this from a quick search with Google. Haven't tried it, but it looks like it does what you want. http://mail.python.org/pipermail/python-list/2002-September/122977.html -- http://mail.python.org/mailman/listinfo/python-list
Re: remove strings from source
qwweeeit wrote: I need your help in correctly identifying the strings (also embedding the r'xx..' or u'yy...' as part of the string definition). The problem is mainly on the multi-line definitions or in cached strings (embedding chr() definitions or escape sequences). Have a look at tokenize.generate_tokens() in the standard library. That ought to give you enough information to identify the strings reliably and output modified source. -- http://mail.python.org/mailman/listinfo/python-list
Re: Threading and consuming output from processes
Quoth Jack Orenstein [EMAIL PROTECTED]: [ ... re alternatives to threads ] | Thanks for your replies. The streams that I need to read contain | pickled data. The select call returns files that have available input, | and I can use read(file_descriptor, max) to read some of the input | data. But then how can I convert the bytes just read into a stream for | unpickling? I somehow need to take the bytes arriving for a given file | descriptor and buffer them until the unpickler has enough data to | return a complete unpickled object. | | (It would be nice to do this without copying the bytes from one place | to another, but I don't even see how do solve the problem with | copying.) Note that the file object copies bytes from one place to another, via C library stdio. If we could only see the data in those stdio buffers, it would be possible to use file objects with select() in more applications. (Though not with pickle.) Since input very commonly needs to be buffered for various reasons, we end up writing our own buffer code, all because stdio has no standard function that tells you how much data is in a buffer. But unpickling consumes an I/O stream, as you observe, so as a network data protocol by itself, it's unsuitable for use with select. I think the only option would be a packet protocol - a count field followed by the indicated amount of pickle data. I suppose I would copy the received data into a StringIO object, and unpickle that when all the data has been received. Incidentally, I think I read here yesterday, someone held a book about Python programming up to some ridicule for suggesting that pickles would be a good way to send data around on the network. The problem with this was supposed to have something to do with overloading. I have no idea what he was talking about, but you might be interested in this issue. Donn Cave, [EMAIL PROTECTED] -- http://mail.python.org/mailman/listinfo/python-list
Re: Making a calendar
Looking at the calendar module in the standard library may help. Also, pydoc calendar is your friend. Michele Simionato -- http://mail.python.org/mailman/listinfo/python-list
Re: fdups: calling for beta testers
Patrick Useldinger wrote: (9) Any good reason why the executables don't have .py extensions on their names? (9) Because I am lazy and Linux doesn't care. I suppose Windows does? Unfortunately, yes. Windows has nothing like the x permission bit, so you have to have an actual extension on the filename and Windows (XP anyway) will check it against the list of extensions in the PATHEXT environment variable to determine if it should be treated like an executable. Otherwise you must type python and the full filename. -Peter -- http://mail.python.org/mailman/listinfo/python-list
Re: function expression with 2 arguments
Xah Lee wrote: is there a way to write a expression of a function with more than 1 argument? e.g., i want a expression that's equivalent to def f(x,y) return x+y Since assignment is a statement in Python, not an expression, and since def f is an assignment that binds a function object to the name f, you can't do exactly what you've asked for. On the other hand, this should be about equivalent, though it's not merely an expression: f = lambda x, y: x + y -- http://mail.python.org/mailman/listinfo/python-list
Whither datetime.date ?
I'm confused. I was going to try linkchecker, and it dies with a traceback ending in File /usr/local/lib/python2.4/calendar.py, line 32, in _localized_month _months = [datetime.date(2001, i+1, 1).strftime for i in range(12)] AttributeError: 'module' object has no attribute 'date' Sure enough, there is no datetime.date, but there is a datetime.Date: Python 2.4 (#2, Feb 19 2005, 20:35:23) [GCC 3.4.2 [FreeBSD] 20040728] on freebsd5 Type help, copyright, credits or license for more information. import datetime dir(datetime) ['Date', 'DateTime', ...] However, the Library Reference clearly states that datetime.date should exist. Granted, it's been a while since I used python in anger, but isn't this what it says? http://www.python.org/doc/2.4/lib/node243.html http://www.python.org/doc/2.4/lib/datetime-date.html Moreover, the datetime.date class is supposed to have a strftime() method. datetime.Date does not. I'm beginning to wonder if the FreeBSD python package is at fault. Or what is really going on here? -- * Harald Hanche-Olsen URL:http://www.math.ntnu.no/~hanche/ - Debating gives most of us much more psychological satisfaction than thinking does: but it deprives us of whatever chance there is of getting closer to the truth. -- C.P. Snow -- http://mail.python.org/mailman/listinfo/python-list
Re: strange SyntaxError
Attila Szabo wrote: 2005, Feb 25 - Scott David Daniels wrote : Attila Szabo wrote: ...lambda x: 'ABC%s' % str(x) ... OK, to no real effect, in main you define an unnamed function that you can never reference. Pretty silly, but I'll bite. This code was simplified, the lambda was part of a map, ... I'm sorry, upon re-reading my reply, I see how it looks like a snide comment. I apologize. I didn't mean to malign you, and I did indeed appreciate that the code was obviously boiled down. I just thought: def named(x): return 'ABC%s' % str(x) provides a function name to talk about, exhibits the same problem, and is simpler. --Scott David Daniels [EMAIL PROTECTED] -- http://mail.python.org/mailman/listinfo/python-list
Re: Whither datetime.date ?
Harald Hanche-Olsen wrote: I'm beginning to wonder if the FreeBSD python package is at fault. Maybe - at my system, it has no Date or DateTime Python 2.4.1a0 (#2, Feb 9 2005, 12:50:04) [GCC 3.3.5 (Debian 1:3.3.5-8)] on linux2 Type help, copyright, credits or license for more information. import datetime dir(datetime) ['MAXYEAR', 'MINYEAR', '__doc__', '__file__', '__name__', 'date', 'datetime', 'datetime_CAPI', 'time', 'timedelta', 'tzinfo'] Maybe this is a clash between a custom datetime module and the python one? What does python2.4 -v -c import datetime give you? -- Regards, Diez B. Roggisch -- http://mail.python.org/mailman/listinfo/python-list
Re: Whither datetime.date ?
[Harald Hanche-Olsen] I'm confused. I was going to try linkchecker, and it dies with a traceback ending in File /usr/local/lib/python2.4/calendar.py, line 32, in _localized_month _months = [datetime.date(2001, i+1, 1).strftime for i in range(12)] AttributeError: 'module' object has no attribute 'date' Sure enough, there is no datetime.date, but there is a datetime.Date: Python 2.4 (#2, Feb 19 2005, 20:35:23) [GCC 3.4.2 [FreeBSD] 20040728] on freebsd5 Type help, copyright, credits or license for more information. import datetime dir(datetime) ['Date', 'DateTime', ...] However, the Library Reference clearly states that datetime.date should exist. Granted, it's been a while since I used python in anger, but isn't this what it says? http://www.python.org/doc/2.4/lib/node243.html http://www.python.org/doc/2.4/lib/datetime-date.html Moreover, the datetime.date class is supposed to have a strftime() method. datetime.Date does not. I'm beginning to wonder if the FreeBSD python package is at fault. Or what is really going on here? As you've deduced, you're certainly not getting Python's builtin datetime module. Therefore you must be getting some other datetime module. Run Python with the -v switch to get output telling you how imports are resolved. That will show you where this other datetime module is coming from. Remember that Python searches along sys.path to resolve imports, taking the first thing it finds with the right name. You almost certainly have something _called_ datetime earlier in your PYTHONPATH than where the standard Python libraries appear. -- http://mail.python.org/mailman/listinfo/python-list
Re: any Python equivalent of Math::Polynomial::Solve?
Just [EMAIL PROTECTED] wrote in message news:[EMAIL PROTECTED] Does SciPy do what you want? Specifically Scientific.Functions.FindRoot [1] Scientific.Functions.Polynomial [2] http://starship.python.net/~hinsen/ScientificPython/ScientificPythonManual/Sci entific_9.html [2] http://starship.python.net/~hinsen/ScientificPython/ScientificPythonManual/Sci entific_13.html (Hm, I had the impression that scipy != Konrad Hinsen's Scientific module.) www.scipy.org (first hit on Python SciPy google search) Terry J. Reedy -- http://mail.python.org/mailman/listinfo/python-list
Re: Whither datetime.date ?
+ Tim Peters [EMAIL PROTECTED]: | As you've deduced, you're certainly not getting Python's builtin | datetime module. Argh. Yeah, I've had one lying around in my personal python directory since 2000, had totally forgotten it was there. This one ... *** Author: Jeff Kunce [EMAIL PROTECTED] *** Download from: http://starship.skyport.net/crew/jjkunce Removed it, now all is well. Thanks for pointing out the blindingly obvious. -- * Harald Hanche-Olsen URL:http://www.math.ntnu.no/~hanche/ - Debating gives most of us much more psychological satisfaction than thinking does: but it deprives us of whatever chance there is of getting closer to the truth. -- C.P. Snow -- http://mail.python.org/mailman/listinfo/python-list
Re: Problem When Unit Testing with PMock
[EMAIL PROTECTED] wrote in message news:[EMAIL PROTECTED] Anyone was using pmock for unit testing with python? I met a problem and hope someone to help me. For short, the pmock seems can not mock a iterator object. Why bother? def mockit(): raise StopIteration now pass mockit() For example, the tested object is foo, who need to send message to another object bar. So, to test the foo, I need mock a mockBar. But the bar is a iterator, the foo use the bar in this way: foo.method(self, bar): for n in bar: do somthing ... To properly test the method, *also* feed it an iterator that yields a few objects of the appropriate type. Assuming n is to be an int... def intit(k): for i in range(k): yield i Terry J. Reedy -- http://mail.python.org/mailman/listinfo/python-list
Re: Watermark on images
Michele Simionato [EMAIL PROTECTED] wrote in message news:[EMAIL PROTECTED] http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/362879 Googling Python image watermark and first hit is !!! ASPN : Python Cookbook : Watermark with PIL ... Description: Apply a watermark to an image using the Python Imaging Library. Supports color, tiling, scaling, and opacity reduction. Source: Text Source. ... aspn.activestate.com/ASPN/Cookbook/Python/Recipe/362879 - 27k - Feb 24, 2005 - Cached - Similar pages Learn to use it folks. Get a Google bar. Faster and easier than posting here. Terry J. Reedy -- http://mail.python.org/mailman/listinfo/python-list
Re: any Python equivalent of Math::Polynomial::Solve?
In article [EMAIL PROTECTED], Just [EMAIL PROTECTED] wrote: While googling for a non-linear equation solver, I found Math::Polynomial::Solve in CPAN. It seems a great little module, except Thank you. it's not Python... Sorry about that. I'm especially looking for its poly_root() functionality (which solves arbitrary polynomials). Does anyone know of a Python module/package that implements that? Are you looking for that particular algorithm, or for any source that will find the roots of the polynomial? The original source for the algorithm used in the module is from Hiroshi Murakami's Fortran source, and it shouldn't be too difficult to repeat the translation process to python. -- -john February 28 1997: Last day libraries could order catalogue cards from the Library of Congress. -- http://mail.python.org/mailman/listinfo/python-list
Re: Making a calendar
This is close to what you want: http://freespace.virgin.net/hamish.sanderson/htmlcalendar.html You'll also need HTMLTemplate http://freespace.virgin.net/hamish.sanderson/htmltemplate.html -- http://mail.python.org/mailman/listinfo/python-list
Re: Leo 4.3-a3 Outlining IDE
FYI, After install and you run it for the first time (and if it asks for your initials), then expect the plug-in manager to throw a bad window name error in TK. You must exit, then restart Leo before running the plugin manager after the initial install. -- Novell DeveloperNet Sysop #5 -- http://mail.python.org/mailman/listinfo/python-list
Re: any Python equivalent of Math::Polynomial::Solve?
In article [EMAIL PROTECTED], [EMAIL PROTECTED] (John M. Gamble) wrote: In article [EMAIL PROTECTED], Just [EMAIL PROTECTED] wrote: While googling for a non-linear equation solver, I found Math::Polynomial::Solve in CPAN. It seems a great little module, except Thank you. it's not Python... Sorry about that. Heh, how big are the odds you find the author of an arbitrary Perl module on c.l.py... I'm especially looking for its poly_root() functionality (which solves arbitrary polynomials). Does anyone know of a Python module/package that implements that? Are you looking for that particular algorithm, or for any source that will find the roots of the polynomial? Any will do. As I wrote in another post, I'm currently only looking for a quintic equation solver, which your module does very nicely. The original source for the algorithm used in the module is from Hiroshi Murakami's Fortran source, and it shouldn't be too difficult to repeat the translation process to python. Ah ok, I'll try to locate that (following the instruction in Solve.pm didn't work for me :( ). Just -- http://mail.python.org/mailman/listinfo/python-list
Re: fdups: calling for beta testers
Peter Hansen wrote: Patrick Useldinger wrote: (9) Any good reason why the executables don't have .py extensions on their names? (9) Because I am lazy and Linux doesn't care. I suppose Windows does? Unfortunately, yes. Windows has nothing like the x permission bit, so you have to have an actual extension on the filename and Windows (XP anyway) will check it against the list of extensions in the PATHEXT environment variable to determine if it should be treated like an executable. Otherwise you must type python and the full filename. Or use exemaker, which IMHO is the best way to handle this problem. Serge. -- http://mail.python.org/mailman/listinfo/python-list
Re: any Python equivalent of Math::Polynomial::Solve?
In article [EMAIL PROTECTED], Just [EMAIL PROTECTED] wrote: Heh, how big are the odds you find the author of an arbitrary Perl module on c.l.py... Hey, that's why it's called lurking. Any will do. As I wrote in another post, I'm currently only looking for a quintic equation solver, which your module does very nicely. The original source for the algorithm used in the module is from Hiroshi Murakami's Fortran source, and it shouldn't be too difficult to repeat the translation process to python. Ah ok, I'll try to locate that (following the instruction in Solve.pm didn't work for me :( ). Ouch. I just did a quick search and found that that site has undergone a few changes, and the code that i reference is missing. A few other links in the docs are stale too. I need to update the documentation. Anyway, doing a search for 'hqr' and Eispack got me a lot of sites. In particular, this one is pretty friendly: http://netlib.enseeiht.fr/eispack/ Look at the source for balanc.f (does the prep-work) and hqr.f (does the solving). Minor annoyance: the real and imaginary parts of the roots are in separate arrays. I combined them into complex types in my perl source, in case you want to make a comparison. Of course, all this may be moot if the other suggestions work out. -- -john February 28 1997: Last day libraries could order catalogue cards from the Library of Congress. -- http://mail.python.org/mailman/listinfo/python-list
Re: any Python equivalent of Math::Polynomial::Solve?
In article [EMAIL PROTECTED], [EMAIL PROTECTED] (John M. Gamble) wrote: The original source for the algorithm used in the module is from Hiroshi Murakami's Fortran source, and it shouldn't be too difficult to repeat the translation process to python. Ah ok, I'll try to locate that (following the instruction in Solve.pm didn't work for me :( ). Ouch. I just did a quick search and found that that site has undergone a few changes, and the code that i reference is missing. A few other links in the docs are stale too. I need to update the documentation. Anyway, doing a search for 'hqr' and Eispack got me a lot of sites. In particular, this one is pretty friendly: http://netlib.enseeiht.fr/eispack/ Look at the source for balanc.f (does the prep-work) and hqr.f (does the solving). Minor annoyance: the real and imaginary parts of the roots are in separate arrays. I combined them into complex types in my perl source, in case you want to make a comparison. Thanks! I'll check that out. Of course, all this may be moot if the other suggestions work out. SciPy indeed appear to contain a solver, but I'm currently stuck in trying to _get_ it for my platform (OSX). I'm definitely not going to install a Fortran compiler just to evaluate it (even though my name is not Ilias ;-). Also, SciPy is _huge_, so maybe a Python translation of that Fortran code or your Perl code will turn out to be more attractive after all... Just -- http://mail.python.org/mailman/listinfo/python-list
[solved] Re: error in non-existing code?
Thomas Newman wrote: Michael Hoffman wrote: Thomas Newman wrote: I wanted to look at the code that gives me the error, but there is no line 447 in /usr/lib/python2.3/pyclbr.py: Try deleting pyclbr.py[co]. There were recursive imports, meaning file A imported file B and vice versa. Solving that issue removed the error. Still I find it confusing. ttn -- http://mail.python.org/mailman/listinfo/python-list
Re: remove strings from source
qwweeeit wrote: For a python code I am writing I need to remove all strings definitions from source and substitute them with a place-holder. To make clearer: line 45 sVar=this is the string assigned to sVar must be converted in: line 45 sVar=s1 Such substitution is recorded in a file under: s0001[line 45]=this is the string assigned to sVar For curious guys: I am trying to implement a cross variable reference tool and the variability (in lenght) of the string definitions (expecially if multi-line) can cause display problems. I need your help in correctly identifying the strings (also embedding the r'xx..' or u'yy...' as part of the string definition). The problem is mainly on the multi-line definitions or in cached strings (embedding chr() definitions or escape sequences). Hello, I have written a few python parsers before. Here is my attempt :) # string_mapper.py from __future__ import generators# python 2.2 import keyword, os, sys, traceback import cStringIO, token, tokenize def StringNamer(num=0): '''This is a name creating generator''' while 1: num += 1 stringname = 's'+str(num).zfill(6) yield stringname class ReplaceParser(object): filein = open('yourfilehere.py').read() replacer = ReplaceParser(filein, out=sys.stdout) replacer.format() replacer.StringMap def __init__(self, raw, out=sys.stdout): ''' Store the source text. ''' self.raw =raw.expandtabs().strip() self.out = out self.StringName = StringNamer() self.StringMap = {} def format(self): ''' Parse and send the source. ''' self.lines = [0, 0] pos = 0 self.temp = cStringIO.StringIO() while 1: pos = self.raw.find('\n', pos) + 1 if not pos: break self.lines.append(pos) self.lines.append(len(self.raw)) self.pos = 0 text = cStringIO.StringIO(self.raw) try: tokenize.tokenize(text.readline, self) except tokenize.TokenError, ex: traceback.print_exc() def __call__(self, toktype, toktext, (srow,scol), (erow,ecol), line): ''' Token handler. ''' oldpos = self.pos newpos = self.lines[srow] + scol self.pos = newpos + len(toktext) if toktype in [token.NEWLINE, tokenize.NL]: self.out.write('\n') return if newpos oldpos: self.out.write(self.raw[oldpos:newpos]) if toktype in [token.INDENT, token.DEDENT]: self.pos = newpos return if (toktype == token.STRING): sname = self.StringName.next() self.StringMap[sname] = toktext toktext = sname self.out.write(toktext) self.out.flush() return hth, M.E.Farmer -- http://mail.python.org/mailman/listinfo/python-list
Re: function expression with 2 arguments
lambda x, y: x + y that's what i was looking for. ... once i have a lambda expr, how to apply it to arguments? e.g. in Mathematica Function[#1+#2][a,b] Python doc is quite confounded in it's way of organization centered around implementation tied to hardware (as most imperative languages are hardware-centric), as opposed to algorithm math concepts. Xah [EMAIL PROTECTED] http://xahlee.org/PageTwo_dir/more.html -- http://mail.python.org/mailman/listinfo/python-list
Re: function expression with 2 arguments
Xah Lee wrote: lambda x, y: x + y that's what i was looking for. ... once i have a lambda expr, how to apply it to arguments? http://python.org/doc/current/ref/calls.html -- http://mail.python.org/mailman/listinfo/python-list
Re: generic equivalence partition
folks: when using google to post a reply, it sometimes truncates the subject line. i.e. [perl-python] is lost. This software error is obvious, they could not have not noticed it. another thing more egregious is that google _intentionally_ edit with people's posts. (e.g. they change email address lines without author's permission, and they also change program codes so it no longer run). Please spread these google irresponsibility to all related forums on software responsibility and online forum issues. Ostensible incorrect behavior like these by google is egregious enough to generate a law suit and if such company do not take software correctness seriously, we must punish them. Please spread this awareness. Xah [EMAIL PROTECTED] http://xahlee.org/PageTwo_dir/more.html -- http://mail.python.org/mailman/listinfo/python-list
Using PyOpenGL what should I use for a GUI ?
Hi I have started a small project with PyOpenGL. I am wondering what are the options for a GUI. So far I checked PyUI but it has some problems with 3d rendering outside the Windows platform. I know of WxPython but I don't know if I can create a WxPython window, use gl rendering code in it and then put widgets on top of that... -- http://mail.python.org/mailman/listinfo/python-list
Re: Thread scheduling
This may help. http://linuxgazette.net/107/pai.html Also be sure to google. search strategy: Python threading Python threads Python thread tutorial threading.py example Python threading example Python thread safety hth, M.E.Farmer -- http://mail.python.org/mailman/listinfo/python-list
Re: fdups: calling for beta testers
Serge Orlov wrote: Or use exemaker, which IMHO is the best way to handle this problem. Looks good, but I do not use Windows. -pu -- http://mail.python.org/mailman/listinfo/python-list
Re: Canonical way of dealing with null-separated lines?
I wrote: Okay, here's the definitive version (or so say I). Some good doobie please make sure it makes its way into the standard library: Oops, I just realized that my previously definitive version did not handle multi-character newlines. So here is a new definition version. Oog, now my brain hurts: def fileLineIter(inputFile, newline='\n', leaveNewline=False, readSize=8192): Like the normal file iter but you can set what string indicates newline. The newline string can be arbitrarily long; it need not be restricted to a single character. You can also set the read size and control whether or not the newline string is left on the end of the iterated lines. Setting newline to '\0' is particularly good for use with an input file created with something like os.popen('find -print0'). isNewlineMultiChar = len(newline) 1 outputLineEnd = (, newline)[leaveNewline] # 'partialLine' is a list of strings to be concatinated later: partialLine = [] # Because read() might unfortunately split across our newline string, we # have to regularly check to see if the newline string appears in what we # previously thought was only a partial line. We do so with this generator: def linesInPartialLine(): if isNewlineMultiChar: linesInPartialLine = .join(partialLine).split(newline) if linesInPartialLine 1: partialLine[:] = [linesInPartialLine.pop()] for line in linesInPartialLine: yield line + outputLineEnd while True: charsJustRead = inputFile.read(readSize) if not charsJustRead: break lines = charsJustRead.split(newline) if len(lines) 1: for line in linesInPartialLine(): yield line partialLine.append(lines[0]) lines[0] = .join(partialLine) partialLine[:] = [lines.pop()] else: partialLine.append(lines.pop()) for line in linesInPartialLine(): yield line for line in lines: yield line + outputLineEnd for line in linesInPartialLine(): yield line if partialLine and partialLine[-1] != '': yield .join(partialLine) |oug -- http://mail.python.org/mailman/listinfo/python-list
Re: remove strings from source
Thank you for your suggestion, but it is too complicated for me... I decided to proceed in steps: 1. Take away all commented lines 2. Rebuild the multi-lines as single lines I have already written the code and now I can face the problem of mouving string definitions into a data base file... Hopefully I will then build cross reference tables of the variables. My project is also to implement the code for building functions' tree . -- http://mail.python.org/mailman/listinfo/python-list
Re: generic equivalence partition
People, ... sorry for the latching on on this broadside issue, but it is impotant ... here's are some germane points from another online discussion: the bug-reporting issue has came up so many times by so many people i thought i'd make a comment of my view. when a software is ostensibly incorrect, and if it is likely in connection to egregious irresponsibility as most software companies are thru their irresponsible licensing, the thing one should not do is to fawn up to their ass as in filing a bug report, and that is also the least effective in correcting the software. the common attitude of bug-reporting is one reason that contributed to the tremendous egregious irresponsible fuckups in computer software industry that each of us have to endure daily all the time. (e.g. software A clashed, software B can't do this, C can't do that, D i don't know how to use, E download location currently broken, F i need to join discussion group to find a work-around, G is all pretty and dysfunctional... ) when a software is ostensibly incorrect and when the company is irresponsible with their licensing, the most effective and moral attitude is to do legal harm to the legal entity. This one an do by filing a law suit or spreading the fact. Filing a law suit is appropriate in severe and serious cases, and provided you have such devotion to the cause. For most cases, we should just spread the fact. When a company see facts flying about their incompetence or irresponsibility, they will immediately mend the problem source, or cease to exist. Another harm sprang from the fucking bug-reporting attitude rampant among IT morons is the multiplication of pop-ups that bug users for bug-reporting, complete with their privacy intrusion legalese. http://xahlee.org/UnixResource_dir/writ/responsible_license.html Xah [EMAIL PROTECTED] http://xahlee.org/PageTwo_dir/more.html Xah Lee wrote: folks: when using google to post a reply, it sometimes truncates the subject line. i.e. [perl-python] is lost. This software error is obvious, they could not have not noticed it. another thing more egregious is that google _intentionally_ edit with people's posts. (e.g. they change email address lines without author's permission, and they also change program codes so it no longer run). Please spread these google irresponsibility to all related forums on software responsibility and online forum issues. Ostensible incorrect behavior like these by google is egregious enough to generate a law suit and if such company do not take software correctness seriously, we must punish them. Please spread this awareness. Xah [EMAIL PROTECTED] http://xahlee.org/PageTwo_dir/more.html -- http://mail.python.org/mailman/listinfo/python-list
Re: Thread scheduling
Jack Orenstein wrote: I am using Python 2.2.2 on RH9, and just starting to work with Python threads. Is this also the first time you've worked with threads in general, or do you have much experience with them in other situations? This program seems to point to problems in Python thread scheduling. While from time to time bugs in Python are found, it's generally more productive to suspect one's own code. In any case, you wouldn't have posted it here if you didn't suspect your own code at least a bit, so kudos to you for that. :-) done = 0 def run(id): global done print 'thread %d: started' % id global counter for i in range(nCycles): counter += 1 if i % 1 == 0: print 'thread %d: i = %d, counter = %d' % (id, i, counter) print 'thread %d: leaving' % id done += 1 for i in range(nThreads): thread.start_new_thread(run, (i + 1,)) while done nThreads: time.sleep(1) print 'Still waiting, done = %d' % done print 'All threads have finished, counter = %d' % counter Without having tried to run your code, and without having studied it for long, I am going to point out something that is at the very least an inherent defect in your code, though you might not have used Python (or threads?) for long enough to realize why. Note that I don't know if this is the cause of your particular problem, just that it _is_ a bug. You've got two shared global variables, done and counter. Each of these is modified in a manner that is not thread-safe. I don't know if counter is causing trouble, but it seems likely that done is. Basically, the statement done += 1 is equivalent to the statement done = done + 1 which, in Python or most other languages is not thread-safe. The done + 1 part is evaluated separately from the assignment, so it's possible that two threads will be executing the done + 1 part at the same time and that the following assignment of one thread will be overwritten immediately by the assignment in the next thread, but with a value that is now one less than what you really wanted. Look at the bytecode produced by the statement done += 1: import dis def f(): ... global done ... done += 1 ... dis.dis(f) 3 0 LOAD_GLOBAL 0 (done) 3 LOAD_CONST 1 (1) 6 INPLACE_ADD 7 STORE_GLOBAL 0 (done) (ignore the last two lines: they just return None) 10 LOAD_CONST 0 (None) 13 RETURN_VALUE Note here the store_global that is separate from the add operation itself. If thread A gets loses the CPU (so to speak) just before that operation, and thread B executes the entire suite of operations, then later on when thread A executes that operation it will effectively result in only a single addition operation being performed, not two of them. If you really want to increment globals from the thread, you should look into locks. Using the threading module (as is generally recommended, instead of using thread), you would use threading.Lock(). There are other thread synchronization primitives in the threading module as well, some of which might be more suitable for your purposes. Note also the oft-repeated (in this forum) recommendation that if you simply use nothing but the Queue module for inter-thread communication, you will be very unlikely to stumble over such issues. -Peter -- http://mail.python.org/mailman/listinfo/python-list
Xlib in Python? I need XDrawString()
All I really want is to write a few strings to the background of my X display. XDrawString() is what I need. The Xlib for Python shows it's out dated. Is there any alternative? -- http://mail.python.org/mailman/listinfo/python-list
Re: Thread scheduling
Peter Hansen wrote: Jack Orenstein wrote: I am using Python 2.2.2 on RH9, and just starting to work with Python threads. Is this also the first time you've worked with threads in general, or do you have much experience with them in other situations? Yes, I've used threading in Java. You've got two shared global variables, done and counter. Each of these is modified in a manner that is not thread-safe. I don't know if counter is causing trouble, but it seems likely that done is. I understand that. As I said in my posting, The counter is incremented without locking -- I expect to see a final count of less than THREADS * COUNT. This is a test case, and I threw out more and more code, including synchronization around counter and done, until it got as simple as possible and still showed the problem. Basically, the statement done += 1 is equivalent to the statement done = done + 1 which, in Python or most other languages is not thread-safe. The done + 1 part is evaluated separately from the assignment, so it's possible that two threads will be executing the done + 1 part at the same time and that the following assignment of one thread will be overwritten immediately by the assignment in the next thread, but with a value that is now one less than what you really wanted. Understood. I was counting on this being unlikely for my test case. I realize this isn't something to rely on in real software. If you really want to increment globals from the thread, you should look into locks. Using the threading module (as is generally recommended, instead of using thread), you would use threading.Lock(). As my note said, I did start with the threading module. And variables updated by different threads were protected by threading.Condition variables. As I analyzed my test cases, and threading.py, I started suspecting thread scheduling. I then wrote the test case in my email, which does not rely on the threading module at all. The point of the test is not to maintain counter -- it's to show that sometimes even after one thread completes, the other thread never is scheduled again. This seems wrong. Try running the code, and let me see if you see this behavior. If you'd like, replace this: counter += 1 by this: time.sleep(0.01 * id) You should see the same problem. So that removes counter from the picture. And the two increments of done (one by each thread) are still almost certainly not going to coincide and cause a problem. Also, if you look at the output from the code on a hang, you will see that 'thread X: leaving' only prints once. This has nothing to do with what happens with the done variable. Jack -- http://mail.python.org/mailman/listinfo/python-list
Re: weird strings question
Robert Kern wrote: Lucas Raab wrote: Is it possible to assign a string a numerical value?? For example, in the string test can I assign a number to each letter as in t = 45, e = 89, s = 54, and so on and so forth?? Use a dictionary with the strings as keys. string2num = {} string2num['t'] = 45 string2num['e'] = 89 etc. Thanks. That's what I was looking for, but was just unsure exactly how to proceed. -- http://mail.python.org/mailman/listinfo/python-list
Re: Xlib in Python? I need XDrawString()
python-xlib may not see any development, but I used it recently with python 2.2 or 2.3, and don't remember any particular problems doing so. you may want to give it a try, instead of dismissing it out of hand. Jeff pgpEbkioBp45P.pgp Description: PGP signature -- http://mail.python.org/mailman/listinfo/python-list
Re: Xlib in Python? I need XDrawString()
Artificial Life [EMAIL PROTECTED] writes: All I really want is to write a few strings to the background of my X display. XDrawString() is what I need. The Xlib for Python shows it's out dated. Is there any alternative? If you're referring to URL: http://sourceforge.net/projects/python-xlib , what makes you think it's outdated? Development on a package sometimes stops when it reaches a state that the authors are happy with - which is what's happened here. It works just fine. If not, the authors can be reached about bug fixes, etc. mike -- Mike Meyer [EMAIL PROTECTED] http://www.mired.org/home/mwm/ Independent WWW/Perforce/FreeBSD/Unix consultant, email for more information. -- http://mail.python.org/mailman/listinfo/python-list
Re: [perl-python] generate all possible pairings
Xah Lee [EMAIL PROTECTED] writes: This is brought to you by the perl-python community. To subscribe, see http://xahlee.org/perl-python/python.html assert len(perl-python community) == 1 mike -- Mike Meyer [EMAIL PROTECTED] http://www.mired.org/home/mwm/ Independent WWW/Perforce/FreeBSD/Unix consultant, email for more information. -- http://mail.python.org/mailman/listinfo/python-list
Re: [perl-python] generate all possible pairings
Mike Meyer wrote: Xah Lee [EMAIL PROTECTED] writes: This is brought to you by the perl-python community. To subscribe, see http://xahlee.org/perl-python/python.html assert len(perl-python community) == 1 mike Apparently there are actually people who subscribe. Maybe they're people in search of a good laugh... I suppose they could be sock-puppets, but even for Xah, inventing sock-puppets just to up the subscription count of your mail list seems a bit much... -- Christopher Mattern Which one you figure tracked us? The ugly one, sir. ...Could you be more specific? -- http://mail.python.org/mailman/listinfo/python-list
string methods (warning, newbie)
Is there a string mething to return only the alpha characters of a string? eg 'The Beatles - help - 03 - Ticket to ride', would be 'TheBeatlesTickettoride' If not then how best to approach this? I have some complicated plan to cut the string into individual characters and then concatenate a new string with the ones that return true with the .isalpha string method. Is there an easier way? -- http://mail.python.org/mailman/listinfo/python-list
Re: fdups: calling for beta testers
On Sat, 26 Feb 2005 23:53:10 +0100, Patrick Useldinger [EMAIL PROTECTED] wrote: I've tested it intensively Famous Last Words :-) Thanks for your feedback! Here's some more: (1) Manic s/w producing lots of files all the same size: the Borland C[++] compiler produces a debug symbol file (.tds) that's always 384KB; I have 144 of these on my HD, rarely more than 1 in the same directory. Here's a snippet from a duplicate detection run: DUP|393216|2|\devel\delimited\build\lib.win32-1.5\delimited.tds|\devel\delimited\build\lib.win32-2.1\delimited.tds DUP|393216|2|\devel\delimited\build\lib.win32-2.3\delimited.tds|\devel\delimited\build\lib.win32-2.4\delimited.tds (2) There appears to be a flaw in your logic such that it will find duplicates only if they are in the *SAME* directory and only when there are no other directories with two or more files of the same size. The above duplicates were detected only when I made the following changes to your script: --- fdups Sat Feb 26 06:41:36 2005 +++ fdups_jm.py Sun Feb 27 12:18:04 2005 @@ -29,13 +29,14 @@ self.count = self.totalsize = self.inodecount = self.slinkcount = 0 self.gain = self.bytescompared = self.bytesread = self.inodecount = 0 for toplevel in args: -os.path.walk(toplevel, self.buildList, None) +os.path.walk(toplevel, self.updateDict, None) if self.count 0: self.compare() -def buildList(self,arg,dirpath,namelist): - build a dictionnary of files to be analysed, indexed by length -files = {} +def updateDict(self,arg,dirpath,namelist): + update a dictionary of files to be analysed, indexed by length +# files = {} +files = self.compfiles for filepath in namelist: fullpath = os.path.join(dirpath,filepath) if os.path.isfile(fullpath): @@ -51,20 +52,23 @@ if size = MIN_FILESIZE: self.count += 1 self.totalsize += size +# is above totalling in the wrong place? if size not in files: files[size]=[fullpath] else: files[size].append(fullpath) -for size in files: -if len(files[size]) != 1: -self.compfiles[size]=files[size] +# for size in files: +# if len(files[size]) != 1: +# self.compfiles[size]=files[size] def compare(self): compare all files of the same size - outer loop sizes=self.compfiles.keys() sizes.sort() for size in sizes: -self.comparefiles(size,self.compfiles[size]) +list_of_filenames = self.compfiles[size] +if len(list_of_filenames) 1: + self.comparefiles(size, list_of_filenames) def comparefiles(self,size,filelist): compare all files of the same size - inner loop (3) Your fdups-check gadget doesn't work on Windows; the commands module works only on Unix but is supplied with Python on all platforms. The results might just confuse a newbie: (1, '{' is not recognized as an internal or external command,\noperable program or batch file.) Why not use the Python filecmp module? Cheers, John -- http://mail.python.org/mailman/listinfo/python-list
Re: string methods (warning, newbie)
anthonyberet wrote: Is there a string mething [method] to return only the alpha characters of a string? eg 'The Beatles - help - 03 - Ticket to ride', would be 'TheBeatlesTickettoride' erm, no it wouldn't, it would be 'TheBeatleshelpTickettoride', but you get me, I am sure. If not then how best to approach this? I have some complicated plan to cut the string into individual characters and then concatenate a new string with the ones that return true with the .isalpha string method. Is there an easier way? -- http://mail.python.org/mailman/listinfo/python-list
Re: Dealing with config files what's the options
On Fri, 25 Feb 2005 21:54:16 -0500, Tom Willis [EMAIL PROTECTED] wrote: On Fri, 25 Feb 2005 15:02:04 -0700, Dave Brueck [EMAIL PROTECTED] wrote: Jorgen Grahn wrote: ... How about writing them in Python? ... I actually thought of this, and I was kind of on the fence due to the intended audience. I don't think it's too much to ask that they are comfy with the concept of variables. I mean, if it was a shell script they'd be at the top of the file anyway. Then again I'm some what hesitant to help them make the connection that I'm giving them the ability to indirectly edit the code. Kind of like opening pandoras box. Once the figure out they can open any file (*.py) with notepad, there will be utter anarchy and I'll get the call at 4am that somethings wrong with the production data. There's two issues there. One is about hiding knowledge from the users. I'm against that; this isn't the middle ages. If they shoot themselves in the foot, that is /their/ problem, not yours. You support /your/ code, not whatever they hack together. And with 99.999% certainty, they won't touch it. The other is about the config file messing up the environment for your main program. Seems hard to do by mistake -- you'd have to write endless loops or import modules and modify them, or someting. I seem to recall that you can evaluate a piece of code in a separate environment/sandbox -- maybe that's the way to go? (Personally, I try to avoid designs which need config files. If I /did/ need one I'd steal the design from some well-known Unix program, because that's my primary target, and I'd prefer not to lock myself into Python -- I might want to rewrite the thing in C, or Perl, or ...) /Jorgen -- // Jorgen Grahn jgrahn@ Ph'nglui mglw'nafh Cthulhu \X/algonet.se R'lyeh wgah'nagl fhtagn! -- http://mail.python.org/mailman/listinfo/python-list
Re: Thread scheduling
Jack Orenstein wrote: Peter Hansen wrote: You've got two shared global variables, done and counter. Each of these is modified in a manner that is not thread-safe. I don't know if counter is causing trouble, but it seems likely that done is. I understand that. Basically, the statement done += 1 is equivalent to the statement done = done + 1 which, in Python or most other languages is not thread-safe. Understood. I was counting on this being unlikely for my test case. I realize this isn't something to rely on in real software. Hmm... okay. I may have been distracted by the fact that your termination condition is based on done incrementing properly, and that it was possible this wouldn't happen because of the race condition. So, if I understand you now, you're saying that the reason done doesn't increment is actually because one of the threads is never finishing properly, for some reason not related to the code itself. (?) The point of the test is not to maintain counter -- it's to show that sometimes even after one thread completes, the other thread never is scheduled again. This seems wrong. Try running the code, and let me see if you see this behavior. On my machines (one Py2.4 on WinXP, one Py2.3.4 on RH9.0) I don't see this behaviour. Across about fifty runs each. And the two increments of done (one by each thread) are still almost certainly not going to coincide and cause a problem. Also, if you look at the output from the code on a hang, you will see that 'thread X: leaving' only prints once. This has nothing to do with what happens with the done variable. Okay, I believe you. As I said, I hadn't taken the time to read through everything at first, jumping on an obvious bug related to the done variable not meeting your termination conditions. I can see that something else is likely to be causing this. One thing you might try is experimenting with sys.setcheckinterval(), just to see what effect it might have, if any. It's also possible there were some threading bugs in Py2.2 under Linux. Maybe you could repeat the test with a more recent version and see if you get different behaviour. (Not that that proves anything conclusively, but at least it might be a good solution for your immediate problem.) -Peter -- http://mail.python.org/mailman/listinfo/python-list
Re: string methods (warning, newbie)
anthonyberet wrote: Is there a string mething to return only the alpha characters of a string? eg 'The Beatles - help - 03 - Ticket to ride', would be 'TheBeatlesTickettoride' If not then how best to approach this? I have some complicated plan to cut the string into individual characters and then concatenate a new string with the ones that return true with the .isalpha string method. Is there an easier way? Look into the string module's translate function. It will do this for you fairly easily. -Peter -- http://mail.python.org/mailman/listinfo/python-list
Re: Converting HTML to ASCII
On 2005-02-26, Paul Rubin http wrote: Jorgen Grahn [EMAIL PROTECTED] writes: You should probably do what some other poster suggested -- download lynx or some other text-only browser and make your code execute it in -dump mode to get the text-formatted html. You'll get that working in an hour or so, and then you can see if you need something more complicated. Lynx is pathetically slow for large files. First, make it work. Then make it work right. Then worry about how fast it is. Premature optimization... It seems to use a quadratic algorithm for remembering where the links point, or something. I wrote a very crude but very fast renderer in C that I can post if someone wants it, which is what I use for this purpose. If lynx really is too slow, try w3m or links. Both do a better job of rendering anyway. -- Grant Edwards grante Yow! I know how to do at SPECIAL EFFECTS!! visi.com -- http://mail.python.org/mailman/listinfo/python-list
RE: string methods (warning, newbie)
Anthonyberet wrote: Is there a string mething to return only the alpha characters of a string? eg 'The Beatles - help - 03 - Ticket to ride', would be 'TheBeatlesTickettoride' If not then how best to approach this? I have some complicated plan to cut the string into individual characters and then concatenate a new string with the ones that return true with the .isalpha string method. Is there an easier way? The approach you are considering may be easier than you think: filter(str.isalpha, 'The Beatles - help - 03 - Ticket to ride') 'TheBeatleshelpTickettoride' Jimmy -- http://mail.python.org/mailman/listinfo/python-list
Re: string methods (warning, newbie)
anthonyberet [EMAIL PROTECTED] wrote in message news:[EMAIL PROTECTED] Is there a string mething to return only the alpha characters of a string? eg 'The Beatles - help - 03 - Ticket to ride', would be 'TheBeatlesTickettoride' I believe you can do this with string.translate (string module, not str()) tjr -- http://mail.python.org/mailman/listinfo/python-list
Re: Thread scheduling
On my machines (one Py2.4 on WinXP, one Py2.3.4 on RH9.0) I don't see this behaviour. Across about fifty runs each. Thanks for trying this. One thing you might try is experimenting with sys.setcheckinterval(), just to see what effect it might have, if any. That does seem to have an impact. At 0, the problem was completely reproducible. At 100, I couldn't get it to occur. It's also possible there were some threading bugs in Py2.2 under Linux. Maybe you could repeat the test with a more recent version and see if you get different behaviour. (Not that that proves anything conclusively, but at least it might be a good solution for your immediate problem.) 2.3 (on the same machine) does seem better, even with setcheckinterval(0). Thanks for your suggestions. Can anyone with knowledge of Python internals comment on these results? (Look earlier in the thread for details. But basically, a very simple program with the thread module, running two threads, shows that on occasion, one thread finishes and the other never runs again. python2.3 seems better, as does python2.2 with sys.setcheckinterval(100).) Jack -- http://mail.python.org/mailman/listinfo/python-list
Re: Making a calendar
On Sat, Feb 26, 2005 at 01:57:20PM +0100, Pete. wrote: I'm trying to make a calendar for my webpage, python and html is the only programming languages that I know, is it possible to make such a calendar with pythong code and some html. The Idea is that when I click the link calendar on my webpage, then the user will be linked to the calendar. The calendar should show one month at the time, and the user should be able to browse to the other month. I will make a script that puts events and such into a db ( I know how to do this) Then I need a script that puts the events from the db into the calendar, if every day in the calendar has a value id that part will not be hard. All this and more (perhaps overkill): http://www.schooltool.org/schoolbell -- Brian Sutherland It's 10 minutes, 5 if you walk fast. -- http://mail.python.org/mailman/listinfo/python-list
Re: Thread scheduling
Jack Orenstein wrote: One thing you might try is experimenting with sys.setcheckinterval(), just to see what effect it might have, if any. That does seem to have an impact. At 0, the problem was completely reproducible. At 100, I couldn't get it to occur. If you try other values in between, can you directly affect the frequency of the failure? That would appear to suggest a race condition. It's also possible there were some threading bugs in Py2.2 under Linux. Maybe you could repeat the test with a more recent version and see if you get different behaviour. (Not that that proves anything conclusively, but at least it might be a good solution for your immediate problem.) 2.3 (on the same machine) does seem better, even with setcheckinterval(0). The default check interval was changed from 10 in version 2.2 and earlier to 100 in version 2.3. (See http://www.python.org/2.3/highlights.html for details.) On the other hand, with version 2.3.4 under RH9, I tried values of 10 and 1 with no failures at any time. This might still be an issue with your own particular system, so having others try it out might be helpful... -Peter -- http://mail.python.org/mailman/listinfo/python-list
Re: any Python equivalent of Math::Polynomial::Solve?
Just wrote: (Hm, I had the impression that scipy != Konrad Hinsen's Scientific module.) You're probably right :) I had played with [1], but it only calculates one root, and I need all roots (specifically, for a quintic equation). [2] doesn't seem to be a solver? Actually, I was curious whether the 'zeros' method in [2] did the right thing. Cheers, Nick. -- Nick Coghlan | [EMAIL PROTECTED] | Brisbane, Australia --- http://boredomandlaziness.skystorm.net -- http://mail.python.org/mailman/listinfo/python-list
Re: function expression with 2 arguments
Xah Lee wrote: Python doc is quite confounded in it's way of organization centered around implementation tied to hardware (as most imperative languages are hardware-centric), as opposed to algorithm math concepts. Actually, Python's docs are centred around the fact that they expect people to start out by at least skimming the freaking tutorial. . . Cheers, Nick. -- Nick Coghlan | [EMAIL PROTECTED] | Brisbane, Australia --- http://boredomandlaziness.skystorm.net -- http://mail.python.org/mailman/listinfo/python-list
Re: string methods (warning, newbie)
Jimmy Retzlaff wrote: The approach you are considering may be easier than you think: filter(str.isalpha, 'The Beatles - help - 03 - Ticket to ride') 'TheBeatleshelpTickettoride' Hmm, I think this is a case where filter is significantly clearer than the equivalent list comprehension: Py .join([c for c in 'The Beatles - help - 03 - Ticket to ride' if c.isalpha( )]) 'TheBeatleshelpTickettoride' Py Cheers, Nick. -- Nick Coghlan | [EMAIL PROTECTED] | Brisbane, Australia --- http://boredomandlaziness.skystorm.net -- http://mail.python.org/mailman/listinfo/python-list
Is it possible to pass a parameter by reference?
I defined two functions, f1 and f2. f1 modifies the value of a variable called apple. I want to pass the modified value of apple to f2. How can I do this? I got stuck. __ Do you Yahoo!? Yahoo! Mail - You care about security. So do we. http://promotions.yahoo.com/new_mail -- http://mail.python.org/mailman/listinfo/python-list
PyUnit and multiple test scripts
I'm trying to find the best way to use PyUnit and organize my test scripts. What I really want is to separate all my tests into 'test' directories within each module of my project. I want all the files there to define a 'suite' callable and to then all all those suites from all those test directories into one big suite and run it all. I'm having trouble with this. My first barrier was just loading the modules. As I had to be able to find them automatically (would be tedious to maintain a manual list of them) I needed to then load the modules from the paths to the files after I found them. This wasn't working, I just couldn't get it to load. I couldn't understand the imp module correctly. 1) Is there a very simple way to just take a file path and name, that I could use to open the source file, and load it as a module object, no strings attached? 2) Is there already a framework around that will do what I need? I've tried py.test, but I really do not like the way it displays results. -- http://mail.python.org/mailman/listinfo/python-list
Re: Is it possible to pass a parameter by reference?
Anthony Liu wrote: I defined two functions, f1 and f2. f1 modifies the value of a variable called apple. I want to pass the modified value of apple to f2. How can I do this? I got stuck. Pydef f1(apple): ...apple += 1 ...f2(apple) pydef f2(apple): ...print 'you have %s apples' % apple pyf1(4) 'you have 5 apples' Read the docs this is pretty basic, it will save you time. If in doubt try it out. Use the interpreter, it is your friend. hth, M.E.Farmer -- http://mail.python.org/mailman/listinfo/python-list
Re: Problem When Unit Testing with PMock
def mockit(): raise StopIteration now pass mockit() but it behaviors differenctly when pass in a mockit() and pass in an iterator with empty. so i think the code emulates nothing. def intit(k): for i in range(k): yield i Now you mean define my own iteration without the help of pmock. but there are still so many other methods in the iterator for pass in, i have to mock them one by one totally manually, its boring and thats the reason why i want pmock. -- http://mail.python.org/mailman/listinfo/python-list
parse lines to name value pairs
Hi all, I want to parse some string lines into name value pairs, where the value will be a list. Here are some sample lines: line1 = path {{data/tom} C:/user/john} line2 = books{{book music red} {book {math 1} blue} {book {tom's book} green}} For line1, the name is path, the name-value should be the following forms: [path, [data/tom, C:/user/john]] For line 2, the name is books, and the value should be a list in either one of the following forms (either one is ok): [books, [[book,music,red],[book,math 1,blue],[book, tom's book, green]]] or [books, [book,music,red,book,math 1,blue,book, tom's book, green]] Any ideas? Many thanks! -- http://mail.python.org/mailman/listinfo/python-list
Re: any Python equivalent of Math::Polynomial::Solve?
Just wrote: While googling for a non-linear equation solver, I found Math::Polynomial::Solve in CPAN. It seems a great little module, except it's not Python... I'm especially looking for its poly_root() functionality (which solves arbitrary polynomials). Does anyone know of a Python module/package that implements that? If you don't have a great need for speed, you can accomplish this easily with the linear algebra module of Numeric/numarray. Suppose your quintic polynomial's in the form a + b*x + c*x**2 + d*x**3 + e*x**4 + x**5 The roots of it are equal to the eigenvalues of the companion matrix: 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 -a -b -c -d -e It should be pretty easy to set up a Numeric matrix and call LinearAlgebra.eigenvalues. For example, here is a simple quintic solver: . from Numeric import * . from LinearAlgebra import * . . def quinticroots(p): . cm = zeros((5,5),Float32) . cm[0,1] = cm[1,2] = cm[2,3] = cm[3,4] = 1.0 . cm[4,0] = -p[0] . cm[4,1] = -p[1] . cm[4,2] = -p[2] . cm[4,3] = -p[3] . cm[4,4] = -p[4] . return eigenvalues(cm) now-you-can-find-all-five-Lagrange-points-ly yr's, -- CARL BANKS -- http://mail.python.org/mailman/listinfo/python-list
simple input that can understand special keys?
i'm writting an application that will use Tinker in a newer future. Now it's console only. I simply ommit some data on the display, print() some other and go on. The problem is that i can't test the actions tiggered by special keys, like Page Up/Down or the F1...12 Right now i'm using raw_input() since even the Tk version will have only one input place, and for debuging i'm literally writting pageup, pagedow and the F's. But i want to put it in test while i write the GUI. is there any hope for me? I wanted to stay only with the console for now. And it's windows by the way :) Thanks -- http://mail.python.org/mailman/listinfo/python-list
Re: cgi: getting at raw POST data?
Erik Johnson nobody at anywhere dot com wrote: I am trying to work with a program that is trying make an HTTP POST of text data without any named form parameter. (I don't know - is that a normal thing to do?) I need to write a CGI program that accepts and processes that data. I'm not seeing how to get at data that's not a named form parameter. If you are using POST in some non-standard way, just skip using the cgi module at all and read stdin yourself. -- - Tim Roberts, [EMAIL PROTECTED] Providenza Boekelheide, Inc. -- http://mail.python.org/mailman/listinfo/python-list
Re: Is it possible to pass a parameter by reference?
Anthony Liu [EMAIL PROTECTED] wrote: I defined two functions, f1 and f2. f1 modifies the value of a variable called apple. I want to pass the modified value of apple to f2. How can I do this? I got stuck. It depends on the data type. Essentially, all objects are passed by reference. However, some objects can be modified, and some cannot. Lists can, strings and tuples cannot. This is one of the most important thing to understand about Python, in my opinion. There is a fundamental separation between an object and whatever names it is known by. Here's an example: def xxx(yyy): yyy[1] = 3 zzz = [ 0, 1, 2 ] xxx(zzz) After this code runs, zzz will be [0,3,2]. Note that, while xxx is running, the list that was created as [0,1,2] has two names. However, this code will fail within xxx, because the string cannot be modified: aaa = abcde xxx(aaa) However, watch this: def xxx(yyy):# 0 yyy = [ 3, 4, 5] # 1 zzz = [ 0, 1, 2 ]# 2 xxx(zzz) # 3 After this runs, zzz will still be [0,1,2]. At line 2, a list object is created containing [0,1,2]. The variable name zzz is bound to that list. When we get to lines 3 and 0, the variable name yyy within function xxx is bound to that exact same object. However, in line 1, a NEW list object is created, containing [3,4,5]. The variable yyy is then bound to this NEW object, and its binding to the other list is lost. However, the variable zzz is still bound to [0,1,2]. If you need to create a new object and return it to the mainline, do that: def xxx(yyy): yyy = [ 3, 4, 5 ] return yyy zzz = [ 0, 1, 2 ] zzz = xxx(zzz) -- - Tim Roberts, [EMAIL PROTECTED] Providenza Boekelheide, Inc. -- http://mail.python.org/mailman/listinfo/python-list
[ python-Bugs-1152424 ] Dict docstring error Python-2.3.5
Bugs item #1152424, was opened at 2005-02-26 11:19 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=105470aid=1152424group_id=5470 Category: Documentation Group: Python 2.3 Status: Open Resolution: None Priority: 5 Submitted By: Colin J. Williams (cjwhrh) Assigned to: Nobody/Anonymous (nobody) Summary: Dict docstring error Python-2.3.5 Initial Comment: Minor error, epydoc reports the following: === In __builtin__.dict docstring: --- L3: Error: Improper paragraph indentation. L5: Error: Improper paragraph indentation. L7: Error: Improper paragraph indentation. L9: Error: Improper paragraph indentation. -- You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=105470aid=1152424group_id=5470 ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[ python-Bugs-1152723 ] urllib2 dont respect debuglevel in httplib
Bugs item #1152723, was opened at 2005-02-27 03:49 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=105470aid=1152723group_id=5470 Category: Python Library Group: Python 2.4 Status: Open Resolution: None Priority: 5 Submitted By: abbatini (abbatini) Assigned to: Nobody/Anonymous (nobody) Summary: urllib2 dont respect debuglevel in httplib Initial Comment: It is common habit to see http headers: import httplib httplib.HTTPConnection.debuglevel = 1 import urllib feeddata = urllib.urlopen('http://diveintomark.org/xml/atom.xml').read() but this dont work with import urllib2 with python 2.4 In rev 1.57 was intoduced code to AbstractHTTPHandler class that prevent above mentioned construction. Init method always set debuglevel=0 then do_open method always do: h.set_debuglevel(self._debuglevel) after instantiating HTTPConnection class. Regards -- You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=105470aid=1152723group_id=5470 ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[ python-Bugs-1152726 ] Default class args get clobbered by prior instances.
Bugs item #1152726, was opened at 2005-02-26 22:10 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=105470aid=1152726group_id=5470 Category: Python Interpreter Core Group: Python 2.3 Status: Open Resolution: None Priority: 5 Submitted By: Simon Drabble (sdrabble) Assigned to: Nobody/Anonymous (nobody) Summary: Default class args get clobbered by prior instances. Initial Comment: OS: SuSE Linux 9.2 kernel 2.6.4 Python: 2.3.3 Define a class where the __init__() method takes a default arg of list type. Instantiate this class, and append/ extend the value of its default arg. Instantiate the class again, and the value from the first instance will overwrite the second. The bug is known to exist in 2.3.3, but may exist in subsequent releases also. The attached file illuminates the problem. -- You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=105470aid=1152726group_id=5470 ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[ python-Bugs-1152726 ] Default class args get clobbered by prior instances.
Bugs item #1152726, was opened at 2005-02-26 22:10 Message generated for change (Settings changed) made by sdrabble You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=105470aid=1152726group_id=5470 Category: Python Interpreter Core Group: Python 2.3 Status: Open Resolution: None Priority: 8 Submitted By: Simon Drabble (sdrabble) Assigned to: Nobody/Anonymous (nobody) Summary: Default class args get clobbered by prior instances. Initial Comment: OS: SuSE Linux 9.2 kernel 2.6.4 Python: 2.3.3 Define a class where the __init__() method takes a default arg of list type. Instantiate this class, and append/ extend the value of its default arg. Instantiate the class again, and the value from the first instance will overwrite the second. The bug is known to exist in 2.3.3, but may exist in subsequent releases also. The attached file illuminates the problem. -- You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=105470aid=1152726group_id=5470 ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[ python-Bugs-1110242 ] gzip.GzipFile.flush() does not flush all internal buffers
Bugs item #1110242, was opened at 2005-01-26 16:42 Message generated for change (Comment added) made by alanmcintyre You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=105470aid=1110242group_id=5470 Category: Python Library Group: Python 2.4 Status: Open Resolution: None Priority: 5 Submitted By: David Schnepper (dschnepper) Assigned to: Nobody/Anonymous (nobody) Summary: gzip.GzipFile.flush() does not flush all internal buffers Initial Comment: flush() is expected to output all pending data stored in internal buffers. gzip.GzipFile.flush() does perform a flush on its fileobj, but does not flush the state of its compressobj prior to the IO flush. This results in being able to use gzip.GzipFile to zip output to a socket and having the other side unzip it in sync with originators flush calls. -- Comment By: Alan McIntyre (ESRG) (alanmcintyre) Date: 2005-02-26 23:33 Message: Logged In: YES user_id=1115903 This patch appears to fix the bug as described, and running the regression tests on Python 2.5a0 (CVS HEAD) plus this patch turns up no problems. Since the documentation says that a GzipFile simulates most of the methods of a file object, I would expect GzipFile.flush() to act in the way that David described in the first paragraph of the bug report, and his patch seems to provide that as far as I can tell. -- You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=105470aid=1110242group_id=5470 ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[ python-Bugs-1152762 ] curses.textpad raises error
Bugs item #1152762, was opened at 2005-02-27 19:00 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=105470aid=1152762group_id=5470 Category: Python Library Group: Python 2.3 Status: Open Resolution: None Priority: 5 Submitted By: John McPherson (jrm21) Assigned to: Nobody/Anonymous (nobody) Summary: curses.textpad raises error Initial Comment: textpad seems to have a bug when you backspace from the start of a line. By default, stripspaces is on, so it tries to skip any spaces on the previous line. But if there are no spaces, it raises a curses error and makes the app quit. Reproduce by: $ python /usr/lib/python2.3/curses/textpad.py type 1234567890 into the textpad press backspace twice. The problem is _end_of_line() function doing last = last + 1 I think a better way would be to start at the end of the line (last=self.maxx), and skip backwards while last is a space: while last 0 and ascii.ascii(self.win.inch(y, last)) == ascii.SP: last -= 1 -- You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=105470aid=1152762group_id=5470 ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com