blob: a9f0c175ae7e05688491524d0c3d8967a92b4a7f [file] [log] [blame]
Brett Cannon23cbd8a2009-01-18 00:24:28 +00001to do
2/////
3
Brett Cannond0005ff2009-01-26 01:54:40 +00004* Implement PEP 302 protocol for loaders (should just be a matter of testing).
5
6 + Built-in.
7 + Frozen.
8 + Extension.
9 + Source/bytecode.
10
Brett Cannon6411aa52009-02-06 00:07:49 +000011* Public API left to expose (w/ docs!)
Brett Cannon5abdc932009-01-22 22:43:07 +000012
Brett Cannon23cbd8a2009-01-18 00:24:28 +000013 + abc
Brett Cannon5abdc932009-01-22 22:43:07 +000014
Brett Cannon23cbd8a2009-01-18 00:24:28 +000015 - Finder
Brett Cannon5abdc932009-01-22 22:43:07 +000016
Brett Cannon23cbd8a2009-01-18 00:24:28 +000017 * find_module
Brett Cannon5abdc932009-01-22 22:43:07 +000018
Brett Cannon23cbd8a2009-01-18 00:24:28 +000019 - Loader
Brett Cannon5abdc932009-01-22 22:43:07 +000020
Brett Cannon23cbd8a2009-01-18 00:24:28 +000021 * load_module
Brett Cannon5abdc932009-01-22 22:43:07 +000022
Brett Cannon6411aa52009-02-06 00:07:49 +000023 - (?) Importer(Finder, Loader)
24
Brett Cannon23cbd8a2009-01-18 00:24:28 +000025 - ResourceLoader(Loader)
Brett Cannon5abdc932009-01-22 22:43:07 +000026
Brett Cannon23cbd8a2009-01-18 00:24:28 +000027 * get_data
Brett Cannon5abdc932009-01-22 22:43:07 +000028
Brett Cannon23cbd8a2009-01-18 00:24:28 +000029 - InspectLoader(Loader)
Brett Cannon5abdc932009-01-22 22:43:07 +000030
Brett Cannon23cbd8a2009-01-18 00:24:28 +000031 * is_package
32 * get_code
33 * get_source
Brett Cannon5abdc932009-01-22 22:43:07 +000034
Brett Cannon23cbd8a2009-01-18 00:24:28 +000035 - (?) SourceLoader(ResourceLoader)
Brett Cannon5abdc932009-01-22 22:43:07 +000036
Brett Cannon23cbd8a2009-01-18 00:24:28 +000037 * source_path
38 * bytecode_path
Brett Cannon2c318a12009-02-07 01:15:27 +000039 * write_bytecode (not abstract)
Brett Cannon5abdc932009-01-22 22:43:07 +000040
Brett Cannon36d1f3e2009-02-07 01:57:14 +000041 + util (for decorators, make sure to wrap with functools.wraps)
Brett Cannon5abdc932009-01-22 22:43:07 +000042
Brett Cannon2c318a12009-02-07 01:15:27 +000043 - get_module decorator (rename: module_for_loader)
Brett Cannon36d1f3e2009-02-07 01:57:14 +000044 - set___package__ decorator
Brett Cannon5abdc932009-01-22 22:43:07 +000045
46 + machinery
47
Brett Cannon23cbd8a2009-01-18 00:24:28 +000048 - (?) Chained path hook/finder
Brett Cannon23cbd8a2009-01-18 00:24:28 +000049 - (?) FileFinder
50 - Extensions importers
Brett Cannon5abdc932009-01-22 22:43:07 +000051
Brett Cannon23cbd8a2009-01-18 00:24:28 +000052 * ExtensionFinder
53 * (?) Loader
Brett Cannon5abdc932009-01-22 22:43:07 +000054
Brett Cannon23cbd8a2009-01-18 00:24:28 +000055 - Source/bytecode importers
Brett Cannon5abdc932009-01-22 22:43:07 +000056
Brett Cannon23cbd8a2009-01-18 00:24:28 +000057 * SourceFinder
58 * (?) Loader
Brett Cannon24b6a2c2009-01-18 00:36:55 +000059
Brett Cannon2c318a12009-02-07 01:15:27 +000060 - PathFinder
61
Brett Cannon20b56e12009-02-01 05:55:23 +000062* Write benchmark suite.
63
64* OPTIMIZE!
65
Brett Cannon6411aa52009-02-06 00:07:49 +000066 + Fast path absolute name.
67 + Fast path pulling from sys.modules.
Brett Cannon20b56e12009-02-01 05:55:23 +000068
Brett Cannon24b6a2c2009-01-18 00:36:55 +000069* Bootstrap importlib as implementation of builtins.__import__
Brett Cannon438cecd2009-02-02 20:32:29 +000070
71* Replace standard library modules.
72
73 + imp
74 + py_compile
75 + compileall