to do ///// * Use rpartition for getting the package of a module. + Make sure that an empty string is acceptable for __package__. * Create meta_path importer for sys.path. + Create hook. + Rewrite Import to use the hook. * Implement PEP 302 protocol for loaders (should just be a matter of testing). + Built-in. + Frozen. + Extension. + Source/bytecode. * Public API to expose (w/ docs!) + abc - Finder * find_module - Loader * load_module - ResourceLoader(Loader) * get_data - InspectLoader(Loader) * is_package * get_code * get_source - (?) SourceLoader(ResourceLoader) * source_path * bytecode_path * write_bytecode + util - get_module decorator (new name) - check_name decorator (new name) - resolve_name + machinery - (?) Chained path hook/finder - BuiltinImporter - FrozenImporter - (?) FileFinder - Extensions importers * ExtensionFinder * (?) Loader - Source/bytecode importers * SourceFinder * (?) Loader * Write benchmark suite. * OPTIMIZE! + Fast path common cases. - Absolute name from sys.path. - Relative name from sys.path. * Bootstrap importlib as implementation of builtins.__import__