Lissard 0.1 Release - Templating System
I'd like to announce the alpha release of Lissard -- a minimal python templating system (GPL) designed to be easy to learn, fast, and all together simple to extend. Lissard makes no attempt to complicate it's code base with powerful and generally over-specialized features or syntax enhancements, but offers what I hope many will find as a pleasant middle ground between mod_python's PSP and systems like Jinja and Mako. Full documentation and examples are provided. To download and learn more please visit the Lissard home at http://tweekedideas.com/lissard.html For more information, questions, or comments, feel free to contact me directly at [EMAIL PROTECTED] Take it easy, James Kassemi -- http://mail.python.org/mailman/listinfo/python-announce-list Support the Python Software Foundation: http://www.python.org/psf/donations.html
Call for Papers (Python or PyPy): Workshop on Self-sustaining Systems (S3) 2008
*** Workshop on Self-sustaining Systems (S3) 2008 *** May 15-16, 2008 Potsdam, Germany http://www.swa.hpi.uni-potsdam.de/s3/ -- Call for papers: The Workshop on Self-sustaining Systems (S3) is a forum for discussion of topics relating to computer systems and languages that are able to bootstrap, implement, modify, and maintain themselves. One property of these systems is that their implementation is based on small but powerful abstractions; examples include (amongst others) Squeak/ Smalltalk, COLA, Klein/Self, PyPy/Python, Rubinius/Ruby, and Lisp. Such systems are the engines of their own replacement, giving researchers and developers great power to experiment with, and explore future directions from within, their own small language kernels. S3 will be take place May 15-16, 2008 at the Hasso-Plattner-Institute in Potsdam, Germany. It is an exciting opportunity for researchers and practitioners interested in self-sustaining systems to meet and share their knowledge, experience, and ideas for future research and development. -- Invited talk: Ian Piumarta: Late-bound Object Lambda Architectures (Viewpoints Research Institute, USA) -- Submissions and proceedings: S3 invites submissions of high-quality papers reporting original research, or describing innovative contributions to, or experience with, self-sustaining systems, their implementation, and their application. Papers that depart significantly from established ideas and practices are particularly welcome. Submissions must not have been published previously and must not be under review for any another refereed event or publication. The program committee will evaluate each contributed paper based on its relevance, significance, clarity, and originality. Revised papers will be published as post-proceedings in the Springer LNCS series. Papers should be submitted electronically via EasyChair at http://www.easychair.org/conferences/?conf=s3 in PDF format. Submissions must be written in English (the official language of the workshop) and must not exceed 20 pages. They should use the LNCS format, templates for which are available at http://www.springer.de/comp/lncs/authors.html. -- Venue: Hasso-Plattner-Institut (Potsdam, Germany) -- Important dates: Submission of papers: February 15, 2008 Author notification: April 11, 2008 Revised papers due: April 25, 2008 S3 workshop: May 15-16, 2008 Final papers for LNCS post-proceedings due: June 6, 2008 -- Chairs: * Robert Hirschfeld (Hasso-Plattner-Institut Potsdam, Germany) * Kim Rose (Viewpoints Research Institute, USA) -- Program committee: * Johan Brichau, Universite Catholique de Louvain, Belgium * Pascal Costanza, Vrije Universiteit Brussel, Belgium * Wolfgang De Meuter, Vrije Universiteit Brussel, Belgium * Stephane Ducasse, INRIA Lille, France * Michael Haupt, Hasso-Plattner-Institut, Germany * Robert Hirschfeld, Hasso-Plattner-Institut, Germany * Dan Ingalls, Sun Microsystems Laboratories, USA * Martin von Löwis, Hasso-Plattner-Institut, Germany * Hidehiko Masuhara, University of Tokyo, Japan * Ian Piumarta, Viewpoints Research Institute, USA * David Ungar, IBM, USA -- Registration fees: Early (until April 18, 2008) * Regular participants: EUR 160 * Students: EUR 80 Late (after April 18, 2008) * Regular participants: EUR 170 * Students: EUR 90 -- http://mail.python.org/mailman/listinfo/python-announce-list Support the Python Software Foundation: http://www.python.org/psf/donations.html
Re: October PSF Board meeting minutes available
Minutes of a Regular Meeting of the Board of Directors of the Python Software Foundation, November 12, 2007: http://www.python.org/psf/records/board/minutes/2007-11-12/ -- David Goodger http://python.net/~goodger -- http://mail.python.org/mailman/listinfo/python-announce-list Support the Python Software Foundation: http://www.python.org/psf/donations.html
Re: Monitoring the output of an external program
On 12/13/07, Caleb Marcus [EMAIL PROTECTED] wrote: I'm writing something that has to invoke an external program, and every time the external program prints something, update a UI. How would I go about doing this? Use sys.popen or pexpect module. With pexpect you can even use single thread. -- Vladimir Rusinov GreenMice Solutions: IT-решения на базе Linux http://greenmice.info/ -- http://mail.python.org/mailman/listinfo/python-list
Re: Difference between del and remove?
Yansky [EMAIL PROTECTED] wrote: Got a quick n00b question. What's the difference between del and remove? It would have been easier to answer if you had given a little context. del is a Python statement that removes a name from a namespace, an item from a dictionary, or an item from a list. remove is a member function of the 'list' class that finds a specific entry in the list and removes it. Example: e = [9,8,7,6] ; del e[2] ; e [9, 8, 6] e = [9,8,7,6] ; e.remove(2) ; e Traceback (most recent call last): File stdin, line 1, in ? ValueError: list.remove(x): x not in list e = [9,8,7,6] ; e.remove(8) ; e [9, 7, 6] Note that del e[2] removed item number 2 (counting from 0). e.remove(8) removed the item that had the value 8 from the list. e.remove(2) failed because the number 2 was not in the list. Dictionaries do not have a remove method. You have to use the del statement. -- Tim Roberts, [EMAIL PROTECTED] Providenza Boekelheide, Inc. -- http://mail.python.org/mailman/listinfo/python-list
Re: Dynamic or not?
[EMAIL PROTECTED] wrote: I'm trying to write a program that will find the distance between two groups of points in space, which have cartesian co-ordinates X,Y and Z. I need to find the distances between each point in one group and every point in the other group. So if group 1 has 6 points and group 2 had 8 points, I will calculate 6 x 8 = 48 distances. But I do not know the number of points the user will want to use. It is typically between 50 and 500 in both groups combined, but may be more. Since the memory required for the distances will be much larger than the points themselves, I am wondering if I will have to allocate memory dynamically or if there are easier ways of solving such problems in Python. Python already allocates memory dynamically. With 500 in each group, you'll have 250,000 distances. If you use floating point, that's only 2 megabytes. Piece of cake. With 1,000 in each group, it's 8 megabytes. Still no sweat. What are you going to do with these distances? Why do you need them all in memory? -- Tim Roberts, [EMAIL PROTECTED] Providenza Boekelheide, Inc. -- http://mail.python.org/mailman/listinfo/python-list
Re: Dynamic or not?
On Dec 13, 3:33 pm, Steven D'Aprano [EMAIL PROTECTED] cybersource.com.au wrote: On Wed, 12 Dec 2007 19:18:20 -0800, rishiyoor wrote: I'm trying to write a program that will find the distance between two groups of points in space, which have cartesian co-ordinates X,Y and Z. points1 = [ (1.2, 3.4), (5.7, 9.2) ] points2 = [ (-6.3, 0.0), (14.1, -7.8), (2.6, 12.8) ] import math def distance(p1, p2): return math.hypot(p1[0]-p2[0], p1[1]-p2[1]) X, Y, umm, aren't we short a dimension? -- http://mail.python.org/mailman/listinfo/python-list
Re: Newbie NameError problem
On Dec 12, 7:03 pm, Paul Rudin [EMAIL PROTECTED] wrote: [EMAIL PROTECTED] writes: On Dec 12, 5:51 pm, Paul Rudin [EMAIL PROTECTED] wrote: [EMAIL PROTECTED] writes: I don't understand what I don't understand in the following: I haven't tried to understand what your code is doing - but the NameError arises because you try to use Loc before its definition. Put the definition first and the error should go away. Class Loc must be placed ABOVE the code that uses it. Isn't that what I said? I had had a few too many Coffee's, had thought the extra commenting would aid :) -- http://mail.python.org/mailman/listinfo/python-list
Re: Dynamic or not?
On Thu, 13 Dec 2007 00:39:55 -0800, John Machin wrote: X, Y, umm, aren't we short a dimension? I'm not going to do *everything* for the OP. He can extend it to three dimensions. -- Steven -- http://mail.python.org/mailman/listinfo/python-list
looping list?
hi.. i'm trying to insert value into list according to the key (ASCII) that i generate.. example : win = 95, so must insert into list[95] and = 70, so must insert into list[70] this is my coding.. __ list = [] try: conn = MySQLdb.connect (host = localhost, user = root, passwd = 508420, db = myimg) except MySQLdb.Error, e: print Error %d: %s % (e.args[0], e.args[1]) sys.exit (1) cursor = conn.cursor() cursor.execute (SELECT word,id,freq,indeks FROM tablesusun) for(word,id,freq,indeks) in cursor.fetchall(): first = ord(word[0]) second = ord(word[1]) last = first * second key = last % 100 for i in range (100): if i == key : list.append([i,word]) else : list.append([0]) print list cursor.close () conn.commit () conn.close () __ the ouput is : [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [and], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0]; [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [win], [0], [0], [0], [0]; __ i want the output is like this : [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [and], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [win], [0], [0], [0], [0]; any ideas? -- http://mail.python.org/mailman/listinfo/python-list
what the heck does this mean?
Traceback (most recent call last): File C:\Python25\empire\Empire Strategy.pyw, line 322 Maty = Searched(number) TypeError: 'list' object is not callable My list is NewMap1 =[0,0,0,0,0,0,2,0,2,2,3,2,0,0,0,0] so Maty Searched(number is supposed to give me 0 when Search = NewMap number = 0 bignum = 1 bignumer = repr(bignum) Searching = Search+bignumer Searched = eval(Searching) Maty = Searched[number] instead i get that error whats up? i thought it is suppose to give me NewMap1(0).when I print it it works fine and gives me the result 0 but when I go to save the number as Maty-(randomletters) it keeps giving me the stupid error. please help Ps: rather than doing in your head making a test prgram to run exactly that might be better Looking for last minute shopping deals? Find them fast with Yahoo! Search. http://tools.search.yahoo.com/newsearch/category.php?category=shopping-- http://mail.python.org/mailman/listinfo/python-list
Re: what the heck does this mean?
katie smith wrote: Traceback (most recent call last): File C:\Python25\empire\Empire Strategy.pyw, line 322 Maty = Searched(number) TypeError: 'list' object is not callable My list is NewMap1 =[0,0,0,0,0,0,2,0,2,2,3,2,0,0,0,0] so Maty Searched(number is supposed to give me 0 when Search = NewMap number = 0 bignum = 1 bignumer = repr(bignum) Searching = Search+bignumer Searched = eval(Searching) Maty = Searched[number] instead i get that error whats up? i thought it is suppose to give me NewMap1(0).when I print it it works fine and gives me the result 0 but when I go to save the number as Maty-(randomletters) it keeps giving me the stupid error. You're not telling us something important. When I execute the statements you give, I do indeed get 0 for the value of Maty, which is what you expect -- so I see no problem. But then in your next claim, you say save the number as Maty-(randomletters). What does that mean? What Python statement are you running? What means save? What is randomletters? The error you are getting is usually gotten by code that tries to treat a variable containing a list as a function. Example: someList = [1,2,3] someList(99) Traceback (most recent call last): File stdin, line 1, in module TypeError: 'list' object is not callable Gary Herron please help Ps: rather than doing in your head making a test prgram to run exactly that might be better Looking for last minute shopping deals? Find them fast with Yahoo! Search. http://us.rd.yahoo.com/evt=51734/*http://tools.search.yahoo.com/newsearch/category.php?category=shopping -- http://mail.python.org/mailman/listinfo/python-list
Re: Is Python really a scripting language?
Doug Morse a écrit : ottop-post corrected/ot But here's my problem, most of my coworkers, when they see my apps and learn that they are written in Python ask questions like, Why would you write that in a scripting language? Whenever I hear a comment like that I can feel myself boiling inside. although perhaps not a part of the definition of scripting languages per se, I still wait to see any clear, unambiguous definition of scripting language. Which one are you refering to here ? (snip) -- http://mail.python.org/mailman/listinfo/python-list
Re: Is Python really a scripting language?
Terry Reedy a écrit : Ron Provost [EMAIL PROTECTED] wrote in message news:[EMAIL PROTECTED] But here's my problem, most of my coworkers, when they see my apps and learn that they are written in Python ask questions like, Why would you write that in a scripting language? Then ask them what's a scripting language exactly... or download this, print it and put it on the wall near your desktop: http://apipes.blogspot.com/2005/01/choose-python.html Whenever I hear a comment like that I can feel myself boiling inside. As far as I'm concerned, anyone (I mean, anyone pretending to be a programmer) being ignorant enough to ask such a question ranks high in my bozo list. Don't waste time with bozos. I don't blame you. Python is an full-fledged algorithm/programming language that was designed to *also* be used a scripting language. Indeed. -- http://mail.python.org/mailman/listinfo/python-list
MySQLdb extracting to a list
Hi all, I've been searching the docs like mad and I'm a little new to python so apologies if this is a basic question. I would like to extract the results of the following query into a list - SELECT columnname FROM tablename. I use the following code. # Create a connection object and create a cursor db = MySQLdb.Connect(my-db-info) cursor = db.cursor() # Make SQL string and execute it sql = SELECT columnname FROM tablename cursor.execute(sql) # Fetch all results from the cursor into a sequence and close the connection results = cursor.fetchall() db.close() print results The output from the above gives the following: (('string1',), ('string2',), ('string3',)) When I'm expecting ('string1', 'string2', 'string3') I could pass this through some string manipulation but I'd guess I'm doing something wrong. Please could someone point me in the right direction. Thanks in advance. -- http://mail.python.org/mailman/listinfo/python-list
Re: Is Python really a scripting language?
Bruno Desthuilliers wrote: As far as I'm concerned, anyone (I mean, anyone pretending to be a programmer) being ignorant enough to ask such a question ranks high in my bozo list. Don't waste time with bozos. Alan Kay said it well enough without using words like pretending, ignorant and bozo :) http://acmqueue.com/modules.php?name=Contentpa=showpagepid=273 It's worth a read. -- http://mail.python.org/mailman/listinfo/python-list
Re: what the heck does this mean?
(Answering to Katie Smith) katie smith wrote: Traceback (most recent call last): File C:\Python25\empire\Empire Strategy.pyw, line 322 Maty = Searched(number) TypeError: 'list' object is not callable And which is line 322 ? My list is NewMap1 =[0,0,0,0,0,0,2,0,2,2,3,2,0,0,0,0] so Maty Searched(number is supposed to give me 0 when Search = NewMap number = 0 bignum = 1 bignumer = repr(bignum) Searching = Search+bignumer Searched = eval(Searching) Maty = Searched[number] Out of context, this really looks like a major WTF to me. Whenever you see 'eval' in your code, you can suspect a serious conception problem. You may want to read the doc, specially about getattr(), locals() and globals(). Or simply learn how to pass params... to functions. instead i get that error whats up? i thought it is suppose to give me NewMap1(0). If NewMap1 is a list, trying to apply the call operator to it will indeed raise a TypeError with a message similar to the one you posted. Hint: in Python, parens are the function call operator. If you want subscripting, use brackets (ie : some_list[index], not some_list(index). Here again, reading the FineManual would be a good idea, because this is really Python 101. when I print it it works fine and gives me the result 0 but when I go to save the number as Maty-(randomletters) it keeps giving me the stupid error. The stupid error is usually indicating a problem in the code. Now since I don't see any readable code here, I just can't help. If you hope help, please post minimal working code[1] reproducing your problem. FWIW, chances are you'll spot the problem in the way... [1] meaning: anyone can copy/paste the code snippet and run it. -- http://mail.python.org/mailman/listinfo/python-list
Re: Is Python really a scripting language?
Marco Mariani a écrit : Bruno Desthuilliers wrote: As far as I'm concerned, anyone (I mean, anyone pretending to be a programmer) being ignorant enough to ask such a question ranks high in my bozo list. Don't waste time with bozos. Alan Kay said it well enough without using words like pretending, ignorant and bozo :) Probably. But I do like using these words, and having the opportunity to use them three in a same post really made me happy !-) http://acmqueue.com/modules.php?name=Contentpa=showpagepid=273 It's worth a read. Whenever I'll get a couple minutes. -- http://mail.python.org/mailman/listinfo/python-list
Re: MySQLdb extracting to a list
On Dec 13, 9:03 pm, [EMAIL PROTECTED] wrote: Hi all, I've been searching the docs like mad and I'm a little new to python so apologies if this is a basic question. I would like to extract the results of the following query into a list - SELECT columnname FROM tablename. I use the following code. # Create a connection object and create a cursor db = MySQLdb.Connect(my-db-info) cursor = db.cursor() # Make SQL string and execute it sql = SELECT columnname FROM tablename cursor.execute(sql) # Fetch all results from the cursor into a sequence and close the connection results = cursor.fetchall() db.close() print results The output from the above gives the following: (('string1',), ('string2',), ('string3',)) When I'm expecting ('string1', 'string2', 'string3') I could pass this through some string manipulation but I'd guess I'm doing something wrong. Please could someone point me in the right direction. Your SQL query has returned 3 rows. Each row contains only 1 column. Each row is returned as a tuple of 1 element. The whole result is a tuple of 3 rows. You don't need string manipulation, you need tuple manipulation. Better example: select name, hat_size from friends; results in: (('Tom', 6), ('Dick', 7), ('Harry', 8)) so: result = (('Tom', 6), ('Dick', 7), ('Harry', 8)) [row[0] for row in result] ['Tom', 'Dick', 'Harry'] for n, h in result: ...print 'Name: %s; hat size: %d' % (n, h) ... Name: Tom; hat size: 6 Name: Dick; hat size: 7 Name: Harry; hat size: 8 result[2][1] 8 HTH, John -- http://mail.python.org/mailman/listinfo/python-list
Re: what the heck does this mean?
On Dec 13, 2007 4:57 AM, katie smith [EMAIL PROTECTED] wrote: Traceback (most recent call last): File C:\Python25\empire\Empire Strategy.pyw, line 322 Maty = Searched(number) TypeError: 'list' object is not callable This is the error message. The first line basically says This is what happened: The second shows the file, and the line number. The third is the actual line. Then the error message: you had a list object, and you tried to call it. Well, looking at that line, we see Searched(number). Search is apparently a list, and you used ( ) on it, which tries to call it, but that's not possible. So that's the mistake - you meant to use [ ], but used ( ). so Maty Searched(number is supposed to give me 0 when Search = NewMap number = 0 bignum = 1 bignumer = repr(bignum) Searching = Search+bignumer Searched = eval(Searching) Maty = Searched[number] This isn't the actual code that gave the error message - here you used [ ]. Anyway, doing it like this is really bad and likely to go wrong, but that's not your question. Remco Gerlich -- http://mail.python.org/mailman/listinfo/python-list
Very beautiful girls and many useful resources and more, please check it out
Very beautiful girls and many useful resources and more,please check it out http://groups.google.com/group/all-good-things/web/beautiful-girls-and-ladies -- http://mail.python.org/mailman/listinfo/python-list
Re: MySQLdb extracting to a list
On Dec 13, 10:40 am, John Machin [EMAIL PROTECTED] wrote: On Dec 13, 9:03 pm, [EMAIL PROTECTED] wrote: Hi all, I've been searching the docs like mad and I'm a little new to python so apologies if this is a basic question. I would like to extract the results of the following query into a list - SELECT columnname FROM tablename. I use the following code. # Create a connection object and create a cursor db = MySQLdb.Connect(my-db-info) cursor = db.cursor() # Make SQL string and execute it sql = SELECT columnname FROM tablename cursor.execute(sql) # Fetch all results from the cursor into a sequence and close the connection results = cursor.fetchall() db.close() print results The output from the above gives the following: (('string1',), ('string2',), ('string3',)) When I'm expecting ('string1', 'string2', 'string3') I could pass this through some string manipulation but I'd guess I'm doing something wrong. Please could someone point me in the right direction. Your SQL query has returned 3 rows. Each row contains only 1 column. Each row is returned as a tuple of 1 element. The whole result is a tuple of 3 rows. You don't need string manipulation, you need tuple manipulation. Better example: select name, hat_size from friends; results in: (('Tom', 6), ('Dick', 7), ('Harry', 8)) so: result = (('Tom', 6), ('Dick', 7), ('Harry', 8)) [row[0] for row in result] ['Tom', 'Dick', 'Harry'] for n, h in result: ...print 'Name: %s; hat size: %d' % (n, h) ... Name: Tom; hat size: 6 Name: Dick; hat size: 7 Name: Harry; hat size: 8 result[2][1] 8 HTH, John Many thanks John, Really well explained and I understand what to do now. It's much appreciated. Thanks again. -- http://mail.python.org/mailman/listinfo/python-list
Re: Is a real C-Python possible?
sturlamolden a écrit : On 12 Des, 17:00, Chris Mellon [EMAIL PROTECTED] wrote: Python has not become what it is, and achieved the success it has, because a bunch of people really wanted to use Lisp but didn't think other people could handle it. The goal of these sorts of discussions should be to make Python a better Python. I do not want to use Lisp. The syntax is awkward and strange, and does not fit in my brain. I cannot read Lisp code and get a mental image of what it does. Readability is what sets Python apart. Part of this readability comes from opiniated choices wrt/ syntax. Letting anyone invent it's own syntax could well ruin this. -- http://mail.python.org/mailman/listinfo/python-list
kniterbasdb and datetime
Hi All, I connected to a FireBird 1.5 database this way: import kinterbasdb kinterbasdb.init(type_conv=200) # See http://kinterbasdb.sourceforge.net/dist_docs/usage.html#faq_fep_is_mxdatetime_required Then I try to update the database: sql = UPDATE TABLE1 SET DATEFIELD=? where ID = ? params=[datetime.date(2007,11,01),2341] cursor.execute(sql,params) I get this error: kinterbasdb.ProgrammingError: (-413, 'isc_dsql_execute: \n conversion error from string 2007-11-01') What is wrong here? Thanks, Laszlo -- http://mail.python.org/mailman/listinfo/python-list
releasing the reference returned by PyLong_FromLong, PyString_FromString friends
I am having a object tuple created at application startup. This tuple I pass on to a python function in call to: PyObject_CallObject(pcatInfo-pPyEvalFunction,pTuple); For setting the values in this tuple, I am using PyLong_FromLong, PyString_FromString friends functions. PyTuple_SetItem(pTuple,nCtr,PyString_FromString(szOrdValue)); My worry is that I will be doing this operation lot many times in the active duration of my application. During this time I do not want to delete the tuple (pTuple) object passed to PyObject_CallObject, to avoid the time taken for creating the object every time. But this poses another problem. Every call I make to PyLong_FromLong, PyString_FromString friends functions, they return references. How do we release the references or objects returned by these functions? What is the optimum strategy in this? Please guide. -- http://mail.python.org/mailman/listinfo/python-list
Re: do as a keyword
On Wed, 12 Dec 2007 09:46:09 -0600, Chris Mellon wrote: I agree that it's fundamental, but I'd like to mention that I've written many thousands of lines of Python code, from throwaway code for demonstration to enterprisey servers and all sorts of things in between and I've *never* written a 1 or more times loop except when I was demonstrating that exact thing. One thing that Python has definitely changed my thinking about is that I tend to formulate both problems and solutions in terms of iteration over sequence rather than as traditional conditional based looping. If I need a 1 or more loop I formulate the problem as a sequence of 1 or more elements. How would you code an integrator-loop to stop when its error goes below some limit with iterations? While loops are as far as I can tell essential for a number of problems in math and physics. Cheers TG -- http://mail.python.org/mailman/listinfo/python-list
Re: do as a keyword
On Dec 11, 2007 4:06 PM, Neil Cerutti [EMAIL PROTECTED] wrote: However, did you have an specific need for a do-while construct? Perhaps we could show you the alternatives. I have wanted do-while loops in exactly one kind of algorithms, when you generate something and you have to keep trying until it gets right. For example, generating random and non-overlapping points on a grid: import random grid = dict() for i in range(10): while True: x = random.randint(0, 4) y = random.randint(0, 4) if not (x, y) in grid: break grid[x, y] = 1 The loop runs one or more times until a vacant spot in the grid is found. This type problem would be better expressed using a do-while: import random grid = dict() for i in range(10): do: x = random.randint(0, 4) y = random.randint(0, 4) while (x, y) in grid grid[x, y] = 1 -- mvh Björn -- http://mail.python.org/mailman/listinfo/python-list
Re: determining bytes read from a file.
vineeth wrote: Hello all, I have come across a weird problem, I need to determine the amount of bytes read from a file, but couldn't figure it out , My program does this : __ file = open(somefile) data = file.read() print bytes read , len(data) --- But the bytes read is not being printed correctly, I think bytes are being counted only till the first occurance of '\0' is encountered. Even though the file is of a very large size, the bytes till the first '\0' are counted. I doubt that. Python doesn't interpret data when reading, and byte-strings don't have a implicit 0-based length. So I think you must be doing something different - clearly the above is not actual code, but something made up for this post. Show us your actual code, please. diez -- http://mail.python.org/mailman/listinfo/python-list
Re: Difference between del and remove?
Thanks for the clarification guys. :) On Dec 13, 7:05 pm, Tim Roberts [EMAIL PROTECTED] wrote: Yansky [EMAIL PROTECTED] wrote: Got a quick n00b question. What's the difference between del and remove? It would have been easier to answer if you had given a little context. del is a Python statement that removes a name from a namespace, an item from a dictionary, or an item from a list. remove is a member function of the 'list' class that finds a specific entry in the list and removes it. Example: e = [9,8,7,6] ; del e[2] ; e [9, 8, 6] e = [9,8,7,6] ; e.remove(2) ; e Traceback (most recent call last): File stdin, line 1, in ? ValueError: list.remove(x): x not in list e = [9,8,7,6] ; e.remove(8) ; e [9, 7, 6] Note that del e[2] removed item number 2 (counting from 0). e.remove(8) removed the item that had the value 8 from the list. e.remove(2) failed because the number 2 was not in the list. Dictionaries do not have a remove method. You have to use the del statement. -- Tim Roberts, [EMAIL PROTECTED] Providenza Boekelheide, Inc. -- http://mail.python.org/mailman/listinfo/python-list
determining bytes read from a file.
Hello all, I have come across a weird problem, I need to determine the amount of bytes read from a file, but couldn't figure it out , My program does this : __ file = open(somefile) data = file.read() print bytes read , len(data) --- But the bytes read is not being printed correctly, I think bytes are being counted only till the first occurance of '\0' is encountered. Even though the file is of a very large size, the bytes till the first '\0' are counted. Can someone pls advise me regarding this. Thanks. Best Regards, Vineeth. -- http://mail.python.org/mailman/listinfo/python-list
Re: determining bytes read from a file.
On Dec 13, 11:04 pm, vineeth [EMAIL PROTECTED] wrote: Hello all, I have come across a weird problem, I need to determine the amount of bytes read from a file, but couldn't figure it out , My program does this : __ file = open(somefile) data = file.read() print bytes read , len(data) --- But the bytes read is not being printed correctly, I think bytes are being counted only till the first occurance of '\0' is encountered. Even though the file is of a very large size, the bytes till the first '\0' are counted. Can someone pls advise me regarding this. Thanks. Best Regards, Vineeth. -- http://mail.python.org/mailman/listinfo/python-list
Re: determining bytes read from a file.
On Dec 13, 5:13 pm, Diez B. Roggisch [EMAIL PROTECTED] wrote: vineeth wrote: Hello all, I have come across a weird problem, I need to determine the amount of bytes read from a file, but couldn't figure it out , My program does this : __ file = open(somefile) data = file.read() print bytes read , len(data) --- But the bytes read is not being printed correctly, I think bytes are being counted only till the first occurance of '\0' is encountered. Even though the file is of a very large size, the bytes till the first '\0' are counted. I doubt that. Python doesn't interpret data when reading, and byte-strings don't have a implicit 0-based length. So I think you must be doing something different - clearly the above is not actual code, but something made up for this post. Show us your actual code, please. diez Hi, The program tries to create a C Byte array of HEX data from a binary input file (for ex : to embed a .png image with the application as an array), Here is the program : python script to create a bit stream of a input binary file. Usage : bit_stream_creator.py -i input_file -b bytes_to_dump import sys from binascii import hexlify from optparse import OptionParser if len(sys.argv) != 5: print incorrect args, usage : %s -i input_file -b bytes_to_dump % (sys.argv[0]) sys.exit(0) parser = OptionParser() parser.add_option(-i, --input, dest=inputfilename) parser.add_option(-b, --bytes, dest=bytes) (options, args) = parser.parse_args() print -i,options.inputfilename print -b,options.bytes # open input file infile = open(options.inputfilename) # create the member variable name. mem_var_name = options.inputfilename mem_var_name = mem_var_name.replace(' ','_') mem_var_name = mem_var_name.replace('.','_') outfile_c = open(mem_var_name + .c,w) outfile_h = open(mem_var_name + .h,w) # read the data. print Reading %d bytes. % (int(options.bytes)) bytes_reqd = int(options.bytes) data = infile.read(bytes_reqd) print Bytes Read , len(data) # convert to hex decimal representation hex_data = hexlify(data) i = 0 # Write the c file with the memory dump. outfile_c.write ( unsigned char %s[%d] = {\n % (mem_var_name,bytes_reqd) ) while i len(hex_data): outfile_c.write( 0x%c%c % ( hex_data[i],hex_data[i+1] ) ) i += 2 if i != len(hex_data): outfile_c.write(,) if i % 32 == 0: outfile_c.write(\n) outfile_c.write ( \n};\n ) # Write the .h file with forward declaration. cpp_macro = __+mem_var_name.upper()+_H__ outfile_h.write(#ifndef +cpp_macro + \n) outfile_h.write(#define +cpp_macro + \n) outfile_h.write( //%s, size %d \n % (mem_var_name,len(data)) ) outfile_h.write( extern unsigned char %s[%d];\n % (mem_var_name,bytes_reqd) ) outfile_h.write(#endif //+cpp_macro + \n) #close the files. outfile_c.close() outfile_h.close() infile.close() But len(data) never proceeds beyond the NULL character. Any help and tips is appreciated. Thanks and Regards, Vineeth. -- http://mail.python.org/mailman/listinfo/python-list
problem in reading indices
Hi all I'm becoming mad, because I can't see what's wrong: I am constructing a GUI, to plot some data. so let's have a look of what's wrong: in my code I have a variable named choice[i].current which is the current selection of the i-th Listbox object. it is a tuple, with one element. so when I write print type(i),type(choice[i].current) I have: int and tuple print type(i),type(choice[i].current[0]) I have: int and str print type(i),type(int(choice[i].current[0])) I have: int and int so when I call another array with these indices ArrayWithData[i,int(choice[i].current[0])] I have the following error: TypeError: list indices must be integers so I tried an intermediate value, because sometimes, the oneliner code doesn't work, so with an intermediate passage: value=int(choice[i].current[0]) ArrayWithData[i,value] I have the same error and I don't understand why. What's wrong? May anyone have an idea? Xavier pm: and print type(ArrayWithData), ArrayWithData gives me type 'list' [array([ 2.01, 5.01]),...] -- http://mail.python.org/mailman/listinfo/python-list
Re: determining bytes read from a file.
vineeth wrote: parser.add_option(-b, --bytes, dest=bytes) This is an aside, but if you pass 'type=int' to add_option, optparse will automatically convert it to an int, and (I think), give a more useful error message on failure. -- -- http://mail.python.org/mailman/listinfo/python-list
Re: determining bytes read from a file.
On Dec 13, 5:27 pm, Marc 'BlackJack' Rintsch [EMAIL PROTECTED] wrote: On Thu, 13 Dec 2007 04:04:59 -0800, vineeth wrote: I have come across a weird problem, I need to determine the amount of bytes read from a file, but couldn't figure it out , My program does this : __ file = open(somefile) data = file.read() print bytes read , len(data) --- But the bytes read is not being printed correctly, I think bytes are being counted only till the first occurance of '\0' is encountered. Even though the file is of a very large size, the bytes till the first '\0' are counted. If you want to deal with bytes better open the file in binary mode. Windows alters line endings and stops at a specific byte (forgot the value) otherwise. Ciao, Marc 'BlackJack' Rintsch Thanks, opening the file in binary mode helped, thanks a lot. -- http://mail.python.org/mailman/listinfo/python-list
XML partial validation.
Hi! I am writing a text to XML parser that as to be easily extensible (via new text format plug-ins) and modifiable if the XML format used changes. Since the text order does not match the XML document order I have to use a package that allows DOM-like handling of XML (elementtree for instance). The XML DTD is still (and most likelly will be) in a state of evolution. To make life much easier for future developers what I really needed was some package that implemented something like DOM level 3 XML partial validation. There seems to be already something implemented in PyXML (at least the Validition-Err exception is there) but there is no documentation and I can not figure how to turn partial validation on. Any advice? Thank you very much. Best regards José Rui -- http://mail.python.org/mailman/listinfo/python-list
Re: Improvements to the Python core
On Dec 13, 3:56 am, Christian Heimes [EMAIL PROTECTED] wrote: Paul Boddie wrote: Then you haven't been reading the right IRC channel recently. ;-) What's the right channel? I'm on #python and #python-dev But where are people who might know Psyco likely to hang out? ;-) Anyway, it remains to be seen what happens, but by reading various conversations I get the impression that something could be afoot. I wouldn't want to preempt any announcements, however, so I'll say no more on the matter. [Cross-compilation] I don't get your point, especially when you talk about distutils. Please elaborate. From memory, once the Python executable is built, there's some kind of process where modules get built with the newly built Python (perhaps the rule labelled Build the shared modules in the Makefile). This doesn't go down well when cross-compiling Python. (C)Python has a well known process to get new features or changes into the language: Write a PEP, convince enough core developers and/or Guido, implement the feature. I don't see a PEP about JIT in the list at abouthttp://www.python.org/dev/peps/, do you? :] PEPs are very much skewed towards language changes, which then encourages everyone and their dog to submit language changes, of course. Besides nobody is going to stop you from creating a fork. Christian Tismer forked of stackless years ago. It's a successful branch with useful additions to the language. It got never merged back because Christian didn't feel right about it. I think we all appreciate the work done by the core developers to improve Python's stability and performance; new language features don't interest me quite as much: it was, after all, possible to write working systems in Python 1.x, with the addition of Unicode probably rounding out quite a decent subset of what the language offers today. The demands for greater performance enhancements than those possible by modifying the existing virtual machine conservatively may, however, eventually lead people to consider other paths of development just as Stackless emerged as a fork in order to offer things that CPython could not. I think the pressure to fork Python will only increase over time, considering the above together with the not inconsiderable impact of Python 3.0 and the dependencies on Python 2.x out there in lots of places, typically out of sight (or at least, the immediate consideration) of the core developers. Paul -- http://mail.python.org/mailman/listinfo/python-list
Re: kniterbasdb and datetime
On Dec 13, 7:45 pm, Laszlo Nagy [EMAIL PROTECTED] wrote: Hi All, I connected to a FireBird 1.5 database this way: import kinterbasdb kinterbasdb.init(type_conv=200) # Seehttp://kinterbasdb.sourceforge.net/dist_docs/usage.html#faq_fep_is_mx... Then I try to update the database: sql = UPDATE TABLE1 SET DATEFIELD=? where ID = ? params=[datetime.date(2007,11,01),2341] cursor.execute(sql,params) I get this error: kinterbasdb.ProgrammingError: (-413, 'isc_dsql_execute: \n conversion error from string 2007-11-01') What is wrong here? Thanks, Laszlo Kinterbasdb probably expects the format looking like month/day/year rather than year-month-day I have an old pythoncard app where there was the same issue when picking a date using the wx.calendar widget, Rearranging the format solved the problem. here is the relevant code snippet ,maybe it gives you the idea: def on_doCalDate_command(self,event): # this the way to get a wx.calendar date into a # format suitable for kinterbasdb D=[] MYDATE=str(self.components.Calendar1.date) SPLITDATE=MYDATE.split('-') for data in SPLITDATE: D.append(data) YR=D[0] MO=D[1] DY=D[2] JOBDATE=MO+/+DY+/+YR DB -- http://mail.python.org/mailman/listinfo/python-list
Re: determining bytes read from a file.
On Thu, 13 Dec 2007 04:04:59 -0800, vineeth wrote: I have come across a weird problem, I need to determine the amount of bytes read from a file, but couldn't figure it out , My program does this : __ file = open(somefile) data = file.read() print bytes read , len(data) --- But the bytes read is not being printed correctly, I think bytes are being counted only till the first occurance of '\0' is encountered. Even though the file is of a very large size, the bytes till the first '\0' are counted. If you want to deal with bytes better open the file in binary mode. Windows alters line endings and stops at a specific byte (forgot the value) otherwise. Ciao, Marc 'BlackJack' Rintsch -- http://mail.python.org/mailman/listinfo/python-list
Re: determining bytes read from a file.
On Dec 13, 11:04 pm, vineeth [EMAIL PROTECTED] wrote: Hello all, I have come across a weird problem, I need to determine the amount of bytes read from a file, but couldn't figure it out , My program does this : __ file = open(somefile) data = file.read() print bytes read , len(data) --- But the bytes read is not being printed correctly, I think bytes are being counted only till the first occurance of '\0' is encountered. Even though the file is of a very large size, the bytes till the first '\0' are counted. Python will not stop on reading '\0'. On Windows in text mode (the default), '\r\n' will be converted to '\n', and it will stop on reading ^Z aka chr(26) aka '\x1A'. If you don't want that to happen, use open('somefile', 'rb') to get binary mode. -- http://mail.python.org/mailman/listinfo/python-list
Re: E-Mail Parsing
On Dec 13, 9:29 am, Matt Nordhoff [EMAIL PROTECTED] wrote: Merrigan wrote: I am writing a script to administer my E-Mail Server. The One thing I'm currently struggling with is kind of Parsing the E-Mail adress that I supply to the script. I need to get the username (The part BEFORE the @ sign) out of the address so that I can use it elsewhere. The problem I have with this is that both the domain, and the username are variable lenghts and that I have no idea how to split the two parts. Is there any way that I can do this? Thank ye very much. addr = [EMAIL PROTECTED] addr.split(@) ['user', 'example.com'] If it's formatted like a To header (User [EMAIL PROTECTED]), use email.Utils.parseaddr() to get the address out of it.\ The email modules might help you a lot: http://docs.python.org/lib/module-email.html -- Hi Matt, Thank you very much for the help. It was exactly what I was looking for, and made my script much safer and easier to use. Blessings! -- Merrigan -- http://mail.python.org/mailman/listinfo/python-list
Re: E-Mail Parsing
Merrigan wrote: Hi Matt, Thank you very much for the help. It was exactly what I was looking for, and made my script much safer and easier to use. Blessings! -- Merrigan You're welcome. :-) -- -- http://mail.python.org/mailman/listinfo/python-list
Re: efficient data loading with Python, is that possible possible?
igor: The fundamental difference is that in C++, I create a single object (a line buffer) that's reused for each input line and column values are extracted straight from that buffer without creating new string objects. In python, new objects must be created and destroyed by the million which must incur serious memory management overhead. Python creates indeed many objects (as I think Tim once said it allocates memory at a ferocious rate), but the management of memory is quite efficient. And you may use the JIT Psyco (that's currently 1000 times more useful than PyPy, despite sadly not being developed anymore) that in some situations avoids data copying (example: in slices). Python is designed for string processing, and from my experience string processing Psyco programs may be faster than similar not-optimized-to-death C++/D programs (you can see that manually crafted code, or from ShedSkin that's often slower than Psyco during string processing). But in every language I know to gain performance you need to know the language, and Python isn't C++, so other kinds of tricks are necessary. The following advice is useful too: DouhetSukd: Bottom line: Python built-in data objects, such as dictionaries and sets, are very much optimized. Relying on them, rather than writing a lot of ifs and doing weird data structure manipulations in Python itself, is a good approach to try. Try to build those objects outside of your main processing loops. Bye, bearophile -- http://mail.python.org/mailman/listinfo/python-list
Re: kniterbasdb and datetime
DarkBlue írta: On Dec 13, 7:45 pm, Laszlo Nagy [EMAIL PROTECTED] wrote: Hi All, I connected to a FireBird 1.5 database this way: import kinterbasdb kinterbasdb.init(type_conv=200) # Seehttp://kinterbasdb.sourceforge.net/dist_docs/usage.html#faq_fep_is_mx... Then I try to update the database: sql = UPDATE TABLE1 SET DATEFIELD=? where ID = ? params=[datetime.date(2007,11,01),2341] cursor.execute(sql,params) I get this error: kinterbasdb.ProgrammingError: (-413, 'isc_dsql_execute: \n conversion error from string 2007-11-01') What is wrong here? Thanks, Laszlo Kinterbasdb probably expects the format looking like month/day/year rather than year-month-day It is not that. The parameter passed to cursor.execute() is a datetime.datetime instance. It is not a string, so if there is a formatting problem then it must be inside kinterbasdb. (How would you control the format if you have no string representation?) However, I'm 100% sure that others are also using this module and probably there is something that I should change, just don't know what it is. Thanks, Laszlo -- http://mail.python.org/mailman/listinfo/python-list
Re: problem in reading indices
Xavier Barthelemy wrote: so when I call another array with these indices ArrayWithData[i,int(choice[i].current[0])] You don't call arrays with indices. You are indexing the list ArrayWithData using the index i,int(blah) which is invalid. Indices must be integers, not comma seperated values. so I tried an intermediate value, because sometimes, the oneliner code doesn't work, so with an intermediate passage: value=int(choice[i].current[0]) ArrayWithData[i,value] I have the same error and I don't understand why. What's wrong? May anyone have an idea? I'm afraid not! You didn't specify at all what you'd like to achieve (just it doesn't work! why?), and clairvoyance isn't as easy as it looks. If you want to slice, don't use Perl syntax. Python uses a colon for index separation to eliminate ambiguities. some_elements = my_list[3:10] Regards, Björn -- BOFH excuse #343: The ATM board has run out of 10 pound notes. We are having a whip round to refill it, care to contribute ? -- http://mail.python.org/mailman/listinfo/python-list
Re: problem in reading indices
Xavier Barthelemy a écrit : Hi all I'm becoming mad, because I can't see what's wrong: I am constructing a GUI, to plot some data. so let's have a look of what's wrong: in my code I have a variable named choice[i].current which is the current selection of the i-th Listbox object. it is a tuple, with one element. so when I write print type(i),type(choice[i].current) I have: int and tuple print type(i),type(choice[i].current[0]) I have: int and str print type(i),type(int(choice[i].current[0])) I have: int and int so when I call another array with these indices ArrayWithData[i,int(choice[i].current[0])] I have the following error: TypeError: list indices must be integers the syntax for list subscripting is: thelist[index] not: thelist[index,index] If the item at thelist[index] is itself an object that supports subscripting and you want to subscript it to (which seems to be the case here), the syntax is: thelist[index][subindex] IOW, try with: ArrayWithData[i][int(choice[i].current[0])] so I tried an intermediate value, because sometimes, the oneliner code doesn't work, if you're sure that choice[i].current[0] exists and can be passed to the int type, there's no reason for the oneliner to behave differently. HTH -- http://mail.python.org/mailman/listinfo/python-list
Re: doctest quiet again before exit how
By the way, I copied this 2006-10 clp issue into Bugs.python.org. -- Pat LaVarre http://bugs.python.org/issue1611 TITLE: doctest.testmod gets noisy if called more than once per SystemExit SUMMARY: Calling doctest.testmod more than once before SystemExit spews stderr messages such as *** DocTestRunner.merge: '__main__' in both testers; summing outcomes ACTUAL RESULTS: $ python ./tttestmod.py *** DocTestRunner.merge: '__main__' in both testers; summing outcomes. *** DocTestRunner.merge: '__main__' in both testers; summing outcomes. $ EXPECTED RESULTS: $ python ./tttestmod.py $ NOTES: We can reasonably expect newbies to doctest random things that need to be doctested more than once. We can't reasonably expect newbies to know to how to filter doctest stdout, for example as ... http://wiki.python.org/moin/doctest -- http://mail.python.org/mailman/listinfo/python-list
Re: sqlite weirdness
On Dec 13, 12:12 am, Dennis Lee Bieber [EMAIL PROTECTED] wrote: On Wed, 12 Dec 2007 16:02:35 -0800 (PST), [EMAIL PROTECTED] declaimed the following in comp.lang.python: Thanks Duncan and John! That makes sense. But why does the official Python docs show an example that seems to imply that there is a date type? See link below: http://docs.python.org/lib/node349.html You missed two items... The open specified options to use either the type /name/ declared in the CREATE TABLE or a type name attached to the field names in a select -- and those are used to /call/ a data converter function that has to be registered. Key phrases: There are default adapters for the date and datetime types in the datetime module. They will be sent as ISO dates/ISO timestamps to SQLite. The default converters are registered under the name date for datetime.date and under the name timestamp for datetime.datetime. con = sqlite3.connect(:memory:, detect_types=sqlite3.PARSE_DECLTYPES|sqlite3.PARSE_COLNAMES) Note the detect_types specification. Also take care, if your database was populated by some other application that used that mm/dd/ format, you may have problems as the converters above specity /sending/ ISO format to the database from Python datetime objects, and probably expecting to convert them back on input. -- WulfraedDennis Lee Bieber KD6MOG [EMAIL PROTECTED] [EMAIL PROTECTED] HTTP://wlfraed.home.netcom.com/ (Bestiaria Support Staff: [EMAIL PROTECTED]) HTTP://www.bestiaria.com/ Well, that makes sense. I read the parts you mentioned earlier, but I guess I just wasn't getting my head around the concepts. Thanks for clearing that up. Mike -- http://mail.python.org/mailman/listinfo/python-list
Re: sqlite weirdness
On Dec 13, 1:54 am, Tim Roberts [EMAIL PROTECTED] wrote: [EMAIL PROTECTED] wrote: snipped I'll have to refactor my code somewhat to force it to use the '-MM- DD' format. Another possible solution is to use a real database. I am using a real database: MS SQL Server 2000. Unfortunately, my program will also need to run in an offsite location that cannot connect to that server right now. Thus the need to use sqlite or some flat-file format. Thanks for the advice. Mike -- Tim Roberts, [EMAIL PROTECTED] Providenza Boekelheide, Inc. -- http://mail.python.org/mailman/listinfo/python-list
Re: to Doctest as SystemExit is to Python
Sent: 2006-11-09; To: comp.lang.python Can doctest ... be persuaded to exit after a catastroph[e]...? ... sys.exit() doesn't do what I mean: it raises SystemExit ... [and doesn't exit] ... doctest.REPORT_ONLY_FIRST_FAILURE doesn't do what I mean [it filters stdout but doesn't exit] Yes doctest can be asked to HALT_AT_NTH_FAILURE, including HALT_AT_FIRST_FAILURE. Merely (1) construct an object to replace stdout, so that (2) you can redefine the stdout.write calls of doctest, so that (3) you can filter the bytes written there, so that (4) you can raise KeyboardInterrupt, so that (5) you can exit when you please. Not a documented feature. Mostly works all the same. A working example appeared at http://wiki.python.org/moin/doctest on 2007-11-12. -- Pat LaVarre -- http://mail.python.org/mailman/listinfo/python-list
Re: determining bytes read from a file.
A couple potential optimizations: # create the member variable name. mem_var_name = options.inputfilename mem_var_name = mem_var_name.replace(' ','_') mem_var_name = mem_var_name.replace('.','_') mem_var_name = options.inputfilename.replace(' ','_').replace('.','_') No need to assign it 3 times. while i len(hex_data): outfile_c.write( 0x%c%c % ( hex_data[i],hex_data[i+1] ) ) i += 2 if i != len(hex_data): outfile_c.write(,) if i % 32 == 0: outfile_c.write(\n) This could be re-written as such: for x in xrange(0, len(hex_data), 32): output_c.write('%s\n' % ','.join(['0x%s'%''.join(['%c'%a for a in hex_data[x:x+32][i:i+2]]) for i in xrange(0, 32, 2)] -- http://mail.python.org/mailman/listinfo/python-list
Re: Dynamic or not?
On Dec 12, 11:33 pm, Steven D'Aprano [EMAIL PROTECTED] cybersource.com.au wrote: On Wed, 12 Dec 2007 19:18:20 -0800, rishiyoor wrote: I'm trying to write a program that will find the distance between two groups of points in space, which have cartesian co-ordinates X,Y and Z. I need to find the distances between each point in one group and every point in the other group. So if group 1 has 6 points and group 2 had 8 points, I will calculate 6 x 8 = 48 distances. But I do not know the number of points the user will want to use. It is typically between 50 and 500 in both groups combined, but may be more. Since the memory required for the distances will be much larger than the points themselves, I am wondering if I will have to allocate memory dynamically or if there are easier ways of solving such problems in Python. Writing in Python, you never need to manually allocate memory. Sometimes, for especially complicated data structures, you need to take care about _de_allocating memory, but that's rare. In this case, you may not have enough memory to calculate all the combinations at once, so you should consider an iterator-based solution. Read up on generators and iterators. points1 = [ (1.2, 3.4), (5.7, 9.2) ] points2 = [ (-6.3, 0.0), (14.1, -7.8), (2.6, 12.8) ] import math def distance(p1, p2): return math.hypot(p1[0]-p2[0], p1[1]-p2[1]) def distances(list1, list2): Yield the distances from every pair of points. for pt1 in list1: for pt2 in list2: yield distance(pt1, pt2) Now, if you want the distances one at a time you do this: D = distances(points1, points2) for d in D: ... print d ... 8.23468275042 17.0836178838 9.50368349641 15.1208465371 18.9620673978 4.75078940809 and if you want them all at once, you can do this: list(distances(points1, points2)) [8.2346827504160718, 17.083617883809037, 9.5036834964133785, 15.120846537148639, 18.962067397834023, 4.7507894080878819] -- Steven Thanks, that helps. When you say python automatically allocates memory, what would you do if you don't know the size of the list of, say for example, the nearest pairs between the two groups. I would probably iterate over all the pairs and create a new list. I did a similar operation in another program, but I had to initialize the list (statically) with x = [0]*50 before I could use it in the for loop. -- http://mail.python.org/mailman/listinfo/python-list
Re: Finding Line numbers of HTML file
Hi Paul, I am cross posting the same to grab your attention at pyparsing forums too. 1000 apologies on the same count! I am a complete newbie to parsing and totally new to pyparsing. I have adapted your code to store the line numbers as below. Surprisingly, the line numbers printed, when I scrap some of the URLs, is not accurate and is kind of way off. page = urlli2b.urlopen(www.com).read() def tallyTagLineNumber(strg, locn, tagTokens): line = lineno(locn,strg) tagLocs[tagTokens[0]].append(line) def getlinenos(page): anyOpenTag.setParseAction(tallyTagLineNumber) anyOpenTag.searchString(page.lower()) # changing the entire string to lower case to get INPUT tagnames = sorted(tagLocs.keys()) taglinedict={} for t in tagnames: taglinedict[t]= unique(tagLocs[t]) return taglinedict -- http://mail.python.org/mailman/listinfo/python-list
Re: Finding Line numbers of HTML file
Hi Paul, I am cross posting the same to grab your attention at pyparsing forums too. 1000 apologies on the same count! I am a complete newbie to parsing and totally new to pyparsing. I have adapted your code to store the line numbers as below. Surprisingly, the line numbers printed, when I scrap some of the URLs, is not accurate and is kind of way off. page = urlli2b.urlopen(www.com).read() def tallyTagLineNumber(strg, locn, tagTokens): line = lineno(locn,strg) tagLocs[tagTokens[0]].append(line) def getlinenos(page): anyOpenTag.setParseAction(tallyTagLineNumber) anyOpenTag.searchString(page.lower()) # changing the entire string to lowercase, to grab # input and INPUT from html as input tag ONLy tagnames = sorted(tagLocs.keys()) taglinedict={} for t in tagnames: taglinedict[t]= unique(tagLocs[t]) return taglinedict What did I do wrong and why this problem! Ramdas -- http://mail.python.org/mailman/listinfo/python-list
Re: efficient data loading with Python, is that possible possible?
On 2007-12-13, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote: On Dec 12, 4:03 pm, John Machin [EMAIL PROTECTED] wrote: Inside your function [you are doing all this inside a function, not at global level in a script, aren't you?], do this: from time import mktime, strptime # do this ONCE ... blahblah = int(mktime(strptime(s, %m%d%y%H%M%S))) It would help if you told us what platform, what version of Python, how much memory, how much swap space, ... Cheers, John I am using a global 'from time import ...'. I will try to do that within the function and see if it makes a difference. The computer I am using has 8G of RAM. It's a Linux dual-core AMD or something like that. Python 2.4 Here is some of my code. Tell me what's wrong with it :) def loadFile(inputFile, loader): # .zip files don't work with zlib f = popen('zcat ' + inputFile) for line in f: loader.handleLine(line) ... In Loader class: def handleLine(self, line): # filter out 'wrong' lines if not self._dataFormat(line): return # add a new output record rec = self.result.addRecord() for col in self._dataFormat.colFormats: value = parseValue(line, col) rec[col.attr] = value def parseValue(line, col): s = line[col.start:col.end+1] # no switch in python if col.format == ColumnFormat.DATE: return Format.parseDate(s) if col.format == ColumnFormat.UNSIGNED: return Format.parseUnsigned(s) if col.format == ColumnFormat.STRING: # and-or trick (no x ? y:z in python 2.4) return not col.strip and s or rstrip(s) if col.format == ColumnFormat.BOOLEAN: return s == col.arg and 'Y' or 'N' if col.format == ColumnFormat.PRICE: return Format.parseUnsigned(s)/100. And here is Format.parseDate() as an example: def parseDate(s): # missing (infinite) value ? if s.startswith('99') or s.startswith('00'): return -1 return int(mktime(strptime(s, %y%m%d))) An inefficient parsing technique is probably to blame. You first inspect the line to make sure it is valid, then you inspect it (number of column type) times to discover what data type it contains, and then you inspect it *again* to finally translate it. And here is parseValue (will using a hash-based dispatch make it much faster?): Not much. You should be able to validate, recognize and translate all in one pass. Get pyparsing to help, if need be. What does your data look like? -- Neil Cerutti -- http://mail.python.org/mailman/listinfo/python-list
Re: Is anyone happy with csv module?
On 2007-12-12, John Machin [EMAIL PROTECTED] wrote: On Dec 13, 12:58 am, Neil Cerutti [EMAIL PROTECTED] wrote: On 2007-12-12, John Machin [EMAIL PROTECTED] wrote: It's clear that I am thinking to completely different usages for CSV than what most people in this thread. I use csv to export and import numerical data columns to and from spreadsheets. For that purpose, CSV files are the utter pox and then some. Consider using xlrd and xlwt (nee pyexcelerator) to read (resp. write) XLS files directly. I can vouch for that advice. I was exporting .xls files to csv text files for over a year before I tried the xlrd solution--the whole process is less cumbersome now, though it was bewildering at first working with Excel in Python. Actually, surprises still crop up now and then, mostly to do with cell types. Hi Neil, I'd be interested in hearing from you what caused the initial bewilderment with xlrd, and could it have been reduced by better documentation? What kinds of surprises? The bewilderment had to do not with xlrd, but with learning the structure of an Excel spreadsheet. My brain was extremely resistant to what it didn't want to know. ;-) The suprises are when a different data type gets returned for something, like a zip code, whose cases I thought I had covered. This is not a problem with xlrd either, but with my data source providing slighly different data, resulting in errors. E.g., the first time I got a zip+4 instead of a zip. When I was exporting to csv, I handled those issues by manually formatting the columns before exporting. This is what made it cumbersome. I traded that in for the occasional pupu platter of data. But by using Python directly on the spreadsheet, I have to fix new problems only *once*. The advantage of working with csv was that everything was a string. It depends of your point of view. I'd regard that as a DISadvantage :-) With xlrd, if you have no expectation about the type of data in a cell, but need/want to know, xlrd will tell you. If you do have an expectation, you can check if actual == expected. Sorry, my statement was nonsense. My data was only unified before exporting because I unified it manually, e.g., making a ziptext column and setting it to =TEXT(ZIP, 0). So I'd say the bewilderment and surprise I experience are coming from my reluctance to learn, and my data, respectively--not from any property of xlrd. -- Neil Cerutti To succeed in the world it is not enough to be stupid, you must also be well- mannered. --Voltaire -- http://mail.python.org/mailman/listinfo/python-list
Re: kniterbasdb and datetime
Kinterbasdb probably expects the format looking like month/day/year rather than year-month-day All right, I tried the month/day/year version: print sql print params cur.execute(sql,params) Results in: Inserting new TTT codes...insert into ttt( ID, TTT, KIHIR ) VALUES ( GEN_ID(G_TTT,1), ?,?) [210227753, '11/1/2007'] Traceback (most recent call last): File c:\Delphi5_Brinkman\Projects\TTTImport\tttupdate.py, line 131, in module cur.execute(sql,params) kinterbasdb.ProgrammingError: (-413, 'isc_dsql_execute: \n conversion error from string 2007-11-01') You see, I passed '11/1/2007' but the error says 2007-11-01. So what? I also tried this: Inserting new TTT codes...insert into ttt( ID, TTT, KIHIR ) VALUES ( GEN_ID(G_TTT,1), ?, cast( ? as date) ) [210227753, '11/1/2007'] Results in: Traceback (most recent call last): File c:\Delphi5_Brinkman\Projects\TTTImport\tttupdate.py, line 131, in modu le cur.execute(sql,params) kinterbasdb.ProgrammingError: (-804, 'isc_dsql_prepare: \n Dynamic SQL Error\n SQL error code = -804\n Data type unknown') Right now I cannot see any way to specify a date parameter and as time goes by, it is becoming a biger problem for me. :-( Please help. Laszlo -- http://mail.python.org/mailman/listinfo/python-list
Re: Is Python really a scripting language?
Neil Cerutti a écrit : On 2007-12-13, Steven D'Aprano [EMAIL PROTECTED] wrote: I have repeatedly argued in the past that we do ourselves a disservice by describing Python as an interpreted language. Python is compiled. It has a compiler. It even has a built-in function compile. It's just not compiled to *machine code* -- but with even machine code often running on a virtual machine in the CPU(s), the distinction is far less important now than it was when Sun described Java as a compiled language despite the lack of JIT compilers. When folks say Python is an interpreted language I think they mean it informally--they just mean you have to run an interpreter to execute it. How often do you hear that Java is an interpreted language ? -- http://mail.python.org/mailman/listinfo/python-list
Re: Dynamic or not?
On Thu, 13 Dec 2007 06:51:23 -0800, rishiyoor wrote: When you say python automatically allocates memory, what would you do if you don't know the size of the list of, say for example, the nearest pairs between the two groups. I would probably iterate over all the pairs and create a new list. I did a similar operation in another program, but I had to initialize the list (statically) with x = [0]*50 before I could use it in the for loop. Only if you used an index instead of starting with an empty list and appending values to it. Or in simple cases a list comprehension might replace a ``for`` loop. Bad and unpythonic example: new = [0] * len(old) for i in xrange(len(old)): new[i] = do_something(old[i]) Better written as: new = list() for item in old: new.append(do_something(item)) Or as list comprehension: new = [do_something(item) for item in old] Or: new = map(do_something, old) Ciao, Marc 'BlackJack' Rintsch -- http://mail.python.org/mailman/listinfo/python-list
Re: How to get milliseconds when substructing datetime objects?
*Gabriel thanks for detailed info! Actually I have already went the same (only more limited :) way as you suggested and did some poking with dir() at datetime and timedelta objects. This time I have bumped into the following problems that I can't find ready solutions yet: Subtracting of datetime objects results in timedelta object, so: d1 = datetime(2007,12,31, 0,40, 15,400) d2 = datetime(2008,1,2, 0,30, 16,300 ) dt = d2 - d1 print Time difference: + str(dt) Will output: Time difference: 1 day, 23:50:00.00 This means that time difference between d2 and d1 is 1 day 23 hours 50 minutes 0 seconds and 00 microseconds. Ok, looks nice and useful! Yet questions remain: Are there any standard Python library functions that: 1) Convert timedelata object to micro- or milliseconds? 2) Convert timedelata object to datetime object? 3) Convert datetime object to milli- or microseconds? So I could do something like this: d1 = datetime(2007,12,31, 0,40, 15,400) d2 = datetime(2008,1,2, 0,30, 16,300 ) dt = d2 - d1 dt.milliseconds() and also this: t1 = datetime.datetime.now() millis = t1.milliseconds() Thanks! Dima **Gabriel Genellina* gagsl-py2 at yahoo.com.ar python-list%40python.org?Subject=How%20to%20get%20milliseconds%20when%20substructing%20datetime%20objects%3FIn-Reply-To= *Thu Dec 13 00:13:22 CET 2007* - Previous message: How to get milliseconds when substructing datetime objects? http://mail.python.org/pipermail/python-list/2007-December/469397.html - Next message: Solve a graphical problem about different logos with a script http://mail.python.org/pipermail/python-list/2007-December/469399.html - *Messages sorted by:* [ date ]http://mail.python.org/pipermail/python-list/2007-December/date.html#469507 [ thread ]http://mail.python.org/pipermail/python-list/2007-December/thread.html#469507 [ subject ]http://mail.python.org/pipermail/python-list/2007-December/subject.html#469507 [ author ]http://mail.python.org/pipermail/python-list/2007-December/author.html#469507 -- En Wed, 12 Dec 2007 11:40:24 -0300, Dmitri O.Kondratiev dokondr at gmail.com http://mail.python.org/mailman/listinfo/python-list escribió: * Please help to find simple solutiion for measuring times of operations ** with ** millisecond precision. ** For this I am trying to use datetime() objects: ** ** import time ** import datetime ** ** def dreamTime(secs): ** t1 = datetime.datetime.now() ** time.sleep(secs) ** t2 = datetime.datetime.now() ** dt = t2 - t1 ** print Start time: +str(t1) ** print Stop time: +str(t2) ** print Dream time sec: +str(dt) ** ** # The following code results in errors like: ** # AttributeError: 'datetime.timedelta' object has no attribute ** 'second' ** ** dts = dt.second ** dtmicro = dt.microsecond ** dtmilli = dts * 1000 + dtmicro / float(1000) ** dts2 = dtmilli / float(1000) ** print Dream Millies: +str(dtmilli) ** print Dream Seconds, again: +str(dts2) * Reading the docs at http://docs.python.org/lib/datetime-timedelta.html you can see that timedelta objects have a seconds attribute (not second). Ok, and how do you know that in the first place? There are several ways you can get this information from Python itself, just open the interpreter and see: py import datetime py t1=datetime.datetime.now() py t2=datetime.datetime.now() py dt=t2-t1 py dt datetime.timedelta(0, 5, 969000) In case you didn't know what type dt is: py type(dt) type 'datetime.timedelta' py repr(dt) 'datetime.timedelta(0, 5, 969000)' Now you can now look for timedelta inside the Help files. A quick way to enumerate attributes is to use dir(): py dir(dt) ['__abs__', '__add__', '__class__', .., '__sub__', 'days', 'max', 'microseconds', 'min', 'resolution', 'seconds'] Look at 'seconds' there. Another useful function is vars(), but doesn't work for this kind of object; just as an example, I'll show vars(datetime): py vars(dt) Traceback (most recent call last): File stdin, line 1, in module TypeError: vars() argument must have __dict__ attribute py vars(datetime) {'timedelta': type 'datetime.timedelta', 'MAXYEAR': , 'datetime': type 'd atetime.datetime', 'date': type 'datetime.date', 'datetime_CAPI': PyCObject object at 0x009BA290, 'tzinfo': type 'datetime.tzinfo', 'time': type 'dateti me.time', 'MINYEAR': 1, '__name__': 'datetime', '__doc__': 'Fast implementation of the datetime type.'} Using the built-in help system: py help(dt) Help on timedelta object: class timedelta(__builtin__.object) | Difference between two datetime values. | | Methods defined here: | | __abs__(...) | x.__abs__() == abs(x) | | [...several other methods...] | | -- | Data descriptors defined here: | | days | Number of days. | | microseconds | Number of microseconds (= 0 and less than 1
Re: Is Python really a scripting language?
On 2007-12-13, Steven D'Aprano [EMAIL PROTECTED] wrote: I have repeatedly argued in the past that we do ourselves a disservice by describing Python as an interpreted language. Python is compiled. It has a compiler. It even has a built-in function compile. It's just not compiled to *machine code* -- but with even machine code often running on a virtual machine in the CPU(s), the distinction is far less important now than it was when Sun described Java as a compiled language despite the lack of JIT compilers. When folks say Python is an interpreted language I think they mean it informally--they just mean you have to run an interpreter to execute it. *How* it's translated is irrelevent to the *informal* meaning. And I'd further argue that the informal meaning is the only one that makes any sense. Formally: hasattr(Language, 'iterpreted') False hasattr(Implementation, 'interpreted') True ;-) -- Neil Cerutti -- http://mail.python.org/mailman/listinfo/python-list
Re: Pascal code checker!
On 2007-12-13, Dotan Cohen [EMAIL PROTECTED] wrote: On 13/12/2007, Tim Chase [EMAIL PROTECTED] wrote: Oof! Fond as I am of promoting pyparsing, writing a Pascal compiler (or even just syntax checker) is not a job I would tackle lightly, much less suggest to a new Python developer. True enough...thus my weeks/months/years estimate for such an undertaking :) But if not mentioned, you know the next question would be how do I create a regular expression to match valid Pascal programs? Go track down the source code of an open source text editor that supports Pascal highlighting. Kate comes to mind. It's not written in Python, but it will have Pascal parsing code for the highlighter. A syntax highlighter usually knows very little about the syntax of a language. Mostly, it just finds keywords and highlights them. The improvements beyond that will generally be haphazard, e.g., the Vim syntax highlighting code for Python knows basically what a function header looks like so it can highlight the function name. It also (doesn't really) know how to figure out what's a string and what isn't. The auto-indenter is often smarter about syntax, but knows just a small subset of syntax rules, enought to do proper indenting. For some languages, e.g., Python, that's a fairly small subset. For others, it's cumbersomely large and Vim's support is cruddy. -- Neil Cerutti -- http://mail.python.org/mailman/listinfo/python-list
Re: Pascal code checker!
The OP was not talking about a Python program to check the Pascal program as I read it to make application in python that would send code (text) to pascal compiler...and it would return result and then application would show that result. So he/she/it would want subprocess to compile the Pascal program/file and get the resulting output. Let's not complicate the issue since this appears to be someone relatively new to Python. -- http://mail.python.org/mailman/listinfo/python-list
Re: Question from a python newbie
Russell [EMAIL PROTECTED] wrote: I've searched the Language Reference and was not able to find any info regarding the structure of this code fragment: int(text) if text.isdigit() else text http://docs.python.org/whatsnew/pep-308.html -- http://mail.python.org/mailman/listinfo/python-list
Re: Finding Line numbers of HTML file
On Dec 13, 9:01 am, Ramdas [EMAIL PROTECTED] wrote: Hi Paul, I am cross posting the same to grab your attention at pyparsing forums too. 1000 apologies on the same count! I am a complete newbie to parsing and totally new to pyparsing. I have adapted your code to store the line numbers as below. Surprisingly, the line numbers printed, when I scrap some of the URLs, is not accurate and is kind of way off. snip Ramdas - You will have to send me that URL off-list using e-mail, Google Groups masks it and I can't pull it up. In my example, I used the Yahoo home page. What is the URL you used, and which tags' results were off? Just some comments: - I did a quasi-verification of my results, using a quick-and-dirty re match. This did not give me the line numbers, but did give me counts of tag names (if anyone knows how to get the string location of an re match, this would be the missing link for an alternative solution to this problem). I added this code after the code I posted earlier: print Quick-and-dirty verify using re's import re openTagRe = re.compile(([^ /!]+)) tally2 = defaultdict(int) for match in openTagRe.findall(html): tally2[match] += 1 for t in tally2.keys(): print t,tally2[t], if tally2[t] != len(tagLocs[t]): print else: print This crude verifier turned up no mismatches when parsing the Yahoo home page. - Could the culprit be your unique function? You did not post the code for this, so I had to make up my own: def unique(lst): return sorted(list(set(lst))) This does trim some of the line numbers, but I did not try to validate this. - In your getlinenos function, it is not necessary to call setParseAction every time. You only need to do this once, probably right after you define the tallyTagLineNumber function. - Here is an abbreviated form of getlinenos: def getlinenos(page): # clear out tally dict, so as not to get crossover data from # a previously-parsed page tagLocs.clear() anyOpenTag.searchString(page) return dict((k,unique(v)) for k,v in tagLocs.items()) If you wanted, you could even inline the unique logic, without too much obfuscation. -- Paul -- http://mail.python.org/mailman/listinfo/python-list
Re: Question from a python newbie
On Dec 13, 2007 4:39 PM, Russell [EMAIL PROTECTED] wrote: I've been learning Python slowly for a few months, coming from a C/C+ +, C#, Java, PHP background. I ran across a code fragment I'm having trouble wrapping my brain around. I've searched the Language Reference and was not able to find any info regarding the structure of this code fragment: int(text) if text.isdigit() else text Hi, It's a pretty new construct; basically it's Python's version of the ? : ternary operator in other languages. The line above is equivalent to text.isdigit() ? int(text) : text in, for instance, C. Remco Gerlich -- http://mail.python.org/mailman/listinfo/python-list
Re: Is Python really a scripting language?
Neil Cerutti [EMAIL PROTECTED] writes: On 2007-12-13, Steven D'Aprano [EMAIL PROTECTED] wrote: I have repeatedly argued in the past that we do ourselves a disservice by describing Python as an interpreted language. Python is compiled. It has a compiler. It even has a built-in function compile. It's just not compiled to *machine code* -- but with even machine code often running on a virtual machine in the CPU(s), the distinction is far less important now than it was when Sun described Java as a compiled language despite the lack of JIT compilers. When folks say Python is an interpreted language I think they mean it informally--they just mean you have to run an interpreter to execute it. *How* it's translated is irrelevent to the *informal* meaning. And I'd further argue that the informal meaning is the only one that makes any sense. Many people still talk about lisp as interpreted despite the fact that there have been compilers (that compile to machine code) for decades. I'm not sure it's really a property of a language, rather of an implementation. -- http://mail.python.org/mailman/listinfo/python-list
Re: Dynamic or not?
[EMAIL PROTECTED] a écrit : On Dec 12, 11:33 pm, Steven D'Aprano [EMAIL PROTECTED] cybersource.com.au wrote: (snip) When you say python automatically allocates memory, what would you do if you don't know the size of the list thelist = [] thelist.append('Ever') thelist.append('bothered') thelist.append('reading') thelist.append('the') thelist.append('fine') thelist.append('manual') thelist.append('?') print thelist of, say for example, the nearest pairs between the two groups. I would probably iterate over all the pairs and create a new list. I did a similar operation in another program, but I had to initialize the list (statically) with x = [0]*50 before I could use it in the for loop. You'd be better learning how to properly use lists and iterations in Python... While you're at it, add list comprehensions, iterators/generators and itertools to the list (pun intented). HTH -- http://mail.python.org/mailman/listinfo/python-list
Re: Tuples !?!?
On Dec 11, 3:08 pm, [EMAIL PROTECTED] wrote: On 11 Dez, 22:02, [EMAIL PROTECTED] wrote: Ok. This is small code. The problem is '2' != 2 there is a way of converting 'some number' in number ? Thanks. # -*- coding: cp1252 -*- import random import csv import struct import array # resultados para colocar nos campos def gera_string(res): # acampo3 acampo1=((0,5,'muito reduzidos'),(6,20,'reduzidos'), (21,32,'satisfatórios'),(33,40,'bons'),(41,45,'excelentes')) campo1='' for a in acampo1: print res[1] if (res[1]=a[0] and res[1]=a[1]): campo1=a[2] return campo1 # processar res=['a','2'] print gera_string(res) quit() On 11 Dez, 20:40, Bruno Desthuilliers [EMAIL PROTECTED] wrote: [EMAIL PROTECTED] a écrit : Hi, Thanks. I have found that there is int() function on python. The print function always show me a number when was 'number'. Ok thanks. Is the tuple comparison brooked in python ?!?!? Given the size and average level of the user base, I think this would have been noticed. Try this If you hope anyone to try anything, please post the *minimal* working code showing the problem. And while your at it, also explain the expected result. and you will see funny things: Sorry but the only thing I see so far is that your code needs refactoring. Python objects have two ways of representing themselves. The print statement converts the objects in it into strings. Python objects can also have a representative string which should give you enough information to determine if you're dealing with a number or a string. You can get this representative string via the repr() built-in function. To get the normal string of an object, the str() built-in will perform the conversion. If you're using the string formatting operator (%), the %s specifier will use the normal string, while the %r specifier will use the representative string. Please note that repr() will show you *all* the digits of a floating point number, while the normal string conversion may round. This is because floating-point numbers cannot represent most decimal exactly. This isn't a flaw in Python, but a flaw in all IEEE floating-point hardware (ie, your processor). If you're using Python interactively, Python will display the results of expressions with their representative strings. For example: 5 5 '5' '5' 0.1 0.10001 print '5', 5 5 5 print repr('5'), repr(5) '5' 5 print 'Normal Strings: %s, %s, %s' % ('5', 5, 0.1) Normal Strings: 5, 5, 0.1 print 'Repr Strings: %r, %r, %r' % ('5', 5, 0.1) Repr Strings: '5', 5, 0.10001 -- http://mail.python.org/mailman/listinfo/python-list
Re: Is Python really a scripting language?
On 2007-12-13, Bruno Desthuilliers [EMAIL PROTECTED] wrote: Neil Cerutti a écrit : On 2007-12-13, Steven D'Aprano [EMAIL PROTECTED] wrote: I have repeatedly argued in the past that we do ourselves a disservice by describing Python as an interpreted language. Python is compiled. It has a compiler. It even has a built-in function compile. It's just not compiled to *machine code* -- but with even machine code often running on a virtual machine in the CPU(s), the distinction is far less important now than it was when Sun described Java as a compiled language despite the lack of JIT compilers. When folks say Python is an interpreted language I think they mean it informally--they just mean you have to run an interpreter to execute it. How often do you hear that Java is an interpreted language ? The difference is the p-code factor. Python's p-code is (generally) internal only. We could fool more people if we forced them to create .pyc files before executing the code. ;-) -- Neil Cerutti -- http://mail.python.org/mailman/listinfo/python-list
Question from a python newbie
I've been learning Python slowly for a few months, coming from a C/C+ +, C#, Java, PHP background. I ran across a code fragment I'm having trouble wrapping my brain around. I've searched the Language Reference and was not able to find any info regarding the structure of this code fragment: int(text) if text.isdigit() else text It is part of a larger lambda statement. I do get the lambda declaration, but having trouble with what is happening in that fragment. Here is the full lambda statement: convert = lambda text: int(text) if text.isdigit() else text Thanks for any help you can provide explaining this to me. -- http://mail.python.org/mailman/listinfo/python-list
Re: kniterbasdb and datetime
Laszlo Nagy wrote: Hi All, I connected to a FireBird 1.5 database this way: import kinterbasdb kinterbasdb.init(type_conv=200) # See http://kinterbasdb.sourceforge.net/dist_docs/usage.html#faq_fep_is_mxdatetime_required Then I try to update the database: sql = UPDATE TABLE1 SET DATEFIELD=? where ID = ? params=[datetime.date(2007,11,01),2341] cursor.execute(sql,params) I get this error: kinterbasdb.ProgrammingError: (-413, 'isc_dsql_execute: \n conversion error from string 2007-11-01') What is wrong here? Thanks, Laszlo Just tested this against my 2.03 firebird db: import datetime import kinterbasdb as db db.init(type_conv=200) con = db.connect(dsn='myhost:fbtool-dev', user='sysdba', password='pwd') sql = update jnp set gebdat = ? where iid = ? params = [datetime.date(2007, 11, 01), 152] cur = con.cursor() cur.execute(sql,params) con.commit() It worked. What version of kinterbasdb are you using? Uwe -- http://mail.python.org/mailman/listinfo/python-list
Re: Question from a python newbie
I suspected it was a ternary type of operator, but was unable to confirm it. And I didn't realize it was new to 2.5. Perfectly clear now. :) Thanks! -- http://mail.python.org/mailman/listinfo/python-list
Re: Question from a python newbie
On Thu, Dec 13, 2007 at 04:57:04PM +0100, Remco Gerlich wrote regarding Re: Question from a python newbie: On Dec 13, 2007 4:39 PM, Russell [EMAIL PROTECTED] wrote: I've been learning Python slowly for a few months, coming from a C/C+ +, C#, Java, PHP background. I ran across a code fragment I'm having trouble wrapping my brain around. I've searched the Language Reference and was not able to find any info regarding the structure of this code fragment: int(text) if text.isdigit() else text Hi, It's a pretty new construct; basically it's Python's version of the ? : ternary operator in other languages. The line above is equivalent to text.isdigit() ? int(text) : text in, for instance, C. Remco Gerlich Or, if you don't know C. It is equivalent to if text.isdigit(): int(text) else: text -- http://mail.python.org/mailman/listinfo/python-list
how to include a tiny debug feature in my project ?
hello, I've large program based, with a GUI based on wxPython, where the user can add small parts, which I call Bricks. A new Brick is created by inheriting from the standard-Brick. The user should only override 1 or 2 functions from the standard-Brick. The main properties used in those 2 functions have fixed names. Now I've not a good idea, how I should debug that new-Brick. Because I don't want to crash the program, by bugs in the new-Brick, I put the call to the overriden functions in new-Brick in a try-except statement. So it won't generate errors, and besides that, debugging GUI is a crime, and I certainly don't want the user to digg into the large program. So I'm thinking of another approach: - locate the 2 functions of the new-Brick - execute them line by line through a exec-statement - give a print statement of the most important parameters, after the execution of each line (The number of lines written by the user will be at most 20 lines) Is this a good approach ? If so, how can I execute each line separate ? If not, what other approach should I use ? thanks, Stef Mientki -- http://mail.python.org/mailman/listinfo/python-list
Clearing a DOS terminal in a script
This doesn't seem to work in a dos terminal at the start of a script: from os import popen print popen('clear').read() Any idea why not? Thanks. Stephen -- http://mail.python.org/mailman/listinfo/python-list
Re: Dynamic or not?
On Dec 13, 10:24 am, Marc 'BlackJack' Rintsch [EMAIL PROTECTED] wrote: On Thu, 13 Dec 2007 06:51:23 -0800, rishiyoor wrote: When you say python automatically allocates memory, what would you do if you don't know the size of the list of, say for example, the nearest pairs between the two groups. I would probably iterate over all the pairs and create a new list. I did a similar operation in another program, but I had to initialize the list (statically) with x = [0]*50 before I could use it in the for loop. Only if you used an index instead of starting with an empty list and appending values to it. Or in simple cases a list comprehension might replace a ``for`` loop. Bad and unpythonic example: new = [0] * len(old) for i in xrange(len(old)): new[i] = do_something(old[i]) Better written as: new = list() for item in old: new.append(do_something(item)) Or as list comprehension: new = [do_something(item) for item in old] Or: new = map(do_something, old) Ciao, Marc 'BlackJack' Rintsch Thanks Marc. -- http://mail.python.org/mailman/listinfo/python-list
Re: How to get milliseconds when substructing datetime objects?
While looking for ready to use library I have roughly skteched the functions that I need: import datetime from datetime import * def timedelta2Micros(dt): Convert timedelta object to micriseconds days = dt.days sec = dt.seconds micros = dt.microseconds daysSec = 24 * 60 * 60 * days tdMicros = (daysSec + sec) * 100 + micros return tdMicros def micros2timedelta(micros): Convert microseconds to timedelta oneDayMicros = 24 * 60 * 60 * 100 days = micros / oneDayMicros # whole number of days scrapDayMicros = micros % oneDayMicros # remainder of all micros in a day secs = scrapDayMicros / 100 # whole number of seconds micros = scrapDayMicros % 100 # micros left return timedelta(days=days, seconds=secs, microseconds=micros) In case somebody have a library with *extra* datetime functions (and better written then these ones) please let me know! -- Dmitri O. Kondratiev [EMAIL PROTECTED] http://www.geocities.com/dkondr *Dmitri O.Kondratiev* dokondr at gmail.compython-list%40python.org?Subject=How%20to%20get%20milliseconds%20when%20substructing%20datetime%20objects%3FIn-Reply-To=wrote: *Thu Dec 13 16:19:35 CET 2007* - Previous message: to Doctest as SystemExit is to Python http://mail.python.org/pipermail/python-list/2007-December/469615.html - Next message: Question from a python newbie http://mail.python.org/pipermail/python-list/2007-December/469631.html - *Messages sorted by:* [ date ]http://mail.python.org/pipermail/python-list/2007-December/date.html#469626 [ thread ]http://mail.python.org/pipermail/python-list/2007-December/thread.html#469626 [ subject ]http://mail.python.org/pipermail/python-list/2007-December/subject.html#469626 [ author ]http://mail.python.org/pipermail/python-list/2007-December/author.html#469626 -- *Gabriel thanks for detailed info! Actually I have already went the same (only more limited :) way as you suggested and did some poking with dir() at datetime and timedelta objects. This time I have bumped into the following problems that I can't find ready solutions yet: Subtracting of datetime objects results in timedelta object, so: d1 = datetime(2007,12,31, 0,40, 15,400) d2 = datetime(2008,1,2, 0,30, 16,300 ) dt = d2 - d1 print Time difference: + str(dt) Will output: Time difference: 1 day, 23:50:00.00 This means that time difference between d2 and d1 is 1 day 23 hours 50 minutes 0 seconds and 00 microseconds. Ok, looks nice and useful! Yet questions remain: Are there any standard Python library functions that: 1) Convert timedelata object to micro- or milliseconds? 2) Convert timedelata object to datetime object? 3) Convert datetime object to milli- or microseconds? So I could do something like this: d1 = datetime(2007,12,31, 0,40, 15,400) d2 = datetime(2008,1,2, 0,30, 16,300 ) dt = d2 - d1 dt.milliseconds() and also this: t1 = datetime.datetime.now() millis = t1.milliseconds() Thanks! Dima **Gabriel Genellina* gagsl-py2 at yahoo.com.ar python-list%40python.org?Subject=How%20to%20get%20milliseconds%20when%20substructing%20datetime%20objects%3FIn-Reply-To= *Thu Dec 13 00:13:22 CET 2007* - Previous message: How to get milliseconds when substructing datetime objects? http://mail.python.org/pipermail/python-list/2007-December/469397.html - Next message: Solve a graphical problem about different logos with a script http://mail.python.org/pipermail/python-list/2007-December/469399.html - *Messages sorted by:* [ date ]http://mail.python.org/pipermail/python-list/2007-December/date.html#469507 [ thread ]http://mail.python.org/pipermail/python-list/2007-December/thread.html#469507 [ subject ]http://mail.python.org/pipermail/python-list/2007-December/subject.html#469507 [ author ]http://mail.python.org/pipermail/python-list/2007-December/author.html#469507 -- En Wed, 12 Dec 2007 11:40:24 -0300, Dmitri O.Kondratiev dokondr at gmail.com http://mail.python.org/mailman/listinfo/python-list escribió: ** Please help to find simple solutiion for measuring times of operations *** with ** millisecond precision. ** For this I am trying to use datetime() objects: ** ** import time ** import datetime ** ** def dreamTime(secs): ** t1 = datetime.datetime.now() ** time.sleep(secs) ** t2 = datetime.datetime.now() ** dt = t2 - t1 ** print Start time: +str(t1) ** print Stop time: +str(t2) ** print Dream time sec: +str(dt) ** ** # The following code results in errors like: ** # AttributeError: 'datetime.timedelta' object has no attribute ** 'second' ** ** dts = dt.second ** dtmicro = dt.microsecond ** dtmilli = dts * 1000 + dtmicro / float(1000) ** dts2 = dtmilli / float(1000) ** print Dream Millies: +str(dtmilli) ** print Dream Seconds, again: +str(dts2) * Reading the docs at http://docs.python.org/lib/datetime-timedelta.html
Re: Monitoring the output of an external program
I always recommend the subprocess module for any needs like this. Read up on it and it should provide everything you need. On Dec 13, 2007, at 2:41 AM, Caleb Marcus wrote: I'm writing something that has to invoke an external program, and every time the external program prints something, update a UI. How would I go about doing this? -- http://mail.python.org/mailman/listinfo/python-list -- http://mail.python.org/mailman/listinfo/python-list
Re: what the heck does this mean?
On Dec 12, 2007, at 10:57 PM, katie smith wrote: Traceback (most recent call last): File C:\Python25\empire\Empire Strategy.pyw, line 322 Maty = Searched(number) Look, you're calling Searched right here with Searched(number) TypeError: 'list' object is not callable ... Maty = Searched[number] But, here you obviously think you are actually subscripting. The WTF here is that you rewrote all this code into the email instead of just copy and pasting it to get exactly the same. Do not trust your eyes. -- http://mail.python.org/mailman/listinfo/python-list
Re: Clearing a DOS terminal in a script
On Dec 13, 2007 10:48 AM, Stephen_B [EMAIL PROTECTED] wrote: This doesn't seem to work in a dos terminal at the start of a script: from os import popen print popen('clear').read() Any idea why not? Thanks. It opens clear with it's own virtual terminal and clears that instead. There's an ANSI control code you can use to reset the screen, try printing that. -- http://mail.python.org/mailman/listinfo/python-list
Re: Clearing a DOS terminal in a script
On Dec 13, 11:21 am, Chris Mellon [EMAIL PROTECTED] wrote: It opens clear with it's own virtual terminal and clears that instead. Even when I launch the script from a cmd shell with python myscript.py? There's an ANSI control code you can use to reset the screen, try printing that. I googled Esc[2J as an ascii sequence that it is supposed to clear the screen. How do I send that? Stephen -- http://mail.python.org/mailman/listinfo/python-list
looking for gui for python code
hi i have written some python scripts which take command line arguments and do some job. i would like to make it into a .exe using py2exe and distribute it with innosetup.. befor that i would like to add some GUI support..i mean select some values using a folder explorer etc..which would be a good gui builder for this? i have heard about guibuilder from http://spectcl.sourceforge.net/ or is it better to use tkinter (i have little experience with gui designing) can someone give a suggestion? TIA dn -- http://mail.python.org/mailman/listinfo/python-list
Re: looking for gui for python code
Using any GUI package you should be able to build your application into EXE format! On Dec 13, 2007 6:46 PM, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote: hi i have written some python scripts which take command line arguments and do some job. i would like to make it into a .exe using py2exe and distribute it with innosetup.. befor that i would like to add some GUI support..i mean select some values using a folder explorer etc..which would be a good gui builder for this? i have heard about guibuilder from http://spectcl.sourceforge.net/ or is it better to use tkinter (i have little experience with gui designing) can someone give a suggestion? TIA dn -- http://mail.python.org/mailman/listinfo/python-list -- http://search.goldwatches.com/?Search=Movado+Watches http://www.jewelerslounge.com http://www.goldwatches.com -- http://mail.python.org/mailman/listinfo/python-list
Re: Is a real C-Python possible?
Kay Schluehr wrote: Python 2.6 and 3.0 have a more Pythonic way for the problem: class A(object): @property def foo(self): return self._foo @foo.setter def foo(self, value) self._foo = value @foo.deletter def foo(self) del self._foo class B(A): # one can even overwrite the getter in a subclass @foo.getter def foo(self): return self._foo * 2 Christian On Dec 12, 2007 12:57 PM, George Sakkis [EMAIL PROTECTED] wrote: 1. The property name ('foo') is repeated *5* times for a single class. Talk about DRY. 2. Total inconsistency: @property for the getter when it is defined for the first time, @foo.setter/@foo.deletter for the setter/deletter, @foo.getter when the getter is redefined. WTF ?! Eww, I agree with George here, with respect to these two points. When I looked at this my first wtf was the @property and then @foo.getter business. I really don't mind the current way of doing things: attr = property(get,set). Other mechanisms can be created with getattr routines. I don't really like this new syntax at all. Too many @ marks, inconsistancies, and too many foos everywhere. Not to mention how long it reads. For only getters, it's not bad though, and a little better than property(). Decorators really don't feel pythonic to me at all, mostly due to the @ symbol, but it looks really awful in this instance. What about this, somewhat similar but not ugly syntax: class A: foo = property() def foo.get(): return self._foo def foo.delete(): del self._foo def foo.set(val): self._foo = val Defining something with a dot is currently a syntax error. Ok, so it's still too many foos. At least it's consistent. I'm not really proposing this btw. I'd rather not introduce more specialized syntax. How about abusing with: class A: with property(foo): def get def set... There's your thunk, and I really like with, but am saddened that it has such limited use at the moment. Of course this isn't really what with is for... Can anyone tell me what's wrong about the current property() syntax, besides namespace polution? -- http://mail.python.org/mailman/listinfo/python-list
Re: Best way to protect my new commercial software.
Thank you all. I explain what I did to do it. Very simple but what I want: I find the host id of system (using ipconfig) and create a hash code based on it.(some math, md5 and functions). the code for licensing is about 15 lines and is very fast. I needed 20 licenses and I wrote a keygen for myself. Thank you all. -- http://mail.python.org/mailman/listinfo/python-list
python vs perl performance test
First, let me admit that the test is pretty dumb (someone else suggested it :) but since I am new to Python, I am using it to learn how to write efficient code. my $sum = 0; foreach (1..10) { my $str = chr(rand(128)) x 1024; foreach (1..100) { my $substr = substr($str, rand(900), rand(100)); $sum += ord($substr); } } print Sum is $sum\n; Basically, the script creates random strings, then extracts random substrings, and adds up the first characters in each substring. This perl script takes 8.3 secs on my box and it can probably be improved. When I first translated it to Python verbatim, the Python script took almost 30 secs to run. So far, the best I can do is 11.2 secs using this: from random import randrange from itertools import imap, repeat from operator import getitem, add, getslice result = 0 zeros = [0]*100 for i in xrange (10): s = [chr(randrange(128))] * 1024 starts = repeat(randrange(900), 100) ends = imap(add, starts, repeat(randrange(1,100), 100)) substrs = imap(getslice, repeat(s, 100), starts, ends) result += sum(imap(ord, imap(getitem, substrs, zeros))) print Sum is , result There's got to be a simpler and more efficient way to do this. Can you help? Thanks, igor -- http://mail.python.org/mailman/listinfo/python-list
Re: Is a real C-Python possible?
On Dec 13, 2007 12:04 PM, Patrick Mullen [EMAIL PROTECTED] wrote: Kay Schluehr wrote: Python 2.6 and 3.0 have a more Pythonic way for the problem: class A(object): @property def foo(self): return self._foo @foo.setter def foo(self, value) self._foo = value @foo.deletter def foo(self) del self._foo class B(A): # one can even overwrite the getter in a subclass @foo.getter def foo(self): return self._foo * 2 Christian On Dec 12, 2007 12:57 PM, George Sakkis [EMAIL PROTECTED] wrote: 1. The property name ('foo') is repeated *5* times for a single class. Talk about DRY. 2. Total inconsistency: @property for the getter when it is defined for the first time, @foo.setter/@foo.deletter for the setter/deletter, @foo.getter when the getter is redefined. WTF ?! Eww, I agree with George here, with respect to these two points. When I looked at this my first wtf was the @property and then @foo.getter business. I really don't mind the current way of doing things: attr = property(get,set). Other mechanisms can be created with getattr routines. I don't really like this new syntax at all. For the record, this is not new syntax. It's implemented this way specifically to avoid the creation of new syntax for properties. Too many @ marks, inconsistancies, and too many foos everywhere. Not to mention how long it reads. For only getters, it's not bad though, and a little better than property(). I don't feel that it's especially inconsistent, and I like decorators. Having to write foo everywhere isn't that nice, but it's only mildly worse than C# to me - I find the extra block levels really atrocious. Decorators really don't feel pythonic to me at all, mostly due to the @ symbol, but it looks really awful in this instance. What about this, somewhat similar but not ugly syntax: class A: foo = property() def foo.get(): return self._foo def foo.delete(): del self._foo def foo.set(val): self._foo = val Defining something with a dot is currently a syntax error. Ok, so it's still too many foos. At least it's consistent. I'm not really proposing this btw. I'd rather not introduce more specialized syntax. How about abusing with: class A: with property(foo): def get def set... There's your thunk, and I really like with, but am saddened that it has such limited use at the moment. Of course this isn't really what with is for... Can anyone tell me what's wrong about the current property() syntax, besides namespace polution? Nothing, except that people prefer decorators and they don't like the namespace pollution. foo = property() isn't going away and if you prefer it (I don't) you're free to use it. If you don't like decorators in general it's fairly obvious that you won't be partial to a decorator based feature. It's not that big a deal anyway, of course, the use case for properties in Python has a much smaller scope than in C#, and getter-only properties (which you can create with just @property) are the majority of those. -- http://mail.python.org/mailman/listinfo/python-list
Re: Is Python really a scripting language?
On 13 Des, 02:19, Steven D'Aprano [EMAIL PROTECTED] cybersource.com.au wrote: I have repeatedly argued in the past that we do ourselves a disservice by describing Python as an interpreted language. Python is compiled. It has a compiler. It even has a built-in function compile. Python is compiled to bytecode. Python's bytecode is interpreted. Does that make Python interpreted or compiled? I could not care less. The terms 'scripting language' and 'interpreted language' have somewhat different meanings. 'Scripting language' typically means a language used for one of: - Shell scripts - Automation macros in a larger application - Code embedded in a web page - CGI Python, Perl, Lisp and Visual Basic are certainly used as scripting languages in some settings. But that does not mean it is the only thing they can be used for. On the other hand, JavaScript and Bourne shell have little use except as scripting languages. -- http://mail.python.org/mailman/listinfo/python-list
Re: How to get milliseconds when substructing datetime objects?
En Thu, 13 Dec 2007 14:07:10 -0300, Dmitri O.Kondratiev [EMAIL PROTECTED] escribi�: While looking for ready to use library I have roughly skteched the functions that I need: They look fine to me. Just one thing: days = micros / oneDayMicros # whole number of days It's safer to use // when you want integer division. The meaning of the / operator will change in a future Python version: py 1/2 0 py 1//2 0 py from __future__ import division py 1/2 0.5 py 1//2 0 -- Gabriel Genellina -- http://mail.python.org/mailman/listinfo/python-list
Re: TCP reset caused by socket.py
En Wed, 12 Dec 2007 20:12:43 -0300, Object01 [EMAIL PROTECTED] escribi�: I don't know much about the timing of Python's garbage collection. Is it pretty aggressive? As soon as the reference count reaches zero (at least for current CPython version). Objects that are part of a reference cycle may take a while but are detected and collected eventually. -- Gabriel Genellina -- http://mail.python.org/mailman/listinfo/python-list
Christmas Shopping Made Easy
This site helped me during the holidays.Check out http://www.christmasplayland.com which offers some great resources and tons of deals.I definitely saved time shopping for deals online at this site. -- http://mail.python.org/mailman/listinfo/python-list
Re: python vs perl performance test
On Dec 13, 2007 12:11 PM, [EMAIL PROTECTED] wrote: First, let me admit that the test is pretty dumb (someone else suggested it :) but since I am new to Python, I am using it to learn how to write efficient code. my $sum = 0; foreach (1..10) { my $str = chr(rand(128)) x 1024; foreach (1..100) { my $substr = substr($str, rand(900), rand(100)); $sum += ord($substr); } } print Sum is $sum\n; Basically, the script creates random strings, then extracts random substrings, and adds up the first characters in each substring. This perl script takes 8.3 secs on my box and it can probably be improved. When I first translated it to Python verbatim, the Python script took almost 30 secs to run. So far, the best I can do is 11.2 secs using this: from random import randrange from itertools import imap, repeat from operator import getitem, add, getslice result = 0 zeros = [0]*100 for i in xrange (10): s = [chr(randrange(128))] * 1024 starts = repeat(randrange(900), 100) ends = imap(add, starts, repeat(randrange(1,100), 100)) substrs = imap(getslice, repeat(s, 100), starts, ends) result += sum(imap(ord, imap(getitem, substrs, zeros))) print Sum is , result There's got to be a simpler and more efficient way to do this. Can you help? Benchmarking is usually done to test the speed of an operation. What are you trying to measure with this test? String slicing? Numerical operations? Looping? You're doing all sorts of bogus work for no reason. The use of randomness is also totally arbitrary and doesn't do anything except make it harder to confirm the correctness of the test. Is the ability to generate 0-length substrings (which perl claims have an ordinal of 0) intentional? For the record, taking the randomness out makes this take 4 seconds for perl, and 6 seconds for a literal translation in python. Moving it into a function drops the python function to 3.5 seconds. -- http://mail.python.org/mailman/listinfo/python-list
Re: Clearing a DOS terminal in a script
On Dec 14, 3:48 am, Stephen_B [EMAIL PROTECTED] wrote: This doesn't seem to work in a dos terminal at the start of a script: from os import popen print popen('clear').read() Any idea why not? Thanks. Maybe you are using a different dos terminal. What is clear? C:\junkclear 'clear' is not recognized as an internal or external command, operable program or batch file. C:\junkver Microsoft Windows XP [Version 5.1.2600] C:\junkhelp cls Clears the screen. CLS C:\junk The following works for me: code import os os.system('cls') print 'Howzat?' /code To use ANSI escape sequences with the real MS-DOS, one needed a console device driver (ANSI.SYS was supplied) and had to invoke it in the CONFIG.SYS file; presumably you can find out how to set this up in a Windows Command Prompt window, but it doesn't seem to be worth the bother if all you want to do is clear the window. HTH, John -- http://mail.python.org/mailman/listinfo/python-list
Re: Dynamic or not?
On Dec 14, 2:29 am, Bruno Desthuilliers While you're at it, add list comprehensions, iterators/generators and itertools to the list (pun intented). 'Intented' is a novel word; is it the opposite of 'decamped'? -- http://mail.python.org/mailman/listinfo/python-list
Newbie design problem
Thanks to a lot of help, I've got the outer framework for my tokenizer down to this: for line_number, line in enumerate(text): output = '' for char_number, char in enumerate(line): output += char print 'At ' + str(line_number) + ', '+ str(char_number) + ': ' + output, Or do I? My other tokenizers all worked with array indices. When I came to, say, an open quote character, I passed control to the get_a_string() method. That would, locate the end of the string, push a string token onto the stack and then forward the char array index to point to the next character in the line. Is there a pythonic design I'm overlooking? -- http://mail.python.org/mailman/listinfo/python-list
Re: python vs perl performance test
On Dec 13, 6:11 pm, [EMAIL PROTECTED] wrote: from random import randrange from itertools import imap, repeat from operator import getitem, add, getslice result = 0 zeros = [0]*100 for i in xrange (10): s = [chr(randrange(128))] * 1024 starts = repeat(randrange(900), 100) ends = imap(add, starts, repeat(randrange(1,100), 100)) substrs = imap(getslice, repeat(s, 100), starts, ends) result += sum(imap(ord, imap(getitem, substrs, zeros))) print Sum is , result There's got to be a simpler and more efficient way to do this. Can you help? Thanks, igor repeat(randrange(n), p) doesn't do what you want it to: It generates a single random number less thant n and repeats it p times list(repeat(randrange(100), 10)) [54, 54, 54, 54, 54, 54, 54, 54, 54, 54] Instead you want imap(randrange, repeat(n, p)): map(randrange, repeat(100, 10)) [69, 68, 81, 26, 60, 76, 40, 55, 76, 75] I don't understand why you make the Python version so complicated. -- Arnaud -- http://mail.python.org/mailman/listinfo/python-list
Eclipse/PyQt/Eric4 question
Hi, this is actually goes to whoever is using Eclipse and Eric4, the IDE that comes bundled with PyQt. I was using Eclipse until i saw Eric4 and i started experiment with it, very nice work. Eric4 has a feature that actually reminds us the work of some expensive IDEs, like Visual Studio, Delphi and the like: when you compile your project, it checks to see if some .ui files (Qt Designer form files) has changed and if so, it call pyuic.bat and compiles it (or them) transparently so it then runs your program with latest form changes. In Eclipse, i have the luxury of double-click a .ui file and thus Qt Designer opens and then design my forms there, but i cannot fing an automatic way to accomplish the thing that eric4 does: e.x. automatically compile changed .ui files when i hit F9. And it really a loss of time to go to dos-prompt and do this manually. Has anyone who work on Eclipse/PyDev and PyQt, found a way to do this ?? -- http://mail.python.org/mailman/listinfo/python-list
Python implementation of include
Hello, I've been using the Python-based Karrigell web application framework. It has the very handy word include that inserts a code file into into the stream of execution. E.g. if myFile.py contains the code: print This is a message from myFile.pybr and my script is: print Somethingbr include myFile.py print Something morebr The output would be: Something This is a message from myFile.py Something more Since I'm considering moving my application to a different web application framework, I'd like to replace include with a pure python construct. I've discovered several ways to do it, but they all seem kludgy in one way or another. Is there a simple, elegant way to do this? Many thanks, Lloyd -- http://mail.python.org/mailman/listinfo/python-list
Re: Eclipse/PyQt/Eric4 question
In Eclipse, i have the luxury of double-click a .ui file and thus Qt Designer opens and then design my forms there, but i cannot fing an automatic way to accomplish the thing that eric4 does: e.x. automatically compile changed .ui files when i hit F9. And it really a loss of time to go to dos-prompt and do this manually. Has anyone who work on Eclipse/PyDev and PyQt, found a way to do this ?? You can create a builder for calling an external program to do that on builds (right-click project - properties Builders). Another option is configuring an external program run -- menu: run external tools open external tools dialog (and you can bind a shortcut to rerun the last external tool launched). Cheers, Fabio -- http://mail.python.org/mailman/listinfo/python-list