blob: d607449cd5325de3835789adbc44bfc7232dc096 [file] [log] [blame]
Brett Cannon23cbd8a2009-01-18 00:24:28 +00001to do
2/////
3
Brett Cannon23cbd8a2009-01-18 00:24:28 +00004* Create reasonable base tests that all finders and loaders must pass so
5 that various implementations can just subclass as needed.
6
Brett Cannon23cbd8a2009-01-18 00:24:28 +00007* Reorganize support code.
Brett Cannon5abdc932009-01-22 22:43:07 +00008
Brett Cannon23cbd8a2009-01-18 00:24:28 +00009 + Separate general support code and importer-specific (e.g. source) support
10 code.
11 - Create support modules for each subdirectory (as needed).
12 + Add a file loader mock that returns monotonically increasing mtime.
13 - Use in source/test_reload.
14 - Use in source/test_load_module_mixed.
15
16* API simplification?
Brett Cannon5abdc932009-01-22 22:43:07 +000017
Brett Cannon23cbd8a2009-01-18 00:24:28 +000018 + read_source -> get_data/source_path
19 + read_bytecode -> get_data/bytecode_path
20 + write_bytecode -> complete set of bytes for bytecode instead of
21 individual arguments.
22
Brett Cannon23cbd8a2009-01-18 00:24:28 +000023* Create meta_path importer for sys.path.
24
25* OPTIMIZE!
Brett Cannon5abdc932009-01-22 22:43:07 +000026
Brett Cannon23cbd8a2009-01-18 00:24:28 +000027 + Write benchmark suite.
28 + Fast path common cases.
Brett Cannon5abdc932009-01-22 22:43:07 +000029
Brett Cannon23cbd8a2009-01-18 00:24:28 +000030 - Absolute name from sys.path.
31 - Relative name from sys.path.
32
Brett Cannond0005ff2009-01-26 01:54:40 +000033* Implement PEP 302 protocol for loaders (should just be a matter of testing).
34
35 + Built-in.
36 + Frozen.
37 + Extension.
38 + Source/bytecode.
39
Brett Cannonafccd632009-01-20 02:21:27 +000040* Public API to expose (w/ docs!)
Brett Cannon5abdc932009-01-22 22:43:07 +000041
Brett Cannon23cbd8a2009-01-18 00:24:28 +000042 + abc
Brett Cannon5abdc932009-01-22 22:43:07 +000043
Brett Cannon23cbd8a2009-01-18 00:24:28 +000044 - Finder
Brett Cannon5abdc932009-01-22 22:43:07 +000045
Brett Cannon23cbd8a2009-01-18 00:24:28 +000046 * find_module
Brett Cannon5abdc932009-01-22 22:43:07 +000047
Brett Cannon23cbd8a2009-01-18 00:24:28 +000048 - Loader
Brett Cannon5abdc932009-01-22 22:43:07 +000049
Brett Cannon23cbd8a2009-01-18 00:24:28 +000050 * load_module
Brett Cannon5abdc932009-01-22 22:43:07 +000051
Brett Cannon23cbd8a2009-01-18 00:24:28 +000052 - ResourceLoader(Loader)
Brett Cannon5abdc932009-01-22 22:43:07 +000053
Brett Cannon23cbd8a2009-01-18 00:24:28 +000054 * get_data
Brett Cannon5abdc932009-01-22 22:43:07 +000055
Brett Cannon23cbd8a2009-01-18 00:24:28 +000056 - InspectLoader(Loader)
Brett Cannon5abdc932009-01-22 22:43:07 +000057
Brett Cannon23cbd8a2009-01-18 00:24:28 +000058 * is_package
59 * get_code
60 * get_source
Brett Cannon5abdc932009-01-22 22:43:07 +000061
Brett Cannon23cbd8a2009-01-18 00:24:28 +000062 - (?) SourceLoader(ResourceLoader)
Brett Cannon5abdc932009-01-22 22:43:07 +000063
Brett Cannon23cbd8a2009-01-18 00:24:28 +000064 * source_path
65 * bytecode_path
66 * write_bytecode
Brett Cannon5abdc932009-01-22 22:43:07 +000067
Brett Cannon23cbd8a2009-01-18 00:24:28 +000068 + util
Brett Cannon5abdc932009-01-22 22:43:07 +000069
Brett Cannon23cbd8a2009-01-18 00:24:28 +000070 - get_module decorator (new name)
71 - check_name decorator (new name)
Brett Cannond0005ff2009-01-26 01:54:40 +000072 - resolve_name
Brett Cannon5abdc932009-01-22 22:43:07 +000073
74 + machinery
75
Brett Cannon23cbd8a2009-01-18 00:24:28 +000076 - (?) Chained path hook/finder
77 - BuiltinImporter
78 - FrozenImporter
79 - (?) FileFinder
80 - Extensions importers
Brett Cannon5abdc932009-01-22 22:43:07 +000081
Brett Cannon23cbd8a2009-01-18 00:24:28 +000082 * ExtensionFinder
83 * (?) Loader
Brett Cannon5abdc932009-01-22 22:43:07 +000084
Brett Cannon23cbd8a2009-01-18 00:24:28 +000085 - Source/bytecode importers
Brett Cannon5abdc932009-01-22 22:43:07 +000086
Brett Cannon23cbd8a2009-01-18 00:24:28 +000087 * SourceFinder
88 * (?) Loader
Brett Cannon24b6a2c2009-01-18 00:36:55 +000089
90* Bootstrap importlib as implementation of builtins.__import__