Commit Graph

42183 Commits

Author SHA1 Message Date
Brett Cannon 418182e18b Make importlib.abc.SourceLoader the primary mechanism for importlib.
This required moving the class from importlib/abc.py into
importlib/_bootstrap.py and jiggering some code to work better with the class.
This included changing how the file finder worked to better meet import
semantics. This also led to fixing importlib to handle the empty string from
sys.path as import currently does (and making me wish we didn't support that
instead just required people to insert '.' instead to represent cwd).

It also required making the new set_data abstractmethod create
any needed subdirectories implicitly thanks to __pycache__ (it was either this
or grow the SourceLoader ABC to gain an 'exists' method and either a mkdir
method or have set_data with no data arg mean to create a directory).

Lastly, as an optimization the file loaders cache the file path where the
finder found something to use for loading (this is thanks to having a
sourceless loader separate from the source loader to simplify the code and
cut out stat calls).
Unfortunately test_runpy assumed a loader would always work for a module, even
if you changed from underneath it what it was expected to work with. By simply
dropping the previous loader in test_runpy so the proper loader can be returned
by the finder fixed the failure.

At this point importlib deviates from import on two points:

1. The exception raised when trying to import a file is different (import does
an explicit file check to print a special message, importlib just says the path
cannot be imported as if it was just some module name).

2. the co_filename on a code object is not being set to where bytecode was
actually loaded from instead of where the marshalled code object originally
came from (a solution for this has already been agreed upon on python-dev but has
not been implemented yet; issue8611).
2010-07-03 22:32:41 +00:00
Brett Cannon d71bed3d76 Make importlib.abc.SourceLoader the primary mechanism for importlib.
This required moving the class from importlib/abc.py into
importlib/_bootstrap.py and jiggering some code to work better with the class.
This included changing how the file finder worked to better meet import
semantics. This also led to fixing importlib to handle the empty string from
sys.path as import currently does (and making me wish we didn't support that
instead just required people to insert '.' instead to represent cwd).

It also required making the new set_data abstractmethod create
any needed subdirectories implicitly thanks to __pycache__ (it was either this
or grow the SourceLoader ABC to gain an 'exists' method and either a mkdir
method or have set_data with no data arg mean to create a directory).

Lastly, as an optimization the file loaders cache the file path where the
finder found something to use for loading (this is thanks to having a
sourceless loader separate from the source loader to simplify the code and
cut out stat calls).
Unfortunately test_runpy assumed a loader would always work for a module, even
if you changed from underneath it what it was expected to work with. By simply
dropping the previous loader in test_runpy so the proper loader can be returned
by the finder fixed the failure.

At this point importlib deviates from import on two points:

1. The exception raised when trying to import a file is different (import does
an explicit file check to print a special message, importlib just says the path
cannot be imported as if it was just some module name).

2. the co_filename on a code object is not being set to where bytecode was
actually loaded from instead of where the marshalled code object originally
came from (a solution for this has already been agreed upon on python-dev but has
not been implemented yet; issue8611).
2010-07-03 22:18:47 +00:00
Alexander Belopolsky 401d856309 Issue #9151: Demo/classes/Dates.py does not work in 3.x Converted
descriptive comment into a docstring.  Cast attributes to int in
__init__.  Use __new__ instead of deleting attributes to
"uninitialize".
2010-07-03 22:05:41 +00:00
Brett Cannon 2cf1585499 Fix a spelling mistake in a comment. 2010-07-03 22:03:16 +00:00
Brett Cannon 767a0f86c0 Trailing whitespace is bad for .rst files. 2010-07-03 21:50:52 +00:00
Brett Cannon 61b14251d3 Make importlib.abc.SourceLoader the primary mechanism for importlib.
This required moving the class from importlib/abc.py into
importlib/_bootstrap.py and jiggering some code to work better with the class.
This included changing how the file finder worked to better meet import
semantics. This also led to fixing importlib to handle the empty string from
sys.path as import currently does (and making me wish we didn't support that
instead just required people to insert '.' instead to represent cwd).

It also required making the new set_data abstractmethod create
any needed subdirectories implicitly thanks to __pycache__ (it was either this
or grow the SourceLoader ABC to gain an 'exists' method and either a mkdir
method or have set_data with no data arg mean to create a directory).

Lastly, as an optimization the file loaders cache the file path where the
finder found something to use for loading (this is thanks to having a
sourceless loader separate from the source loader to simplify the code and
cut out stat calls).
Unfortunately test_runpy assumed a loader would always work for a module, even
if you changed from underneath it what it was expected to work with. By simply
dropping the previous loader in test_runpy so the proper loader can be returned
by the finder fixed the failure.

At this point importlib deviates from import on two points:

1. The exception raised when trying to import a file is different (import does
an explicit file check to print a special message, importlib just says the path
cannot be imported as if it was just some module name).

2. the co_filename on a code object is not being set to where bytecode was
actually loaded from instead of where the marshalled code object originally
came from (a solution for this has already been agreed upon on python-dev but has
not been implemented yet; issue8611).
2010-07-03 21:48:25 +00:00
Alexander Belopolsky bb3565d412 Issue #9151: Demo/classes/Dates.py does not work in 3.x
Made minimal changes to make included test pass.
2010-07-03 21:42:47 +00:00
Brett Cannon 6c96bfe004 Ignore __pycache__. 2010-07-03 21:37:28 +00:00
Mark Dickinson 702636a8a5 Remove nonexistent tools from Tools README. 2010-07-03 21:00:51 +00:00
Alexander Belopolsky 60c762b77a Issue #9094: Make python -m pickletools disassemble pickles given in
the command line.
2010-07-03 20:35:53 +00:00
Senthil Kumaran df022da3d8 Fix Issue5468 - urlencode to handle bytes and other alternate encodings.
(Extensive tests provided). Patch by Dan Mahn.
2010-07-03 17:48:22 +00:00
Benjamin Peterson 85029334f6 Removed merge tracking for "svnmerge" for
svn+ssh://pythondev@svn.python.org/python/branches/py3k/python/trunk
2010-07-03 15:09:20 +00:00
Victor Stinner bc5c54bca2 Merged revisions 82492 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r82492 | victor.stinner | 2010-07-03 15:36:19 +0200 (sam., 03 juil. 2010) | 3 lines

  Issue #7673: Fix security vulnerability (CVE-2010-2089) in the audioop module,
  ensure that the input string length is a multiple of the frame size
........
2010-07-03 13:44:22 +00:00
Georg Brandl 4833e5b874 Remove the need for a "()" empty argument list after opcodes. 2010-07-03 10:41:33 +00:00
Georg Brandl 94e5de0df0 Fix markup. 2010-07-03 10:33:26 +00:00
Georg Brandl 2cb72d3aad Merged revisions 82483 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r82483 | georg.brandl | 2010-07-03 12:25:54 +0200 (Sa, 03 Jul 2010) | 1 line

  Add link to bytecode docs.
........
2010-07-03 10:26:54 +00:00
Georg Brandl eccd50a0db Recorded merge of revisions 82474 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r82474 | georg.brandl | 2010-07-03 10:40:13 +0200 (Sa, 03 Jul 2010) | 1 line

  Fix role name.
........
2010-07-03 10:26:17 +00:00
Georg Brandl f68798b92e Use the right role. 2010-07-03 10:22:10 +00:00
Georg Brandl 19b7a87121 Wrap and use the correct directive. 2010-07-03 10:21:50 +00:00
Mark Dickinson 39af05fc6e Merged revisions 82476 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r82476 | mark.dickinson | 2010-07-03 10:15:09 +0100 (Sat, 03 Jul 2010) | 1 line

  Fix typo in sys.float_info docs.
........
2010-07-03 09:17:16 +00:00
Nick Coghlan e2a89737c0 Issue 6507: missing patch submitter from NEWS entry in previous checkin 2010-07-03 07:38:28 +00:00
Nick Coghlan 5c8b54eb04 Issue 6507: accept source strings directly in dis.dis(). Original patch by Daniel Urban 2010-07-03 07:36:51 +00:00
Ezio Melotti 9bf2b3ae6a Update comment about surrogates. 2010-07-03 04:52:19 +00:00
Alexander Belopolsky 2f194b9060 Merged revisions 82466 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r82466 | alexander.belopolsky | 2010-07-02 23:27:12 -0400 (Fri, 02 Jul 2010) | 1 line

  Revert r81681 (issue 8810).
........
2010-07-03 03:35:27 +00:00
Brett Cannon 2cab50b937 Make test_import a little bit more robust for cleaning up after itself in the
face of a failure.
2010-07-03 01:32:48 +00:00
Benjamin Peterson e401c6842a Merged revisions 82461 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r82461 | benjamin.peterson | 2010-07-02 18:05:27 -0500 (Fri, 02 Jul 2010) | 1 line

  don't require the presence of __getformat__ or __setformat__; use requires_IEEE_754 globally
........
2010-07-02 23:25:44 +00:00
Ezio Melotti d2191e04a4 Merged revisions 82455,82457,82459 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r82455 | eric.smith | 2010-07-03 00:44:16 +0300 (Sat, 03 Jul 2010) | 1 line

  Moved period outside paren, where it belongs.
........
  r82457 | ezio.melotti | 2010-07-03 01:17:29 +0300 (Sat, 03 Jul 2010) | 1 line

  #9139: Add examples for str.format().
........
  r82459 | ezio.melotti | 2010-07-03 01:50:39 +0300 (Sat, 03 Jul 2010) | 1 line

  #9139: the thousands separator is new in 2.7.  Also add a missing variable in the example.
........
2010-07-02 23:18:51 +00:00
Brett Cannon 8315fd12a5 Some people have mistaken Python bytecode as being stable and unchanging. In
reality it's simply an implementation detail for CPython. This point is now
clearly documented in both the docs for dis and the glossary.

Closes issue #7829. Thanks to Terry Reedy for some initial suggestions on
wording.
2010-07-02 22:03:00 +00:00
Mark Dickinson be5846bfdc Merged revisions 82446 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r82446 | mark.dickinson | 2010-07-02 19:06:52 +0100 (Fri, 02 Jul 2010) | 1 line

  Clarify sys.float_info documentation.
........
2010-07-02 20:26:07 +00:00
Benjamin Peterson 5d4708374c Merged revisions 82447 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r82447 | benjamin.peterson | 2010-07-02 14:41:39 -0500 (Fri, 02 Jul 2010) | 1 line

  add space
........
2010-07-02 19:45:07 +00:00
Nick Coghlan 4bfb7da842 Merged revisions 82441 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r82441 | nick.coghlan | 2010-07-03 02:01:53 +1000 (Sat, 03 Jul 2010) | 1 line

  Issue 8202 actually caused an unintended behavioural change and was reverted in 2.7 - remove reference from What's New
........
2010-07-02 16:14:05 +00:00
Mark Dickinson 6d02d9cc6b Style/consistency nit: make math_floor and math_ceil code look the same. 2010-07-02 16:05:15 +00:00
Nick Coghlan 9fc68c4e70 Merged revisions 82439 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r82439 | nick.coghlan | 2010-07-03 01:50:14 +1000 (Sat, 03 Jul 2010) | 1 line

  Fix a couple of minor nits in What's New before the release goes out
........
2010-07-02 15:57:50 +00:00
Benjamin Peterson f751bc9c01 fix lookup of __ceil__ 2010-07-02 13:46:42 +00:00
Benjamin Peterson b0125892e6 account for different ref counting semantics of _PyObject_LookupSpecial 2010-07-02 13:35:17 +00:00
Georg Brandl 8971f74c55 Merged revisions 82433 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r82433 | georg.brandl | 2010-07-02 09:33:50 +0200 (Fr, 02 Jul 2010) | 1 line

  Grammar and markup fixes.
........
2010-07-02 07:41:51 +00:00
Benjamin Peterson 963babcd05 Blocked revisions 82429 via svnmerge
........
  r82429 | benjamin.peterson | 2010-07-01 18:35:37 -0500 (Thu, 01 Jul 2010) | 1 line

  trunc does use the special method, though
........
2010-07-01 23:39:26 +00:00
Benjamin Peterson b51b5c4be7 Merged revisions 82420 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r82420 | benjamin.peterson | 2010-07-01 12:45:52 -0500 (Thu, 01 Jul 2010) | 1 line

  fix fixer name
........
2010-07-01 17:49:01 +00:00
Benjamin Peterson 8bb9cde6c0 correctly lookup __trunc__ and __floor__ 2010-07-01 15:16:55 +00:00
Benjamin Peterson 6e73b19747 Blocked revisions 82415 via svnmerge
........
  r82415 | benjamin.peterson | 2010-07-01 10:07:15 -0500 (Thu, 01 Jul 2010) | 1 line

  remove docs about delegating to special methods; it does no such thing
........
2010-07-01 15:09:14 +00:00
Ezio Melotti 57221d02ba Update PyUnicode_DecodeUTF8 from RFC 2279 to RFC 3629.
1) #8271: when a byte sequence is invalid, only the start byte and all the
   valid continuation bytes are now replaced by U+FFFD, instead of replacing
   the number of bytes specified by the start byte.
   See http://www.unicode.org/versions/Unicode5.2.0/ch03.pdf (pages 94-95);
2) 5- and 6-bytes-long UTF-8 sequences are now considered invalid (no changes
   in behavior);
3) Change the error messages "unexpected code byte" to "invalid start byte"
   and "invalid data" to "invalid continuation byte";
4) Add an extensive set of tests in test_unicode;
5) Fix test_codeccallbacks because it was failing after this change.
2010-07-01 07:32:02 +00:00
Benjamin Peterson ead3c83ea9 Merged revisions 82409 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r82409 | benjamin.peterson | 2010-06-30 13:41:08 -0500 (Wed, 30 Jun 2010) | 1 line

  an AttributeError is perfectly acceptable here
........
2010-06-30 18:44:04 +00:00
Giampaolo Rodolà 610aa4f07f Merged revisions 82404 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r82404 | giampaolo.rodola | 2010-06-30 19:38:28 +0200 (mer, 30 giu 2010) | 1 line

  fix issue #6589: cleanup asyncore.socket_map if smtpd.SMTPServer constructor raises an exception
........
2010-06-30 17:47:39 +00:00
Benjamin Peterson 1cc6df97bc Merged revisions 82403 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r82403 | benjamin.peterson | 2010-06-30 12:11:08 -0500 (Wed, 30 Jun 2010) | 1 line

  mark test depending on ref counting
........
2010-06-30 17:39:45 +00:00
Mark Dickinson d24305489b Blocked revisions 82399-82400 via svnmerge
........
  r82399 | mark.dickinson | 2010-06-30 15:19:56 +0100 (Wed, 30 Jun 2010) | 1 line

  Update Demo/parser directory; backport unparse fixes from py3k.
........
  r82400 | mark.dickinson | 2010-06-30 17:27:57 +0100 (Wed, 30 Jun 2010) | 2 lines

  Issue #9125:  Update parser module for "except ... as ..." syntax.
........
2010-06-30 16:36:12 +00:00
Michael Foord b3a8984488 Issue 9110. Adding ContextDecorator to contextlib. This enables the creation of APIs that act as decorators as well as context managers. contextlib.contextmanager changed to use ContextDecorator. 2010-06-30 12:17:50 +00:00
Mark Dickinson cba8c10b5c Unparse infinite imaginary literals correctly. Add some more numeric tests. 2010-06-30 11:45:53 +00:00
Mark Dickinson abe52d749c Revert accidental extra changes included in r82391. 2010-06-30 11:14:30 +00:00
Mark Dickinson 50b79a80bd Issue #9011: Tests for Python 3.2's treatment of negated imaginary literals. 2010-06-30 11:13:36 +00:00
Mark Dickinson af0e1544bf Remove backtick syntax for repr. 2010-06-30 09:14:43 +00:00