cpython/Misc
Brett Cannon f23e374441 Implement importlib.abc.SourceLoader and deprecate PyLoader and PyPycLoader.
SourceLoader is a simplification of both PyLoader and PyPycLoader. If one only
wants to use source, then they need to only implement get_data and
get_filename. To also use bytecode -- sourceless loading is not supported --
then two abstract methods -- path_mtime and set_data -- need to be implemented.
Compared to PyLoader and PyPycLoader, there are less abstract methods
introduced and bytecode files become an optimization controlled by the ABC and
hidden from the user (this need came about as PEP 3147 showed that not treating
bytecode as an optimization can cause problems for compatibility).

PyLoader is deprecated in favor of SourceLoader. To be compatible from Python
3.1 onwards, a subclass need only use simple methods for source_path and
is_package. Otherwise conditional subclassing based on whether Python 3.1 or
Python 3.2 is being is the only change. The documentation and docstring for
PyLoader explain what is exactly needed.

PyPycLoader is deprecated also in favor of SourceLoader. Because PEP 3147
shifted bytecode path details so much, there is no foolproof way to provide
backwards-compatibility with SourceLoader. Because of this the class is simply
deprecated and users should move to SourceLoader (and optionally PyLoader for
Python 3.1). This does lead to a loss of support for sourceless loading
unfortunately.

At some point before Python 3.2 is released, SourceLoader will be moved over to
importlib._bootstrap so that the core code of importlib relies on the new code
instead of the old PyPycLoader code. This commit is being done now so that
there is no issue in having the API in Python 3.1a1.
2010-06-27 23:57:46 +00:00
..
RPM issue5063: Fixes for building RPM on CentOS plus misc .spec file enhancements. 2010-01-16 04:35:26 +00:00
TextMate/Python-Dev.tmbundle
Vim Blocked revisions 76154 via svnmerge 2009-11-08 21:41:27 +00:00
ACKS Issue #5094: The ``datetime`` module now has a simple concrete class 2010-06-14 14:15:50 +00:00
AIX-NOTES
HISTORY Merged revisions 78760,78771-78773,78802,78922,78952 via svnmerge from 2010-03-14 10:56:14 +00:00
NEWS Implement importlib.abc.SourceLoader and deprecate PyLoader and PyPycLoader. 2010-06-27 23:57:46 +00:00
NEWS.help
PURIFY.README
Porting Merged revisions 78966,78970,79018,79026-79027,79055,79156,79159,79163-79164,79173,79176,79194,79208,79212 via svnmerge from 2010-03-21 23:13:07 +00:00
README Merged revisions 75370-75372 via svnmerge from 2009-10-11 21:24:34 +00:00
README.OpenBSD
README.coverity
README.klocwork
README.valgrind
RFD
SpecialBuilds.txt Merged revisions 78760,78771-78773,78802,78922,78952 via svnmerge from 2010-03-14 10:56:14 +00:00
build.sh Merged revisions 78880 via svnmerge from 2010-03-12 21:29:28 +00:00
cheatsheet
developers.txt Merged revisions 81531 via svnmerge from 2010-05-25 20:07:11 +00:00
gdbinit Make similar changes to 3.x version. 2010-01-14 01:14:50 +00:00
indent.pro
maintainers.rst Added myself as a maintainer of time and datetime modules. 2010-06-08 17:06:48 +00:00
pymemcompat.h
python-config.in Fix python-config to use the new sysconfig module; silences deprecation warnings. 2010-04-06 21:30:42 +00:00
python-mode.el
python-wing.wpr
python.man Merged revisions 79878-79880 via svnmerge from 2010-04-07 04:04:10 +00:00
python.pc.in
setuid-prog.c Recorded merge of revisions 81029 via svnmerge from 2010-05-09 15:52:27 +00:00
valgrind-python.supp
vgrindefs

README

Python Misc subdirectory
========================

This directory contains files that wouldn't fit in elsewhere.  Some
documents are only of historic importance.

Files found here
----------------

ACKS		Acknowledgements
AIX-NOTES	Notes for building Python on AIX
build.sh	Script to build and test latest Python from the repository
cheatsheet	Quick summary of Python by Ken Manheimer
developers.txt	A history of who got developer permissions, and why
gdbinit		Handy stuff to put in your .gdbinit file, if you use gdb
HISTORY		News from previous releases -- oldest last
indent.pro	GNU indent profile approximating my C style
maintainers.txt	A list of maintainers for library modules
NEWS		News for this release (for some meaning of "this")
NEWS.help	How to edit NEWS
Porting		Mini-FAQ on porting to new platforms
PURIFY.README	Information for Purify users
pymemcompat.h	Memory interface compatibility file.
python.man	UNIX man page for the python interpreter
python-mode.el	Emacs mode for editing Python programs
python.pc.in	Package configuration info template for pkg-config
python-wing.wpr Wing IDE project file
README		The file you're reading now
README.coverity	Information about running Coverity's Prevent on Python
README.klocwork	Information about running Klocwork's K7 on Python
README.OpenBSD	Help for building problems on OpenBSD
README.valgrind	Information for Valgrind users, see valgrind-python.supp
RFD		Request For Discussion about a Python newsgroup
RPM		(Old) tools to build RPMs
setuid-prog.c	C helper program for set-uid Python scripts
SpecialBuilds.txt     Describes extra symbols you can set for debug builds
TextMate	A TextMate bundle for Python development
valgrind-python.supp  Valgrind suppression file, see README.valgrind
vgrindefs	Python configuration for vgrind (a generic pretty printer)
Vim		Python development utilities for the Vim editor