diff --git a/qutebrowser/api/cmdutils.py b/qutebrowser/api/cmdutils.py index 7fb95a934..3939dbb0a 100644 --- a/qutebrowser/api/cmdutils.py +++ b/qutebrowser/api/cmdutils.py @@ -35,8 +35,8 @@ Possible values: import inspect -from typing import Any, Callable, Protocol, Optional, cast -from collections.abc import Iterable +from typing import Any, Protocol, Optional, cast +from collections.abc import Iterable, Callable from qutebrowser.utils import qtutils from qutebrowser.commands import command, cmdexc diff --git a/qutebrowser/api/hook.py b/qutebrowser/api/hook.py index 9a1a7bc9c..f62514e6a 100644 --- a/qutebrowser/api/hook.py +++ b/qutebrowser/api/hook.py @@ -7,7 +7,8 @@ """Hooks for extensions.""" import importlib -from typing import Callable, Any +from typing import Any +from collections.abc import Callable from qutebrowser.extensions import loader diff --git a/qutebrowser/browser/browsertab.py b/qutebrowser/browser/browsertab.py index f64b413d9..74eacfcd0 100644 --- a/qutebrowser/browser/browsertab.py +++ b/qutebrowser/browser/browsertab.py @@ -9,8 +9,8 @@ import pathlib import itertools import functools import dataclasses -from typing import (cast, TYPE_CHECKING, Any, Callable, Optional, Union) -from collections.abc import Iterable, Sequence +from typing import (cast, TYPE_CHECKING, Any, Optional, Union) +from collections.abc import Iterable, Sequence, Callable from qutebrowser.qt import machinery from qutebrowser.qt.core import (pyqtSignal, pyqtSlot, QUrl, QObject, QSizeF, Qt, diff --git a/qutebrowser/browser/commands.py b/qutebrowser/browser/commands.py index 5135f0fa6..a62a00797 100644 --- a/qutebrowser/browser/commands.py +++ b/qutebrowser/browser/commands.py @@ -7,7 +7,8 @@ import os.path import shlex import functools -from typing import cast, Callable, Union, Optional +from typing import cast, Union, Optional +from collections.abc import Callable from qutebrowser.qt.widgets import QApplication, QTabBar from qutebrowser.qt.core import Qt, QUrl, QEvent, QUrlQuery diff --git a/qutebrowser/browser/downloadview.py b/qutebrowser/browser/downloadview.py index 04bcd4cf7..5f67b344d 100644 --- a/qutebrowser/browser/downloadview.py +++ b/qutebrowser/browser/downloadview.py @@ -5,8 +5,8 @@ """The ListView to display downloads in.""" import functools -from typing import Callable, Union -from collections.abc import MutableSequence +from typing import Union +from collections.abc import MutableSequence, Callable from qutebrowser.qt.core import pyqtSlot, QSize, Qt from qutebrowser.qt.widgets import QListView, QSizePolicy, QMenu, QStyleFactory diff --git a/qutebrowser/browser/hints.py b/qutebrowser/browser/hints.py index 2cb0cdfb6..b3f45610d 100644 --- a/qutebrowser/browser/hints.py +++ b/qutebrowser/browser/hints.py @@ -12,8 +12,15 @@ import html import enum import dataclasses from string import ascii_lowercase -from typing import (TYPE_CHECKING, Callable, Optional) -from collections.abc import Iterable, Iterator, Mapping, MutableSequence, Sequence +from typing import (TYPE_CHECKING, Optional) +from collections.abc import ( + Iterable, + Iterator, + Mapping, + MutableSequence, + Sequence, + Callable, +) from qutebrowser.qt.core import pyqtSignal, pyqtSlot, QObject, Qt, QUrl from qutebrowser.qt.widgets import QLabel diff --git a/qutebrowser/browser/qutescheme.py b/qutebrowser/browser/qutescheme.py index 98d059502..a6a4e8763 100644 --- a/qutebrowser/browser/qutescheme.py +++ b/qutebrowser/browser/qutescheme.py @@ -18,8 +18,8 @@ import textwrap import urllib import collections import secrets -from typing import TypeVar, Callable, Optional, Union -from collections.abc import Sequence +from typing import TypeVar, Optional, Union +from collections.abc import Sequence, Callable from qutebrowser.qt.core import QUrlQuery, QUrl diff --git a/qutebrowser/browser/shared.py b/qutebrowser/browser/shared.py index 4d22a4525..aab5b9876 100644 --- a/qutebrowser/browser/shared.py +++ b/qutebrowser/browser/shared.py @@ -10,8 +10,8 @@ import html import enum import netrc import tempfile -from typing import Callable, Optional -from collections.abc import Mapping, Iterable, Iterator +from typing import Optional +from collections.abc import Mapping, Iterable, Iterator, Callable from qutebrowser.qt.core import QUrl, pyqtBoundSignal diff --git a/qutebrowser/browser/webengine/webengineelem.py b/qutebrowser/browser/webengine/webengineelem.py index b73459d3f..f65044998 100644 --- a/qutebrowser/browser/webengine/webengineelem.py +++ b/qutebrowser/browser/webengine/webengineelem.py @@ -5,8 +5,8 @@ """QtWebEngine specific part of the web element API.""" from typing import ( - TYPE_CHECKING, Any, Callable, Optional, Union) -from collections.abc import Iterator + TYPE_CHECKING, Any, Optional, Union) +from collections.abc import Iterator, Callable from qutebrowser.qt.core import QRect, QEventLoop from qutebrowser.qt.widgets import QApplication diff --git a/qutebrowser/browser/webkit/mhtml.py b/qutebrowser/browser/webkit/mhtml.py index 98a715edc..11e381929 100644 --- a/qutebrowser/browser/webkit/mhtml.py +++ b/qutebrowser/browser/webkit/mhtml.py @@ -19,8 +19,7 @@ import email.mime.multipart import email.message import quopri import dataclasses -from typing import Callable -from collections.abc import MutableMapping +from collections.abc import MutableMapping, Callable from qutebrowser.qt.core import QUrl diff --git a/qutebrowser/commands/command.py b/qutebrowser/commands/command.py index eb985dca0..620f6a4ae 100644 --- a/qutebrowser/commands/command.py +++ b/qutebrowser/commands/command.py @@ -9,9 +9,8 @@ import collections import traceback import typing import dataclasses -from typing import (Any, Union, Optional, - Callable) -from collections.abc import MutableMapping, MutableSequence +from typing import (Any, Union, Optional) +from collections.abc import MutableMapping, MutableSequence, Callable from qutebrowser.api import cmdutils from qutebrowser.commands import cmdexc, argparser diff --git a/qutebrowser/commands/runners.py b/qutebrowser/commands/runners.py index f12f795f2..636f1bf6b 100644 --- a/qutebrowser/commands/runners.py +++ b/qutebrowser/commands/runners.py @@ -7,8 +7,8 @@ import traceback import re import contextlib -from typing import TYPE_CHECKING, Callable -from collections.abc import Iterator, Mapping, MutableMapping +from typing import TYPE_CHECKING +from collections.abc import Iterator, Mapping, MutableMapping, Callable from qutebrowser.qt.core import pyqtSlot, QUrl, QObject diff --git a/qutebrowser/completion/models/util.py b/qutebrowser/completion/models/util.py index d1c646661..fb48017e8 100644 --- a/qutebrowser/completion/models/util.py +++ b/qutebrowser/completion/models/util.py @@ -4,8 +4,7 @@ """Utility functions for completion models.""" -from typing import Callable -from collections.abc import Sequence +from collections.abc import Sequence, Callable from qutebrowser.utils import usertypes from qutebrowser.misc import objects diff --git a/qutebrowser/components/misccommands.py b/qutebrowser/components/misccommands.py index 64914bc95..b4eaa55d1 100644 --- a/qutebrowser/components/misccommands.py +++ b/qutebrowser/components/misccommands.py @@ -11,8 +11,8 @@ import os import signal import logging import pathlib -from typing import Optional, Callable -from collections.abc import Sequence +from typing import Optional +from collections.abc import Sequence, Callable try: import hunter diff --git a/qutebrowser/components/readlinecommands.py b/qutebrowser/components/readlinecommands.py index ca071448e..a26f7ea4c 100644 --- a/qutebrowser/components/readlinecommands.py +++ b/qutebrowser/components/readlinecommands.py @@ -5,8 +5,8 @@ """Bridge to provide readline-like shortcuts for QLineEdits.""" import os -from typing import Optional, Any, Callable -from collections.abc import Iterable, MutableMapping +from typing import Optional, Any +from collections.abc import Iterable, MutableMapping, Callable from qutebrowser.qt.widgets import QApplication, QLineEdit diff --git a/qutebrowser/components/scrollcommands.py b/qutebrowser/components/scrollcommands.py index 219f884a0..da4544bd7 100644 --- a/qutebrowser/components/scrollcommands.py +++ b/qutebrowser/components/scrollcommands.py @@ -4,7 +4,7 @@ """Scrolling-related commands.""" -from typing import Callable +from collections.abc import Callable from qutebrowser.api import cmdutils, apitypes diff --git a/qutebrowser/config/config.py b/qutebrowser/config/config.py index b24c9b502..d286bf733 100644 --- a/qutebrowser/config/config.py +++ b/qutebrowser/config/config.py @@ -7,8 +7,8 @@ import copy import contextlib import functools -from typing import (TYPE_CHECKING, Any, Callable, Optional, cast) -from collections.abc import Iterator, Mapping, MutableMapping, MutableSequence +from typing import (TYPE_CHECKING, Any, Optional, cast) +from collections.abc import Iterator, Mapping, MutableMapping, MutableSequence, Callable from qutebrowser.qt.core import pyqtSignal, QObject, QUrl diff --git a/qutebrowser/config/configtypes.py b/qutebrowser/config/configtypes.py index a74675cd4..d6782322f 100644 --- a/qutebrowser/config/configtypes.py +++ b/qutebrowser/config/configtypes.py @@ -36,9 +36,9 @@ import functools import operator import json import dataclasses -from typing import (Any, Callable, Optional, Union) +from typing import Any, Optional, Union from re import Pattern -from collections.abc import Iterable, Iterator, Sequence +from collections.abc import Iterable, Iterator, Sequence, Callable import yaml from qutebrowser.qt.core import QUrl, Qt diff --git a/qutebrowser/config/qtargs.py b/qutebrowser/config/qtargs.py index 994af4619..cafc6ff38 100644 --- a/qutebrowser/config/qtargs.py +++ b/qutebrowser/config/qtargs.py @@ -8,6 +8,9 @@ import os import sys import argparse import pathlib +# Using deprecated typing.Callable as a WORKAROUND because +# collections.abc.Callable inside Optional[...]/Union[...] +# is broken on Python 3.9.0 and 3.9.1 from typing import Any, Optional, Union, Callable from collections.abc import Iterator, Sequence diff --git a/qutebrowser/config/websettings.py b/qutebrowser/config/websettings.py index f2ce7081d..2b71216bd 100644 --- a/qutebrowser/config/websettings.py +++ b/qutebrowser/config/websettings.py @@ -8,7 +8,8 @@ import re import argparse import functools import dataclasses -from typing import Any, Callable, Optional, Union +from typing import Any, Optional, Union +from collections.abc import Callable from qutebrowser.qt.core import QUrl, pyqtSlot, qVersion from qutebrowser.qt.gui import QFont diff --git a/qutebrowser/extensions/interceptors.py b/qutebrowser/extensions/interceptors.py index 1d7ef437e..1032fc6d0 100644 --- a/qutebrowser/extensions/interceptors.py +++ b/qutebrowser/extensions/interceptors.py @@ -6,7 +6,8 @@ import enum import dataclasses -from typing import Callable, Optional +from typing import Optional +from collections.abc import Callable from qutebrowser.qt.core import QUrl diff --git a/qutebrowser/extensions/loader.py b/qutebrowser/extensions/loader.py index d658466f2..a6917be35 100644 --- a/qutebrowser/extensions/loader.py +++ b/qutebrowser/extensions/loader.py @@ -10,8 +10,8 @@ import pathlib import importlib import argparse import dataclasses -from typing import Callable, Optional -from collections.abc import Iterator +from typing import Optional +from collections.abc import Iterator, Callable from qutebrowser.qt.core import pyqtSlot diff --git a/qutebrowser/keyinput/modeman.py b/qutebrowser/keyinput/modeman.py index 9eb0bc17e..681deeff6 100644 --- a/qutebrowser/keyinput/modeman.py +++ b/qutebrowser/keyinput/modeman.py @@ -6,8 +6,8 @@ import functools import dataclasses -from typing import Callable, Union, cast -from collections.abc import Mapping, MutableMapping +from typing import Union, cast +from collections.abc import Mapping, MutableMapping, Callable from qutebrowser.qt import machinery from qutebrowser.qt.core import pyqtSlot, pyqtSignal, Qt, QObject, QEvent diff --git a/qutebrowser/misc/debugcachestats.py b/qutebrowser/misc/debugcachestats.py index 70f088418..7deb8bdcd 100644 --- a/qutebrowser/misc/debugcachestats.py +++ b/qutebrowser/misc/debugcachestats.py @@ -9,8 +9,8 @@ dependencies as possible to avoid cyclic dependencies. """ import weakref -from typing import Any, Callable, Optional, TypeVar -from collections.abc import Mapping +from typing import Any, Optional, TypeVar +from collections.abc import Mapping, Callable from qutebrowser.utils import log diff --git a/qutebrowser/misc/throttle.py b/qutebrowser/misc/throttle.py index f4c50c09a..78bc7f29b 100644 --- a/qutebrowser/misc/throttle.py +++ b/qutebrowser/misc/throttle.py @@ -6,8 +6,8 @@ import dataclasses import time -from typing import Any, Callable, Optional -from collections.abc import Mapping, Sequence +from typing import Any, Optional +from collections.abc import Mapping, Sequence, Callable from qutebrowser.qt.core import QObject diff --git a/qutebrowser/qt/_core_pyqtproperty.py b/qutebrowser/qt/_core_pyqtproperty.py index 02c1cab97..50752de41 100644 --- a/qutebrowser/qt/_core_pyqtproperty.py +++ b/qutebrowser/qt/_core_pyqtproperty.py @@ -9,7 +9,7 @@ https://github.com/python-qt-tools/PyQt5-stubs/blob/5.15.6.0/PyQt5-stubs/QtCore. """ # flake8: noqa -# pylint: disable=invalid-name,missing-class-docstring,too-many-arguments,redefined-builtin,unused-argument +# pylint: disable=invalid-name,missing-class-docstring,too-many-arguments,redefined-builtin,unused-argument,deprecated-typing-alias import typing from PyQt6.QtCore import QObject, pyqtSignal diff --git a/qutebrowser/utils/debug.py b/qutebrowser/utils/debug.py index b5cddbd2d..de7f87f1e 100644 --- a/qutebrowser/utils/debug.py +++ b/qutebrowser/utils/debug.py @@ -12,8 +12,8 @@ import functools import datetime import types from typing import ( - Any, Callable, Optional, Union) -from collections.abc import Mapping, MutableSequence, Sequence + Any, Optional, Union) +from collections.abc import Mapping, MutableSequence, Sequence, Callable from qutebrowser.qt.core import Qt, QEvent, QMetaMethod, QObject, pyqtBoundSignal diff --git a/qutebrowser/utils/docutils.py b/qutebrowser/utils/docutils.py index 0aa860726..c357a2cd4 100644 --- a/qutebrowser/utils/docutils.py +++ b/qutebrowser/utils/docutils.py @@ -10,8 +10,8 @@ import inspect import os.path import collections import enum -from typing import Any, Callable, Optional, Union -from collections.abc import MutableMapping +from typing import Any, Optional, Union +from collections.abc import MutableMapping, Callable import qutebrowser from qutebrowser.utils import log, utils diff --git a/qutebrowser/utils/jinja.py b/qutebrowser/utils/jinja.py index ede9dbb40..c12bac5aa 100644 --- a/qutebrowser/utils/jinja.py +++ b/qutebrowser/utils/jinja.py @@ -10,8 +10,8 @@ import posixpath import functools import contextlib import html -from typing import Any, Callable -from collections.abc import Iterator +from typing import Any +from collections.abc import Iterator, Callable import jinja2 import jinja2.nodes diff --git a/qutebrowser/utils/message.py b/qutebrowser/utils/message.py index e122fbc8b..8fc8f6fbe 100644 --- a/qutebrowser/utils/message.py +++ b/qutebrowser/utils/message.py @@ -10,8 +10,8 @@ import dataclasses import traceback -from typing import Any, Callable, Union, Optional -from collections.abc import Iterable +from typing import Any, Union, Optional +from collections.abc import Iterable, Callable from qutebrowser.qt.core import pyqtSignal, pyqtBoundSignal, QObject diff --git a/qutebrowser/utils/objreg.py b/qutebrowser/utils/objreg.py index 7d3df728a..aa5bfc7f9 100644 --- a/qutebrowser/utils/objreg.py +++ b/qutebrowser/utils/objreg.py @@ -7,9 +7,9 @@ import collections import functools -from typing import (TYPE_CHECKING, Any, Callable, +from typing import (TYPE_CHECKING, Any, Optional, Union) -from collections.abc import MutableMapping, MutableSequence, Sequence +from collections.abc import MutableMapping, MutableSequence, Sequence, Callable from qutebrowser.qt.core import QObject, QTimer from qutebrowser.qt.widgets import QApplication diff --git a/qutebrowser/utils/utils.py b/qutebrowser/utils/utils.py index 178e4a306..3f127e37f 100644 --- a/qutebrowser/utils/utils.py +++ b/qutebrowser/utils/utils.py @@ -19,10 +19,10 @@ import contextlib import shlex import sysconfig import mimetypes -from typing import (Any, Callable, IO, +from typing import (Any, IO, Optional, Union, TypeVar, Protocol) -from collections.abc import Iterator, Sequence +from collections.abc import Iterator, Sequence, Callable from qutebrowser.qt.core import QUrl, QVersionNumber, QRect, QPoint from qutebrowser.qt.gui import QClipboard, QDesktopServices diff --git a/tests/helpers/stubs.py b/tests/helpers/stubs.py index 0aa4f1732..50528ee8b 100644 --- a/tests/helpers/stubs.py +++ b/tests/helpers/stubs.py @@ -6,7 +6,8 @@ """Fake objects/stubs.""" -from typing import Any, Callable +from typing import Any +from collections.abc import Callable from unittest import mock import contextlib import shutil