cpython/Lib
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
..
ctypes Merged revisions 82126-82127 via svnmerge from 2010-06-21 16:00:31 +00:00
curses
dbm Redundancy isn't needed here. 2009-10-10 21:28:29 +00:00
distutils Merged revisions 82272 via svnmerge from 2010-06-27 12:37:46 +00:00
email Merged revisions 81675 via svnmerge from 2010-06-16 02:19:40 +00:00
encodings Merged revisions 81499,81506 via svnmerge from 2010-06-27 22:41:29 +00:00
html Recorded merge of revisions 81500-81501 via svnmerge from 2010-05-24 21:46:25 +00:00
http Merged revisions 81465-81466,81468,81679,81735,81760,81868,82183 via svnmerge from 2010-06-27 21:45:24 +00:00
idlelib Issue #8203: Fix IDLE Credits dialog: view_file() uses its encoding argument. 2010-06-17 21:43:33 +00:00
importlib Make importlib.abc.SourceLoader the primary mechanism for importlib. 2010-07-03 22:32:41 +00:00
json Merged revisions 76708 via svnmerge from 2009-12-08 15:57:31 +00:00
lib2to3 Merged revisions 81479 via svnmerge from 2010-05-22 18:59:24 +00:00
logging Merged revisions 80712,81651 via svnmerge from 2010-06-27 20:54:28 +00:00
msilib Merged revisions 73390 via svnmerge from 2009-06-12 17:31:41 +00:00
multiprocessing Issue #7316: the acquire() method of lock objects in the :mod:threading 2010-04-14 15:44:10 +00:00
plat-aix4
plat-darwin These are present in the trunk but no longer in 3.x, which causes problems 2009-03-04 23:21:07 +00:00
plat-freebsd4 Merged revisions 78644 via svnmerge from 2010-03-04 02:11:41 +00:00
plat-freebsd5 Merged revisions 78644 via svnmerge from 2010-03-04 02:11:41 +00:00
plat-freebsd6 Merged revisions 78644 via svnmerge from 2010-03-04 02:11:41 +00:00
plat-freebsd7 Merged revisions 78644 via svnmerge from 2010-03-04 02:11:41 +00:00
plat-freebsd8 Merged revisions 78644 via svnmerge from 2010-03-04 02:11:41 +00:00
plat-generic
plat-linux2
plat-netbsd1
plat-next3
plat-os2emx Merged revisions 78644 via svnmerge from 2010-03-04 02:11:41 +00:00
plat-sunos5 Merged revisions 78678,78680,78682 via svnmerge from 2010-03-05 03:33:11 +00:00
plat-unixware7
pydoc_data update pydoc-topics 2009-06-26 13:05:03 +00:00
site-packages
sqlite3 #8845: expose sqlite3 inTransaction as RO in_transaction Connection attribute. 2010-06-01 01:32:12 +00:00
test Make importlib.abc.SourceLoader the primary mechanism for importlib. 2010-07-03 21:48:25 +00:00
tkinter Merged revisions 81701 via svnmerge from 2010-06-04 19:50:26 +00:00
unittest Merged revisions 81878 via svnmerge from 2010-06-10 20:41:54 +00:00
urllib Fix Issue5468 - urlencode to handle bytes and other alternate encodings. 2010-07-03 17:48:22 +00:00
wsgiref Manually copy patch for bug 7250 from the release26-maint branch. I suck 2010-03-01 21:53:00 +00:00
xml http://bugs.python.org/issue8832 2010-06-09 08:13:42 +00:00
xmlrpc Issue #7606: XML-RPC traceback stored in X-traceback is now encoded to ASCII 2010-04-16 13:28:05 +00:00
__future__.py barry has already been causing test breakage 2009-04-01 20:38:13 +00:00
__phello__.foo.py
_abcoll.py Merged revisions 81414 via svnmerge from 2010-05-21 20:55:22 +00:00
_compat_pickle.py Issue #6137: The pickle module now translates module names when loading 2009-06-04 20:32:06 +00:00
_dummy_thread.py Issue #7316: the acquire() method of lock objects in the :mod:threading 2010-04-14 15:44:10 +00:00
_markupbase.py
_pyio.py Merged revisions 80720 via svnmerge from 2010-05-03 16:48:20 +00:00
_strptime.py Issue #6641: Original commit for this issue, r82053, introduced a 2010-06-18 18:44:37 +00:00
_threading_local.py fixes issue #1522237, bad init check in _threading_local 2010-02-22 19:55:46 +00:00
_weakrefset.py Issue #7105: Make WeakKeyDictionary and WeakValueDictionary robust against 2010-01-08 17:54:23 +00:00
abc.py Merged revisions 77789 via svnmerge from 2010-01-27 02:25:58 +00:00
aifc.py Merged revisions 72425-72426 via svnmerge from 2009-05-07 18:24:38 +00:00
antigravity.py Another hidden treasure. 2009-06-03 17:21:17 +00:00
argparse.py Merged revisions 81492 via svnmerge from 2010-05-24 03:47:38 +00:00
ast.py Merged revisions 68450,68480-68481,68493,68495,68501,68512,68514-68515,68534-68536,68552,68563,68570-68572,68575,68582,68596,68623-68624,68628 via svnmerge from 2009-01-16 03:54:08 +00:00
asynchat.py
asyncore.py Merged revisions 81294 via svnmerge from 2010-05-18 20:11:58 +00:00
base64.py Issue #4769: Fix main() function of the base64 module, use sys.stdin.buffer and 2010-05-25 21:12:34 +00:00
bdb.py Merged revisions 72322 via svnmerge from 2009-05-05 09:00:19 +00:00
binhex.py Issues #2715, #6621: Remove unused and undefined references to FSSpec 2009-08-02 20:08:54 +00:00
bisect.py Per the language summit, the optional fastpath imports should use from-import-star. 2009-03-31 17:51:51 +00:00
build_class.py
calendar.py Undo r81988 code change leaving added test. 2010-06-14 18:33:19 +00:00
cgi.py Merged revisions 78844 via svnmerge from 2010-03-11 22:05:58 +00:00
cgitb.py Merged revisions 70980,71059,71225,71234,71241,71243,71249,71251,71255,71266,71299,71329,71397-71398,71486 via svnmerge from 2009-04-11 19:48:14 +00:00
chunk.py
cmd.py Merged revisions 77185-77188,77262,77313,77317,77331-77333,77337-77338 via svnmerge from 2010-01-09 18:53:06 +00:00
code.py Merged revisions 75264,75268,75293,75318,75391-75392,75436,75478,75971,76003,76058,76140-76141,76231,76380,76428-76429 via svnmerge from 2009-11-25 17:46:26 +00:00
codecs.py Merged revisions 81471-81472 via svnmerge from 2010-05-22 16:59:09 +00:00
codeop.py correct porting error with raise #7161 2009-10-18 00:32:49 +00:00
collections.py Minor factoring 2010-04-11 20:41:56 +00:00
colorsys.py Merged revisions 68884,68973,68978,69003,69083,69112-69113 via svnmerge from 2009-01-30 03:39:35 +00:00
compileall.py Create __pycache__ dir when the pyc path is explicitly given 2010-05-08 19:52:21 +00:00
configparser.py Merged revisions 78232 via svnmerge from 2010-02-19 06:08:41 +00:00
contextlib.py 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
copy.py Merged revisions 76571 via svnmerge from 2009-11-28 15:58:27 +00:00
copyreg.py
cProfile.py convert shebang lines: python -> python3 2010-03-11 22:53:45 +00:00
csv.py Merged revisions 78384 via svnmerge from 2010-02-23 22:57:58 +00:00
decimal.py Fix mild type confusion in decimal module docstring. 2010-06-12 16:37:53 +00:00
difflib.py Merged revisions 80004 via svnmerge from 2010-04-12 16:58:02 +00:00
dis.py Issue 6507: accept source strings directly in dis.dis(). Original patch by Daniel Urban 2010-07-03 07:36:51 +00:00
doctest.py Merged revisions 80578 via svnmerge from 2010-06-12 13:42:46 +00:00
dummy_threading.py
filecmp.py Use new form of with-statement instead of contextlib.nested(). 2009-06-04 00:11:54 +00:00
fileinput.py Use PEP 8 and true booleans. 2009-05-17 12:22:57 +00:00
fnmatch.py Merged revisions 74475 via svnmerge from 2009-08-16 18:58:46 +00:00
formatter.py
fractions.py Issue #8188: Introduce a new scheme for computing hashes of numbers 2010-05-23 13:33:13 +00:00
ftplib.py Fix issue #8806: add SSL contexts support to ftplib 2010-05-26 18:06:04 +00:00
functools.py Merged revisions 80068 via svnmerge from 2010-05-19 21:06:36 +00:00
genericpath.py Merged revisions 78018,78035-78040,78042-78043,78046,78048-78052,78054,78059,78075-78080 via svnmerge from 2010-03-14 10:23:39 +00:00
getopt.py Merged revisions 67463,67572,67576,67628 via svnmerge from 2008-12-07 15:15:22 +00:00
getpass.py Merged revisions 76000,76016 via svnmerge from 2009-11-01 18:42:17 +00:00
gettext.py Merged revisions 72506,72525-72526,72551,72558,72616,72654-72655,72689,72745,72750,72802,72812,72822,72824,72826-72827,72833,72876,72890,72923,72946,73026,73042,73045,73047,73065,73068-73069 via svnmerge from 2009-06-01 22:42:33 +00:00
glob.py Merged revisions 70712,70714,70764-70765,70769-70771,70773,70776-70777,70788-70789,70824,70828,70832,70836,70842,70851,70855,70857,70866-70872,70883,70885,70893-70894,70896-70897,70903,70905-70907,70915,70927,70933,70951,70960,70962-70964,70998,71001,71006,71008,71010-71011,71019,71037,71056,71094,71101-71103,71106,71119,71123,71149-71150,71203,71212,71214-71217,71221,71240 via svnmerge from 2009-04-05 19:13:16 +00:00
gzip.py Merged revisions 80762 via svnmerge from 2010-05-04 18:47:04 +00:00
hashlib.py Merged revisions 78528 via svnmerge from 2010-03-01 02:05:26 +00:00
heapq.py Make life easier for non-CPython implementations 2009-03-29 19:30:50 +00:00
hmac.py
imaplib.py Merged revisions 77041 via svnmerge from 2009-12-24 16:12:49 +00:00
imghdr.py
inspect.py only take into account positional arguments count in related error messages 2010-06-25 19:30:21 +00:00
io.py add myself 2009-05-01 20:45:43 +00:00
keyword.py convert shebang lines: python -> python3 2010-03-11 22:53:45 +00:00
linecache.py Merged revisions 81428-81429,81432-81433,81437 via svnmerge from 2010-05-21 21:45:06 +00:00
locale.py Merged revisions 80512 via svnmerge from 2010-04-27 02:45:53 +00:00
macpath.py #9018: os.path.normcase() now raises a TypeError if the argument is not str or bytes. 2010-06-25 10:56:11 +00:00
macurl2path.py Fixing Issue6711 - macurl2path has typos that raise AttributeError 2009-08-16 06:43:50 +00:00
mailbox.py Merged revisions 77952,78030,78102,78104,78107,78206,78216,78296-78297,78328,78331-78332,78336,78339,78343,78378-78379,78415,78559,78717,78791 via svnmerge from 2010-03-21 22:03:03 +00:00
mailcap.py Issue #8496: make mailcap.lookup() always return a list, rather than an iterator. 2010-04-22 13:30:10 +00:00
mimetypes.py Merged revisions 78018,78035-78040,78042-78043,78046,78048-78052,78054,78059,78075-78080 via svnmerge from 2010-03-14 10:23:39 +00:00
modulefinder.py no 2.3 compat in the py3k lib #3676 2009-02-16 16:20:10 +00:00
netrc.py
nntplib.py Merged revisions 72640 via svnmerge from 2009-05-14 21:30:46 +00:00
ntpath.py #9018: os.path.normcase() now raises a TypeError if the argument is not str or bytes. 2010-06-25 10:56:11 +00:00
nturl2path.py Fix for issue1153027, making Py3k changes similar to fix in issue918368. 2009-05-05 18:41:13 +00:00
numbers.py Issue 4998: restore utility of __slots__ on Fraction. 2009-02-12 17:58:36 +00:00
opcode.py Merged revisions 72912,72920,72940 via svnmerge from 2009-06-28 03:18:59 +00:00
optparse.py Merged revisions 71540,71563 via svnmerge from 2009-04-27 16:41:41 +00:00
os2emxpath.py #9018: os.path.normcase() now raises a TypeError if the argument is not str or bytes. 2010-06-25 10:56:11 +00:00
os.py Issue #8969: On Windows, use mbcs codec in strict mode to encode and decode 2010-06-11 23:56:51 +00:00
pdb.doc Untabify. 2010-06-27 11:24:03 +00:00
pdb.py #9064: accept number of frames for "up" and "down" commands in pdb. 2010-06-27 10:37:48 +00:00
pickle.py Issue #8383: pickle and pickletools use surrogatepass error handler when 2010-04-13 11:07:24 +00:00
pickletools.py Issue #9094: Make python -m pickletools disassemble pickles given in 2010-07-03 20:35:53 +00:00
pipes.py Merged revisions 80030,80067,80069,80080-80081,80084,80432-80433,80465-80470,81059,81065-81067 via svnmerge from 2010-05-19 20:57:08 +00:00
pkgutil.py Issue 4005: Remove .sort() call on dict_keys object. 2009-07-05 06:42:44 +00:00
platform.py Merged revisions 80857 via svnmerge from 2010-05-06 03:05:50 +00:00
plistlib.py Merged revisions 80279 via svnmerge from 2010-04-20 21:00:34 +00:00
poplib.py Issue #6622: Fix 'variable referenced before assignment' bug in POP3.apop. 2009-08-06 16:06:25 +00:00
posixpath.py #9018: os.path.normcase() now raises a TypeError if the argument is not str or bytes. 2010-06-25 10:56:11 +00:00
pprint.py Issue 3976: fix pprint for sets, frozensets, and dicts containing unorderable types. 2009-11-19 01:07:05 +00:00
profile.py Remove traces of MacOS9 support. 2010-05-05 19:11:21 +00:00
pstats.py Forward port total_ordering() and cmp_to_key(). 2010-04-05 18:56:31 +00:00
pty.py
py_compile.py Create __pycache__ dir when the pyc path is explicitly given 2010-05-08 19:52:21 +00:00
pyclbr.py
pydoc.py Remove traces of MacOS9 support. 2010-05-05 19:11:21 +00:00
queue.py port the queue change r70405 2009-03-21 17:36:10 +00:00
quopri.py convert shebang lines: python -> python3 2010-03-11 22:53:45 +00:00
random.py Issue #7435: Remove duplicate int/long tests, and other 2009-12-05 20:28:34 +00:00
re.py Merged revisions 70090 via svnmerge from 2009-03-02 05:21:55 +00:00
reprlib.py
rlcompleter.py
runpy.py PEP 3147 2010-04-17 00:19:56 +00:00
sched.py Merged revisions 72932 via svnmerge from 2009-05-26 07:51:03 +00:00
shelve.py Merged revisions 78141-78142 via svnmerge from 2010-02-11 02:42:19 +00:00
shlex.py
shutil.py Merged revisions 80837 via svnmerge from 2010-05-05 22:43:04 +00:00
site.py Merged revisions 81465-81466,81468,81679,81735,81760,81868,82183 via svnmerge from 2010-06-27 21:45:24 +00:00
smtpd.py Merged revisions 82404 via svnmerge from 2010-06-30 17:47:39 +00:00
smtplib.py convert shebang lines: python -> python3 2010-03-11 22:53:45 +00:00
sndhdr.py
socket.py Merged revisions 74426 via svnmerge from 2010-01-04 04:50:36 +00:00
socketserver.py Merged revisions 80484 via svnmerge from 2010-04-25 22:01:43 +00:00
sre_compile.py
sre_constants.py
sre_parse.py #6509: fix re.sub to work properly when the pattern, the string, and the replacement were all bytes. Patch by Antoine Pitrou. 2010-03-06 15:24:08 +00:00
ssl.py Issue #4870: Add an options attribute to SSL contexts, as well as 2010-05-21 09:56:06 +00:00
stat.py
string.py Merged revisions 75070 via svnmerge from 2009-09-26 12:33:22 +00:00
stringprep.py
struct.py Issue #8973: Add __all__ to struct module, so that help(struct) correctly 2010-06-12 15:17:02 +00:00
subprocess.py Merged revisions 82075 via svnmerge from 2010-06-18 20:03:54 +00:00
sunau.py Issue #8897: Fix sunau module, use bytes to write the header. Patch written by 2010-06-07 20:14:04 +00:00
symbol.py convert shebang lines: python -> python3 2010-03-11 22:53:45 +00:00
symtable.py simplify this expression 2009-06-28 19:30:36 +00:00
sysconfig.py Fix for buildbot failure in r81999. 2010-06-15 21:19:50 +00:00
tabnanny.py Issue #8774: tabnanny uses the encoding cookie (#coding:...) to use the correct 2010-05-21 10:52:08 +00:00
tarfile.py Issue #8784: Set tarfile default encoding to 'utf-8' on Windows. 2010-06-11 23:46:47 +00:00
telnetlib.py - fix issue #6106, Telnet.process_rawq default handling of WILL/WONT/DO/DONT 2009-07-26 22:23:04 +00:00
tempfile.py #6077: on Windows, fix truncation of a tempfile.TemporaryFile opened in "wt+" mode: 2009-11-30 00:08:56 +00:00
textwrap.py Merged revisions 74779-74786,74793,74795,74811,74860-74861,74863,74876,74886,74896,74901,74903,74908,74912,74930,74933,74943,74946,74952-74955,75015,75019,75032,75068,75076,75095,75098,75102,75129,75139,75230 via svnmerge from 2009-10-04 14:49:41 +00:00
this.py
threading.py Issue #850728: Add a *timeout* parameter to the acquire() method of 2010-04-17 23:51:58 +00:00
timeit.py convert shebang lines: python -> python3 2010-03-11 22:53:45 +00:00
token.py convert shebang lines: python -> python3 2010-03-11 22:53:45 +00:00
tokenize.py fix for files with coding cookies and BOMs 2010-03-18 22:34:15 +00:00
trace.py convert shebang lines: python -> python3 2010-03-11 22:53:45 +00:00
traceback.py Issue #4486: When an exception has an explicit cause, do not print its implicit context too. 2009-11-28 16:12:28 +00:00
tty.py
turtle.py Merged revisions 79297,79310,79382,79425-79427,79450 via svnmerge from 2010-03-28 00:25:02 +00:00
types.py
uu.py convert shebang lines: python -> python3 2010-03-11 22:53:45 +00:00
uuid.py Merged revisions 82276 via svnmerge from 2010-06-27 12:45:47 +00:00
warnings.py Merged revisions 77402,77505,77510 via svnmerge from 2010-06-28 00:01:59 +00:00
wave.py use floor division where needed #7681 2010-01-13 03:49:50 +00:00
weakref.py Issue #7105: Make WeakKeyDictionary and WeakValueDictionary robust against 2010-01-08 17:54:23 +00:00
webbrowser.py Remove conditional import of 'ic', that module 2010-05-30 15:46:48 +00:00
wsgiref.egg-info
xdrlib.py
zipfile.py PEP 3147 2010-04-17 00:19:56 +00:00