On 4 July 2017 at 21:03, Victor Stinner <victor.stin...@gmail.com> wrote: > 2017-07-04 12:52 GMT+02:00 Nick Coghlan <ncogh...@gmail.com>: >> I know it's longer, but perhaps it would make sense to put the >> bisection helper under "python -m test.support.bisect" in both Python >> 2 & 3? > > For me, test.support is a toolkit to *write* tests, not really to run tests. > > I don't really care where my bisect tool lives. Serhiy proposed > test.bisect, I like because it's short and easy to remind. > > Technically it is possible to get test.bisect on Python 2, it just > requires to modify 4 .py files which import Lib/bisect.py to add "from > __future__ import absolute_import": > > Lib/urllib2.py:import bisect > Lib/mhlib.py:from bisect import bisect > Lib/test/test_bisect.py:import bisect as py_bisect > Lib/multiprocessing/heap.py:import bisect
That doesn't sound right, as implicit relative imports in Python 2 are relative to the *package* (they're akin to writing "from . import name"). That means if test.bisect is shadowing the top level bisect module when backported, it suggests that the test.regrtest directory is ending up on sys.path for the affected test run (e.g. because the tests were run as "python Lib/test/regrtest.py" rather than via the -m switch). Checking test.regrtest in 2.7, it looks to me like it's missing the stanza added to Py3 that makes sure "Lib/test/" isn't present on sys.path - if you add a similar operation to Py2.7, I'd expect the test.bisect name for the command to work there as well. Cheers, Nick. P.S. As far the multiprocessing failure you saw goes, my guess would be that the 2.7 version actually is relying on implicit relative imports to find peer modules, and would need some "from . import ..." adjustments to handle "from __future__ import absolute_import" at the top of the file. However, as noted above, I don't think that's actually what's happening - I think the "Lib/test/" directory is still sometimes ending up on sys.path while running the tests in 2.7. -- Nick Coghlan | ncogh...@gmail.com | Brisbane, Australia _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com