blob: 4a473850bba79971cd8b74ade137a854422860d1 [file] [log] [blame]
Brett Cannon23cbd8a2009-01-18 00:24:28 +00001to do
2/////
3
Brett Cannonc1761b72009-02-09 21:51:29 +00004* Refactor source/bytecode finder/loader code such that bytecode support is a
5 subclass of source support (makes it nicer for VMs that don't use CPython
6 bytecode).
7
Brett Cannond0005ff2009-01-26 01:54:40 +00008* Implement PEP 302 protocol for loaders (should just be a matter of testing).
9
Brett Cannond0005ff2009-01-26 01:54:40 +000010 + Source/bytecode.
11
Brett Cannon6411aa52009-02-06 00:07:49 +000012* Public API left to expose (w/ docs!)
Brett Cannon5abdc932009-01-22 22:43:07 +000013
Brett Cannond2e7b332009-02-17 02:45:03 +000014 + abc
Brett Cannon5abdc932009-01-22 22:43:07 +000015
Brett Cannond2e7b332009-02-17 02:45:03 +000016 - Finder
Brett Cannon5abdc932009-01-22 22:43:07 +000017
Brett Cannond2e7b332009-02-17 02:45:03 +000018 * find_module
Brett Cannon5abdc932009-01-22 22:43:07 +000019
Brett Cannond2e7b332009-02-17 02:45:03 +000020 - Loader
Brett Cannon5abdc932009-01-22 22:43:07 +000021
Brett Cannond2e7b332009-02-17 02:45:03 +000022 * load_module
Brett Cannon5abdc932009-01-22 22:43:07 +000023
Brett Cannond2e7b332009-02-17 02:45:03 +000024 - (?) Importer(Finder, Loader)
25 - ResourceLoader(Loader)
Brett Cannon6411aa52009-02-06 00:07:49 +000026
Brett Cannond2e7b332009-02-17 02:45:03 +000027 * get_data
Brett Cannon5abdc932009-01-22 22:43:07 +000028
Brett Cannond2e7b332009-02-17 02:45:03 +000029 - InspectLoader(Loader)
Brett Cannon5abdc932009-01-22 22:43:07 +000030
Brett Cannond2e7b332009-02-17 02:45:03 +000031 * is_package
32 * get_code
33 * get_source
Brett Cannon5abdc932009-01-22 22:43:07 +000034
Brett Cannond2e7b332009-02-17 02:45:03 +000035 - (?) SourceLoader(ResourceLoader)
Brett Cannon5abdc932009-01-22 22:43:07 +000036
Brett Cannond2e7b332009-02-17 02:45:03 +000037 * source_path
38 * bytecode_path
39 * write_bytecode (not abstract)
Brett Cannon5abdc932009-01-22 22:43:07 +000040
Brett Cannond2e7b332009-02-17 02:45:03 +000041 + util
Brett Cannon5abdc932009-01-22 22:43:07 +000042
Brett Cannond2e7b332009-02-17 02:45:03 +000043 - set___package__ decorator
Brett Cannon5abdc932009-01-22 22:43:07 +000044
Brett Cannond2e7b332009-02-17 02:45:03 +000045 + machinery
Brett Cannon5abdc932009-01-22 22:43:07 +000046
Brett Cannond2e7b332009-02-17 02:45:03 +000047 - (?) Chained path hook/finder
48 - Extensions importers
Brett Cannon5abdc932009-01-22 22:43:07 +000049
Brett Cannond2e7b332009-02-17 02:45:03 +000050 * ExtensionFinder
51 * (?) Loader
Brett Cannon5abdc932009-01-22 22:43:07 +000052
Brett Cannond2e7b332009-02-17 02:45:03 +000053 - Source/bytecode importers
Brett Cannon5abdc932009-01-22 22:43:07 +000054
Brett Cannond2e7b332009-02-17 02:45:03 +000055 * SourceFinder
56 * (?) Loader
Brett Cannon5abdc932009-01-22 22:43:07 +000057
Brett Cannond2e7b332009-02-17 02:45:03 +000058 + test
Brett Cannon24b6a2c2009-01-18 00:36:55 +000059
Brett Cannond2e7b332009-02-17 02:45:03 +000060 - abc
61
62 * FinderTests [doc]
63 * LoaderTests [doc]
Brett Cannon2c318a12009-02-07 01:15:27 +000064
Brett Cannondebb98d2009-02-16 04:18:01 +000065* Make sure that there is documentation *somewhere* fully explaining the
66semantics of import that can be referenced from the package's documentation
67(even if it is in the package documentation itself, although it might be best
68in the language specification).
69
Brett Cannon20b56e12009-02-01 05:55:23 +000070* Write benchmark suite.
71
72* OPTIMIZE!
73
Brett Cannon6411aa52009-02-06 00:07:49 +000074 + Fast path absolute name.
75 + Fast path pulling from sys.modules.
Brett Cannon20b56e12009-02-01 05:55:23 +000076
Brett Cannon24b6a2c2009-01-18 00:36:55 +000077* Bootstrap importlib as implementation of builtins.__import__
Brett Cannon438cecd2009-02-02 20:32:29 +000078
79* Replace standard library modules.
80
81 + imp
82 + py_compile
83 + compileall