Commit Graph

101 Commits

Author SHA1 Message Date
Hugo van Kemenade 9b027d4cea
gh-92169: Use warnings_helper.import_deprecated() to import deprecated modules uniformly in tests (GH-92170) 2022-05-03 10:17:54 +03:00
Christian Heimes c02e860ee7
bpo-40280: Misc fixes for wasm32-emscripten (GH-30722) 2022-01-20 18:56:33 +01:00
Inada Naoki ad970e8623
bpo-29410: Change the default hash algorithm to SipHash13. (GH-28752)
Co-authored-by: Erlend Egeberg Aasland <erlend.aasland@innova.no>
Co-authored-by: Christian Heimes <christian@python.org>
2021-10-10 17:29:46 +09:00
Eric Snow cbeb819710
bpo-45020: Freeze some of the modules imported during startup. (gh-28335)
Doing this provides significant performance gains for runtime startup (~15% with all the imported modules frozen). We don't yet freeze all the imported modules because there are a few hiccups in the build systems we need to sort out first. (See bpo-45186 and bpo-45188.)

Note that in PR GH-28320 we added a command-line flag (-X frozen_modules=[on|off]) that allows users to opt out of (or into) using frozen modules. The default is still "off" but we will change it to "on" as soon as we can do it in a way that does not cause contributors pain.

https://bugs.python.org/issue45020
2021-09-15 10:19:30 -06:00
Inada Naoki c8e5eb904e
bpo-43651: PEP 597: Fix EncodingWarning in some tests (GH-25181)
* Fix test_shutil
* Fix test_imp
* Fix test_import
* Fix test_importlib
2021-04-05 13:11:23 +09:00
Hai Shi f7ba40b505
bpo-40275: Use new test.support helper submodules in tests (GH-20849) 2020-06-25 12:38:51 +02:00
Nina Zakharenko 69091cb497 bpo-35321: Set the spec origin to frozen in frozen modules (#11732)
* bpo-35321: Set the spec origin to frozen in frozen modules

This fix correctly sets the spec origin to
"frozen" for the _frozen_importlib module. Note that the
origin was already correctly set in _frozen_importlib_external.

* 📜🤖 Added by blurb_it.
2019-02-04 16:56:26 -08:00
Benjamin Peterson b0274f2cdd
closes bpo-34056: Always return bytes from _HackedGetData.get_data(). (GH-8130)
* Always return bytes from _HackedGetData.get_data().

Ensure the imp.load_source shim always returns bytes by reopening the file in
binary mode if needed. Hash-based pycs have to receive the source code in bytes.

It's tempting to change imp.get_suffixes() to always return 'rb' as a mode, but
that breaks some stdlib tests and likely 3rdparty code, too.
2018-07-06 20:41:06 -07:00
Benjamin Peterson 42aa93b8ff
closes bpo-31650: PEP 552 (Deterministic pycs) implementation (#4575)
Python now supports checking bytecode cache up-to-dateness with a hash of the
source contents rather than volatile source metadata. See the PEP for details.

While a fairly straightforward idea, quite a lot of code had to be modified due
to the pervasiveness of pyc implementation details in the codebase. Changes in
this commit include:

- The core changes to importlib to understand how to read, validate, and
  regenerate hash-based pycs.

- Support for generating hash-based pycs in py_compile and compileall.

- Modifications to our siphash implementation to support passing a custom
  key. We then expose it to importlib through _imp.

- Updates to all places in the interpreter, standard library, and tests that
  manually generate or parse pyc files to grok the new format.

- Support in the interpreter command line code for long options like
  --check-hash-based-pycs.

- Tests and documentation for all of the above.
2017-12-09 10:26:52 -08:00
luzpaz a5293b4ff2 Fix miscellaneous typos (#4275) 2017-11-05 15:37:50 +02:00
Victor Stinner a505ecdc50 bpo-31676: Fix test_imp.test_load_source() side effect (#3871)
test_load_source() now replaces the current __name__ module with a
temporary module to prevent side effects.
2017-10-13 13:47:49 -07:00
Oren Milman 9974e1bcf3 bpo-31315: Fix an assertion failure in imp.create_dynamic(), when spec.name is not a string. (#3257) 2017-09-19 14:39:47 +03:00
Antoine Pitrou a6a4dc816d bpo-31370: Remove support for threads-less builds (#3385)
* Remove Setup.config
* Always define WITH_THREAD for compatibility.
2017-09-07 18:56:24 +02:00
Serhiy Storchaka f7eae0adfc [security] bpo-13617: Reject embedded null characters in wchar* strings. (#2302)
Based on patch by Victor Stinner.

Add private C API function _PyUnicode_AsUnicode() which is similar to
PyUnicode_AsUnicode(), but checks for null characters.
2017-06-28 08:30:06 +03:00
Serhiy Storchaka a6f26c1d34 Remove more unused imports in tests. 2016-04-25 00:05:30 +03:00
Brett Cannon 213b4056a6 Issue #25487: Fix tests not updated when the imp module moved to a
DeprecationWarning.

Thanks to Martin Panter for finding the tests.
2015-10-30 14:41:06 -07:00
Nick Coghlan 9d3c61c86a Close #24748: Restore imp.load_dynamic compatibility
To resolve a compatibility problem found with py2exe and
pywin32, imp.load_dynamic() once again ignores previously loaded modules
to support Python modules replacing themselves with extension modules.

Patch by Petr Viktorin.
2015-09-05 21:05:05 +10:00
Brett Cannon f299abdafa Issue #23731: Implement PEP 488.
The concept of .pyo files no longer exists. Now .pyc files have an
optional `opt-` tag which specifies if any extra optimizations beyond
the peepholer were applied.
2015-04-13 14:21:02 -04:00
Victor Stinner 047b7ae566 Issue #22390: Remove files created by tests 2014-10-05 17:37:41 +02:00
Zachary Ware 101d9e7250 Issue 19572: More silently skipped tests explicitly skipped. 2013-12-08 00:44:27 -06:00
Zachary Ware 9fe6d86709 Issue 19572: More silently skipped tests explicitly skipped. 2013-12-08 00:20:35 -06:00
Serhiy Storchaka 6787a3806e Issue #15204: Deprecated the 'U' mode in file-like objects. 2013-11-23 22:12:06 +02:00
Brett Cannon 330cc52c99 Delete merge markers 2013-08-23 12:10:09 -04:00
Brett Cannon 16ababc213 merge for issue #18755 2013-08-23 11:52:19 -04:00
Brett Cannon a4975a911d Issue #18755: Allow imp.load_*() loaders to have get_data() called
multiple times.
2013-08-23 11:45:57 -04:00
Antoine Pitrou bb2c45e7a4 Issue #7732: try to fix test_bug7732's flakiness on Windows by executing it in a fresh temporary directory. 2013-08-19 23:31:18 +02:00
Eric Snow 7491f1726b issue #18698: ensure importlib.reload() returns the module out of sys.modules. 2013-08-14 18:03:34 -06:00
Serhiy Storchaka 3ee11407f8 Issue #18706: Fix a test for issue #18681 so it no longer breaks test_codeccallbacks*. 2013-08-11 20:13:36 +03:00
Serhiy Storchaka b212291b08 Issue #18706: Fix a test for issue #18681 so it no longer breaks test_codeccallbacks*. 2013-08-11 20:12:20 +03:00
Ezio Melotti fbcf4d78c8 #18681: merge with 3.3. 2013-08-10 20:01:43 +03:00
Ezio Melotti 056bafe7a6 #18681: Fix a NameError in imp.reload() (noticed by Weizhao Li). 2013-08-10 19:59:36 +03:00
Brett Cannon e4f41deccf Issue #17177: The imp module is pending deprecation.
To make sure there is no issue with code that is both Python 2 and 3
compatible, there are no plans to remove the module any sooner than
Python 4 (unless the community moves to Python 3 solidly before then).
2013-06-16 13:13:40 -04:00
Brett Cannon 997487d5d7 Issue #7732: Move an imp.find_module test from test_import to
test_imp.
2013-06-07 13:26:53 -04:00
Benjamin Peterson fc6f4cd398 merge 3.3 2013-05-11 16:29:11 -05:00
Benjamin Peterson aa6f688bd4 only close non-None files 2013-05-11 16:29:03 -05:00
Brett Cannon dea2ec4b1d Fix a test to not use an assertion for something that could be
legitimately false.
2013-05-04 18:11:12 -04:00
Brett Cannon 8772b18bc4 Change a test assertion to a conditional so the test will pass on
Windows.
2013-05-04 17:54:57 -04:00
Brett Cannon 95ea11fa31 add trailing newline to file 2013-05-03 10:57:08 -04:00
Brett Cannon 142685337f Move test_imp over to unittest.main() 2013-05-03 10:56:19 -04:00
Brett Cannon 130e48199a Guard more tests in test_imp requiring imp.load_dynamic() to exist. 2013-05-03 10:54:23 -04:00
Brett Cannon 2a9c653f38 #15902: merge w/ 3.3 2013-05-03 10:47:17 -04:00
Brett Cannon 9d0f772c51 Issue #15902: Fix imp.load_module() to accept None as a file when
trying to load an extension module.

While at it, also add a proper unittest.skipIf() guard to another test
involving imp.load_dynamic().
2013-05-03 10:37:08 -04:00
Ezio Melotti 469da97c1e #11420: merge with 3.3. 2013-03-16 21:50:04 +02:00
Ezio Melotti e5e7a7cbf4 #11420: merge with 3.2. 2013-03-16 21:49:20 +02:00
Ezio Melotti c28f6fa505 #11420: make test suite pass with -B/DONTWRITEBYTECODE set. Initial patch by Thomas Wouters. 2013-03-16 19:48:51 +02:00
Andrew Svetlov ef9a43b2c9 Rename test module names for #16421 to don't clash with other tests. 2012-12-15 17:22:59 +02:00
Andrew Svetlov 6b2cbeba58 Issue #16421: allow to load multiple modules from the same shared object.
Patch by Václav Šmilauer.
2012-12-14 17:04:59 +02:00
Brett Cannon 848cdfdf97 Issue #15828: Don't try to close a file if imp.find_module() doesn't
return one.
2012-08-31 11:31:20 -04:00
Nick Coghlan 91b9f139bc Issue #15828: Restore support for C extension modules in imp.load_module() 2012-09-01 00:13:45 +10:00
Brett Cannon 19a2f5961c Issue #15056: imp.cache_from_source() and source_from_cache() raise
NotimplementedError when sys.implementation.cache_tag is None.

Thanks to Pranav Ravichandran for taking an initial stab at the patch.
2012-07-09 13:58:07 -04:00