57 Commits

Author SHA1 Message Date
Victor Stinner
90549676e0 bpo-40443: Remove unused imports in the stdlib (GH-19803) 2020-04-30 11:26:33 +02:00
Anthony Sottile
39652cd8bd bpo-40260: Remove unnecessary newline in compile() call (GH-19641)
Because some people subclass this class and call undocumented methods, and we don't want to break them.
2020-04-22 19:42:53 +01:00
Barry
9b0b5d2bae bpo-40260: Revert breaking changes made in modulefinder (GH-19595) 2020-04-20 15:58:42 +01:00
Barry
d42e582063 bpo-40260: Update modulefinder to use io.open_code() and respect coding comments (GH-19488) 2020-04-14 20:16:06 +01:00
Victor Stinner
a9f05d69cc bpo-37032: Add CodeType.replace() method (GH-13542) 2019-05-24 23:57:23 +02:00
Pablo Galindo
8c77b8cb91 bpo-36540: PEP 570 -- Implementation (GH-12701)
This commit contains the implementation of PEP570: Python positional-only parameters.

* Update Grammar/Grammar with new typedarglist and varargslist

* Regenerate grammar files

* Update and regenerate AST related files

* Update code object

* Update marshal.c

* Update compiler and symtable

* Regenerate importlib files

* Update callable objects

* Implement positional-only args logic in ceval.c

* Regenerate frozen data

* Update standard library to account for positional-only args

* Add test file for positional-only args

* Update other test files to account for positional-only args

* Add News entry

* Update inspect module and related tests
2019-04-29 13:36:57 +01:00
Brandt Bucher
9d7b2c0909 bpo-35936: Updates to modulefinder (GH-11787)
* Properly handle SyntaxErrors in Python source files.

SyntaxErrors in the target module will rise normally, while SyntaxErrors in dependencies will be added to badmodules. This includes a new regression test.

* Fix name collision bug.

This fixes an issue where a "fromlist" import with the same name as a previously failed import would be incorrectly added to badmodules. This includes a new regression test.

* Replace mutable default values.

Bound empty lists have been replaced with the "if param is None" idiom.

* Replace deprecated imp usage.

Constants imported from imp have been moved to private module-level constants, and ModuleFinder.find_module has been refactored to use importlib. Other than an improvement on how frozen builtin imports are reported (as the frozen imports they are, rather than the stdlib modules they *may* have originated from), these changes maintain complete compatibility with past versions... including odd behavior for returning relative (below current directory, but not a C extension) vs. absolute (above current directory, or a C extension) paths.

Patch by Brandt Bucher.
2019-04-07 18:00:41 +10: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
Serhiy Storchaka
70d28a184c Remove unused imports. 2016-12-16 20:00:15 +02:00
Serhiy Storchaka
3e99fdeed5 Issue #26881: The modulefinder module now supports extended opcode arguments. 2016-05-08 23:44:54 +03:00
Serhiy Storchaka
02d9f5e5b2 Issue #26881: The modulefinder module now supports extended opcode arguments. 2016-05-08 23:43:50 +03:00
Victor Stinner
7e50978a4e Issue #26647: Cleanup modulefinder
Use directly dis.opmap[name] rather than dis.opname.index(name).

Patch written by Demur Rumed.
2016-04-12 18:17:06 +02: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
Eric Snow
32439d6eb6 Issue #23911: Move path-based bootstrap code to a separate frozen module. 2015-05-02 19:15:18 -06: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
Berker Peksag
0a0d1da987 Issue #21707: Add missing kwonlyargcount argument to ModuleFinder.replace_paths_in_code(). 2014-07-07 14:58:12 +03:00
Brett Cannon
0f3847855d merge for issue #20778 2014-02-28 10:50:34 -05:00
Brett Cannon
298bb96776 Issue #20778: Fix modulefinder to work with bytecode-only modules.
Bug filed and initial attempt at a patch by Bohuslav Kabrda.
2014-02-28 10:44:45 -05:00
Serhiy Storchaka
ab0ac27d24 Issue #20315: Removed support for backward compatibility with early 2.x versions.
Removed backward compatibility alias curses.window.nooutrefresh which should
be removed in 2.3.
2014-01-20 21:35:06 +02:00
Serhiy Storchaka
7e52705ee3 Issue #20315: Removed support for backward compatibility with early 2.x versions. 2014-01-20 21:29:31 +02:00
Ezio Melotti
9a3777e525 #18705: merge with 3.3. 2013-08-17 15:53:55 +03:00
Ezio Melotti
30b9d5d3af #18705: fix a number of typos. Patch by Févry Thibault. 2013-08-17 15:50:46 +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
2909d6b47c merge with 3.3 2012-12-22 19:38:32 -05:00
Brett Cannon
73b969ec70 Issue #16752: Add a missing import to modulefinder.
Also fix Misc/ACKS to put part of it back in alphabetical order and
remove some duplicate names.

Patch by Berker Peksag.
2012-12-22 19:34:21 -05:00