blob: 92e2841d9ce2d15eae41004eb6fb28646a580128 [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 Cannon33dbf462009-02-17 07:15:17 +00008 + ExtensionFileFinder
9 + PyFileFinder
10 + PyPycFileFinder
11 + PyFileLoader
12
13 - get_code for source only
14 - get_data
15 - source_mtime
16 - source_path
17
18 + PyPycFileLoader(PyFileLoader)
19
20 - get_code
21 - bytecode_path
22 - write_bytecode
23
Brett Cannond0005ff2009-01-26 01:54:40 +000024* Implement PEP 302 protocol for loaders (should just be a matter of testing).
25
Brett Cannond0005ff2009-01-26 01:54:40 +000026 + Source/bytecode.
27
Brett Cannon6411aa52009-02-06 00:07:49 +000028* Public API left to expose (w/ docs!)
Brett Cannon5abdc932009-01-22 22:43:07 +000029
Brett Cannond2e7b332009-02-17 02:45:03 +000030 + abc
Brett Cannon5abdc932009-01-22 22:43:07 +000031
Brett Cannond2e7b332009-02-17 02:45:03 +000032 - Finder
Brett Cannon5abdc932009-01-22 22:43:07 +000033
Brett Cannond2e7b332009-02-17 02:45:03 +000034 * find_module
Brett Cannon5abdc932009-01-22 22:43:07 +000035
Brett Cannond2e7b332009-02-17 02:45:03 +000036 - Loader
Brett Cannon5abdc932009-01-22 22:43:07 +000037
Brett Cannond2e7b332009-02-17 02:45:03 +000038 * load_module
Brett Cannon5abdc932009-01-22 22:43:07 +000039
Brett Cannond2e7b332009-02-17 02:45:03 +000040 - (?) Importer(Finder, Loader)
41 - ResourceLoader(Loader)
Brett Cannon6411aa52009-02-06 00:07:49 +000042
Brett Cannond2e7b332009-02-17 02:45:03 +000043 * get_data
Brett Cannon5abdc932009-01-22 22:43:07 +000044
Brett Cannond2e7b332009-02-17 02:45:03 +000045 - InspectLoader(Loader)
Brett Cannon5abdc932009-01-22 22:43:07 +000046
Brett Cannond2e7b332009-02-17 02:45:03 +000047 * is_package
48 * get_code
49 * get_source
Brett Cannon5abdc932009-01-22 22:43:07 +000050
Brett Cannond2e7b332009-02-17 02:45:03 +000051 - (?) SourceLoader(ResourceLoader)
Brett Cannon5abdc932009-01-22 22:43:07 +000052
Brett Cannond2e7b332009-02-17 02:45:03 +000053 * source_path
54 * bytecode_path
55 * write_bytecode (not abstract)
Brett Cannon5abdc932009-01-22 22:43:07 +000056
Brett Cannond2e7b332009-02-17 02:45:03 +000057 + util
Brett Cannon5abdc932009-01-22 22:43:07 +000058
Brett Cannond2e7b332009-02-17 02:45:03 +000059 - set___package__ decorator
Brett Cannon5abdc932009-01-22 22:43:07 +000060
Brett Cannond2e7b332009-02-17 02:45:03 +000061 + machinery
Brett Cannon5abdc932009-01-22 22:43:07 +000062
Brett Cannond2e7b332009-02-17 02:45:03 +000063 - Extensions importers
Brett Cannon5abdc932009-01-22 22:43:07 +000064
Brett Cannond2e7b332009-02-17 02:45:03 +000065 * ExtensionFinder
66 * (?) Loader
Brett Cannon5abdc932009-01-22 22:43:07 +000067
Brett Cannond2e7b332009-02-17 02:45:03 +000068 - Source/bytecode importers
Brett Cannon5abdc932009-01-22 22:43:07 +000069
Brett Cannond2e7b332009-02-17 02:45:03 +000070 * SourceFinder
71 * (?) Loader
Brett Cannon5abdc932009-01-22 22:43:07 +000072
Brett Cannon22db67e2009-02-21 02:51:12 +000073 + test (Really want to worry about compatibility with future versions?)
Brett Cannon24b6a2c2009-01-18 00:36:55 +000074
Brett Cannond2e7b332009-02-17 02:45:03 +000075 - abc
76
77 * FinderTests [doc]
78 * LoaderTests [doc]
Brett Cannon2c318a12009-02-07 01:15:27 +000079
Brett Cannona2fcb1d2009-02-21 03:12:17 +000080* Remove ``import *`` from importlib.__init__.
81
82* Remove __all__ from importlib._bootstrap.
83
84* Add leading underscores to all objects in importlib._bootstrap that are not
85 publicly exposed.
86
Brett Cannondebb98d2009-02-16 04:18:01 +000087* Make sure that there is documentation *somewhere* fully explaining the
88semantics of import that can be referenced from the package's documentation
89(even if it is in the package documentation itself, although it might be best
90in the language specification).
91
Brett Cannon20b56e12009-02-01 05:55:23 +000092* Write benchmark suite.
93
94* OPTIMIZE!
95
Brett Cannon6411aa52009-02-06 00:07:49 +000096 + Fast path absolute name.
97 + Fast path pulling from sys.modules.
Brett Cannon20b56e12009-02-01 05:55:23 +000098
Brett Cannon24b6a2c2009-01-18 00:36:55 +000099* Bootstrap importlib as implementation of builtins.__import__
Brett Cannon438cecd2009-02-02 20:32:29 +0000100
101* Replace standard library modules.
102
103 + imp
104 + py_compile
105 + compileall