blob: bdbedec653e34759030e1e562d30ad1995f39c89 [file] [log] [blame]
Brett Cannon23cbd8a2009-01-18 00:24:28 +00001to do
2/////
3
Brett Cannon4b4a4a52009-02-15 05:46:50 +00004* Change failed loading based on PEP 302 changes.
5
Brett Cannonc1761b72009-02-09 21:51:29 +00006* Refactor source/bytecode finder/loader code such that bytecode support is a
7 subclass of source support (makes it nicer for VMs that don't use CPython
8 bytecode).
9
Brett Cannond0005ff2009-01-26 01:54:40 +000010* Implement PEP 302 protocol for loaders (should just be a matter of testing).
11
12 + Built-in.
13 + Frozen.
14 + Extension.
15 + Source/bytecode.
16
Brett Cannon6411aa52009-02-06 00:07:49 +000017* Public API left to expose (w/ docs!)
Brett Cannon5abdc932009-01-22 22:43:07 +000018
Brett Cannon23cbd8a2009-01-18 00:24:28 +000019 + abc
Brett Cannon5abdc932009-01-22 22:43:07 +000020
Brett Cannon23cbd8a2009-01-18 00:24:28 +000021 - Finder
Brett Cannon5abdc932009-01-22 22:43:07 +000022
Brett Cannon23cbd8a2009-01-18 00:24:28 +000023 * find_module
Brett Cannon5abdc932009-01-22 22:43:07 +000024
Brett Cannon23cbd8a2009-01-18 00:24:28 +000025 - Loader
Brett Cannon5abdc932009-01-22 22:43:07 +000026
Brett Cannon23cbd8a2009-01-18 00:24:28 +000027 * load_module
Brett Cannon5abdc932009-01-22 22:43:07 +000028
Brett Cannon6411aa52009-02-06 00:07:49 +000029 - (?) Importer(Finder, Loader)
30
Brett Cannon23cbd8a2009-01-18 00:24:28 +000031 - ResourceLoader(Loader)
Brett Cannon5abdc932009-01-22 22:43:07 +000032
Brett Cannon23cbd8a2009-01-18 00:24:28 +000033 * get_data
Brett Cannon5abdc932009-01-22 22:43:07 +000034
Brett Cannon23cbd8a2009-01-18 00:24:28 +000035 - InspectLoader(Loader)
Brett Cannon5abdc932009-01-22 22:43:07 +000036
Brett Cannon23cbd8a2009-01-18 00:24:28 +000037 * is_package
38 * get_code
39 * get_source
Brett Cannon5abdc932009-01-22 22:43:07 +000040
Brett Cannon23cbd8a2009-01-18 00:24:28 +000041 - (?) SourceLoader(ResourceLoader)
Brett Cannon5abdc932009-01-22 22:43:07 +000042
Brett Cannon23cbd8a2009-01-18 00:24:28 +000043 * source_path
44 * bytecode_path
Brett Cannon2c318a12009-02-07 01:15:27 +000045 * write_bytecode (not abstract)
Brett Cannon5abdc932009-01-22 22:43:07 +000046
Brett Cannonb2071f82009-02-07 02:14:07 +000047 + util
Brett Cannon5abdc932009-01-22 22:43:07 +000048
Brett Cannon2c318a12009-02-07 01:15:27 +000049 - get_module decorator (rename: module_for_loader)
Brett Cannon36d1f3e2009-02-07 01:57:14 +000050 - set___package__ decorator
Brett Cannon5abdc932009-01-22 22:43:07 +000051
52 + machinery
53
Brett Cannon23cbd8a2009-01-18 00:24:28 +000054 - (?) Chained path hook/finder
Brett Cannon23cbd8a2009-01-18 00:24:28 +000055 - Extensions importers
Brett Cannon5abdc932009-01-22 22:43:07 +000056
Brett Cannon23cbd8a2009-01-18 00:24:28 +000057 * ExtensionFinder
58 * (?) Loader
Brett Cannon5abdc932009-01-22 22:43:07 +000059
Brett Cannon23cbd8a2009-01-18 00:24:28 +000060 - Source/bytecode importers
Brett Cannon5abdc932009-01-22 22:43:07 +000061
Brett Cannon23cbd8a2009-01-18 00:24:28 +000062 * SourceFinder
63 * (?) Loader
Brett Cannon24b6a2c2009-01-18 00:36:55 +000064
Brett Cannon2c318a12009-02-07 01:15:27 +000065 - PathFinder
66
Brett Cannondebb98d2009-02-16 04:18:01 +000067* Make sure that there is documentation *somewhere* fully explaining the
68semantics of import that can be referenced from the package's documentation
69(even if it is in the package documentation itself, although it might be best
70in the language specification).
71
Brett Cannon20b56e12009-02-01 05:55:23 +000072* Write benchmark suite.
73
74* OPTIMIZE!
75
Brett Cannon6411aa52009-02-06 00:07:49 +000076 + Fast path absolute name.
77 + Fast path pulling from sys.modules.
Brett Cannon20b56e12009-02-01 05:55:23 +000078
Brett Cannon24b6a2c2009-01-18 00:36:55 +000079* Bootstrap importlib as implementation of builtins.__import__
Brett Cannon438cecd2009-02-02 20:32:29 +000080
81* Replace standard library modules.
82
83 + imp
84 + py_compile
85 + compileall