mirror of
https://github.com/python/cpython.git
synced 2024-12-01 03:01:36 +01:00
afccd63ac9
key refactorings occur more of the API will be exposed and documented.
76 lines
2.0 KiB
Plaintext
76 lines
2.0 KiB
Plaintext
to do
|
|
/////
|
|
|
|
* Expose resolve_name().
|
|
|
|
* Backport to Python 2.7.
|
|
+ import_module
|
|
+ resolve_name
|
|
|
|
* Create reasonable base tests that all finders and loaders must pass so
|
|
that various implementations can just subclass as needed.
|
|
|
|
* Expose built-in and frozen importers.
|
|
+ Make staticmethods so that class can be used directly.
|
|
|
|
* Reorganize support code.
|
|
+ Separate general support code and importer-specific (e.g. source) support
|
|
code.
|
|
- Create support modules for each subdirectory (as needed).
|
|
+ Add a file loader mock that returns monotonically increasing mtime.
|
|
- Use in source/test_reload.
|
|
- Use in source/test_load_module_mixed.
|
|
|
|
* API simplification?
|
|
+ read_source -> get_data/source_path
|
|
+ read_bytecode -> get_data/bytecode_path
|
|
+ write_bytecode -> complete set of bytes for bytecode instead of
|
|
individual arguments.
|
|
|
|
* Implement PEP 302 protocol for loaders (should just be a matter of testing).
|
|
+ Built-in.
|
|
+ Frozen.
|
|
+ Extension.
|
|
+ Source/bytecode.
|
|
|
|
* Create meta_path importer for sys.path.
|
|
|
|
* OPTIMIZE!
|
|
+ Write benchmark suite.
|
|
+ Fast path common cases.
|
|
- Absolute name from sys.path.
|
|
- Relative name from sys.path.
|
|
|
|
* 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)
|
|
+ hooks (?)
|
|
- (?) Chained path hook/finder
|
|
- BuiltinImporter
|
|
- FrozenImporter
|
|
- (?) FileFinder
|
|
- Extensions importers
|
|
* ExtensionFinder
|
|
* (?) Loader
|
|
- Source/bytecode importers
|
|
* SourceFinder
|
|
* (?) Loader
|
|
|
|
* Bootstrap importlib as implementation of builtins.__import__
|