From 5aaa2451a1766c090e7f9db1cdc84f74b58e258b Mon Sep 17 00:00:00 2001 From: David Wilson Date: Thu, 8 Mar 2018 07:29:10 +0545 Subject: [PATCH] importer: _is_stdlib_name() needed to handle relative paths Was causing tons of log spam due to 'skipping absent related name' --- mitogen/master.py | 7 ++++--- mitogen/parent.py | 11 ++++------- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/mitogen/master.py b/mitogen/master.py index 2783cc57..a11edb49 100644 --- a/mitogen/master.py +++ b/mitogen/master.py @@ -62,7 +62,8 @@ def _stdlib_paths(): ] prefixes = (getattr(sys, a) for a in attr_candidates if hasattr(sys, a)) version = 'python%s.%s' % sys.version_info[0:2] - return set(os.path.join(p, 'lib', version) for p in prefixes) + return set(os.path.abspath(os.path.join(p, 'lib', version)) + for p in prefixes) def get_child_modules(path): @@ -283,7 +284,7 @@ class ModuleFinder(object): return False # six installs crap with no __file__ - modpath = getattr(module, '__file__', '') + modpath = os.path.abspath(getattr(module, '__file__', '')) if 'site-packages' in modpath: return False @@ -535,10 +536,10 @@ class ModuleResponder(object): stream.sent_modules.add(fullname) def _on_get_module(self, msg): - LOG.debug('%r.get_module(%r)', self, msg) if msg == mitogen.core._DEAD: return + LOG.debug('%r._on_get_module(%r)', self, msg.data) stream = self._router.stream_by_id(msg.src_id) fullname = msg.data if fullname in stream.sent_modules: diff --git a/mitogen/parent.py b/mitogen/parent.py index ddf9b14a..bd659fde 100644 --- a/mitogen/parent.py +++ b/mitogen/parent.py @@ -532,13 +532,10 @@ class ModuleForwarder(object): tup = self.importer._cache[fullname] if tup is not None: for related in tup[4]: - LOG.debug('%r._on_get_module(): trying related %r', - self, related) - try: - rtup = self.importer._cache[related] - except KeyError: - LOG.debug('%r._on_get_module(): skipping %r, not in cache', - self, related) + rtup = self.importer._cache.get(related) + if not rtup: + LOG.debug('%r._on_get_module(): skipping absent %r', + self, related) continue self._send_one_module(msg, rtup)