blob: 3b000ff7ed21b92482fcbefcd30e0fc2fd24e8aa [file] [log] [blame]
Brett Cannon23cbd8a2009-01-18 00:24:28 +00001to do
2/////
3
Brett Cannon438cecd2009-02-02 20:32:29 +00004* Create sandbox directory for a distutils packaging of what is in Python 2.7.
5
Brett Cannon02a68882009-02-02 05:58:30 +00006* Use rpartition for getting the package of a module.
7
8 + Make sure that an empty string is acceptable for __package__.
9
Brett Cannon23cbd8a2009-01-18 00:24:28 +000010* Create meta_path importer for sys.path.
11
Brett Cannon64a3a652009-02-05 02:53:47 +000012 + Document.
Brett Cannon23cbd8a2009-01-18 00:24:28 +000013
Brett Cannon6411aa52009-02-06 00:07:49 +000014* Refactor __import__.
15
16 + Create a greatest common denominator function for __import__/import_module
17 that takes in an absolute module name and performs the import.
Brett Cannon7f9876c2009-02-06 02:47:33 +000018
19 - Needs of __import__
20
21 * Figure out caller's package.
22 * Import module.
23 * Set __package__.
24 * Figure out what module to return.
25
26 - Needs of import_module
27
28 * Resolve name/level.
29 * Import module.
30
Brett Cannon6411aa52009-02-06 00:07:49 +000031 + Use GCD import for __import__.
32 + Use GCD import for import_module.
33
Brett Cannond0005ff2009-01-26 01:54:40 +000034* Implement PEP 302 protocol for loaders (should just be a matter of testing).
35
36 + Built-in.
37 + Frozen.
38 + Extension.
39 + Source/bytecode.
40
Brett Cannon6411aa52009-02-06 00:07:49 +000041* Public API left to expose (w/ docs!)
Brett Cannon5abdc932009-01-22 22:43:07 +000042
Brett Cannon23cbd8a2009-01-18 00:24:28 +000043 + abc
Brett Cannon5abdc932009-01-22 22:43:07 +000044
Brett Cannon23cbd8a2009-01-18 00:24:28 +000045 - Finder
Brett Cannon5abdc932009-01-22 22:43:07 +000046
Brett Cannon23cbd8a2009-01-18 00:24:28 +000047 * find_module
Brett Cannon5abdc932009-01-22 22:43:07 +000048
Brett Cannon23cbd8a2009-01-18 00:24:28 +000049 - Loader
Brett Cannon5abdc932009-01-22 22:43:07 +000050
Brett Cannon23cbd8a2009-01-18 00:24:28 +000051 * load_module
Brett Cannon5abdc932009-01-22 22:43:07 +000052
Brett Cannon6411aa52009-02-06 00:07:49 +000053 - (?) Importer(Finder, Loader)
54
Brett Cannon23cbd8a2009-01-18 00:24:28 +000055 - ResourceLoader(Loader)
Brett Cannon5abdc932009-01-22 22:43:07 +000056
Brett Cannon23cbd8a2009-01-18 00:24:28 +000057 * get_data
Brett Cannon5abdc932009-01-22 22:43:07 +000058
Brett Cannon23cbd8a2009-01-18 00:24:28 +000059 - InspectLoader(Loader)
Brett Cannon5abdc932009-01-22 22:43:07 +000060
Brett Cannon23cbd8a2009-01-18 00:24:28 +000061 * is_package
62 * get_code
63 * get_source
Brett Cannon5abdc932009-01-22 22:43:07 +000064
Brett Cannon23cbd8a2009-01-18 00:24:28 +000065 - (?) SourceLoader(ResourceLoader)
Brett Cannon5abdc932009-01-22 22:43:07 +000066
Brett Cannon23cbd8a2009-01-18 00:24:28 +000067 * source_path
68 * bytecode_path
69 * write_bytecode
Brett Cannon5abdc932009-01-22 22:43:07 +000070
Brett Cannon23cbd8a2009-01-18 00:24:28 +000071 + util
Brett Cannon5abdc932009-01-22 22:43:07 +000072
Brett Cannon23cbd8a2009-01-18 00:24:28 +000073 - get_module decorator (new name)
74 - check_name decorator (new name)
Brett Cannond0005ff2009-01-26 01:54:40 +000075 - resolve_name
Brett Cannon5abdc932009-01-22 22:43:07 +000076
77 + machinery
78
Brett Cannon23cbd8a2009-01-18 00:24:28 +000079 - (?) Chained path hook/finder
Brett Cannon23cbd8a2009-01-18 00:24:28 +000080 - (?) FileFinder
81 - Extensions importers
Brett Cannon5abdc932009-01-22 22:43:07 +000082
Brett Cannon23cbd8a2009-01-18 00:24:28 +000083 * ExtensionFinder
84 * (?) Loader
Brett Cannon5abdc932009-01-22 22:43:07 +000085
Brett Cannon23cbd8a2009-01-18 00:24:28 +000086 - Source/bytecode importers
Brett Cannon5abdc932009-01-22 22:43:07 +000087
Brett Cannon23cbd8a2009-01-18 00:24:28 +000088 * SourceFinder
89 * (?) Loader
Brett Cannon24b6a2c2009-01-18 00:36:55 +000090
Brett Cannon20b56e12009-02-01 05:55:23 +000091* Write benchmark suite.
92
93* OPTIMIZE!
94
Brett Cannon6411aa52009-02-06 00:07:49 +000095 + Fast path absolute name.
96 + Fast path pulling from sys.modules.
Brett Cannon20b56e12009-02-01 05:55:23 +000097
Brett Cannon24b6a2c2009-01-18 00:36:55 +000098* Bootstrap importlib as implementation of builtins.__import__
Brett Cannon438cecd2009-02-02 20:32:29 +000099
100* Replace standard library modules.
101
102 + imp
103 + py_compile
104 + compileall