diff --git a/.lgtm.yml b/.lgtm.yml new file mode 100644 index 00000000..3e45b21e --- /dev/null +++ b/.lgtm.yml @@ -0,0 +1,3 @@ +path_classifiers: + thirdparty: + - "mitogen/compat/*.py" diff --git a/mitogen/core.py b/mitogen/core.py index d2d20723..8f633f1f 100644 --- a/mitogen/core.py +++ b/mitogen/core.py @@ -121,9 +121,15 @@ class TimeoutError(Error): class Dead(object): + def __hash__(self): + return hash(Dead) + def __eq__(self, other): return type(other) is Dead + def __ne__(self, other): + return type(other) is not Dead + def __reduce__(self): return (_unpickle_dead, ()) diff --git a/mitogen/parent.py b/mitogen/parent.py index 53be0726..3966c34b 100644 --- a/mitogen/parent.py +++ b/mitogen/parent.py @@ -519,7 +519,14 @@ class ModuleForwarder(object): tup = self.importer._cache[fullname] if tup is not None: for related in tup[4]: - rtup = self.importer._cache[fullname] + LOG.debug('%r._on_get_module(): trying related %r', + self, related) + try: + rtup = self.importer._cache[related] + except KeyError: + LOG.warn('%r._on_get_module(): skipping %r, not in cache', + self, related) + continue self._send_one_module(msg, rtup) self._send_one_module(msg, tup) diff --git a/mitogen/ssh.py b/mitogen/ssh.py index a1bc8f18..1db34d5c 100644 --- a/mitogen/ssh.py +++ b/mitogen/ssh.py @@ -126,5 +126,4 @@ class Stream(mitogen.parent.Stream): LOG.debug('sending password') self.transmit_side.write(self.password + '\n') password_sent = True - else: - raise mitogen.core.StreamError('bootstrap failed') + raise mitogen.core.StreamError('bootstrap failed') diff --git a/mitogen/sudo.py b/mitogen/sudo.py index 808f459d..78b9dd7b 100644 --- a/mitogen/sudo.py +++ b/mitogen/sudo.py @@ -107,5 +107,4 @@ class Stream(mitogen.parent.Stream): LOG.debug('sending password') os.write(self.transmit_side.fd, self.password + '\n') password_sent = True - else: - raise mitogen.core.StreamError('bootstrap failed') + raise mitogen.core.StreamError('bootstrap failed')