blob: 028f78948c40bcc0156c49384879057c9ff76808 [file] [log] [blame]
Brett Cannon23cbd8a2009-01-18 00:24:28 +00001to do
2/////
3
Brett Cannon5abdc932009-01-22 22:43:07 +00004* Document:
5
6 + The terms "importer", "finder", and "loader".
7 + machinery.BuiltinImporter.
8 + machinery.FrozenImporter.
9
Brett Cannonafccd632009-01-20 02:21:27 +000010* Expose resolve_name().
Brett Cannon23cbd8a2009-01-18 00:24:28 +000011
Brett Cannonafccd632009-01-20 02:21:27 +000012* Backport to Python 2.7.
Brett Cannon5abdc932009-01-22 22:43:07 +000013
Brett Cannon23cbd8a2009-01-18 00:24:28 +000014 + import_module
Brett Cannonafccd632009-01-20 02:21:27 +000015 + resolve_name
Brett Cannon23cbd8a2009-01-18 00:24:28 +000016
17* Create reasonable base tests that all finders and loaders must pass so
18 that various implementations can just subclass as needed.
19
20* Expose built-in and frozen importers.
Brett Cannon5abdc932009-01-22 22:43:07 +000021
Brett Cannon23cbd8a2009-01-18 00:24:28 +000022 + Make staticmethods so that class can be used directly.
23
24* Reorganize support code.
Brett Cannon5abdc932009-01-22 22:43:07 +000025
Brett Cannon23cbd8a2009-01-18 00:24:28 +000026 + Separate general support code and importer-specific (e.g. source) support
27 code.
28 - Create support modules for each subdirectory (as needed).
29 + Add a file loader mock that returns monotonically increasing mtime.
30 - Use in source/test_reload.
31 - Use in source/test_load_module_mixed.
32
33* API simplification?
Brett Cannon5abdc932009-01-22 22:43:07 +000034
Brett Cannon23cbd8a2009-01-18 00:24:28 +000035 + read_source -> get_data/source_path
36 + read_bytecode -> get_data/bytecode_path
37 + write_bytecode -> complete set of bytes for bytecode instead of
38 individual arguments.
39
40* Implement PEP 302 protocol for loaders (should just be a matter of testing).
Brett Cannon5abdc932009-01-22 22:43:07 +000041
Brett Cannon23cbd8a2009-01-18 00:24:28 +000042 + Built-in.
43 + Frozen.
44 + Extension.
45 + Source/bytecode.
46
47* Create meta_path importer for sys.path.
48
49* OPTIMIZE!
Brett Cannon5abdc932009-01-22 22:43:07 +000050
Brett Cannon23cbd8a2009-01-18 00:24:28 +000051 + Write benchmark suite.
52 + Fast path common cases.
Brett Cannon5abdc932009-01-22 22:43:07 +000053
Brett Cannon23cbd8a2009-01-18 00:24:28 +000054 - Absolute name from sys.path.
55 - Relative name from sys.path.
56
Brett Cannonafccd632009-01-20 02:21:27 +000057* Public API to expose (w/ docs!)
Brett Cannon5abdc932009-01-22 22:43:07 +000058
Brett Cannon23cbd8a2009-01-18 00:24:28 +000059 + abc
Brett Cannon5abdc932009-01-22 22:43:07 +000060
Brett Cannon23cbd8a2009-01-18 00:24:28 +000061 - Finder
Brett Cannon5abdc932009-01-22 22:43:07 +000062
Brett Cannon23cbd8a2009-01-18 00:24:28 +000063 * find_module
Brett Cannon5abdc932009-01-22 22:43:07 +000064
Brett Cannon23cbd8a2009-01-18 00:24:28 +000065 - Loader
Brett Cannon5abdc932009-01-22 22:43:07 +000066
Brett Cannon23cbd8a2009-01-18 00:24:28 +000067 * load_module
Brett Cannon5abdc932009-01-22 22:43:07 +000068
Brett Cannon23cbd8a2009-01-18 00:24:28 +000069 - ResourceLoader(Loader)
Brett Cannon5abdc932009-01-22 22:43:07 +000070
Brett Cannon23cbd8a2009-01-18 00:24:28 +000071 * get_data
Brett Cannon5abdc932009-01-22 22:43:07 +000072
Brett Cannon23cbd8a2009-01-18 00:24:28 +000073 - InspectLoader(Loader)
Brett Cannon5abdc932009-01-22 22:43:07 +000074
Brett Cannon23cbd8a2009-01-18 00:24:28 +000075 * is_package
76 * get_code
77 * get_source
Brett Cannon5abdc932009-01-22 22:43:07 +000078
Brett Cannon23cbd8a2009-01-18 00:24:28 +000079 - (?) SourceLoader(ResourceLoader)
Brett Cannon5abdc932009-01-22 22:43:07 +000080
Brett Cannon23cbd8a2009-01-18 00:24:28 +000081 * source_path
82 * bytecode_path
83 * write_bytecode
Brett Cannon5abdc932009-01-22 22:43:07 +000084
Brett Cannon23cbd8a2009-01-18 00:24:28 +000085 + util
Brett Cannon5abdc932009-01-22 22:43:07 +000086
Brett Cannon23cbd8a2009-01-18 00:24:28 +000087 - get_module decorator (new name)
88 - check_name decorator (new name)
Brett Cannon5abdc932009-01-22 22:43:07 +000089
90 + machinery
91
Brett Cannon23cbd8a2009-01-18 00:24:28 +000092 - (?) Chained path hook/finder
93 - BuiltinImporter
94 - FrozenImporter
95 - (?) FileFinder
96 - Extensions importers
Brett Cannon5abdc932009-01-22 22:43:07 +000097
Brett Cannon23cbd8a2009-01-18 00:24:28 +000098 * ExtensionFinder
99 * (?) Loader
Brett Cannon5abdc932009-01-22 22:43:07 +0000100
Brett Cannon23cbd8a2009-01-18 00:24:28 +0000101 - Source/bytecode importers
Brett Cannon5abdc932009-01-22 22:43:07 +0000102
Brett Cannon23cbd8a2009-01-18 00:24:28 +0000103 * SourceFinder
104 * (?) Loader
Brett Cannon24b6a2c2009-01-18 00:36:55 +0000105
106* Bootstrap importlib as implementation of builtins.__import__