Subject | Hash | Author | Date (UTC) |
---|---|---|---|
bpo-30024: Circular imports involving absolute imports with binding (#1264) | f93234bb8a87855f295d441524e519481ce6ab13 | Serhiy Storchaka | 2017-05-09 19:31:05 |
bpo-30273: update distutils.sysconfig for venv's created from Python (#1515) | dbdea629e2e0e4bd8845aa55041e0a0ca4172cf3 | Jeremy Kloth | 2017-05-09 15:24:13 |
bpo-30258: regrtest: Fix run_tests_multiprocess() (#1479) | 74683fc6247c522ae955a6e7308b8ff51def35d8 | Victor Stinner | 2017-05-09 09:34:01 |
bpo-29990: Fix range checking in GB18030 decoder (#1495) | 9da408d15bdef624a5632182cb4edf98001fa82f | Xiang Zhang | 2017-05-09 03:38:32 |
bpo-30289: remove Misc/python-config.sh when make distclean (#1498) | fa5abac1e6cd74979557d5a6f960a55f40a10b0e | Xiang Zhang | 2017-05-09 02:32:13 |
bpo-29979: Rewrite cgi.parse_multipart to make it consistent with FieldStorage (#991) | cc3fa204d357be5fafc10eb8c2a80fe0bca998f1 | Pierre Quentel | 2017-05-08 12:08:34 |
Fix a trivial typo in global section (#1497) | f34c6850203a2406c4950af7a9c8a134145df4ea | Jim Fasarakis-Hilliard | 2017-05-08 11:36:29 |
Closes bpo-30168: indent methods in Logger Class (#1295) | 55ace65eba587fe3cf3759a43cccf85214651971 | Jim Fasarakis-Hilliard | 2017-05-07 18:40:18 |
Revert bpo-26293 for zipfile breakage. See also bpo-29094. (#1484) | 3763ea865cee5bbabcce11cd577811135e0fc747 | Serhiy Storchaka | 2017-05-06 11:46:01 |
bpo-30218: support path-like objects in shutil.unpack_archive() (GH-1367) | a12df7b7d40dbf47825917c8fa03d2c09b5a382c | Jelle Zijlstra | 2017-05-05 21:27:12 |
bpo-29243: Fix Makefile with respect to --enable-optimizations (#1478) | a1054c3b0037d4c2a5492e79fc193f36245366c7 | torsava | 2017-05-05 15:35:50 |
bpo-29920: Document cgitb.text() and cgitb.html() functions (GH-849) | c07b3a15be5e0a68a73b4c532861ed8de6932bd2 | masklinn | 2017-05-05 08:15:12 |
bpo-30279: Remove unused Python/thread_foobar.h (#1473) | fdaeea620f8c78da89cddba4ab010c64535800e0 | Masayuki Yamamoto | 2017-05-05 08:04:13 |
bpo-30264: ExpatParser closes the source on error (#1451) | ef9c0e732fc50aefbdd7c5a80e04e14b31684e66 | Victor Stinner | 2017-05-05 07:46:47 |
bpo-30277: Replace _sre.getlower() with _sre.ascii_tolower() and _sre.unicode_tolower(). (#1468) | 7186cc29be352bed6f1110873283d073fd0643e4 | Serhiy Storchaka | 2017-05-05 07:42:46 |
bpo-30243: Fixed the possibility of a crash in _json. (#1420) | 76a3e51a403bc84ed536921866c86dd7d07aaa7e | Serhiy Storchaka | 2017-05-05 07:08:49 |
bpo-30215: Make re.compile() locale agnostic. (#1361) | 898ff03e1e7925ecde3da66327d3cdc7e07625ba | Serhiy Storchaka | 2017-05-05 05:53:40 |
Make code coverage less strict (GH-1438) | 647c3d381e67490e82cdbbe6c96e46d5e1628ce2 | Brett Cannon | 2017-05-04 21:58:54 |
bpo-30273: Update sysconfig (#1464) | b109a1d3360fc4bb87b9887264e3634632d392ca | Victor Stinner | 2017-05-04 21:29:09 |
bpo-30185: avoid KeyboardInterrupt tracebacks in forkserver (#1319) | 6dd4d734ed207ba16b017e38f8909de7ef187e29 | Antoine Pitrou | 2017-05-04 14:44:53 |
File | Lines added | Lines deleted |
---|---|---|
Doc/whatsnew/3.7.rst | 4 | 0 |
Lib/test/test_import/__init__.py | 6 | 0 |
Lib/test/test_import/data/circular_imports/binding.py | 1 | 0 |
Lib/test/test_import/data/circular_imports/binding2.py | 1 | 0 |
Misc/NEWS | 3 | 0 |
Python/compile.c | 2 | 2 |
File Doc/whatsnew/3.7.rst changed (mode: 100644) (index b2dc995dce..3de8bc5c93) | |||
... | ... | Other Language Changes | |
85 | 85 | * :exc:`ImportError` now displays module name and module ``__file__`` path when | * :exc:`ImportError` now displays module name and module ``__file__`` path when |
86 | 86 | ``from ... import ...`` fails. (Contributed by Matthias Bussonnier in :issue:`29546`.) | ``from ... import ...`` fails. (Contributed by Matthias Bussonnier in :issue:`29546`.) |
87 | 87 | ||
88 | * Circular imports involving absolute imports with binding a submodule to | ||
89 | a name are now supported. | ||
90 | (Contributed by Serhiy Storchaka in :issue:`30024`.) | ||
91 | |||
88 | 92 | ||
89 | 93 | New Modules | New Modules |
90 | 94 | =========== | =========== |
File Lib/test/test_import/__init__.py changed (mode: 100644) (index d4b4445929..be17d6b774) | |||
... | ... | class CircularImportTests(unittest.TestCase): | |
1168 | 1168 | from test.test_import.data.circular_imports.subpkg import util | from test.test_import.data.circular_imports.subpkg import util |
1169 | 1169 | self.assertIs(util.util, rebinding.util) | self.assertIs(util.util, rebinding.util) |
1170 | 1170 | ||
1171 | def test_binding(self): | ||
1172 | try: | ||
1173 | import test.test_import.data.circular_imports.binding | ||
1174 | except ImportError: | ||
1175 | self.fail('circular import with binding a submodule to a name failed') | ||
1176 | |||
1171 | 1177 | ||
1172 | 1178 | if __name__ == '__main__': | if __name__ == '__main__': |
1173 | 1179 | # Test needs to be a package, so we can do relative imports. | # Test needs to be a package, so we can do relative imports. |
File Lib/test/test_import/data/circular_imports/binding.py added (mode: 100644) (index 0000000000..1fbf929abb) | |||
1 | import test.test_import.data.circular_imports.binding2 as binding2 |
File Lib/test/test_import/data/circular_imports/binding2.py added (mode: 100644) (index 0000000000..3d6693769d) | |||
1 | import test.test_import.data.circular_imports.binding as binding |
File Misc/NEWS changed (mode: 100644) (index b9348880b4..1828b01065) | |||
... | ... | What's New in Python 3.7.0 alpha 1? | |
10 | 10 | Core and Builtins | Core and Builtins |
11 | 11 | ----------------- | ----------------- |
12 | 12 | ||
13 | - bpo-30024: Circular imports involving absolute imports with binding | ||
14 | a submodule to a name are now supported. | ||
15 | |||
13 | 16 | - bpo-12414: sys.getsizeof() on a code object now returns the sizes | - bpo-12414: sys.getsizeof() on a code object now returns the sizes |
14 | 17 | which includes the code struct and sizes of objects which it references. | which includes the code struct and sizes of objects which it references. |
15 | 18 | Patch by Dong-hee Na. | Patch by Dong-hee Na. |
File Python/compile.c changed (mode: 100644) (index b630863afc..dad7404a85) | |||
... | ... | compiler_import_as(struct compiler *c, identifier name, identifier asname) | |
2546 | 2546 | merely needs to bind the result to a name. | merely needs to bind the result to a name. |
2547 | 2547 | ||
2548 | 2548 | If there is a dot in name, we need to split it and emit a | If there is a dot in name, we need to split it and emit a |
2549 | LOAD_ATTR for each name. | ||
2549 | IMPORT_FROM for each name. | ||
2550 | 2550 | */ | */ |
2551 | 2551 | Py_ssize_t dot = PyUnicode_FindChar(name, '.', 0, | Py_ssize_t dot = PyUnicode_FindChar(name, '.', 0, |
2552 | 2552 | PyUnicode_GET_LENGTH(name), 1); | PyUnicode_GET_LENGTH(name), 1); |
... | ... | compiler_import_as(struct compiler *c, identifier name, identifier asname) | |
2566 | 2566 | PyUnicode_GET_LENGTH(name)); | PyUnicode_GET_LENGTH(name)); |
2567 | 2567 | if (!attr) | if (!attr) |
2568 | 2568 | return 0; | return 0; |
2569 | ADDOP_O(c, LOAD_ATTR, attr, names); | ||
2569 | ADDOP_O(c, IMPORT_FROM, attr, names); | ||
2570 | 2570 | Py_DECREF(attr); | Py_DECREF(attr); |
2571 | 2571 | pos = dot + 1; | pos = dot + 1; |
2572 | 2572 | } | } |