cpython/Lib/importlib/NOTES

109 lines
2.2 KiB
Plaintext
Raw Normal View History

to do
/////
* Refactor source/bytecode finder/loader code such that bytecode support is a
subclass of source support (makes it nicer for VMs that don't use CPython
bytecode).
+ PyLoader (for ABC)
- get_code for source only
+ PyFileLoader(PyLoader)
- get_data
- source_mtime
- source_path
+PyPycLoader (PyLoader, for ABC)
- get_code for source and bytecode
+ PyPycFileLoader(PyPycLoader, PyFileLoader)
- bytecode_path
- write_bytecode
2009-01-25 21:54:40 -04:00
* Implement PEP 302 protocol for loaders (should just be a matter of testing).
+ Source/bytecode.
* Public API left to expose (w/ docs!)
+ abc
- Finder
* find_module
- Loader
* load_module
- (?) Importer(Finder, Loader)
- ResourceLoader(Loader)
* get_data
- InspectLoader(Loader)
* is_package
* get_code
* get_source
- (?) SourceLoader(ResourceLoader)
* source_path
* bytecode_path
* write_bytecode (not abstract)
+ util
- set___package__ decorator
+ machinery
- Extensions importers
* ExtensionFinder
* (?) Loader
- Source/bytecode importers
* SourceFinder
* (?) Loader
2009-02-20 22:51:12 -04:00
+ test (Really want to worry about compatibility with future versions?)
- abc
* FinderTests [doc]
* LoaderTests [doc]
* Remove ``import *`` from importlib.__init__.
* Remove __all__ from importlib._bootstrap.
* Add leading underscores to all objects in importlib._bootstrap that are not
publicly exposed.
* Make sure that there is documentation *somewhere* fully explaining the
semantics of import that can be referenced from the package's documentation
(even if it is in the package documentation itself, although it might be best
in the language specification).
2009-02-01 01:55:23 -04:00
* Write benchmark suite.
* OPTIMIZE!
+ Fast path absolute name.
+ Fast path pulling from sys.modules.
2009-02-01 01:55:23 -04:00
* Bootstrap importlib as implementation of builtins.__import__
* Replace standard library modules.
+ imp
+ py_compile
+ compileall