[issue21572] Use generic license web page rather than requiring release-specific license pages
Roundup Robot added the comment: New changeset 605349858156 by Ned Deily in branch '2.7': Issue #21572: Change license command to fallback to generic license URL. http://hg.python.org/cpython/rev/605349858156 New changeset 53fa2c9523d4 by Ned Deily in branch '3.4': Issue #21572: Change license command to fallback to generic license URL. http://hg.python.org/cpython/rev/53fa2c9523d4 New changeset 075c7affc05c by Ned Deily in branch 'default': Issue #21572: Change license command to fallback to generic license URL. http://hg.python.org/cpython/rev/075c7affc05c -- nosy: +python-dev ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue21572 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21572] Use generic license web page rather than requiring release-specific license pages
Roundup Robot added the comment: New changeset 151ac5aee7e7 by Ned Deily in branch 'default': Issue #21572: No longer need to create release-specific license page. http://hg.python.org/peps/rev/151ac5aee7e7 -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue21572 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21572] Use generic license web page rather than requiring release-specific license pages
Changes by Ned Deily n...@acm.org: -- resolution: - fixed stage: patch review - resolved status: open - closed ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue21572 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21583] use support.captured_stderr context manager - test_logging
Roundup Robot added the comment: New changeset f1393e826608 by Vinay Sajip in branch 'default': Closes #21583: Improved test_logging. Thanks to Diana Joan Clarke for the patch. http://hg.python.org/cpython/rev/f1393e826608 -- nosy: +python-dev resolution: - fixed stage: patch review - resolved status: open - closed ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue21583 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21592] Make statistics.median run in linear time
Thomas Dybdahl Ahle added the comment: I think minimize expected-case time is a good goal. If we wanted minimize worst-case time we would have to use k-means rather than quickselect. My trials on random data, where sort arguably has a disadvantage, suggests sorting is about twice as fast for most input sizes. With pypy quick-select is easily 5-10 times faster, which I take as a suggestion that a C-implementation might be worth a try. For designing a realistic test-suite, I suppose we need to look at what tasks medians are commonly used for. I'm thinking median filters from image processing, medians clustering, robust regressing, anything else? -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue21592 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21476] Inconsitent behaviour between BytesParser.parse and Parser.parse
Serhiy Storchaka added the comment: Could you please add a test with parse() raising an exception? Yet one nitpick. Instead of fp = openfile('msg_02.txt', 'rb') self.addCleanup(fp.close) ... you can write with openfile('msg_02.txt', 'rb') as fp: ... as in other tests. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue21476 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21619] Cleaning up a subprocess with a broken pipe
New submission from Martin Panter: The documentation for the “subprocess” module says that a “with” statement will “wait for” the process, implying that it does not leave a zombie. However this is not the case if there is buffered input data: $ python3 -Wall -bt -q import subprocess with subprocess.Popen((true,), stdin=subprocess.PIPE, bufsize=-1) as p: ... from time import sleep; sleep(1) # Wait for pipe to be broken ... p.stdin.write(bbuffered data) ... 13 Traceback (most recent call last): File stdin, line 3, in module File /usr/lib/python3.4/subprocess.py, line 899, in __exit__ self.stdin.close() BrokenPipeError: [Errno 32] Broken pipe # (Hit Ctrl-Z here) [1]+ Stopped python3 -Wall -bt -q [Exit 148] $ ps PID TTY TIME CMD 15867 pts/500:00:00 python3 15869 pts/500:00:00 true defunct 15873 pts/500:00:00 ps 32227 pts/500:00:10 bash Similarly, calling Popen.communicate() does not clean the process up either if there is buffered input data and the process has already exited. The documentation does not spell out how a broken pipe is handled in communicate(), but after reading Issue 10963 I see that in many other cases it is meant to be ignored. The best way to clean up a subprocess that I have come up with to close the pipe(s) and call wait() in two separate steps, such as: try: proc.stdin.close() except BrokenPipeError: pass proc.wait() -- components: Library (Lib) messages: 219450 nosy: vadmium priority: normal severity: normal status: open title: Cleaning up a subprocess with a broken pipe versions: Python 3.4 ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue21619 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21306] PEP 466: backport hmac.compare_digest
Donald Stufft added the comment: That's also a security sensitive thing, you don't want to compare two different encoding and have it accidentally fail. Strictly speaking you can only do a constant time comparison on bytes, the fact it accepts unicode at all (even on Python 3.x) is a convenience feature. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue21306 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21476] Inconsitent behaviour between BytesParser.parse and Parser.parse
Vajrasky Kok added the comment: Serhiy, here is the latest patch incorporating your request. -- Added file: http://bugs.python.org/file35420/bytes_parser_dont_close_file_v3.patch ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue21476 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21476] Inconsitent behaviour between BytesParser.parse and Parser.parse
Serhiy Storchaka added the comment: Sorry, I meant to test parser with invalid message, so that parse() raises an exception, and file shouldn't be closed after this. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue21476 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21620] OrderedDict KeysView set operations not supported
New submission from Matthew Lauria: I noticed that doing set operations on an OrderedDict KeysView only works when the KeysView is the first input to the expression, and not when it's the second input. This is not the case for dicts. Python 3.4.1 (default, May 31 2014, 11:25:02) [GCC 4.8.2] on linux Type help, copyright, credits or license for more information. import collections x = collections.OrderedDict() x.keys() - set() set() set() - x.keys() Traceback (most recent call last): File stdin, line 1, in module TypeError: unsupported operand type(s) for -: 'set' and 'KeysView' y = {} y.keys() - set() set() set() - y.keys() set() -- components: Library (Lib) messages: 219454 nosy: Matthew.Lauria, rhettinger priority: normal severity: normal status: open title: OrderedDict KeysView set operations not supported type: behavior versions: Python 3.4 ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue21620 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21618] POpen does not close fds when fds have been inherited from a process with a higher resource limit
Gregory P. Smith added the comment: Are you aware that the subprocess module does use /proc/self/fd in Python 3.2 and later? The fd closing is not done from Python code. See Modules/_posixsubprocess.c - http://hg.python.org/cpython/file/53fa2c9523d4/Modules/_posixsubprocess.c -- nosy: +gregory.p.smith ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue21618 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21620] OrderedDict KeysView set operations not supported
Serhiy Storchaka added the comment: Already fixed in issue8743. -- nosy: +serhiy.storchaka resolution: - out of date status: open - closed superseder: - set() operators don't work with collections.Set instances ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue21620 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21573] Clean up turtle.py code formatting
Changes by Ezio Melotti ezio.melo...@gmail.com: -- nosy: +ezio.melotti ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue21573 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21582] use support.captured_stdx context managers - test_asyncore
Ezio Melotti added the comment: The patch includes two sets of changes: 1) uses support.captured_stderr() where appropriate; 2) removes some from import and uses support.x instead; The former looks OK to me and could be applied, the latter doesn't look very useful. -- nosy: +ezio.melotti ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue21582 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21592] Make statistics.median run in linear time
Ezio Melotti added the comment: I have written some proof of concept code here [1], I would appreciate you commenting on it, before I turn it into a patch, as I haven't contributed code to Python before. I would encourage you to consult the devguide, prepare a patch, and upload it here so that we can use rietveld to review it and add inline comments. -- nosy: +ezio.melotti ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue21592 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21604] Misleading 2to3 fixer name in documentation: standard_error
Changes by Ezio Melotti ezio.melo...@gmail.com: -- keywords: +easy nosy: +jesstess stage: - needs patch type: - enhancement ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue21604 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21611] int() docstring - unclear what number is
Changes by Ezio Melotti ezio.melo...@gmail.com: -- nosy: +ezio.melotti, zach.ware type: - enhancement versions: -Python 3.1, Python 3.2, Python 3.3 ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue21611 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21582] use support.captured_stdx context managers - test_asyncore
diana added the comment: I removed some of the from imports and used support.x instead for consistency. support was already being imported, and many of the things imported from support were already using support.x. I just made them all the same. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue21582 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21618] POpen does not close fds when fds have been inherited from a process with a higher resource limit
Changes by Gregory P. Smith g...@krypto.org: -- nosy: -gps ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue21618 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21618] POpen does not close fds when fds have been inherited from a process with a higher resource limit
Gregory P. Smith added the comment: regardless, the current C code for this does limit itself to the sysconf(_SC_OPEN_MAX) max_fd from module import time when closing fds found in /proc/self/fd so this code does still have a bug in that fds higher than that will remain unclosed (at which point your valgrind issue would come into play unless we can detect we are running under valgrind and alter our behavior to obey the max in that case). -- assignee: - gregory.p.smith ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue21618 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21476] Inconsitent behaviour between BytesParser.parse and Parser.parse
Vajrasky Kok added the comment: The Parse class does not throw exception if given invalid message: Assume /tmp/a.txt contains garbage, such as: With this code: with open(/tmp/a.txt, r) as fp: msg = email.parser.Parser().parse(fp) # does not throw exception print(msg) # = msg['from'] # = None It is just you can not get useful information, such as msg['to']. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue21476 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21573] Clean up turtle.py code formatting
Jessica McKellar added the comment: Terry, thank you for all the time you've been putting into the GSoC and OPW tickets. Questions: is there project link? are any of the mentors core developers, with commit rights? or would you need commits from someone like me? https://wiki.python.org/moin/OPW/2014#Graphical_Python is a broad-strokes outline. As we get further into the internship we'll decide on areas of focus. I'm the main mentor. I don't have commit rights but would be reviewing most of the changes before putting them in the commit review stage. I looked for and did not fine test/test_turtle. Did I miss something? Turtledemo is a partial substitute, but it might not exercise all turtle functions. You didn't miss anything. :) Part of this internship will be adding unit test coverage. @Lita: I'll take care of creating unit test tickets that split up the work between you and Ingrid. Testing: A complete 'unit' test would test each function in each layer. A minimal 'unit' test should at least test each top-level function and check response on the canvas. Assuming that one can get to tk root and canvas, some things should be possible. But I don't know what introspection functions a canvas has. An alternative would be to replace the canvas with a mock-canvas with extra introspection added. Another alternative would be a human-verified test, a turtle script that systematically called every function and said that it was doing for a person to verify. Line width: 1, 2, 3, 5, 8, 12 17, 30 (with a slight pause for each width). Ingrid Cheung (added to the nosy list) is working on unit test scaffolding, inspired by the tkinter tests. I want to make sure there's a clear course of action for Lita on this ticket. If cleanup is controversial, how about rescoping this to points (3) and (4) from the original ticket statement: 3. Examine commented out code, and either remove it or open a ticket if it represents an issue that should be fixed. 4. Examine # XXX comments, and either remove them if they are no longer applicable, or open tickets for them if they still represent bugs and then remove them. @Terry, what do you think about that? @Lita, your pep8 and linter work has not been in vain. :) It'll come in handy local to where you fix bugs and add features down the road. -- nosy: +ingrid ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue21573 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21462] PEP 466: upgrade OpenSSL in the Python 2.7 Windows builds
Roundup Robot added the comment: New changeset e90024db8d6c by Benjamin Peterson in branch '2.7': openssl requires nasm (#21462) http://hg.python.org/cpython/rev/e90024db8d6c -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue21462 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21462] PEP 466: upgrade OpenSSL in the Python 2.7 Windows builds
Benjamin Peterson added the comment: On Fri, May 30, 2014, at 12:54, Zachary Ware wrote: Zachary Ware added the comment: Looks like the AMD64 buildbot isn't happy with OpenSSL 1.0.1g: http://buildbot.python.org/all/builders/AMD64%20Windows7%20SP1%202.7/builds/1223/steps/compile/logs/stdio Here's my best stab-in-the-dark guess at fixing what's wrong; I don't have the ability to build x64 2.7 handy. Good call. That seems to have satisfied the AMD64 bot (at least in the compile stage). -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue21462 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21462] PEP 466: upgrade OpenSSL in the Python 2.7 Windows builds
Roundup Robot added the comment: New changeset 7095a9bfbe76 by Steve Dower in branch '2.7': Issue #21462 PEP 466: upgrade OpenSSL in the Python 2.7 Windows builds http://hg.python.org/cpython/rev/7095a9bfbe76 New changeset 8e2cda42b466 by Benjamin Peterson in branch '2.7': openssl requires nasm (#21462) http://hg.python.org/cpython/rev/8e2cda42b466 -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue21462 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21462] PEP 466: upgrade OpenSSL in the Python 2.7 Windows builds
Nick Coghlan added the comment: Will this be in 2.7.7? If so, I'll update the draft What's New changes in issue #21569 accordingly (as well as the implementation status in PEP 466) -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue21462 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21462] PEP 466: upgrade OpenSSL in the Python 2.7 Windows builds
Benjamin Peterson added the comment: Yes. On Sat, May 31, 2014, at 11:30, Nick Coghlan wrote: Nick Coghlan added the comment: Will this be in 2.7.7? If so, I'll update the draft What's New changes in issue #21569 accordingly (as well as the implementation status in PEP 466) -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue21462 ___ -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue21462 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21462] PEP 466: upgrade OpenSSL in the Python 2.7 Windows builds
Changes by Benjamin Peterson benja...@python.org: -- resolution: - fixed status: open - closed ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue21462 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21539] pathlib's Path.mkdir() should allow for mkdir -p functionality
Berker Peksag added the comment: Updated patch. Thank you Barry and Antoine. -- stage: - patch review Added file: http://bugs.python.org/file35421/issue21539_v2.diff ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue21539 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21476] Inconsitent behaviour between BytesParser.parse and Parser.parse
R. David Murray added the comment: Right, part of the parser contract is to not throw exceptions. Traditionally, a bug could result in an exception, but not an invalid message. However, using the new email policies, it is possible to *request* that it raise exceptions instead of registering defects. See policy.raise_on_defect. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue21476 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21569] PEP 466: Python 2.7 What's New preamble changes
Nick Coghlan added the comment: New patch, with the new section moved to the end of the file, just before the acknowledgements. It now has subsections for each relevant PEP, as Ezio's comments made me realise that PEP 434 (the IDLE consistency PEP) also deserved a mention. I'm happy with this version, so unless someone spots a glaring error in the next few days, I'll push it live. -- Added file: http://bugs.python.org/file35422/py27_whats_new_preamble_changes_v2.diff ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue21569 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21476] Inconsitent behaviour between BytesParser.parse and Parser.parse
Serhiy Storchaka added the comment: If the parser itself doesn't raise exceptions, we should test with input stream raising an exception. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue21476 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21621] Add note to 3.x What's New re Idle changes in bugfix releases
New submission from Terry J. Reedy: In #21569, revising What's New for 2.7, Nick is planning to add the following: +PEP 434: IDLE Enhancement Exception for All Branches + + +:pep:`434` describes a general exemption for changes made to the IDLE +development environment shipped along with Python. This exemption makes it +possible for the IDLE developers to provide a more consistent user +experience across all supported versions of Python 2 and 3. + +For details of any IDLE changes, refer to the NEWS file for the specific +release. I think the same should be added to What's New 3.4+ so Idle users are warned and informed that there might be otherwise unexpected changes. At minimum, the last phrase should be changed to refer to the successive Idle sections of the changelog, where changelog' is linked as it is at the top of the file. I am not sure where to put this. The 3.4 What's New has no Idle section. I did not think to write one :-(. Of course, there was almost nothing new since the previous 3.3.x bugfix release. I guess such a section should be a cumulative summary what was added since the previous x.y.0 release, even if all went into one of the bugfix releases, including the pending final maintenance release. -- assignee: terry.reedy components: Documentation messages: 219472 nosy: ncoghlan, terry.reedy priority: normal severity: normal stage: needs patch status: open title: Add note to 3.x What's New re Idle changes in bugfix releases type: enhancement versions: Python 3.4, Python 3.5 ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue21621 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21569] PEP 466: Python 2.7 What's New preamble changes
Terry J. Reedy added the comment: I think the Idle section is such a great idea I propose to add something similar to future What's New for 3.x. See #21621. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue21569 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21604] Misleading 2to3 fixer name in documentation: standard_error
Roundup Robot added the comment: New changeset 8fa8c290c165 by Benjamin Peterson in branch '2.7': give the correct fixer name (closes #21604) http://hg.python.org/cpython/rev/8fa8c290c165 New changeset 5d21491733d8 by Benjamin Peterson in branch '3.4': give the correct fixer name (closes #21604) http://hg.python.org/cpython/rev/5d21491733d8 -- nosy: +python-dev resolution: - fixed stage: needs patch - resolved status: open - closed ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue21604 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21304] PEP 466: Backport hashlib.pbkdf2_hmac to Python 2.7
Roundup Robot added the comment: New changeset e4da3ba9dcac by Benjamin Peterson in branch '2.7': backport hashlib.pbkdf2_hmac per PEP 466 (closes #21304) http://hg.python.org/cpython/rev/e4da3ba9dcac -- nosy: +python-dev resolution: - fixed stage: - resolved status: open - closed ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue21304 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21573] Clean up turtle.py code formatting
Terry J. Reedy added the comment: I like the proposal and would like to see it happen. My concern is to avoid having interns write patches that get rejected for non-technical reasons. I won't make any specific suggestions until I get more information either from the pydev thread http://thread.gmane.org/gmane.comp.python.devel/147857 or from Gregor. I already emailed him directly, asking him to sign a contributor agreement and settle the matter of turtle maintenance. Lita, please post a summary of the types of issues you have found (at most, say, 20). Some things are no-brainers, like adding missing spaces, as in 'a=3' to 'a = 3' or 'f (a,b = 3)' to 'f(a, b=3)', which also removes extra spaces. Rietveld's within-lines diffs make these easy to check. Other fixes are riskier. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue21573 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21618] POpen does not close fds when fds have been inherited from a process with a higher resource limit
Gregory P. Smith added the comment: There appear to be a two bugs here, depending on which platform subprocess is being used on. 1) on systems where it uses /prod/self/fd, /dev/fd or similar: It should not pay attention to end_fd at all. It knows the list of actual open fds and should use that. If possible, consider detecting and avoiding closing valgrind fds; but that is a special case for a valgrind bug and likely not worth it. 2) on systems without a way to get the list of open file descriptors: The sysconf(SC_OPEN_MAX) value is only saved at module import time but may be changed up or down at runtime by the process by using the setrlimit(RLIMIT_NOFILE, ...) libc call. what sysconf returns is the same as the current rlim_cur setting. (at least on Linux where this code path wouldn't actually be taken because #1 is available). possible solution: call getrlimit(RLIMIT_NOFILE) and use rlim_max instead of sysconf(SC_OPEN_MAX) at module import time. caveat: rlim_max can be raised by processes granted that capbility. It is impossible to do anything about that in this scenario given we're operating w/o a way to get a list of open fds. impact: only on OSes that lack implementations that get a list of open fds as in #1 above. so... nothing that anyone really uses unless they choose to come contribute support for that themselves. (linux, bsd and os x all fall into #1 above) Neither of these are likely scenarios so I wouldn't consider this a high priority to fix but it should be done. Most code never ever touches its os resource limits. getrlimit and setrlimit are not exposed in the os module; you must use ctypes or an extension module to call them from Python: import ctypes class StructRLimit(ctypes.Structure): _fields_ = [('rlim_cur', ctypes.c_ulong), ('rlim_max', ctypes.c_ulong)] libc = ctypes.cdll.LoadLibrary('libc.so.6') RLIMIT_NOFILE = 7 # Linux limits = StructRLimit() assert libc.getrlimit(RLIMIT_NOFILE, ctypes.byref(limits)) == 0 print(limits.rlim_cur, limits.rlim_max) limits.rlim_cur = limits.rlim_max assert libc.setrlimit(RLIMIT_NOFILE, ctypes.byref(limits)) == 0 -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue21618 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21618] POpen does not close fds when fds have been inherited from a process with a higher resource limit
Steven Stewart-Gallus added the comment: I agree that this is not a likely scenario but I can think of one mildly plausible scenario. Suppose some web server runs a Python CGI script but has a bug that leaks a file descriptor into the script. The web server sandboxes the Python CGI script a little bit with resource limits so the leaked file descriptor is higher than the script's file descriptor maximum. The Python CGI script then runs a sandboxed (perhaps it's run as a different user) utility and leaks the file descriptor again (because the descriptor is above the resource limits). This utility is somehow exploited by an attacker over the internet by being fed bad input. Because of the doubly leaked file descriptor the attacker could possibly break out of a chroot or start bad input through a sensitive file descriptor. Anyways, the bug should be fixed regardless. Thanks for correcting me on the location of the fd closing code. Some observations. Strangely, there seems to be a _close_fds method in the Python subprocess module that is not used anywhere. Either it should be removed or fixed similarly. For understandability if it is fixed it should simply delegate to the C code. The bug I mentioned earlier about concurrently modifing the fd dir and reading from it occurs in _close_open_fd_range_safe which is a genuine security issue (although I don't know if it's ver likely to happen in practise). Because _close_open_fd_range_safe can't allocate memory the code there will be pretty ugly but oh well. There doesn't seem to be any point to caching max_fd in a variable on module load. Why not just use sysconf every time it is needed? Is there some need for really fast performance? Does sysconf allocate memory or something? Anyways, the code should be refactored to not use max_fd on the platforms that support that. Thank you for your thoughts. Also, should I keep discussion of some of the bugs I observed here or raise them in other issues so they don't get lost? -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue21618 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21618] POpen does not close fds when fds have been inherited from a process with a higher resource limit
akira added the comment: getrlimit and setrlimit are not exposed in the os module; you must use ctypes or an extension module to call them from Python: There is `resource` module: import resource resource.getrlimit(resource.RLIMIT_NOFILE) (1024, 4096) -- nosy: +akira ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue21618 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21618] POpen does not close fds when fds have been inherited from a process with a higher resource limit
Steven Stewart-Gallus added the comment: I found another problem with _close_open_fd_range_safe. POSIX leaves the state of a file descriptor given to close undefined if the close fails with EINTR. I believe but haven't double checked that close should not be retried on EINTR on all of our supported platforms. If you must have absolute portability, block all signals so that close can't fail with EINTR and then unblock them after close. This isn't an actual problem because the code will just close an extra time but it's still bothersome. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue21618 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21622] ctypes.util incorrectly fails for libraries without DT_SONAME
New submission from Jeremy Huntwork: On my system, the C library (musl) intentionally does not include a SONAME entry. This method in particular fails: http://hg.python.org/cpython/file/076705776bbe/Lib/ctypes/util.py#l133 The function seems to jump through some hoops which may not be necessary. Is there a reason for wanting particularly to use the SONAME entry for the lib? In my system the following works as a replacement for _get_soname: return os.path.basename(os.path.realpath(f)) -- components: ctypes messages: 219481 nosy: Jeremy.Huntwork priority: normal severity: normal status: open title: ctypes.util incorrectly fails for libraries without DT_SONAME type: behavior versions: Python 2.7 ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue21622 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21623] build ssl failed use vs2010 express
New submission from Mo Jia: Here is the failed message . Project D:\Hg\Python\Python\PCbuild\_ssl.vcxproj (17) is building D:\Hg\Python\Python\PCbuild\ssl.vcxproj (18) on node 1 (default targets). Build: cd D:\Hg\Python\Python\PCbuild\ D:\Hg\Python\Python\PCbuild\python_d.exe build_ssl.py Release Win32 -a Found a working perl at 'C:\Perl\bin\perl.exe' Executing ssl makefiles: nmake /nologo -f ms\nt.mak Building OpenSSL copy .\crypto\buildinf.h tmp32\buildinf.h 1 file(s) copied. copy .\crypto\opensslconf.h inc32\openssl\opensslconf.h 1 file(s) copied. cl /Fotmp32\shatest.obj -Iinc32 -Itmp32 /MT /Ox /O2 /Ob2 -DOPENSSL_THREADS -DDSO_WIN32 -W3 -Gs0 -GF -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -D_CRT_SECURE_NO_DEPRECATE -DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DRMD160_A SM -DAES_ASM -DVPAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DOPENSSL_NO_IDEA -DOPENSSL_NO_RC5 -DOPENSSL_NO_MD2 -DOPENSSL_NO_MDC2 -DOPENSSL_NO_KRB5 -DOPENSSL_NO_JPAKE -DOPENSSL_NO_DYNA MIC_ENGINE /Zi /Fdtmp32/app -c .\crypto\sha\shatest.c shatest.c link /nologo /subsystem:console /opt:ref /debug /out:out32\shatest.exe @C:\Users\YANXIN~1\AppData\Local\Temp\nm306E.tmp libeay32.lib(b_print.obj) : error LNK2019: unresolved external symbol ___report_rangecheckfailure referenced in function _fmtfp [D:\Hg\Python\Python\PCbuild\ssl.vcxproj] libeay32.lib(obj_dat.obj) : error LNK2001: unresolved external symbol ___report_rangecheckfailure [D:\Hg\Python\Python\PCbuild\ssl.vcxproj] libeay32.lib(b_dump.obj) : error LNK2001: unresolved external symbol ___report_rangecheckfailure [D:\Hg\Python\Python\PCbuild\ssl.vcxproj] libeay32.lib(pem_lib.obj) : error LNK2001: unresolved external symbol ___report_rangecheckfailure [D:\Hg\Python\Python\PCbuild\ssl.vcxproj] out32\shatest.exe : fatal error LNK1120: 1 unresolved externals [D:\Hg\Python\Python\PCbuild\ssl.vcxproj] NMAKE : fatal error U1077: 'C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\link.EXE' : return code '0x460' [D:\Hg\Python\Python\PCbuild\ssl.vcxproj] Stop. Executing ms\nt.mak failed 2 -- components: Windows messages: 219482 nosy: Mo.Jia priority: normal severity: normal status: open title: build ssl failed use vs2010 express type: compile error versions: Python 3.4
[issue21592] Make statistics.median run in linear time
Steven D'Aprano added the comment: I've run some performance tests on six variations of the O(N) select algorithm, based on Tim Peters' and Thomas Ahle's code, comparing them to the naive O(N log N) sort first algorithm, and sorting is consistently faster up to the limit I tested. About the tests I ran: - I tested four versions of Tim's median-of-median-of-k algorithm, for k = 7, 23, 47 and 97. - Thomas' select function, which is a median-of-median-of-3. - Thomas' select2 function, which uses two pivots. - Data was randomly shuffled. - Functions were permitted to modify the data in place, and were not required to make a copy of the data first. E.g. I used alist.sort() rather than sorted(alist). - I ran two separate sets of tests. The first tested individual calls to the various selection functions, on random data. Each function got its own copy of the shuffled data. - The second set of tests called the selection function three times in a row, using different ranks, and used the average of the three times. My test suite is attached if anyone wants to critique it or run it themselves. Results: == Single call mode == Nsort select7 select23 select47 select97 select select2 50000.0010.0270.0040.0030.0030.0050.002 10.0020.0080.0060.0050.0050.0070.006 50.0140.0410.0290.0270.0280.0390.035 100.0350.0880.0690.0650.0670.1320.067 500.2480.4920.3520.3490.3450.3780.433 1000.5511.0080.7680.6690.7231.0070.627 2001.1732.0041.7911.3351.3763.0491.108 3001.9923.2822.2912.2562.2992.4511.756 4002.5764.1353.1302.9602.9375.0223.318 5003.5685.2333.9143.5043.6294.9124.458 6004.2376.2334.7104.3234.5145.0663.876 7004.9627.4035.4475.0375.1297.0537.774 8005.8548.6966.1515.9635.9088.7045.836 9006.7499.5407.0786.8696.9856.3543.834 10007.667 10.9447.6217.3227.439 10.0927.112 11008.400 11.9668.5668.2848.112 10.5118.184 Total elapsed time: 23.84 minutes My conclusions from single calls: Thomas' select() and Tim's select7() as pure Python functions are too slow for serious contention. [Aside: I wonder how PyPy would go with them?] There's not much difference in performance between the various median-of-median-of-k functions for larger k, but it seems to me that overall k=47 is marginally faster than either k=23 or k=97. Overall, sorting is as good or better (and usually *much better*) than any of the pure-Python functions for the values of N tested, at least on my computer. C versions may be worth testing, but I'm afraid that is beyond me. Thomas' select2 using dual pivots seems like the most promising. There are a couple of anomalous results where select2 unexpectedly (to me!) does much, much better than sorting, e.g. for N=9 million. Pure chance perhaps? The overall trend seems to me to suggest that a pure-Python version of select2 may become reliably faster than sorting from N=10 million or so, at least with random data on my computer. YMMV, and I would expect that will non-random partially sorted data, the results may be considerably different. == Average of three calls mode == Nsort select7 select23 select47 select97 select select2 50000.0010.0120.0070.0080.0070.0220.007 10.0020.0220.0150.0150.0150.0410.016 50.0160.1250.0860.0800.0850.2590.073 100.0370.2580.1810.1550.1560.6500.137 500.2421.3740.9500.9631.0754.8281.135 1000.5642.8921.9981.9522.1005.0551.721 2001.2275.8224.0843.8764.070 18.5353.379 3002.0348.8256.2646.2565.798 29.2064.851 4002.761 12.2758.2097.7679.111 38.1868.899 5003.587 14.829 10.289 10.385 10.685 53.1018.149 6004.320 17.926 12.925 12.455 12.639 73.876 10.336 7005.237 21.504 15.221 14.740 16.167 87.315 12.254 8006.145 24.503 16.918 15.761 18.430 103.394 16.923 9006.947 26.801 19.993 18.755 20.676 106.303 16.444 10008.113 30.933 21.352 20.341 20.417 102.421 16.987 11009.031 33.912 24.676 23.624 22.448 114.279 18.698 Total elapsed time: 81.39 minutes
[issue21477] Idle: improve idle_test.htest
Roundup Robot added the comment: New changeset 334b6725b2f7 by Terry Jan Reedy in branch '2.7': Issue #21477: Update htest docstring and remove extraneous differences between http://hg.python.org/cpython/rev/334b6725b2f7 New changeset e56c3585ea80 by Terry Jan Reedy in branch '3.4': Issue #21477: Update htest docstring and remove extraneous differences between http://hg.python.org/cpython/rev/e56c3585ea80 -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue21477 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21592] Make statistics.median run in linear time
Alex Gaynor added the comment: I ran the script (modified very slightly for python 2 support) under PyPy 2.3: $ pypy select.py == Single call mode == Nsort select7 select23 select47 select97 select select2 50000.0000.0100.0000.0000.0000.0030.003 10.0000.0010.0010.0010.0010.0000.000 50.0020.0070.0040.0020.0020.0000.000 100.0040.0100.0040.0040.0050.0000.001 500.0260.0300.0190.0200.0240.0040.004 1000.0570.0520.0370.0390.0440.0070.004 2000.1130.0920.0690.0780.0870.0170.014 3000.1760.1350.1090.1190.1360.0240.013 4000.2430.1800.1370.1620.1770.0240.022 5000.2980.2250.1760.1960.2210.0350.024 6000.3730.2660.2070.2360.2660.0510.038 7000.4390.3130.2480.2770.3110.0540.038 8000.5060.3600.2820.3170.3560.0390.039 9000.5660.4040.3150.3520.4060.0550.068 10000.6260.4450.3490.3950.4440.0650.046 11000.6970.4920.3870.4390.4900.0590.086 Total elapsed time: 0.96 minutes $ pypy select.py 57.7s == Average of three calls mode == Nsort select7 select23 select47 select97 select select2 50000.0000.0100.0010.0010.0040.0030.002 10.0000.0050.0010.0010.0020.0000.000 50.0020.0140.0060.0060.0080.0020.001 100.0050.0180.0120.0110.0160.0020.001 500.0260.0710.0510.0600.0760.0190.007 1000.0550.1350.1020.1240.1480.0460.013 2000.1150.2570.2080.2440.2910.0920.027 3000.1810.3960.3010.3470.3830.0970.044 4000.2430.5300.4170.4850.5590.1270.050 5000.3120.6560.5220.5700.6880.1720.072 6000.3770.7890.6100.6880.7720.2150.072 7000.4480.9270.7150.8500.9780.3150.087 8000.5101.0490.8120.9671.1930.4030.108 9000.5751.1910.9291.0881.2410.4620.107 10000.6411.2981.0701.2171.3100.4700.128 11000.7161.4641.1211.3431.5170.4010.147 Total elapsed time: 2.21 minutes -- nosy: +alex ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue21592 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21624] Idle: polish htests
New submission from Terry J. Reedy: #21477 was about finishing the htest framework and creating at least a first draft of each human test. This issue is about refining individual tests. One remaining issue is placement of the master window and placement of test windows in relation to the master. The test message for some might use editing. Tests that only test behavior might be replaced by a unittest module. Some general tests, such as for Editor Window, might be split into separate tests with more specific instructions. These changes might or might not be done as part of the GSOC project. -- assignee: terry.reedy messages: 219486 nosy: jesstess, sahutd, terry.reedy priority: normal severity: normal stage: needs patch status: open title: Idle: polish htests type: enhancement versions: Python 2.7, Python 3.4, Python 3.5 ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue21624 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21477] Idle: improve idle_test.htest
Terry J. Reedy added the comment: I regard the goal of this issue as having been accomplished. I opened #21624 for any further work on htests. -- resolution: - fixed stage: needs patch - resolved status: open - closed superseder: - Idle: polish htests ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue21477 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue18141] tkinter.Image.__del__ can throw an exception if module globals are destroyed in the wrong order
Terry J. Reedy added the comment: I re-read turtledemo and it seems that is could exit without calling root.destroy. The 'if main' block follows: demo = DemoWindow() RUN = True while RUN: try: #print(ENTERING mainloop) demo.root.mainloop() except AttributeError: swallow and continue, for debug? except TypeError: swallow and continue, for debug? except: print(BYE!) RUN = False If a non-Attribute/Type/Error occurs, it is swallowed and the process shuts down without root.destroy, which depends on closing the root window. It seems to me that for production use, everything after the first line should be replaced by demo.root.mainloop(), as is standard for tkinter apps, so that if *any* exception occurs, the process stops and a proper traceback gets printed (before shutdown). -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue18141 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com