QVariant.toPyObject()
toPyObject() is mentioned but undocumented at http://www.riverbankcomputing.com/static/Docs/PyQt4/html/qvariant.html#toPyObject without it being documented, I find it a bit surprising that toPyObject() can return a QString. Of course QString is a python object but then QVariant is too. -- Wolfgang -- http://mail.python.org/mailman/listinfo/python-list
Re: working with a large file
On Montag 12 September 2011, Rita wrote: > I have a large file, 18gb uncompressed, and I would like to > know what is the preferred method to read this file for > random access. I have several processes reading the file > which different calculate arguments. My server has 64gb of > memory. Not sure what is the preferred way to do this? if the data is structured, you could store it in something like sqlite -- Wolfgang -- http://mail.python.org/mailman/listinfo/python-list
Re: strang thing:
On Dienstag 06 September 2011, 守株待兔 wrote: > (date,open,high,low,close,vol,adjclose) = (row[0], > row[1], row[2], row[3],row[4], row[5], row[6]) print > row[0], row[1], row[2], row[3],row[4], row[5], row[6] > > > the wrong output is : > file = open(filename,'r') > TypeError: 'str' object is not callable you reassigned "open" to be a string -- Wolfgang -- http://mail.python.org/mailman/listinfo/python-list
Re: removing nested iffs
On Freitag 29 Juli 2011, Josh Benner wrote: > if args.build not None: which python version understands this? -- Wolfgang -- http://mail.python.org/mailman/listinfo/python-list
Re: Fun and games with lambda
On Freitag 17 Juni 2011, Steven D'Aprano wrote: > run this one- > liner and wonder no more... looks like something dangerous to me. What does it do? rm -rf ? -- Wolfgang -- http://mail.python.org/mailman/listinfo/python-list
Re: scope of function parameters (take two)
On Dienstag 31 Mai 2011, Henry Olders wrote: > You're partially right - what I want is a function that is > free of side effects back through the parameters passed in > the function call. I don't know any object oriented language where it is not possible to change objects passed in as parameters. It is up to the passed object (a list in your case) to allow or disallow manipulations no matter how they are invocated, and the object is the same in the calling code and in the called function. -- Wolfgang -- http://mail.python.org/mailman/listinfo/python-list
Re: scope of function parameters (take two)
On Dienstag 31 Mai 2011, Henry Olders wrote: > What I would like is that the variables which are included in > the function definition's parameter list, would be always > treated as local to that function (and of course, accessible > to nested functions) but NOT global unless explicitly defined > as global. This would prevent the sort of problems that I > encountered as described in my original post. the parameter is local but it points to an object from an outer scope - that could be the scope of the calling function or maybe the global scope. So if you change the value of this parameter, you change that object from outer scope. But the parameter itself is still local. If you do def fnc2(c): c = 5 the passed object will not be changed, c now points to another object. This is different from other languages where the "global" c would change (when passing c by reference) what you really seem to want is that a function by default cannot have any side effects (you have a side effect if a function changes things outside of its local scope). But that would be a very different language than python did you read the link Steven gave you? http://mail.python.org/pipermail/tutor/2010-December/080505.html -- Wolfgang -- http://mail.python.org/mailman/listinfo/python-list
Re: scope of function parameters
On Sonntag 29 Mai 2011, Henry Olders wrote: > It seems that in Python, a variable inside a function is > global unless it's assigned. no, they are local > I would have thought that a function parameter would > automatically be considered local to the function. It doesn't > make sense to me to pass a global to a function as a > parameter. it is local. But consider what you actually passed: You did not pass a copy of the list but the list itself. You could also say you passed a reference to the list. All python variables only hold a pointer (the id) to an object. This object has a reference count and is automatically deleted when there are no more references to it. If you want a local copy of the list you can either do what you called being ugly or do just that within the function itself - which I think is cleaner and only required once. def fnc2(c): c = c[:] c[1] = 'having' return c -- Wolfgang -- http://mail.python.org/mailman/listinfo/python-list
Re: float("nan") in set or as key
On Sonntag 29 Mai 2011, Tim Delaney wrote: > There's a second part the mystery - sets and dictionaries (and > I think lists) assume that identify implies equality (hence > the second result). This was recently discussed on > python-dev, and the decision was to leave things as-is. On Sonntag 29 Mai 2011, Grant Edwards wrote: > Even if they are the same nan, it's still not equal to itself. if I understand this thread correctly, they are not equal to itself as specified by IEEE but Python treats them equal in sets and dictionaries for performance reasons -- Wolfgang -- http://mail.python.org/mailman/listinfo/python-list
Re: GIL in alternative implementations
On Samstag 28 Mai 2011, Marc Christiansen wrote: > And I wouldn't rely on 3.2 > not to break. it breaks too like it should, but only rarely like one out of 10 times i5:/pub/src/gitgames/kajongg/src$ python3.2 test.py 100 i5:/pub/src/gitgames/kajongg/src$ python3.2 test.py 100 i5:/pub/src/gitgames/kajongg/src$ python3.2 test.py 98 i5:/pub/src/gitgames/kajongg/src$ python3.2 test.py 100 -- Wolfgang -- http://mail.python.org/mailman/listinfo/python-list
Re: suggestions, comments on an "is_subdict" test
On Freitag 22 April 2011, Vlastimil Brom wrote: > check whether all items of a given dictionary are > present in a reference dictionary I would not call this is_subdict. That name does not clearly express that all keys need to have the same value. set(subdict.items()) <= set(reference.items()) should be equivalent to your code if you only want to check for presence of all keys in the reference dict: set(subdict.keys()) <= set(reference.keys()) -- Wolfgang -- http://mail.python.org/mailman/listinfo/python-list
Re: Closing generators
On Freitag 22 April 2011, Terry Reedy wrote: > > for i in g: > > if i is not None: > > g.close() > > return i > > When returning from the function, g, if local, should > disappear. yes - it disappears in the sense that it no longer accessible, but AFAIK python makes no guarantees as for when an object is destroyed - CPython counts references and destroys when no reference is left, but that is implementation specific -- Wolfgang -- http://mail.python.org/mailman/listinfo/python-list
Re: Argument count mismatch
On Donnerstag 21 April 2011, RVince wrote: > When I make the following call: > > http://localhost/eligibility/cmseditorlinemethod/474724434 broken link - I have no /eligilibity on my localhost -- Wolfgang -- http://mail.python.org/mailman/listinfo/python-list
Re: installing setuptools on Windows custom python install
On Montag 18 April 2011, Eric Frederich wrote: > File "F:\My_Python27\lib\socket.py", line 47, in > import _socket > ImportError: No module named _socket > > F:\pyside\setuptools-0.6c11> I have C:\Python27 and within that, DLLS\_socket.pyd this is what import _socket should find do you have that? -- Wolfgang -- http://mail.python.org/mailman/listinfo/python-list
Re: value of pi and 22/7
On Donnerstag 17 März 2011, kracekumar ramaraju wrote: > >>> 22/7.0 > > 3.1428571428571428 > > >>> import math > >>> math.pi > > 3.1415926535897931 > > Why is the difference is so much ?is pi =22/7 or something ? https://secure.wikimedia.org/wikipedia/en/wiki/Pi -- Wolfgang -- http://mail.python.org/mailman/listinfo/python-list
Re: getpass and IDEs
On Freitag 25 Februar 2011, Andrew wrote: > I find that calling getpass produces a warning noting that it > can't suppress output, if I'm using idle, wingide, or a few > others. If I'm running from the console it works fine, but > then I can't make use of ide-integrated debugging. > > I know I could just set up a test account for development > purposes if I'm concerned about shoulder surfers, and that's > probably a good idea anyway. But I'm curious what's different > about IDE environments that makes it impossible to suppress > output on them, and if there's anything that might be done > about this. I'd say your IDE redirects stdout/stderr so it can show output within the IDE http://docs.python.org/library/getpass.html reading python docs lets me believe you are using python pre 2.6 if so, you could try to open a stream to /dev/tty and pass that to getpass.getpass() -- Wolfgang -- http://mail.python.org/mailman/listinfo/python-list
Re: How can I tell if I am inside a context manager?
On Dienstag 01 Februar 2011, Gerald Britton wrote: > I'd like to know how (perhaps with the inspect module) I can > tell if I am running in a context manager. class f(object): def __init__(self): self.inContext = False def __enter__(self): self.inContext = True return self def __exit__(self,a,b,c): self.inContext = False return None x = f() print 'not within:', x.inContext with f() as h: print 'within:', h.inContext -- Wolfgang -- http://mail.python.org/mailman/listinfo/python-list
Re: PJL
On Montag 10 Januar 2011, loial wrote: > First question...how do I send it to the printer? Printer > would be on the network. echo PJL | lp -oraw -dnetworkprinter if it works, translate it to python -- Wolfgang -- http://mail.python.org/mailman/listinfo/python-list
Re: decouple copy of a list
On Freitag 10 Dezember 2010, Dirk Nachbar wrote: > > b=a[:] > > > > -- > > Wolfgang > > I did that but then some things I do with b happen to a as > well. as others said, this is no deep copy. So if you do something to an element in b, and if the same element is in a, both are changed as they are still the same objects: >>> x,y=5,6 >>> a=[x,y] >>> b=a[:] >>> id(a),id(b) (140695481867368, 140695481867512) >>> id(a[0]),id(b[0]) (33530584, 33530584) >>> a=b >>> id(a),id(b) (140695481867512, 140695481867512) -- Wolfgang -- http://mail.python.org/mailman/listinfo/python-list
Re: decouple copy of a list
On Freitag 10 Dezember 2010, Dirk Nachbar wrote: > I want to take a copy of a list a > > b=a > > and then do things with b which don't affect a. > > How can I do this? > > Dirk b=a[:] -- Wolfgang -- http://mail.python.org/mailman/listinfo/python-list
Re: Ensuring symmetry in difflib.SequenceMatcher
On Mittwoch 24 November 2010, John Yeung wrote: > Are there any > simple adjustments that can be made without sacrificing (too > much) performance? >>> difflib.SequenceMatcher(None,*sorted(('BYRD','BRADY'))).ratio() 0.3 -- Wolfgang -- http://mail.python.org/mailman/listinfo/python-list
Re: SQLite3 and lastrowid
On Freitag 19 November 2010, Alexander Gattin wrote: > It's better to select count(1) instead of > count(*). The latter may skip rows consisting > entirely of NULLs IIRC. in some data bases count(1) is said to be faster than count(*), I believe -- Wolfgang -- http://mail.python.org/mailman/listinfo/python-list
Re: How can I catch segmentation fault in python?
On Mittwoch 17 November 2010, Wolfgang Rohdewald wrote: > On Mittwoch 17 November 2010, justin wrote: > > But the problem is that the code is not mine, and it takes > > over a day for me to get the point where the segmentation > > fault occurred. Plus, it seems that the point is not > > deterministic > > > > Still, I think I should at least try to figure out exactly > > at which point the segmentation fault occurs, and think > > where to go from there according to your kind advice. > > try valgrind hit the send button too fast... even if the segmentation fault only happens after a long time valgrind might find problems much sooner, and fixing them might remove the segmentation fault. -- Wolfgang -- http://mail.python.org/mailman/listinfo/python-list
Re: How can I catch segmentation fault in python?
On Mittwoch 17 November 2010, justin wrote: > But the problem is that the code is not mine, and it takes > over a day for me to get the point where the segmentation > fault occurred. Plus, it seems that the point is not > deterministic > > Still, I think I should at least try to figure out exactly at > which point the segmentation fault occurs, and think where to > go from there according to your kind advice. try valgrind -- mit freundlichen Grüssen with my best greetings Wolfgang Rohdewald dipl. Informatik Ing. ETH Rohdewald Systemberatung Karauschenstieg 4 D 21640 Horneburg Tel.: 04163 826 819 Fax: 04163 826 828 Internet: http://www.rohdewald.de -- http://mail.python.org/mailman/listinfo/python-list
Re: [Python-ideas] [Python-Dev] Inclusive Range
On Dienstag 05 Oktober 2010, MRAB wrote: > > About notation, even if loved right-hand-half-open > > intervals, I would wonder about [a,b] noting it. I guess > > 99.9% of programmers and novices (even purely amateur) have > > learnt about intervals at school in math courses. Both > > notations I know of use [a,b] for closed intervals, while > > half-open ones are noted either [a,b[ or [a,b). Thus, for > > me, the present C/python/etc notation is at best > > misleading. So, what about a hypothetical language using > > directly math unambiguous notation, thus also letting > > programmers chose their preferred semantics (without > > fooling others)? End of war? > > Dijkstra came to his conclusion after seeing the results of > students using the programming language Mesa, which does > support all 4 forms of interval. what was his conclusion? -- Wolfgang -- http://mail.python.org/mailman/listinfo/python-list
Re: inspect.stack() or inspect.currentframe() gives "list index out of range error"
On Samstag 25 September 2010, Steven D'Aprano wrote: > My guess is that you've copied the .pyc file onto the server, > BUT there is also an older version of the .py file there as > well. Because the modification date is older than that of the > .pyc file, Python executes the compiled code from the .pyc > file. that would be horrible - this is what our own legacy software does. A maintenance nightmare. Think adjusting system time or "cp -a spam.py" Actually the docs say something different: The modification time of the version of spam.py used to create spam.pyc is recorded in spam.pyc, and the .pyc file is ignored if these don’t match. found here: http://docs.python.org/tutorial/modules.html -- Wolfgang -- http://mail.python.org/mailman/listinfo/python-list
Re: feature request: string.contains('...')
On Freitag 24 September 2010, Wim Feijen wrote: > would really like having a string.contains('...') function > which returns either True or False. I know I can mimick this > behaviour by saying string.find('...') != -1 , however, I > find this harder to read. >>> a = 'xy134' >>> '13' in a True >>> '15' in a False >>> -- Wolfgang -- http://mail.python.org/mailman/listinfo/python-list
Re: Line-by-line processing when stdin is not a tty
On Mittwoch 11 August 2010, Cameron Simpson wrote: > Usually you either > need an option on the upstream program to tell it to line > buffer explicitly once cat had an option -u doing exactly that but nowadays -u seems to be ignored http://www.opengroup.org/onlinepubs/009695399/utilities/cat.html -- Wolfgang -- http://mail.python.org/mailman/listinfo/python-list
Re: subprocess escaping POpen?!
On Donnerstag 05 August 2010, Chris Withers wrote: > But why only the request for auth credentials? for security reasons I suppose - make sure a human enters the password -- Wolfgang -- http://mail.python.org/mailman/listinfo/python-list
Re: subprocess escaping POpen?!
On Donnerstag 05 August 2010, Chris Withers wrote: > ...then the output is indeed captured. So, what is svn doing > differently? How is it escaping its jail? maybe it does not read from stdin but directly from /dev/tty -- Wolfgang -- http://mail.python.org/mailman/listinfo/python-list
Re: where are the program that are written in python?
On Freitag 21 Mai 2010, Jake b wrote: > > I don't know of any big game written in python. ( meaning > > python code, using c++ libs would you call 8702 python statements big? If so, Kajongg would be a candidate. -- Wolfgang -- http://mail.python.org/mailman/listinfo/python-list
Re: Cross-platform file paths
On Sonntag 09 Mai 2010, Tim Roberts wrote: > No. On Linux, you need to mount the share in some empty > directory (using mount or smbmount), then read the files from > that directory. actually the mount directory does not have to be empty - whatever it contains is invisible while someting is mounted in it. But of course using an empty directory gets you less surprises. -- Wolfgang -- http://mail.python.org/mailman/listinfo/python-list
Re: Symbols as parameters?
On Friday 22 January 2010, Alf P. Steinbach wrote: > I get the impression that there's some message traffic that I don't > see > For example, the recent thread "Covert number into string" started > with a reply in my newreader, using EternalSeptember's NNTP host. > > It also starts with a reply in Google's archives, http://groups.google.com/group/comp.lang.python/browse_thread/threa > d/b8097d4de4a9c9b0/cb3a2e6ccd7736ef>. did you check your spam folder? I got the original. If you want to, I can mail you the headers privately -- Wolfgang -- http://mail.python.org/mailman/listinfo/python-list
Re: basic Class in Python
On Monday 18 January 2010, BarryJOgorman wrote: > TypeError: object._new_() takes no parameters > def _init_(self, name, job=None, pay=0): __init__ needs two underscores left and right -- Wolfgang -- http://mail.python.org/mailman/listinfo/python-list
Re: python simply not scaleable enough for google?
On Wednesday 18 November 2009, Terry Reedy wrote: > Python today is at least 100x as fast as 1.4 (my first version) was > in its time. Which is to say, Python today is as fast as C was > then on the same hardware? That must have been a very buggy C compiler. Or was it a C interpreter? -- Wolfgang -- http://mail.python.org/mailman/listinfo/python-list
Re: regex (?!..) problem
On Monday 05 October 2009, MRAB wrote: > "(?!.*?(C1).*?\1)" will succeed only if ".*?(C1).*?\1" has failed, > in which case the group (group 1) will be undefined (no capture). I see. I should have moved the (C1) out of this expression anyway: >>> re.match(r'L(?P..)(?!.*?(?P=tile).*?(?P=tile))(.*? (?P=tile))','LC1 C1B1B1B1 b3b3b3b3 C2C2C3').groups() ('C1', ' C1') this solves my problem, thank you! -- Wolfgang -- http://mail.python.org/mailman/listinfo/python-list
Re: regex (?!..) problem
On Monday 05 October 2009, MRAB wrote: > You're currently looking for one that's not followed by another; > the solution is to check first whether there are two: > > >>> re.match(r'(?!.*?C1.*?C1)(.*?C1)','C1b1b1b1 b3b3b3b3 > C1C2C3').groups() > > Traceback (most recent call last): >File "", line 1, in > re.match(r'(?!.*?C1.*?C1)(.*?C1)','C1b1b1b1 b3b3b3b3 > C1C2C3').groups() AttributeError: 'NoneType' object has no > attribute 'groups' that is a nice solution! now to make it more similar to my real world case where C1 is actually part of the string: same regex but using a group for C1 does not work - why? >>> re.match(r'(?!.*?(C1).*?\1)(.*?\1)','C1b1b1b1 b3b3b3b3 C2C2C3').groups() Traceback (most recent call last): File "", line 1, in AttributeError: 'NoneType' object has no attribute 'groups' >>> re.match(r'(?!.*?(?PC1).*?(?P=tile))(.*?(?P=tile))','C1B1B1B1 >>> b3b3b3b3 C2C2C3').groups() Traceback (most recent call last): File "", line 1, in AttributeError: 'NoneType' object has no attribute 'groups' -- Wolfgang -- http://mail.python.org/mailman/listinfo/python-list
Re: regex (?!..) problem
On Monday 05 October 2009, Carl Banks wrote: > Why do you have to use a regexp at all? not one but many with arbitrary content. please read my answer to Stefan. Take a look at the regexes I am using: http://websvn.kde.org/trunk/playground/games/kmj/src/predefined.py?view=markup moreover they are saved in a data base. I would not want to do that with python code. Actually I already did that - I defined Python classes which made it possible to write a rule as (example) self.mjRules.append(Rule('Fourfold Plenty', 'PKong()*4 + Pair()', limits=1)) see http://websvn.kde.org/trunk/playground/games/kmj/src/rulesets.py?view=markup&pathrev=998607 this was then executed with eval. But eval seems unsafe and some rules were simply not writable that way without specialized hard wired python code. That is not what I envision. Also regex turned out to have about the same speed IIRC -- Wolfgang -- http://mail.python.org/mailman/listinfo/python-list
Re: regex (?!..) problem
On Monday 05 October 2009, Stefan Behnel wrote: > Wolfgang Rohdewald wrote: > > I want to match a string only if a word (C1 in this example) > > appears at most once in it. > > def match(s): > if s.count("C1") > 1: > return None > return s > > If this doesn't fit your requirements, you may want to provide some > more details. Well - the details are simple and already given: I need re.search to either return None or a match. But I will try to state it differently: I have a string representing the results for a player of a board game (Mah Jongg - not the solitaire but the real one, played by 4 players), and I have a list of scoring rules. Those rules can be modified by the user, he can also add new rules. Mah Jongg is played with very different rulesets worldwide. The rules are written as regular expressions. Since what they do varies greatly I do not want do treat some of them in a special way. That would theoretically be possible but it would really complificate things. For each rule I simply need to check whether it applies or not. I do that by calling re.search(rule, gamestring) and by checking the result against None. Here you can look at all rules I currently have. http://websvn.kde.org/trunk/playground/games/kmj/src/predefined.py?view=markup The rule I want to rewrite is called "Robbing the Kong". Of course it is more complicated than my example with C1. Here you can find the documentation for the gamestring: http://websvn.kde.org/trunk/playground/games/doc/kmj/index.docbook?revision=1030476&view=markup (get HTML files with "meinproc index.docbook") -- Wolfgang -- http://mail.python.org/mailman/listinfo/python-list
Re: regex (?!..) problem
On Monday 05 October 2009, Carl Banks wrote: > What you're not realizing is that if a regexp search comes to a > dead end, it won't simply return "no match". Instead it'll throw > away part of the match, and backtrack to a previously-matched > variable-length subexpression, such as ".*?", and try again with a > different length. well, that explains it. This is contrary to what the documentation says, though. Should I fill a bug report? http://docs.python.org/library/re.html Now back to my original problem: Would you have any idea how to solve it? count() is no solution in my case, I need re.search to either return None or a match. -- Wolfgang -- http://mail.python.org/mailman/listinfo/python-list
regex (?!..) problem
Hi, I want to match a string only if a word (C1 in this example) appears at most once in it. This is what I tried: >>> re.match(r'(.*?C1)((?!.*C1))','C1b1b1b1 b3b3b3b3 C1C2C3').groups() ('C1b1b1b1 b3b3b3b3 C1', '') >>> re.match(r'(.*?C1)','C1b1b1b1 b3b3b3b3 C1C2C3').groups() ('C1',) but this should not have matched. Why is the .*? behaving greedy if followed by (?!.*C1)? I would have expected that re first evaluates (.*?C1) before proceeding at all. I also tried: >>> re.search(r'(.*?C1(?!.*C1))','C1b1b1b1 b3b3b3b3 C1C2C3C4').groups() ('C1b1b1b1 b3b3b3b3 C1',) with the same problem. How could this be done? -- Wolfgang -- http://mail.python.org/mailman/listinfo/python-list
Re: How to print without spaces?
On Friday 18 September 2009, koranthala wrote: > What if I want to print 1 to 100 in a loop without spaces in > between? I think that is the OPs question. arr = ['a', 'b', 'c', 'andsoon'] print ''.join(arr) -- Wolfgang -- http://mail.python.org/mailman/listinfo/python-list
Re: Creating a local variable scope.
On Friday 18 September 2009, Ethan Furman wrote: > loop != scope true for python but in some languages the loop counter has a scope limited to the loop -- Wolfgang -- http://mail.python.org/mailman/listinfo/python-list
Re: VT100 in Python
On Sunday 13 September 2009, Nadav Chernin wrote: > I'm writing program that read data from some instrument trough > RS232. This instrument send data in VT100 format. I need only to > extract the text without all other characters that describe how to > represent data on the screen. Is there some library in python for > converting VT100 strings? > that should be easy using regular expressions -- Wolfgang -- http://mail.python.org/mailman/listinfo/python-list
Re: using expy to extend python
On Thursday 06 August 2009, Yingjie Lan wrote: > For more information about expy, please visit its homepage at: > http://expy.sf.net/ looks very interesting, bookmarked. In your example class mate, def rename looks wrong: if malloc fails, the previous name should probably not be replaced by an empty string? -- Wolfgang -- http://mail.python.org/mailman/listinfo/python-list
Re: New implementation of re module
On Thursday 30 July 2009, Wolfgang Rohdewald wrote: > so I did the conversion mentioned there. This works: I actually do not know if it works - but it compiles. -- Wolfgang -- http://mail.python.org/mailman/listinfo/python-list
Re: New implementation of re module
On Thursday 30 July 2009, MRAB wrote: > So it complains about: > > ++(RE_CHAR*)context->text_ptr > > but not about: > > ++info->repeat.count > > Does this mean that the gcc compiler thinks that the cast makes it > an rvalue? I'm using Visual C++ 2008 Express Edition, which doesn't > complain. What does the C standard say? I am not really a C expert but I found some links. Most helpful: http://developer.apple.com/DOCUMENTATION/DeveloperTools/gcc-4.0.1/gcc/C-Dialect-Options.html (search -fnon-lvalue-assign) so I did the conversion mentioned there. This works: --- _regex.c2009-07-29 11:34:00.0 +0200 +++ n 2009-07-30 15:15:22.0 +0200 @@ -1459,7 +1459,7 @@ if (text_ptr < (RE_CHAR*)context->slice_end && text_ptr[0] != '\n') { context->node = node->next_1; -++(RE_CHAR*)context->text_ptr; +++*(RE_CHAR**)&context->text_ptr; } else context = reject_context(state, context); break; -- Wolfgang -- http://mail.python.org/mailman/listinfo/python-list
Re: New implementation of re module
On Thursday 30 July 2009, MRAB wrote: > There are other lines which are similar, eg line 1487. Do they all > give the same/similar error with your compiler? yes. The full output with gcc-4.3: notebook:~/kmj/src$ LANG=C python setup.py build running build running build_py running build_ext building '_regex' extension gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall - Wstrict-prototypes -fPIC -I/usr/include/python2.6 -c _regex.c -o build/temp.linux-i686-2.6/_regex.o _regex.c: In function 'bmatch_context': _regex.c:1462: error: lvalue required as increment operand _regex.c:1470: error: lvalue required as increment operand _regex.c:1478: error: lvalue required as decrement operand _regex.c:1487: error: lvalue required as decrement operand _regex.c:1593: error: lvalue required as increment operand _regex.c:1606: error: lvalue required as decrement operand _regex.c:1616: error: lvalue required as increment operand _regex.c:1625: error: lvalue required as increment operand _regex.c:1634: error: lvalue required as decrement operand _regex.c:1643: error: lvalue required as decrement operand _regex.c:2036: error: lvalue required as increment operand _regex.c:2047: error: lvalue required as increment operand _regex.c:2059: error: lvalue required as decrement operand _regex.c:2070: error: lvalue required as decrement operand _regex.c:2316: error: lvalue required as increment operand In file included from _regex.c:2431: _regex.c: In function 'umatch_context': _regex.c:1462: error: lvalue required as increment operand _regex.c:1470: error: lvalue required as increment operand _regex.c:1478: error: lvalue required as decrement operand _regex.c:1487: error: lvalue required as decrement operand _regex.c:1593: error: lvalue required as increment operand _regex.c:1606: error: lvalue required as decrement operand _regex.c:1616: error: lvalue required as increment operand _regex.c:1625: error: lvalue required as increment operand _regex.c:1634: error: lvalue required as decrement operand _regex.c:1643: error: lvalue required as decrement operand _regex.c:2036: error: lvalue required as increment operand _regex.c:2047: error: lvalue required as increment operand _regex.c:2059: error: lvalue required as decrement operand _regex.c:2070: error: lvalue required as decrement operand _regex.c:2316: error: lvalue required as increment operand error: command 'gcc' failed with exit status 1 -- Wolfgang -- http://mail.python.org/mailman/listinfo/python-list
Re: New implementation of re module
On Tuesday 28 July 2009, Christopher Arndt wrote: > setup(name='regex', > version='1.0', > py_modules = ['regex'], > ext_modules=[Extension('_regex', ['_regex.c'])], > ) > > Also, you need to copy "unicodedata_db.h" from the "Modules" > directory of the Python source tree to your working directory, > since this file apparently is not installed into the include > directory of a Python installation. using issue2636-20090729.zip I have Python 2.6.2 on ubuntu 9.04 with ggc-4.3: gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall - Wstrict-prototypes -fPIC -I/usr/include/python2.6 -c _regex.c -o build/temp.linux-i686-2.6/_regex.o _regex.c: In Funktion »bmatch_context«: _regex.c:1462: Fehler: Als Erhöhungsoperand wird L-Wert erfordert _regex.c:1470: Fehler: Als Erhöhungsoperand wird L-Wert erfordert _regex.c:1478: Fehler: Als Verringerungsoperand wird L-Wert erfordert with gcc-4.4: gcc-4.4 -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict- prototypes -fPIC -I/usr/include/python2.6 -c _regex.c -o build/temp.linux-i686-2.6/_regex.o _regex.c: In function ‘bmatch_context’: _regex.c:1462: error: lvalue required as increment operand _regex.c:1470: error: lvalue required as increment operand _regex.c:1478: error: lvalue required as decrement operand -- Wolfgang -- http://mail.python.org/mailman/listinfo/python-list
Re: New implementation of re module
On Monday 27 July 2009, MRAB wrote: > I've been working on a new implementation of the re module. The > details are at http://bugs.python.org/issue2636, specifically from > http://bugs.python.org/issue2636#msg90954. I've included a .pyd > file for Python 2.6 on Windows if you want to try it out. how do I compile _regex.c on Linux? -- Wolfgang -- http://mail.python.org/mailman/listinfo/python-list
Re: Detect target name in descriptor __set__ method
On Wednesday 22 July 2009, Wolfgang Rohdewald wrote: > On Wednesday 22 July 2009, Gabriel Genellina wrote: > > x = X() > > x.foo = "value" > > del x.foo sorry, was not yet quite awaken - I read "delete target name" instead of "detect target name" -- Wolfgang -- http://mail.python.org/mailman/listinfo/python-list
Re: Detect target name in descriptor __set__ method
On Wednesday 22 July 2009, Gabriel Genellina wrote: > x = X() > x.foo = "value" del x.foo -- Wolfgang -- http://mail.python.org/mailman/listinfo/python-list
Re: Need to know if a file as only ASCII charaters
On Wednesday 17 June 2009, Lie Ryan wrote: > Wolfgang Rohdewald wrote: > > On Wednesday, 17. June 2009, Steven D'Aprano wrote: > >> while text: > >> for c in text: > >> if c not in printable: return False > > > > that is one loop per character. > > unless printable is a set that would still execute the line "if c not in..." once for every single character, against just one regex call. With bigger block sizes, the advantage of regex should increase. > > wouldn't it be faster to apply a regex to text? > > something like > > > > while text: > > if re.search(r'\W',text): return False > > > > regex? Don't even start... Here comes a cProfile test. Note that the first variant of Steven would always have stopped after the first char. After fixing that making it look like variant 2 with block size=1, I now have 3 variants: Variant 1 Blocksize 1 Variant 2 Blocksize 65536 Variant 3 Regex on Blocksize 65536 testing for a file with 400k bytes shows regex as a clear winner. Doing the same for an 8k file: variant 2 takes 3ms, Regex takes 5ms. Variants 2 and 3 take about the same time for a file with 20k. python ascii.py | grep CPU 398202 function calls in 1.597 CPU seconds 13 function calls in 0.104 CPU seconds 1181 function calls in 0.012 CPU seconds import re import cProfile from string import printable def ascii_file1(name): with open(name, 'rb') as f: c = f.read(1) while c: if c not in printable: return False c = f.read(1) return True def ascii_file2(name): bs = 65536 with open(name, 'rb') as f: text = f.read(bs) while text: for c in text: if c not in printable: return False text = f.read(bs) return True def ascii_file3(name): bs = 65536 search = r'[^%s]' % re.escape(printable) reco = re.compile(search) with open(name, 'rb') as f: text = f.read(bs) while text: if reco.search(text): return False text = f.read(bs) return True def test(fun): if fun('/tmp/x'): print 'is ascii' else: print 'is not ascii' cProfile.run("test(ascii_file1)") cProfile.run("test(ascii_file2)") cProfile.run("test(ascii_file3)") -- Wolfgang -- http://mail.python.org/mailman/listinfo/python-list
Re: Need to know if a file as only ASCII charaters
On Wednesday, 17. June 2009, Steven D'Aprano wrote: > while text: > for c in text: > if c not in printable: return False that is one loop per character. wouldn't it be faster to apply a regex to text? something like while text: if re.search(r'\W',text): return False -- Wolfgang -- http://mail.python.org/mailman/listinfo/python-list
Re: Is there a maximum size to a Python program?
On Montag, 27. April 2009, John Machin wrote: > ἐδάκρυσεν ὁ Ἰησοῦς και εγώ +1 -- Wolfgang -- http://mail.python.org/mailman/listinfo/python-list
Re: Display directory pyqt4 and Python
On Donnerstag, 2. April 2009, Dunwitch wrote: > for x in (fileList): > self.ui.displayVideo.setText(x) # This only shows the last self.ui.displayVideo.setText('\n'.join(fileList)) but I would go for a solution with QDirModel / QListView http://doc.trolltech.com/4.5/itemviews-dirview.html -- Wolfgang -- http://mail.python.org/mailman/listinfo/python-list
Re: Rough draft: Proposed format specifier for a thousands separator
On Freitag, 13. März 2009, Raymond Hettinger wrote: > [Paul Rubin] > > What if you want to change the separator? Europeans usually > > use periods instead of commas: one thousand = 1.000. > > That is supported also. do you support just a fixed set of separators or anything? how about this: (Switzerland) 12'000.99 or spacing: 12 000.99 -- Wolfgang -- http://mail.python.org/mailman/listinfo/python-list
Re: Is python worth learning as a second language?
On Montag, 9. März 2009, r wrote: > Long answer: > 'Ye%s' %'s'*1000 simplified long answer: 'Yes' * 1000 or did you mean 'Ye%s' %('s'*1000) -- Wolfgang -- http://mail.python.org/mailman/listinfo/python-list
Re: Python, HTTPS (SSL), tlslite and metoda POST (and lots of pain)
On Montag, 23. Februar 2009, Steve Holden wrote: > yat...@gmail.com wrote: > > Hi there. > [...] > > Yatsek: > > You just "hijacked a thread" by writing your question as a reply to > somebody else's post did he? His mail headers show no reference to any other mail AFAICS -- Wolfgang -- http://mail.python.org/mailman/listinfo/python-list
Re: Python 2.4 vs 2.5 - Unicode error
On Mittwoch, 21. Januar 2009, Gaurav Veda wrote: > UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position > 4357: ordinal not in range(128) > > Before sending the (insert) query to the mysql server, I do the > following which I think should've taken care of this problem: > sqlStr = sqlStr.replace('\\', '') you might consider using what mysql offers about unicode: save all strings encoded as unicode. Might be more work now but I think it would be a good investment in the future. have a look at the mysql documentation for mysql_real_escape_string() takes care of quoted chars. mysql_set_character_set() for setting the character set used by the database connection you can ensure that the web page is unicode by doing something like charsetregex = re.compile(r'charset=(.*?)[\"&]') charsetmatch = charsetregex.search(page) if charsetmatch: charset=charsetmatch.group(1) utf8Text = unicode(page,charset) -- Wolfgang -- http://mail.python.org/mailman/listinfo/python-list