From 40a50c966c7c92b1abe695fe34a09c72000958f3 Mon Sep 17 00:00:00 2001 From: Thomas Ballinger Date: Thu, 18 Nov 2021 12:16:48 -0800 Subject: [PATCH] __main__ behavior for importcompletion.py --- bpython/importcompletion.py | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/bpython/importcompletion.py b/bpython/importcompletion.py index c5dc28f0..aac0b3b8 100644 --- a/bpython/importcompletion.py +++ b/bpython/importcompletion.py @@ -66,6 +66,7 @@ def __init__( skiplist if skiplist is not None else tuple() ) self.fully_loaded = False + self.print_packages_traversed = False if paths is None: self.modules.update(sys.builtin_module_names) @@ -220,6 +221,8 @@ def find_modules( continue if (stat.st_dev, stat.st_ino) not in self.paths: self.paths.add((stat.st_dev, stat.st_ino)) + if (self.print_packages_traversed): + print(path_real) for subname in self.find_modules(path_real): if subname is None: yield None # take a break to avoid unresponsiveness @@ -250,3 +253,33 @@ def find_coroutine(self) -> Optional[bool]: self.fully_loaded = True return True + + +def discover( + skiplist: Optional[Sequence[str]] = None, + print_packages_traversed=True + ): + module_gatherer = ModuleGatherer(skiplist=skiplist) + module_gatherer.print_packages_traversed = print_packages_traversed + while module_gatherer.find_coroutine(): + pass + + +if __name__ == "__main__": + import argparse + from pathlib import Path + + from bpython.config import Config, default_config_path + + parser = argparse.ArgumentParser() + parser.add_argument( + "--config", + default=default_config_path(), + type=Path, + help="Use CONFIG instead of default config file.", + ) + config = Config(default_config_path()) + discover( + config.import_completion_skiplist, + print_packages_traversed=True + ) pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy