diff options
author | Florian Bruhin <me@the-compiler.org> | 2019-10-22 10:32:14 +0200 |
---|---|---|
committer | Florian Bruhin <me@the-compiler.org> | 2019-10-22 17:23:50 +0200 |
commit | d02641e88d1a1e402443a83850597a64a7e3f60b (patch) | |
tree | 26aaf4b5f4ea80e014043178708b7e8641418dbb /qutebrowser/commands | |
parent | eef463c2be224e78da2df67e59bd7ef9b131b3a0 (diff) | |
download | qutebrowser-d02641e88d1a1e402443a83850597a64a7e3f60b.tar.gz qutebrowser-d02641e88d1a1e402443a83850597a64a7e3f60b.zip |
mypy: Fix new isuses in commands.userscripts
Diffstat (limited to 'qutebrowser/commands')
-rw-r--r-- | qutebrowser/commands/userscripts.py | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/qutebrowser/commands/userscripts.py b/qutebrowser/commands/userscripts.py index 484a6c09f..2f6275478 100644 --- a/qutebrowser/commands/userscripts.py +++ b/qutebrowser/commands/userscripts.py @@ -60,7 +60,7 @@ class _QtFIFOReader(QObject): # pylint: enable=no-member,useless-suppression self._fifo = os.fdopen(fd, 'r') self._notifier = QSocketNotifier(fd, QSocketNotifier.Read, self) - self._notifier.activated.connect(self.read_line) + self._notifier.activated.connect(self.read_line) # type: ignore @pyqtSlot() def read_line(self): @@ -117,8 +117,8 @@ class _BaseUserscriptRunner(QObject): self._env = {} # type: typing.MutableMapping[str, str] self._text_stored = False self._html_stored = False - self._args = None - self._kwargs = None + self._args = () # type: typing.Tuple[typing.Any, ...] + self._kwargs = {} def store_text(self, text): """Called as callback when the text is ready from the web backend.""" @@ -157,9 +157,11 @@ class _BaseUserscriptRunner(QObject): env: A dictionary of environment variables to add. verbose: Show notifications when the command started/exited. """ + assert self._filepath is not None self._env['QUTE_FIFO'] = self._filepath if env is not None: self._env.update(env) + self._proc = guiprocess.GUIProcess('userscript', additional_env=self._env, verbose=verbose, parent=self) @@ -169,14 +171,17 @@ class _BaseUserscriptRunner(QObject): def _cleanup(self): """Clean up temporary files.""" + assert self._filepath is not None if self._cleaned_up: return self._cleaned_up = True + tempfiles = [self._filepath] if 'QUTE_HTML' in self._env: tempfiles.append(self._env['QUTE_HTML']) if 'QUTE_TEXT' in self._env: tempfiles.append(self._env['QUTE_TEXT']) + for fn in tempfiles: log.procs.debug("Deleting temporary file {}.".format(fn)) try: @@ -186,6 +191,7 @@ class _BaseUserscriptRunner(QObject): # executed async. message.error("Failed to delete tempfile {} ({})!".format( fn, e)) + self._filepath = None self._proc = None self._env = {} @@ -255,7 +261,7 @@ class _POSIXUserscriptRunner(_BaseUserscriptRunner): return self._reader = _QtFIFOReader(self._filepath) - self._reader.got_line.connect(self.got_cmd) + self._reader.got_line.connect(self.got_cmd) # type: ignore @pyqtSlot() def on_proc_finished(self): @@ -267,8 +273,10 @@ class _POSIXUserscriptRunner(_BaseUserscriptRunner): def _cleanup(self): """Clean up reader and temporary files.""" + assert self._reader is not None if self._cleaned_up: return + log.procs.debug("Cleaning up") self._reader.cleanup() self._reader.deleteLater() @@ -292,6 +300,7 @@ class _WindowsUserscriptRunner(_BaseUserscriptRunner): def _cleanup(self): """Clean up temporary files after the userscript finished.""" + assert self._filepath is not None if self._cleaned_up: return |