mirror of
https://github.com/python/cpython.git
synced 2025-07-24 03:35:53 +00:00
Add importlib.machinery with its first tenants, BuitinImporter and
FrozenImporter. Docs forthcoming. I plan on all finders and loaders (and most likely hooks) to live in imoprtlib.machinery. Utility stuff will end up in importlib.util. Higher-level API stuff will stay on imoprtlib directly (e.g. import_module).
This commit is contained in:
parent
7b3c89d88c
commit
5abdc93eb8
7 changed files with 68 additions and 75 deletions
|
@ -1,9 +1,16 @@
|
|||
to do
|
||||
/////
|
||||
|
||||
* Document:
|
||||
|
||||
+ The terms "importer", "finder", and "loader".
|
||||
+ machinery.BuiltinImporter.
|
||||
+ machinery.FrozenImporter.
|
||||
|
||||
* Expose resolve_name().
|
||||
|
||||
* Backport to Python 2.7.
|
||||
|
||||
+ import_module
|
||||
+ resolve_name
|
||||
|
||||
|
@ -11,9 +18,11 @@ to do
|
|||
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).
|
||||
|
@ -22,12 +31,14 @@ to do
|
|||
- 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.
|
||||
|
@ -36,39 +47,59 @@ to do
|
|||
* 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 (?)
|
||||
|
||||
+ machinery
|
||||
|
||||
- (?) Chained path hook/finder
|
||||
- BuiltinImporter
|
||||
- FrozenImporter
|
||||
- (?) FileFinder
|
||||
- Extensions importers
|
||||
|
||||
* ExtensionFinder
|
||||
* (?) Loader
|
||||
|
||||
- Source/bytecode importers
|
||||
|
||||
* SourceFinder
|
||||
* (?) Loader
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue