blob: 6d6464c28af92e2672f0afd17b6ebcf1b3ae4fea [file] [log] [blame]
Brett Cannon23cbd8a2009-01-18 00:24:28 +00001to do
2/////
3
Brett Cannonafccd632009-01-20 02:21:27 +00004* Expose resolve_name().
Brett Cannon23cbd8a2009-01-18 00:24:28 +00005
Brett Cannonafccd632009-01-20 02:21:27 +00006* Backport to Python 2.7.
Brett Cannon5abdc932009-01-22 22:43:07 +00007
Brett Cannon23cbd8a2009-01-18 00:24:28 +00008 + import_module
Brett Cannonafccd632009-01-20 02:21:27 +00009 + resolve_name
Brett Cannon23cbd8a2009-01-18 00:24:28 +000010
11* Create reasonable base tests that all finders and loaders must pass so
12 that various implementations can just subclass as needed.
13
14* Expose built-in and frozen importers.
Brett Cannon5abdc932009-01-22 22:43:07 +000015
Brett Cannon23cbd8a2009-01-18 00:24:28 +000016 + Make staticmethods so that class can be used directly.
17
18* Reorganize support code.
Brett Cannon5abdc932009-01-22 22:43:07 +000019
Brett Cannon23cbd8a2009-01-18 00:24:28 +000020 + Separate general support code and importer-specific (e.g. source) support
21 code.
22 - Create support modules for each subdirectory (as needed).
23 + Add a file loader mock that returns monotonically increasing mtime.
24 - Use in source/test_reload.
25 - Use in source/test_load_module_mixed.
26
27* API simplification?
Brett Cannon5abdc932009-01-22 22:43:07 +000028
Brett Cannon23cbd8a2009-01-18 00:24:28 +000029 + read_source -> get_data/source_path
30 + read_bytecode -> get_data/bytecode_path
31 + write_bytecode -> complete set of bytes for bytecode instead of
32 individual arguments.
33
34* Implement PEP 302 protocol for loaders (should just be a matter of testing).
Brett Cannon5abdc932009-01-22 22:43:07 +000035
Brett Cannon23cbd8a2009-01-18 00:24:28 +000036 + Built-in.
37 + Frozen.
38 + Extension.
39 + Source/bytecode.
40
41* Create meta_path importer for sys.path.
42
43* OPTIMIZE!
Brett Cannon5abdc932009-01-22 22:43:07 +000044
Brett Cannon23cbd8a2009-01-18 00:24:28 +000045 + Write benchmark suite.
46 + Fast path common cases.
Brett Cannon5abdc932009-01-22 22:43:07 +000047
Brett Cannon23cbd8a2009-01-18 00:24:28 +000048 - Absolute name from sys.path.
49 - Relative name from sys.path.
50
Brett Cannonafccd632009-01-20 02:21:27 +000051* Public API to expose (w/ docs!)
Brett Cannon5abdc932009-01-22 22:43:07 +000052
Brett Cannon23cbd8a2009-01-18 00:24:28 +000053 + abc
Brett Cannon5abdc932009-01-22 22:43:07 +000054
Brett Cannon23cbd8a2009-01-18 00:24:28 +000055 - Finder
Brett Cannon5abdc932009-01-22 22:43:07 +000056
Brett Cannon23cbd8a2009-01-18 00:24:28 +000057 * find_module
Brett Cannon5abdc932009-01-22 22:43:07 +000058
Brett Cannon23cbd8a2009-01-18 00:24:28 +000059 - Loader
Brett Cannon5abdc932009-01-22 22:43:07 +000060
Brett Cannon23cbd8a2009-01-18 00:24:28 +000061 * load_module
Brett Cannon5abdc932009-01-22 22:43:07 +000062
Brett Cannon23cbd8a2009-01-18 00:24:28 +000063 - ResourceLoader(Loader)
Brett Cannon5abdc932009-01-22 22:43:07 +000064
Brett Cannon23cbd8a2009-01-18 00:24:28 +000065 * get_data
Brett Cannon5abdc932009-01-22 22:43:07 +000066
Brett Cannon23cbd8a2009-01-18 00:24:28 +000067 - InspectLoader(Loader)
Brett Cannon5abdc932009-01-22 22:43:07 +000068
Brett Cannon23cbd8a2009-01-18 00:24:28 +000069 * is_package
70 * get_code
71 * get_source
Brett Cannon5abdc932009-01-22 22:43:07 +000072
Brett Cannon23cbd8a2009-01-18 00:24:28 +000073 - (?) SourceLoader(ResourceLoader)
Brett Cannon5abdc932009-01-22 22:43:07 +000074
Brett Cannon23cbd8a2009-01-18 00:24:28 +000075 * source_path
76 * bytecode_path
77 * write_bytecode
Brett Cannon5abdc932009-01-22 22:43:07 +000078
Brett Cannon23cbd8a2009-01-18 00:24:28 +000079 + util
Brett Cannon5abdc932009-01-22 22:43:07 +000080
Brett Cannon23cbd8a2009-01-18 00:24:28 +000081 - get_module decorator (new name)
82 - check_name decorator (new name)
Brett Cannon5abdc932009-01-22 22:43:07 +000083
84 + machinery
85
Brett Cannon23cbd8a2009-01-18 00:24:28 +000086 - (?) Chained path hook/finder
87 - BuiltinImporter
88 - FrozenImporter
89 - (?) FileFinder
90 - Extensions importers
Brett Cannon5abdc932009-01-22 22:43:07 +000091
Brett Cannon23cbd8a2009-01-18 00:24:28 +000092 * ExtensionFinder
93 * (?) Loader
Brett Cannon5abdc932009-01-22 22:43:07 +000094
Brett Cannon23cbd8a2009-01-18 00:24:28 +000095 - Source/bytecode importers
Brett Cannon5abdc932009-01-22 22:43:07 +000096
Brett Cannon23cbd8a2009-01-18 00:24:28 +000097 * SourceFinder
98 * (?) Loader
Brett Cannon24b6a2c2009-01-18 00:36:55 +000099
100* Bootstrap importlib as implementation of builtins.__import__