• Brett Cannon's avatar
    Implement importlib.abc.SourceLoader and deprecate PyLoader and PyPycLoader. · f23e3744
    Brett Cannon yazdı
    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.
    f23e3744
Adı
Son kayıt (commit)
Son güncelleme
..
RPM Loading commit data...
TextMate/Python-Dev.tmbundle Loading commit data...
Vim Loading commit data...
ACKS Loading commit data...
AIX-NOTES Loading commit data...
HISTORY Loading commit data...
NEWS Loading commit data...
NEWS.help Loading commit data...
PURIFY.README Loading commit data...
Porting Loading commit data...
README Loading commit data...
README.OpenBSD Loading commit data...
README.coverity Loading commit data...
README.klocwork Loading commit data...
README.valgrind Loading commit data...
RFD Loading commit data...
SpecialBuilds.txt Loading commit data...
build.sh Loading commit data...
cheatsheet Loading commit data...
developers.txt Loading commit data...
gdbinit Loading commit data...
indent.pro Loading commit data...
maintainers.rst Loading commit data...
pymemcompat.h Loading commit data...
python-config.in Loading commit data...
python-mode.el Loading commit data...
python-wing.wpr Loading commit data...
python.man Loading commit data...
python.pc.in Loading commit data...
setuid-prog.c Loading commit data...
valgrind-python.supp Loading commit data...
vgrindefs Loading commit data...