Re: Bug!
On 23 August 2015 00:06:44 BST, Chris Angelico ros...@gmail.com wrote: Precisely. Every time you support multiple versions of some dependency, you have to test your code on all of them, and in the common case (new features added in newer versions), you have to target the oldest and weakest version. Just don't add features to older versions. They're in maintenance or bugfix mode. When you're writing a Python program that has to run on CPython back as far as 2.4, there's a lot you can't do... Just deprecate then drop the stuff you don't want to support any more. This is part of the standard software lifecyle to me. If you care about your users that might not be ready to upgrade provide security fixes for the older versions. If you don't care, well I wouldn't want to use your software in production. dropping support for everything pre-2.7 lets you improve your code significantly. Does dropping support for Python 2.4 consist of undercutting RHEL users? Nope. It's that same pragmatism - I want a cleaner codebase. RHEL 4 might still be supported (is it? haven't paid attention) but there should be no obligation to provide new features. Have a development branch or mainline, that doesn't stop you from having stable rele CPython 3.4 will continue to run on Windows XP. If you're still using an old Windows, you just have to keep using an old Python too. Eventually Python 3.4 will be out of support, but at that point, it's no different from the OS anyway. There's nothing stopping you from using an ancient OS, an ancient CPython, and an ancient Python application, if that's what it requires... I'm not sure what OS people are running Python 1.5 on, but if anyone complains that it doesn't install properly on Windows 10, I rather doubt that python.org will release a patch :) ChrisA -- Sent from Kaiten Mail. Please excuse my brevity. -- https://mail.python.org/mailman/listinfo/python-list
Qestion
hi dear friend I have python version 2.4.3 Which version of PIL is appropriate for me and how can I add it to my systems? Regards -- https://mail.python.org/mailman/listinfo/python-list
[issue19065] sqlite3 timestamp adapter chokes on timezones
Gerhard Häring added the comment: I'm -1 because I believe that ultimately, adapters and converters were a mistake to add to pysqlite. That's why I deprecated them in pysqlite 2.8.0. Do you know what would be the correct step to propose a deprecation in the sqlite3 module of Python proper? Is a PEP necessary? -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue19065 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
Re: Is this the way to go with SQLite
On Mon, Aug 24, 2015 at 2:17 AM, Dennis Lee Bieber wlfr...@ix.netcom.com wrote: SQLite3 supports the non-standard INSERT OR REPLACE ... (or one can do INSERT OR IGNORE; the OR XXX has a number of values that are allowed to control behavior... BUT the OR clause only applies if a UNIQUE constraint would be violated by the INSERT action... So if the field is not a unique index, no foul is detected) Sure. But that's still the same as MySQL's (equally non-standard) ON DUPLICATE KEY UPDATE, and various others. It's a way of shoving down a level the common idiom of do this insert, only if that doesn't work, do this update instead. But that doesn't seem to be what the original code was doing - it was more like do this insert, but if it's a duplicate based on URL, check if the other fields are the same, and if not... uhh, print something out?, which is far from common. ChrisA -- https://mail.python.org/mailman/listinfo/python-list
[issue9262] IDLE: Use tabbed shell and edit windows
Mark Roseman added the comment: I've put together a standalone tabs widget (mostly done) based on Tk canvas widget, that emulates the behaviour of TextMate's tabs. I was able to modify Roger's extension to use this widget. See attached screenshot newtabs.png (tabs area is fully functioning, bottom debug area is just UI). -- Added file: http://bugs.python.org/file40234/newtabs.png ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue9262 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue24878] Add docstrings to selected named tuples
Raymond Hettinger added the comment: Thanks Petr -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue24878 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue24878] Add docstrings to selected named tuples
Roundup Robot added the comment: New changeset 4432c441b639 by Raymond Hettinger in branch 'default': Issue #24878: Fix typos and line wrap https://hg.python.org/cpython/rev/4432c441b639 -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue24878 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
Re: Sometimes bottle takes a lot of time
On 08/23/2015 08:05 AM, Johannes Bauer wrote: By git bisect he can find out where he introduced the bug. Like Cecil said, this is of little help. There was no code changed from when he didn't notice the behavior until he did. Note that this says nothing about the location of the bug, in can still be either in the OPs code or in the framework. Yup. Note that he has now shifted from blaming bottle to blaming Firefox. Same thing with that claim. If somehow website delivery was delayed 6 seconds reproducibly, people would have noticed. Well it does look like the problem is indeed inside firefox. Chrome does exhibit the problem. Just fetching the urls in a script does not have the problem either. Since this is an ajax thing, I can entirely understand that Firefox introduces random delays. Practically all ajax-heavy sites I've ever used has had random slowdowns in Firefox. I suspect that either the OPs program is at fault or the OP's setup (name resolution or some other weird stuff going on). Name resolution could be an issue, but the script he wrote to simulate the browser requests does not show the slowdown at all. Firefox could be doing name resolution differently than the rest of the system and Chrome of course, which wouldn't surprise me as Firefox seems to more and more stupid stuff. But instead of tackling this problem systematically, like a Software Engineer would (Wireshark, debugger, profiler) he just blames other people's software. This, in my humble opinion, is annoying He is tackling the problem systematically, though perhaps not in the same way you would. Sure there are ways he can improve his process, and he is doing that slowly. But your bashing on him is inappropriate and unhelpful. And sometimes things that are obvious to you and others (such as strings being iterable in his sql binding problem) are not obvious to new users of python, even ones with a lot of experience in other languages. What is annoying to me is how you have done nothing but jump all over him this whole thread, and several other times. You seem to have made it your mission to bash him continually on this list, mocking him and saying if he were a wise Senior Software Engineer he would know such and such. In fact I can find very few of your posts to this list where you aren't bashing Cecil in recent months. This does not reflect well on the list community and drives away people who would otherwise want to learn Python. If Cecil's posts annoy you, please ignore them (I wouldn't even respond to this post of yours, but I feel like something has to be said). I for one am happy to help out, and I'm very glad to see a person come and learn python and be enthusiastic about it. Unlike many people learning Python, Cecil has made a strong attempt to learn the idiomatic ways of programming in Python, and seems to be really enjoying it. He hasn't been turned off by the sometimes toxic atmosphere of the list. He hasn't run off saying Python sux because of whitespace. -- https://mail.python.org/mailman/listinfo/python-list
[issue24305] The new import system makes it impossible to correctly issue a deprecation warning for a module
Brett Cannon added the comment: Here is a patch that adds the C version of the frame skipping. Unfortunately it fails under test_threading, test_subprocess, test_multiprocessing_spawn. It's due to is_internal_frame() somehow although setting a breakpoint in gdb in that function never triggers. The return value is -11 from the interpreter and I don't remember what that represents. -- Added file: http://bugs.python.org/file40233/issue24305.diff ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue24305 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue24915] Profile Guided Optimization active by-default
Brett Cannon added the comment: I did an initial code review on the 3.6 patch. What would it take to add clang support for PGO? Is it simply using different flags that configure can set in the generated Makefile? Or is it more involved and would require maintaining two separate compile lines in the Makefile? -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue24915 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue17797] Visual C++ 11.0 reports fileno(stdin) == 0 for non-console program
Ilya Kulakov added the comment: Steve, What's going to be the required msvc compiler for 3.5 on Windows? -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue17797 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
Re: Qestion
On 23Aug2015 09:28, Laura Creighton l...@openend.se wrote: In a message of Sat, 22 Aug 2015 06:53:21 -, ali ranjbar writes: I have python version 2.4.3 Which version of PIL is appropriate for me and how can I add it to my systems? If you really have python 2.4.3 then you badly need a newer Python. If he's on RedHat Linux 5 (or CentOS 5) the system Python is 2.4.3. Cheers, Cameron Simpson c...@zip.com.au How do you know I'm Mad? asked Alice. You must be, said the Cat, or you wouldn't have come here. -- https://mail.python.org/mailman/listinfo/python-list
Re: Sometimes bottle takes a lot of time
On Sunday 23 Aug 2015 16:05 CEST, Johannes Bauer wrote: On 22.08.2015 16:15, Christian Gollwitzer wrote: Probably yes. You should take a look at the OP again and compare the time stamps. It says that in between two consecutive calls of the same program, the request was served once in a second, and once with serious delays. Despite that the server is localhost. In between both trials there are 20 seconds. I do not see, how git bisect would help here. I do completely understand that in two consecutive runs one time the problem occurs and the other time it doesn't. It's highly unlikely that such a bug would ever have passed the bottle QA and if it did it would affect thousands of users (who would report this issue, since it's very severe). It is much more likely the bug is somewhere within the OP's program. By git bisect he can find out where he introduced the bug. You have to explain something to me: how can I introduce a bug without changing anything? Maybe by having wrong thoughts? Note that this says nothing about the location of the bug, in can still be either in the OPs code or in the framework. Yup. Note that he has now shifted from blaming bottle to blaming Firefox. Same thing with that claim. If somehow website delivery was delayed 6 seconds reproducibly, people would have noticed. I never blamed bottle, I was asking if it could be a problem with bottle. And it is (now) clear that it has to do something with Firefox. Just fetching the URL's does not give a problem. Chromium does not have a problem. Only Firefox has a problem. Even in safemode. And with an older version of Firefox there is (almost) no problem. I suspect that either the OPs program is at fault or the OP's setup (name resolution or some other weird stuff going on). But instead of tackling this problem systematically, like a Software Engineer would (Wireshark, debugger, profiler) he just blames other people's software. This, in my humble opinion, is annoying as fuck. Do you know what I find annoying? That you need to keep bashing me, instead of thinking: was I maybe wrong in bashing? Especially because you are the only one that thinks you were right. Being the only one who thinks something, does not necessarily make you wrong, but should make you contemplate. -- Cecil Westerhof Senior Software Engineer LinkedIn: http://www.linkedin.com/in/cecilwesterhof -- https://mail.python.org/mailman/listinfo/python-list
[issue16379] SQLite error code not exposed to python
Gerhard Häring added the comment: I propose to also set the SQLite extended error code if this is implemented. What's the reasoning behind offering a error code to name mapping? This seem problematic to me. In case a newer SQLite version introduces a new error code, this error code cannot be found in the mapping. I propose to leave this out in order to not have this problem. Otherwise we will have people depending on any error code being able to be found in this mapping. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue16379 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
Re: Sometimes bottle takes a lot of time
On Sunday 23 Aug 2015 17:44 CEST, MRAB wrote: I never blamed bottle, I was asking if it could be a problem with bottle. The subject says otherwise. :-) Yeah, my communication skills can take some improvement. I meant: I have this problem. I think it could have to do something with bottle. Can anybody shed some light on it? I hope to be more precise next time. -- Cecil Westerhof Senior Software Engineer LinkedIn: http://www.linkedin.com/in/cecilwesterhof -- https://mail.python.org/mailman/listinfo/python-list
[issue24915] Profile Guided Optimization active by-default
Alecsandru Patrascu added the comment: I received the review and will post new patch versions as soon as I update them. Regarding PGO on clang, I will need a bit more time to edit the Makefile and will post it just for clang, to be easier for us to see the differences. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue24915 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
Re: Sometimes bottle takes a lot of time
On 2015-08-23 16:20, Cecil Westerhof wrote: On Sunday 23 Aug 2015 16:05 CEST, Johannes Bauer wrote: On 22.08.2015 16:15, Christian Gollwitzer wrote: Probably yes. You should take a look at the OP again and compare the time stamps. It says that in between two consecutive calls of the same program, the request was served once in a second, and once with serious delays. Despite that the server is localhost. In between both trials there are 20 seconds. I do not see, how git bisect would help here. I do completely understand that in two consecutive runs one time the problem occurs and the other time it doesn't. It's highly unlikely that such a bug would ever have passed the bottle QA and if it did it would affect thousands of users (who would report this issue, since it's very severe). It is much more likely the bug is somewhere within the OP's program. By git bisect he can find out where he introduced the bug. You have to explain something to me: how can I introduce a bug without changing anything? Maybe by having wrong thoughts? Note that this says nothing about the location of the bug, in can still be either in the OPs code or in the framework. Yup. Note that he has now shifted from blaming bottle to blaming Firefox. Same thing with that claim. If somehow website delivery was delayed 6 seconds reproducibly, people would have noticed. I never blamed bottle, I was asking if it could be a problem with bottle. The subject says otherwise. :-) [snip] -- https://mail.python.org/mailman/listinfo/python-list
Re: Qestion
In a message of Sat, 22 Aug 2015 06:53:21 -, ali ranjbar writes: hi dear friend I have python version 2.4.3 Which version of PIL is appropriate for me and how can I add it to my systems? Regards -- https://mail.python.org/mailman/listinfo/python-list If you really have python 2.4.3 then you badly need a newer Python. However Pillow, with a version number 2.0 is promised to work for you. https://pillow.readthedocs.org/installation.html The latest 1.x version of Pillow is https://pypi.python.org/pypi/Pillow/1.7.8 so you can get this. Or did you mean that you have python 3.4.3 ? In which case you still want Pillow but this one. https://pypi.python.org/pypi/Pillow/2.9.0 And this one may already come as a package for your system, if you don't want to use pip. Laura -- https://mail.python.org/mailman/listinfo/python-list
[issue22140] python-config --includes returns a wrong path (double prefix)
Alexey Gorshkov added the comment: I don't understand: Why python-config needs to seek realpath? Why python-config is trying to be smarter than one who starts ./configure script? As so, the right thing to this, is remove smart parts from python-config. But as for fast hack in to this is replace line 'prefix_real=$(installed_prefix $0)' with 'prefix_real=$prefix_build'. -- nosy: +animus ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue22140 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
Re: Sometimes bottle takes a lot of time
On Sunday 23 Aug 2015 03:05 CEST, Chris Angelico wrote: But in principal I have found the problem. (Not the reason.) The problem is Firefox. (So it is not bottle and also not AngularJS.) When using Chrome there is no problem. Not even when I do 15 times a refresh. With Firefox there is this problem. Even when I restart it. Huh, interesting. I can't help there, but I wish you the very best of luck in finding it. It looks like it is a recent problem. I also installed it on an old AcerAspire One. The fetch takes there five times as long, but fetching through Firefox is a lot faster. Not as fast as Chromium, but the difference is a lot less. But there Ice-wasel 38.0 is used instead of Firefox 40. Mozilla wants a life version. I am trying to install it on PythonAnywhere. -- Cecil Westerhof Senior Software Engineer LinkedIn: http://www.linkedin.com/in/cecilwesterhof -- https://mail.python.org/mailman/listinfo/python-list
Good resource for pythonanywhere and WSGI
I want to host my web application on pythonanywhere so that the people of Mozilla can investigate the problem it has with this application. I do not find documentation that is useful for me. Has anyone a good resource? The application I want to deploy on pythonanywhere: https://github.com/CecilWesterhof/PublishedPhotos -- Cecil Westerhof Senior Software Engineer LinkedIn: http://www.linkedin.com/in/cecilwesterhof -- https://mail.python.org/mailman/listinfo/python-list
[issue24915] Profile Guided Optimization active by-default
Changes by Alecsandru Patrascu alecsandru.patra...@intel.com: Removed file: http://bugs.python.org/file40226/python2.7-3.6-pgo.zip ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue24915 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue24915] Profile Guided Optimization active by-default
Changes by Alecsandru Patrascu alecsandru.patra...@intel.com: -- keywords: +patch Added file: http://bugs.python.org/file40231/python2.7-pgo.patch ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue24915 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue24915] Profile Guided Optimization active by-default
Changes by Alecsandru Patrascu alecsandru.patra...@intel.com: Added file: http://bugs.python.org/file40232/python3.6-pgo.patch ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue24915 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue24914] Python: Not just OO style but this is not mentioned on python.org or in FAQ
Paddy McCarthy added the comment: OK, here's a suggested re-wording: Python is an interpreted, interactive, object-oriented programming language that also supports programming in procedural and functional styles. It incorporates modules, exceptions, dynamic typing, very high level dynamic data types, and classes; but statements are not required to be contained in class definitions and functions are first class - being able to be composed, returned from other functions and be a member of other container types such as dicts, sets, and lists. If that is too long,an alternative would be to delete my addition to the last sentence from ; but classes are not ... Leaving it to the reader to research just how procedural and functional Python can be. (Where should a programmer, but newbie-to-Python look)? -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue24914 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
Re: Is this the way to go with SQLite
On Sun, Aug 23, 2015 at 11:18 PM, Cecil Westerhof ce...@decebal.nl wrote: Also an URL is unique, so I need to check that if it is found, the values are the same as the ones I wanted to insert. And if they aren't? Currently, all you do is print out a message and continue on; what happens if you get the same URL coming up more than once? select_url = '''SELECT year , month , description FROM LINKS WHERE URL = ?''' year= 2015 month = 8 PEP 8 has a word or two to say about this, but carry on. Incidentally, I'd be inclined to put the SELECT query down below, same as the INSERT query is; it's not in any way different from just using a string literal there, and this separates two pieces of code (IMO) unnecessarily. for link in links: description = link[0] url = link[1] for description, url in links: url_values = c.execute(select_url, [url]).fetchall() if len(url_values) == 0: if not url_values: print('Adding {0}'.format(link)) c.execute('''INSERT INTO links (year, month, description, URL) VALUES (?, ?, ?, ?) ''', [year, month, description, url]) else: to_insert = (year, month, description) found = url_values[0] if found != to_insert: print('For {0} found {1} instead of {2}'.format(url, found, to_insert)) Otherwise, looks reasonable. I'm normally expecting to see this kind of query, and if it isn't there, insert code to have an UPDATE in its other branch (which makes it into a classic upsert or merge operation - what MySQL calls INSERT... ON DUPLICATE KEY UPDATE), or else throw an error (in which case the cleanest way is to put a unique key on the column in question and let the database throw the error). The risk normally is of a race condition; you could execute your SELECT query, find no results, and then have someone else insert one just a moment before you do. But with SQLite, you're probably assuming no other writers anyway - an assumption which (I think) you can mandate simply by opening a transaction and holding it through the full update procedure - which would make this safe. ChrisA -- https://mail.python.org/mailman/listinfo/python-list
[issue24915] Profile Guided Optimization active by-default
Alecsandru Patrascu added the comment: The patches are tested on Linux machines, with GNU GCC 4.8.3. From your output I see that you are using the CLANG compiler. CLANG uses a different set of flags for PGO that are not compatible with GCC's, therefore the compilation will fail. Can you please use the GNU GCC compiler to test the patches? -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue24915 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
Re: how to handle cpu cache in python ( or fastest way to call a function once)
On Sun, 23 Aug 2015 04:10 pm, Yuzhi Xu wrote: I find out that python's VM seems to be very unfriendly with CPU-Cache. Possibly. More comments below. for example: *** import time a = range(500) sum(a) for i in range(100): #just to create a time interval, seems this disturb cpu cache? pass st = time.time() sum(a) print (time.time() - st)*1e6 * time: 100us On my machine, I get about 20-25 μs for this: (a.py contains your code above) [steve@ando ~]$ python2.7 a.py 21.9345092773 [steve@ando ~]$ python2.7 a.py 21.9345092773 [steve@ando ~]$ python2.7 a.py 24.0802764893 [steve@ando ~]$ python2.7 a.py 23.8418579102 another case: * import time a = range(500) for i in range(10): st = time.time() sum(a) print (time.time() - st)*1e6 * time:~ 20us Running this as b.py, I get times of around 15μs, a bit faster than the first version, but not a factor of five times faster as you get. [steve@ando ~]$ python2.7 b.py [...] 15.0203704834 15.0203704834 25.0339508057 16.9277191162 20.0271606445 94.8905944824 15.9740447998 15.0203704834 15.0203704834 15.0203704834 15.0203704834 14.066696167 13.8282775879 15.0203704834 Traceback (most recent call last): File b.py, line 6, in module sum(a) KeyboardInterrupt Above, you say: for i in range(100): #just to create a time interval, seems this disturb cpu cache? pass But remember that range() is a function, and so, yes, it may disturb the CPU cache. What did you expect? But I'm not sure how the CPU cache will interact with code in a high-level language like Python. I suspect that more likely, it simply has something to do with range(100) building an enormous list of integers. Here's another version: [steve@ando ~]$ cat c.py import time a = range(500) sum(a) for i in range(100): pass sum(a) st = time.time() sum(a) print (time.time() - st)*1e6 [steve@ando ~]$ python2.7 c.py 15.9740447998 And one more: [steve@ando ~]$ cat d.py import time a = range(500) sum(a) for i in xrange(100): # Use xrange instead of range pass st = time.time() sum(a) print (time.time() - st)*1e6 [steve@ando ~]$ python2.7 d.py 22.1729278564 [steve@ando ~]$ python2.7 d.py 23.1266021729 So... on my machine, the difference between xrange and range makes no difference: in both cases, calling sum() takes about 22μs. But calling sum() twice speeds up the second call to about 16μs, or about 25% faster. (Not 80% faster, as you find.) One last test: [steve@ando ~]$ cat e.py import time a = range(500) # Without warm-up. st = time.time() sum(a) print (time.time() - st)*1e6 # Second time, with warm-up. st = time.time() sum(a) print (time.time() - st)*1e6 # Add a delay. for i in xrange(1000): pass st = time.time() sum(a) print (time.time() - st)*1e6 st = time.time() sum(a) print (time.time() - st)*1e6 [steve@ando ~]$ python2.7 e.py 15.0203704834 15.0203704834 10.9672546387 10.9672546387 [steve@ando ~]$ python2.7 e.py 15.9740447998 12.8746032715 12.1593475342 10.9672546387 [steve@ando ~]$ python2.7 e.py 15.9740447998 20.0271606445 15.0203704834 15.9740447998 -- Steven -- https://mail.python.org/mailman/listinfo/python-list
[issue24915] Profile Guided Optimization active by-default
Alecsandru Patrascu added the comment: I added the patches as individual files and removed the zip file. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue24915 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
Re: Sometimes bottle takes a lot of time
On 22.08.2015 16:15, Christian Gollwitzer wrote: Probably yes. You should take a look at the OP again and compare the time stamps. It says that in between two consecutive calls of the same program, the request was served once in a second, and once with serious delays. Despite that the server is localhost. In between both trials there are 20 seconds. I do not see, how git bisect would help here. I do completely understand that in two consecutive runs one time the problem occurs and the other time it doesn't. It's highly unlikely that such a bug would ever have passed the bottle QA and if it did it would affect thousands of users (who would report this issue, since it's very severe). It is much more likely the bug is somewhere within the OP's program. By git bisect he can find out where he introduced the bug. Note that this says nothing about the location of the bug, in can still be either in the OPs code or in the framework. Yup. Note that he has now shifted from blaming bottle to blaming Firefox. Same thing with that claim. If somehow website delivery was delayed 6 seconds reproducibly, people would have noticed. I suspect that either the OPs program is at fault or the OP's setup (name resolution or some other weird stuff going on). But instead of tackling this problem systematically, like a Software Engineer would (Wireshark, debugger, profiler) he just blames other people's software. This, in my humble opinion, is annoying as fuck. Cheers, Johannes -- Wo hattest Du das Beben nochmal GENAU vorhergesagt? Zumindest nicht öffentlich! Ah, der neueste und bis heute genialste Streich unsere großen Kosmologen: Die Geheim-Vorhersage. - Karl Kaos über Rüdiger Thomas in dsa hidbv3$om2$1...@speranza.aioe.org -- https://mail.python.org/mailman/listinfo/python-list
Re: Sandboxing Python
Mark Lawrence breamore...@yahoo.co.uk writes: I was always led to believe that the subject was a difficult thing to do, but here https://www.reddit.com/r/learnpython/comments/3huz4x/how_to_do_math_inside_raw_input/ is a safe solution in only 23 characters, or are there any discernable flaws in it? Related: http://stackoverflow.com/questions/2371436/evaluating-a-mathematical-expression-in-a-string -- https://mail.python.org/mailman/listinfo/python-list
[issue8987] Distutils doesn't quote Windows command lines properly
Jason R. Coombs added the comment: I'm not upset by the idea of monkey patching in Setuptools for vetting certain techniques. I've even considered having Setuptools adopt distutils entirely. Today I filed https://bitbucket.org/pypa/setuptools/issues/417/adopt-distutils to seed the discussion on that possibility. For the sake of this discussion, I would happily accept a pull request to supply the forward-compatible version of _nt_quote_args (or similar), allowing a window for other libraries to make the switch against versions of Python supported by Setuptools. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue8987 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
Re: how to handle cpu cache in python ( or fastest way to call a function once)
Hi, for i in range(100): #just to create a time interval, seems this disturb cpu cache? pass Python interpreter consumes memory quite extensively because everything is object. So constructions like: range(100): _take_ memory. Additionally it will trigger garbage collecting code on deallocation time so expect even more delay. To get most out of Python - all numbers crushing / pixel pushing / store gigabytes code should go to low-level compiled binary libraries. Vladimir https://itunes.apple.com/us/app/python-code-samples/id1025613117 -- https://mail.python.org/mailman/listinfo/python-list
[issue24915] Profile Guided Optimization active by-default
Skip Montanaro added the comment: Is this supposed to work on Macs using Apple's version of gcc? I've got the latest version of Yosemite and XCode, and am getting these warnings when trying to build 2.7: clang: warning: argument unused during compilation: '-fprofile-generate' Should this be enabled using a configure check? Perhaps gcc/clang supports this but spells the feature differently. gcc --help tells me: % gcc --help | egrep profile -fprofile-instr-generate -fprofile-instr-use=value Use instrumentation data for profile-guided optimization -fprofile-sample-use=value Enable sample-based profile guided optimizations -- nosy: +skip.montanaro ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue24915 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue24915] Profile Guided Optimization active by-default
Skip Montanaro added the comment: It is executed using the gcc command: % gcc -c -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fprofile-generate -I. -IInclude -I./Include -DPy_BUILD_CORE -o Modules/gcmodule.o Modules/gcmodule.c clang: warning: argument unused during compilation: '-fprofile-generate' % type gcc gcc is /usr/bin/gcc I have no idea if you can even use something other than clang on Macs now. In any case, the default compiler should work to build Python out of the box, if necessary, by checking things during configure. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue24915 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue8987] Distutils doesn't quote Windows command lines properly
Steve Dower added the comment: I notice you say adopt rather than vendor - effectively removing distutils from the stdlib? It could work, but to really be able to move distutils forward we need some sort of side-by-side versioning, such that a package can declare which version of distutils is required, preferably without needing to download old versions on the fly when building. I'm sure it's possible but haven't got a complete vision yet. Maybe it's as simple as having flags that setup scripts enable before they build? import distutils distutils.enable(distutils.flags.smart_quote_args) That way we can actually change things without breaking old build scripts. Should be just as feasible if setuptools adopts distutils, but there'll probably be opposition from elsewhere along the lines of including core functionality in the stdlib. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue8987 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
how to handle cpu cache in python ( or fastest way to call a function once)
I find out that python's VM seems to be very unfriendly with CPU-Cache. see: http://stackoverflow.com/questions/32163585/how-to-handle-cpu-cache-in-python-or-fastest-way-to-call-a-function-once http://stackoverflow.com/questions/32153178/python-functionor-a-code-block-runs-much-slower-with-a-time-interval-in-a-loop for example: *** import time a = range(500) sum(a) for i in range(100): #just to create a time interval, seems this disturb cpu cache? pass st = time.time() sum(a) print (time.time() - st)*1e6 * time: 100us another case: * import time a = range(500) for i in range(10): st = time.time() sum(a) print (time.time() - st)*1e6 * time:~ 20us we can see when running frequently, the code becomes much faster. is there a solution? I feel this question is very difficult. one must has indepth unstanding about the mechanism of python virtual machine, c and cpu-cache. Do you have any suggestion about where to post this question for a possible answer? -- https://mail.python.org/mailman/listinfo/python-list
Re: how to handle cpu cache in python ( or fastest way to call a function once)
Yuzhi Xu schrieb am 23.08.2015 um 08:10: I find out that python's VM seems to be very unfriendly with CPU-Cache. see: http://stackoverflow.com/questions/32163585/how-to-handle-cpu-cache-in-python-or-fastest-way-to-call-a-function-once http://stackoverflow.com/questions/32153178/python-functionor-a-code-block-runs-much-slower-with-a-time-interval-in-a-loop for example: *** import time a = range(500) sum(a) for i in range(100): #just to create a time interval, seems this disturb cpu cache? pass st = time.time() sum(a) print (time.time() - st)*1e6 * time: 100us another case: * import time a = range(500) for i in range(10): st = time.time() sum(a) print (time.time() - st)*1e6 * time:~ 20us we can see when running frequently, the code becomes much faster. That does not seem like a straight forward deduction. Especially the interpretation that the CPU caching behaviour is to blame here seems rather far fetched. My guess is that it rather has to do with CPython's internal object caching or something at that level. However, given the absolute timings above, I wouldn't bother too much finding it out. It's unlikely to hurt real-world code. (And in fact, the more interesting case where things are happing several times in a row rather than being a negligible constant one-time effort seems to be substantially faster in your timings. Congratulations!) is there a solution? Is there a problem? Stefan -- https://mail.python.org/mailman/listinfo/python-list
Re: how to handle cpu cache in python ( or fastest way to call a function once)
On Sun, 23 Aug 2015 10:07 pm, Vladimir Ignatov wrote: Hi, for i in range(100): #just to create a time interval, seems this disturb cpu cache? pass Python interpreter consumes memory quite extensively because everything is object. So constructions like: range(100): _take_ memory. Additionally it will trigger garbage collecting code on deallocation time so expect even more delay. Normally you would be correct, but as my timing results show, using xrange instead of range does not make any difference. Whatever is going on here, it isn't as simple as range(100) builds a giant list. -- Steven -- https://mail.python.org/mailman/listinfo/python-list
Is this the way to go with SQLite
I understood that with sqlite3 in Python you can not use prepared statements. Below the way I solved this. Also an URL is unique, so I need to check that if it is found, the values are the same as the ones I wanted to insert. This is my code. select_url = '''SELECT year , month , description FROM LINKS WHERE URL = ?''' year= 2015 month = 8 for link in links: description = link[0] url = link[1] url_values = c.execute(select_url, [url]).fetchall() if len(url_values) == 0: print('Adding {0}'.format(link)) c.execute('''INSERT INTO links (year, month, description, URL) VALUES (?, ?, ?, ?) ''', [year, month, description, url]) else: to_insert = (year, month, description) found = url_values[0] if found != to_insert: print('For {0} found {1} instead of {2}'.format(url, found, to_insert)) -- Cecil Westerhof Senior Software Engineer LinkedIn: http://www.linkedin.com/in/cecilwesterhof -- https://mail.python.org/mailman/listinfo/python-list
[issue24912] The type of cached objects is mutable
Mark Shannon added the comment: If there is another issue for this, then it doesn't seem to be a release blocker. I think it should be. -- nosy: +Mark.Shannon ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue24912 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
Re: Sometimes bottle takes a lot of time
On 23.08.2015 18:47, Michael Torrie wrote: Since this is an ajax thing, I can entirely understand that Firefox introduces random delays. Practically all ajax-heavy sites I've ever used has had random slowdowns in Firefox. This would imply that random six-second delays have somehow passed the Firefox QA effortlessly. It's something that is entirely possible, but also something that I would consider magnitudes less likely than other explanations. Six seconds is *huge* for regular web applications. Name resolution could be an issue, but the script he wrote to simulate the browser requests does not show the slowdown at all. Firefox could be doing name resolution differently than the rest of the system and Chrome of course, which wouldn't surprise me as Firefox seems to more and more stupid stuff. Proxy settings are another thing that could influence behavior. Maybe the proxy of his Chrome is differently configured than Firefox and this is causing issues. SOCKS proxies can emulate DNS as well. So there is a plethora of possible causes; no need to shift blame before evidence is presented, no need to jump to conclusions. But your bashing on him is inappropriate and unhelpful. [...] What is annoying to me is how you have done nothing but jump all over him this whole thread, and several other times. [...] In fact I can find very few of your posts to this list where you aren't bashing Cecil in recent months. This does not reflect well on the list community and drives away people who would otherwise want to learn Python. I think you're right about this. I've had some run-in with Cecil some months ago - don't even remember what it was about. The thing I did remember was that I was particularly annoyed by the whole discussion back then. This probably led to me being a lot more agressive in my choice of tone than I should have been. You're entirely right that this kind of personal feud and immature mockery is inappropriate for a mailing list and you're also right that it does create a toxic atmosphere. Since Python is the lanauge I'm most passionate about a detrimental effect on the Python community is something that is surely the exact opposite of what I want. If Cecil's posts annoy you, please ignore them (I wouldn't even respond to this post of yours, but I feel like something has to be said). I'll follow your advice and thank you for your honest words. Cheers, Johannes -- Wo hattest Du das Beben nochmal GENAU vorhergesagt? Zumindest nicht öffentlich! Ah, der neueste und bis heute genialste Streich unsere großen Kosmologen: Die Geheim-Vorhersage. - Karl Kaos über Rüdiger Thomas in dsa hidbv3$om2$1...@speranza.aioe.org -- https://mail.python.org/mailman/listinfo/python-list
[issue20851] Update devguide to cover testing from a tarball
R. David Murray added the comment: How to do it is part of PEP 101 (https://www.python.org/dev/peps/pep-0101/). -- nosy: +r.david.murray ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue20851 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue17908] Unittest runner needs an option to call gc.collect() after each test
Robert Collins added the comment: say, something to run a test until failure, or to watch for reference leaks, or to run tests in multiple processes :-)) I think a few complimentary things. unittest extensability currently requires a new CLI entry point for each thing. I'd like to fix that. The actual plumbing is fairly extensible, though its not always obvious. I'd like to fix that too - without any global state getting involved. Of the things you mention, running a given command line until failure and checking for reference leaks are both straight forward, very common requests (as is the gc check) and I'd like to see those implemented as extensions shipped in the stdlib. Running in parallel becomes important when one is doing slow (e.g. functional) tests with unittest, and I think thats important to support. It is however much harder to do well: some of the current idioms that have snuck in (like the handling of stdout/stderr capturing without the buffer flag) are not well matched to the needs of reporting on concurrent tests to users. I'm not in any way opposed to a good implementation, but it would need to be good I think - there's not much point having a poor implementation, given the rich set of parallel test runners that are out there that already build on the unittest core (green, nose, testrepository just for starters). The only unique audience for stdlib test facilities is the stdlib itself and I think a better way to solve that is to enable the use of alternative runners for our own tests (moving them to be a little cleaner should enable that) - and then the point where it matters is really 'when buildbots would be enough faster to make a di fference'. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue17908 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
Re: Canopy editor-Variables browser and help
On Saturday, May 2, 2015 at 8:50:22 PM UTC+1, lbertolotti wrote: Can I: 1.Enable a variable browser in Canopy editor similar to the Spyder editor? 2.Writing a function say log( gives me the function help, but I can't read the whole documentation 3.Eclipse had a auto-complete, can I enable this in Canopy? 4.Perhaps I should try using another editor? I was having some problems with Spyder pythonpath... What do the Canopy docs at http://docs.enthought.com/canopy/ tell you? If you've used Eclipse why not give PyDev a try? -- https://mail.python.org/mailman/listinfo/python-list
[issue22812] Documentation of unittest -p usage wrong on windows.
Robert Collins added the comment: Thanks for the patch! -- resolution: - fixed stage: needs patch - resolved status: open - closed ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue22812 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue22812] Documentation of unittest -p usage wrong on windows.
Roundup Robot added the comment: New changeset e285606efb82 by Robert Collins in branch '3.4': Issue #22812: Fix unittest discovery examples. https://hg.python.org/cpython/rev/e285606efb82 New changeset 875a851b9d5a by Robert Collins in branch '3.5': Issue #22812: Fix unittest discovery examples. https://hg.python.org/cpython/rev/875a851b9d5a New changeset d9ec88a1e5d6 by Robert Collins in branch 'default': Issue #22812: Fix unittest discovery examples. https://hg.python.org/cpython/rev/d9ec88a1e5d6 -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue22812 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue24919] Use user shell in subprocess
New submission from Jan Studený: According to POSIX specification the pathname of user shell is stored in SHELL (environmental variable, see http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html#tag_08) so I think that is good idea to use that pathname instead of hardcoded one. Change is only in one line of subprocess package to use SHELL environmental variable and use hardcoded shell pathname as fallback. lines 1431-1433 ``` if shell: args = [/bin/sh, -c] + args if executable: ``` to ``` if shell: args = [os.environ.get(SHELL,/bin/sh), -c] + args if executable: ``` -- components: Library (Lib) messages: 249023 nosy: Jan Studený priority: normal severity: normal status: open title: Use user shell in subprocess type: behavior versions: Python 2.7, Python 3.2, Python 3.3, Python 3.4, Python 3.5 ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue24919 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
Re: Canopy editor-Variables browser and help
Anyone? -- https://mail.python.org/mailman/listinfo/python-list
Re: Sometimes bottle takes a lot of time
Johannes Bauer dfnsonfsdu...@gmx.de writes: You're entirely right that this kind of personal feud and immature mockery is inappropriate for a mailing list and you're also right that it does create a toxic atmosphere. Since Python is the lanauge I'm most passionate about a detrimental effect on the Python community is something that is surely the exact opposite of what I want. […] I'll follow your advice and thank you for your honest words. Thank you for publicly acknowledging this, and for taking responsibility for positive change. This is essential to keeping our community healthy. -- \“Technology is neither good nor bad; nor is it neutral.” | `\ —Melvin Kranzberg's First Law of Technology | _o__) | Ben Finney -- https://mail.python.org/mailman/listinfo/python-list
Re: Canopy editor-Variables browser and help
On Mon, Aug 24, 2015 at 8:09 AM, lbertolotti via Python-list python-list@python.org wrote: Anyone? When you post a follow-up like this, it helps to provide some context. Fortunately for you, I have a threaded email client, but not everyone does - and not everyone was subscribed to the list when you first posted. If you're having difficulties with Canopy, you may do better on a specific Canopy mailing list. I, for one, have no experience with it, and can't advise. ChrisA -- https://mail.python.org/mailman/listinfo/python-list
[issue23839] Clear caches after every test
Robert Collins added the comment: Ok, so this is still in the noise space - it might be useful, it might not. Do we have reports of machines failing to run the test suite (that are also usefully big enough to compile Python and use it)? -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue23839 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue17797] Visual C++ 11.0 reports fileno(stdin) == 0 for non-console program
eryksun added the comment: The 3.5 build uses MSVC 14 (VS 2015): https://docs.python.org/3.5/using/windows.html#compiling-python-on-windows https://hg.python.org/cpython/file/3.5/PCbuild/readme.txt -- nosy: +eryksun ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue17797 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue24193] Make LOGGING_FORMAT of assertLogs configurable
Robert Collins added the comment: Parameters please, TestCase has nothing to do with this - it really shouldn't even have the method. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue24193 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue24168] Unittest discover fails with namespace package if the path contains the string same as the module name
Changes by Robert Collins robe...@robertcollins.net: -- versions: +Python 3.5, Python 3.6 ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue24168 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue24918] Docs layout bug
Carol Willing added the comment: The highlighting of code box extends beyond the bounds of the box to the far right of the page. A screenshot is attached as an example. The behavior occurs on all versions (3.2+, 2.7.x) except 2.6. Thanks for reporting this issue. -- nosy: +willingc stage: - needs patch type: - behavior versions: +Python 3.2, Python 3.3, Python 3.4, Python 3.5, Python 3.6 Added file: http://bugs.python.org/file40235/Screenshot 2015-08-23 16.55.34.png ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue24918 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue20851] Update devguide to cover testing from a tarball
Robert Collins added the comment: Possibly silly q: how does one /make/ a Python release tarball? 'make dist' which is the autoconf standard complains that it has no such target... -- nosy: +rbcollins ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue20851 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue24919] Use user shell in subprocess
R. David Murray added the comment: Thanks for the suggestion, but that would make programs using subprocess non-portable. There is an open issue to use the *default* shell instead of hard coding it (because the sh-alike is not at /bin/sh on, eg, Android), but using the user shell would break lots of programs. Your suggestion was brought up by a core dev (and rejected) in that issue (issue 16255) -- nosy: +r.david.murray resolution: - duplicate stage: - resolved status: open - closed superseder: - subrocess.Popen needs /bin/sh but Android only has /system/bin/sh ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue24919 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue24633] README file installed into site-packages conflicts with package named readme
Robert Collins added the comment: Applied to 3.6 only (since I don't want to disrupt the 3.5 release train, and think that making packagers adjust on a point release would be mean). -- resolution: - fixed stage: patch review - resolved status: open - closed ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue24633 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue19469] Duplicate namespace package portions (but not on Windows)
Caio Ariede added the comment: I tried to reproduce it using Python 3.4.3 and 3.4.2. No luck. -- nosy: +Caio Ariede status: pending - open ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue19469 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue22812] Documentation of unittest -p usage wrong on windows.
Roundup Robot added the comment: New changeset 3256764fadae by Robert Collins in branch '2.7': Issue #22812: Fix unittest discovery examples. https://hg.python.org/cpython/rev/3256764fadae -- nosy: +python-dev ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue22812 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue2786] Names in traceback should have class names, if they're methods
Changes by Robert Collins robe...@robertcollins.net: -- stage: needs patch - commit review ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue2786 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue24918] Docs layout bug
New submission from asldkjfn: Green bars cover yellow text box. https://docs.python.org/2/faq/windows.html -- assignee: docs@python components: Documentation messages: 249018 nosy: docs@python, reag priority: normal severity: normal status: open title: Docs layout bug versions: Python 2.7 ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue24918 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
asyncio, coroutines, etc. and simultaneous execution
If I understand correctly asyncio, coroutines, etc. (and, of course, Threads) are not simultaneously executed, and that if one wants that one must still use multiprocessing. But I'm not sure. The note is still there at the start of threading, so I'm pretty sure about that one. The requirement that coroutines always be awaited seems to confirm this, but doesn't really say so explicitly. And the concurrent.futures can clearly be either, depending on your choices, but the chart in 18.5.3.1.3 Example: Chain coroutines is of a kind that I am more familiar with in the context of multiprocessing. (E.g., the only gap in the chart, which extends across all headings is when a result is being waited for during a sleep.) For threaded execution I would expect there to be a gap whenever processing is shifted from one column to another. If someone has authority to edit the documentation a comment like: If you want your application to make better use of the computational resources of multi-core machines, you are advised to use multiprocessing https://docs.python.org/3.5/library/multiprocessing.html#module-multiprocessing or concurrent.futures.ProcessPoolExecutor https://docs.python.org/3.5/library/concurrent.futures.html#concurrent.futures.ProcessPoolExecutor. However, threading is still an appropriate model if you want to run multiple I/O-bound tasks simultaneously. (to quote from the threading documentation) would be helpful at or very near the top of each of the appropriate modules. It would also be useful if the modules that were definitely intended to result in simultaneous execution, when feasible, were so marked quite near the top. OTOH, I may be mistaken about coroutines. I haven't been able to tell. P.S.: I do note that the threading comment was a *CPython implementation detail:*, and not a part of the Python specifications. But CPython is, I believe, a sufficiently dominant implementation that such details are quite important. -- https://mail.python.org/mailman/listinfo/python-list
[issue20851] Update devguide to cover testing from a tarball
Larry Hastings added the comment: To make the tarballs, I use the release.py script from here: https://hg.python.org/release and run release.py --export versionnumber. I haven't peeked inside the black box to see how the sausage is made. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue20851 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
Re: asyncio, coroutines, etc. and simultaneous execution
Charles Hixson charleshi...@earthlink.net writes: If I understand correctly asyncio, coroutines, etc. (and, of course, Threads) are not simultaneously executed, and that if one wants that one must still use multiprocessing. But I'm not sure. The note is still there at the start of threading, so I'm pretty sure about that one. Due to GIL (used by CPython, Pypy, not used by Jython, IronPython, pypy-stm) only one thread executes Python bytecode at a time. GIL can be released on I/O or in a C extension such as numpy, lxml, regex. It is true for any Python module or concept you use. Unrelated: use concurrent and parallel execution instead of simultaneously executed. Parallelism might make a program faster (it implies that hardware supports it). Concurrency is a way to structure the code. The same concurrent program can run in parallel and without parallelism. Recommended: Concurrency is not Parallelism (it's better!) talk by Rob Pike's talk http://stackoverflow.com/questions/1050222/concurrency-vs-parallelism-what-is-the-difference The requirement that coroutines always be awaited seems to confirm this, but doesn't really say so explicitly. And the concurrent.futures can clearly be either, depending on your choices, but the chart in 18.5.3.1.3 Example: Chain coroutines is of a kind that I am more familiar with in the context of multiprocessing. (E.g., the only gap in the chart, which extends across all headings is when a result is being waited for during a sleep.) For threaded execution I would expect there to be a gap whenever processing is shifted from one column to another. If someone has authority to edit the documentation a comment like: Anybody can suggest a patch https://docs.python.org/devguide/docquality.html If you want your application to make better use of the computational resources of multi-core machines, you are advised to use multiprocessing https://docs.python.org/3.5/library/multiprocessing.html#module-multiprocessing or concurrent.futures.ProcessPoolExecutor https://docs.python.org/3.5/library/concurrent.futures.html#concurrent.futures.ProcessPoolExecutor. However, threading is still an appropriate model if you want to run multiple I/O-bound tasks simultaneously. (to quote from the threading documentation) would be helpful at or very near the top of each of the appropriate modules. It would also be useful if the modules that were definitely intended to result in simultaneous execution, when feasible, were so marked quite near the top. It is not necessary that multiprocessing will make your code faster on a multi-core machine. It may make it slower depending on the task. Performance optimization is a vast topic. Short remarks such as you've suggested are likely misleading. OTOH, I may be mistaken about coroutines. I haven't been able to tell. Many cooperative multitasking implementations use a *single* thread. There is a way to offload blocking code e.g., loop.run_in_executor() in asyncio. -- https://mail.python.org/mailman/listinfo/python-list
[issue24055] unittest package-level set up tear down module
Robert Collins added the comment: Personally I'm very skeptical of all the multi-test setup facilties because of the very poor interactions with parallel testing that this basic approach has. But - we haven't yet brought in something sensible to let us deprecate setUpModule and setUpClass, so I could not reject it on that basis. I'd have to see a patch or a prototype to comment on the maintainability etc. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue24055 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue24920] shutil.get_terminal_size throws AttributeError
eryksun added the comment: FYI, the size of the terminal associated with the C's stdout isn't related to the IDLE shell. For example, in Linux when I run IDLE from the GUI, the associated terminal size is 0x0. On Windows, os.get_terminal_size uses the console API GetConsoleScreenBufferInfo. This can't work given IDLE has no attached console. Also, for a GUI app the Windows C runtime leaves the standard FILE streams uninitialized to an invalid file descriptor (-1), so Python's sys.__stdout__ is None. That's why you get an AttributeError complaining that NoneType (i.e. type(None)) has no attribute 'fileno'. Currently shutil.get_terminal_size returns the fallback size when os.get_terminal_size(sys.__stdout__.fileno()) raises NameError or OSError. I think AttributeError and ValueError should be added to this list. -- components: +Windows -IDLE nosy: +eryksun, paul.moore, steve.dower, tim.golden, zach.ware versions: +Python 3.5, Python 3.6 ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue24920 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue24920] shutil.get_terminal_size throws AttributeError
New submission from Isaac Levy: OS: windows 7, python 3.4.3, tk version 8.6.1 os.get_terminal_size also fails. shutil.get_terminal_size() Traceback (most recent call last): File pyshell#4, line 1, in module shutil.get_terminal_size() File C:\Python34\lib\shutil.py, line 1058, in get_terminal_size size = os.get_terminal_size(sys.__stdout__.fileno()) AttributeError: 'NoneType' object has no attribute 'fileno' os.get_terminal_size() Traceback (most recent call last): File pyshell#5, line 1, in module os.get_terminal_size() ValueError: bad file descriptor -- components: IDLE messages: 249039 nosy: Isaac Levy priority: normal severity: normal status: open title: shutil.get_terminal_size throws AttributeError type: crash versions: Python 3.4 ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue24920 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
Re: Best strategy for testing class and subclasses in pytest?
C.D. Reimer ch...@cdreimer.com writes: I'm writing a chess engine to learn about Python classes and inheritance, and using pytest for the unit test. I've created a Piece class, which has 99% of the functionality for a chess piece, and subclass the other pieces -- Bishop, King, Knight, Pawn, Queen, Rook -- that will implement the move-specific functionality. I'm not sure what's the best strategy is for testing the class and subclasses. I tend to give the tests a structure similar to the implementation, i.e. the test units correspond to the functional units. In your case, I would have tests verifying the correct functioning of the base class and tests verifying that of the subclasses. When an integration module uses the (already tested) services of another module (as your subclasses use the services of the base class), I try to avoid retesting the other modules functionality - but asume in my new tests that the other (used) modules behave as expected. This often significantly reduces the test complexity. I your setup with base class and subclasses this implies that I usually test only new and overridden methods in the subclasses. In your case, you could also inherit your subclasses' test case classes from that of your base class. This would lead to a reexecution of the base class tests as part of the tests for each subclass. I follow this route when a subclass has overridden base class methods in a potentially sensible way. -- https://mail.python.org/mailman/listinfo/python-list