diff options
author | Florian Bruhin <me@the-compiler.org> | 2022-03-30 11:17:12 +0200 |
---|---|---|
committer | Florian Bruhin <me@the-compiler.org> | 2022-03-30 11:17:12 +0200 |
commit | 9a5e9b328ee3a187b06b8445ae8c53c00f83e284 (patch) | |
tree | 055ee5b9a3f6b6fcc27499461fb6fb60332d3fe3 | |
parent | e93cb0a00d1d05f279b49ec428f67df54e7aceae (diff) | |
parent | 151b0209e8581c389d7ecf675a7ad0051b9981fe (diff) | |
download | qutebrowser-9a5e9b328ee3a187b06b8445ae8c53c00f83e284.tar.gz qutebrowser-9a5e9b328ee3a187b06b8445ae8c53c00f83e284.zip |
Merge branch 'update-dependencies'
-rw-r--r-- | .github/workflows/bleeding.yml | 2 | ||||
-rw-r--r-- | .github/workflows/ci.yml | 4 | ||||
-rw-r--r-- | .pylintrc | 1 | ||||
-rw-r--r-- | misc/requirements/requirements-dev.txt | 2 | ||||
-rw-r--r-- | misc/requirements/requirements-flake8.txt | 2 | ||||
-rw-r--r-- | misc/requirements/requirements-mypy.txt | 8 | ||||
-rw-r--r-- | misc/requirements/requirements-pyinstaller.txt | 2 | ||||
-rw-r--r-- | misc/requirements/requirements-pylint.txt | 11 | ||||
-rw-r--r-- | misc/requirements/requirements-pyroma.txt | 2 | ||||
-rw-r--r-- | misc/requirements/requirements-qutebrowser.txt-raw | 6 | ||||
-rw-r--r-- | misc/requirements/requirements-sphinx.txt | 4 | ||||
-rw-r--r-- | misc/requirements/requirements-tests.txt | 6 | ||||
-rw-r--r-- | misc/requirements/requirements-tox.txt | 4 | ||||
-rw-r--r-- | qutebrowser/completion/completer.py | 2 | ||||
-rw-r--r-- | qutebrowser/utils/resources.py | 24 | ||||
-rw-r--r-- | requirements.txt | 6 | ||||
-rwxr-xr-x | scripts/dev/build_release.py | 6 | ||||
-rw-r--r-- | scripts/dev/changelog_urls.json | 3 | ||||
-rw-r--r-- | scripts/dev/run_pylint_on_tests.py | 3 | ||||
-rw-r--r-- | tests/end2end/fixtures/webserver_sub.py | 2 | ||||
-rw-r--r-- | tests/unit/utils/test_log.py | 2 | ||||
-rw-r--r-- | tox.ini | 4 |
22 files changed, 63 insertions, 43 deletions
diff --git a/.github/workflows/bleeding.yml b/.github/workflows/bleeding.yml index 435141e56..b2370357f 100644 --- a/.github/workflows/bleeding.yml +++ b/.github/workflows/bleeding.yml @@ -15,7 +15,7 @@ jobs: container: image: "qutebrowser/ci:archlinux-webengine-unstable" env: - PY_COLORS: "1" + FORCE_COLOR: "1" DOCKER: "archlinux-webengine-unstable" CI: true PYTEST_ADDOPTS: "--color=yes" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c8349877e..afcf720e4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,7 +6,7 @@ on: - 'dependabot/*' pull_request: env: - PY_COLORS: "1" + FORCE_COLOR: "1" MYPY_FORCE_TERMINAL_WIDTH: "180" jobs: @@ -43,7 +43,7 @@ jobs: key: "${{ matrix.testenv }}-${{ hashFiles('misc/requirements/requirements-*.txt') }}-${{ hashFiles('requirements.txt') }}-${{ hashFiles('scripts/dev/pylint_checkers/qute_pylint/*.py') }}" - uses: actions/setup-python@v2 with: - python-version: '3.8' + python-version: '3.10' - uses: actions/setup-node@v2-beta with: node-version: '12.x' @@ -15,6 +15,7 @@ load-plugins=qute_pylint.config, pylint.extensions.check_elif, pylint.extensions.typing, pylint.extensions.docparams, + pylint.extensions.private_import, persistent=n py-version=3.6 diff --git a/misc/requirements/requirements-dev.txt b/misc/requirements/requirements-dev.txt index 4c7751977..9f7f5074b 100644 --- a/misc/requirements/requirements-dev.txt +++ b/misc/requirements/requirements-dev.txt @@ -35,7 +35,7 @@ sip==6.5.1 six==1.16.0 toml==0.10.2 tomli==2.0.1 -tqdm==4.63.0 +tqdm==4.63.1 twine==3.8.0 uritemplate==4.1.1 # urllib3==1.26.9 diff --git a/misc/requirements/requirements-flake8.txt b/misc/requirements/requirements-flake8.txt index d77344f1e..8a7428933 100644 --- a/misc/requirements/requirements-flake8.txt +++ b/misc/requirements/requirements-flake8.txt @@ -2,7 +2,7 @@ attrs==21.4.0 flake8==4.0.1 -flake8-bugbear==22.3.20 +flake8-bugbear==22.3.23 flake8-builtins==1.5.3 flake8-comprehensions==3.8.0 flake8-copyright==0.2.2 diff --git a/misc/requirements/requirements-mypy.txt b/misc/requirements/requirements-mypy.txt index 2cad3aa21..d8fbba5ee 100644 --- a/misc/requirements/requirements-mypy.txt +++ b/misc/requirements/requirements-mypy.txt @@ -1,13 +1,13 @@ # This file is automatically generated by scripts/dev/recompile_requirements.py chardet==4.0.0 -diff-cover==6.4.4 +diff-cover==6.4.5 importlib-metadata==4.11.3 -importlib-resources==5.4.0 -Jinja2==3.0.3 +importlib-resources==5.6.0 +Jinja2==3.1.1 lxml==4.8.0 MarkupSafe==2.1.1 -mypy==0.941 +mypy==0.942 mypy-extensions==0.4.3 pluggy==1.0.0 Pygments==2.11.2 diff --git a/misc/requirements/requirements-pyinstaller.txt b/misc/requirements/requirements-pyinstaller.txt index c6a088800..d7e46505c 100644 --- a/misc/requirements/requirements-pyinstaller.txt +++ b/misc/requirements/requirements-pyinstaller.txt @@ -2,4 +2,4 @@ altgraph==0.17.2 pyinstaller==4.10 -pyinstaller-hooks-contrib==2022.2 +pyinstaller-hooks-contrib==2022.3 diff --git a/misc/requirements/requirements-pylint.txt b/misc/requirements/requirements-pylint.txt index 76100f05d..a056c29f9 100644 --- a/misc/requirements/requirements-pylint.txt +++ b/misc/requirements/requirements-pylint.txt @@ -1,29 +1,30 @@ # This file is automatically generated by scripts/dev/recompile_requirements.py -astroid==2.9.3 +astroid==2.11.2 certifi==2021.10.8 cffi==1.15.0 charset-normalizer==2.0.12 cryptography==36.0.2 +dill==0.3.4 future==0.18.2 github3.py==3.2.0 idna==3.3 isort==5.10.1 lazy-object-proxy==1.7.1 -mccabe==0.6.1 +mccabe==0.7.0 pefile==2021.9.3 platformdirs==2.5.1 ; python_version>="3.7" pycparser==2.21 PyJWT==2.3.0 -pylint==2.12.2 +pylint==2.13.2 python-dateutil==2.8.2 ./scripts/dev/pylint_checkers requests==2.27.1 six==1.16.0 -toml==0.10.2 +tomli==2.0.1 typed-ast==1.5.2 ; python_version<"3.8" typing_extensions==4.1.1 uritemplate==4.1.1 # urllib3==1.26.9 -wrapt==1.13.3 +wrapt==1.14.0 platformdirs==2.4.0 ; python_version=="3.6.*" diff --git a/misc/requirements/requirements-pyroma.txt b/misc/requirements/requirements-pyroma.txt index 9fe9474c8..f3fdc0bab 100644 --- a/misc/requirements/requirements-pyroma.txt +++ b/misc/requirements/requirements-pyroma.txt @@ -5,6 +5,6 @@ charset-normalizer==2.0.12 docutils==0.18.1 idna==3.3 Pygments==2.11.2 -pyroma==3.2 +pyroma==3.2.1 requests==2.27.1 urllib3==1.26.9 diff --git a/misc/requirements/requirements-qutebrowser.txt-raw b/misc/requirements/requirements-qutebrowser.txt-raw index 63ac32f86..b260fa16c 100644 --- a/misc/requirements/requirements-qutebrowser.txt-raw +++ b/misc/requirements/requirements-qutebrowser.txt-raw @@ -14,14 +14,18 @@ adblock # Improved adblocking importlib-metadata # Determining PyQt version typing_extensions # from importlib-metadata -#@ markers: importlib-resources python_version<"3.9" +#@ markers: importlib-resources python_version=="3.7.*" or python_version=="3.8.*" #@ markers: importlib-metadata python_version=="3.7.*" #@ markers: typing_extensions python_version<"3.8" #@ markers: dataclasses python_version<"3.7" # Python 3.6 +#@ add: importlib-resources<5.6.0 ; python_version=="3.6.*" #@ add: importlib-metadata<4.9 ; python_version=="3.6.*" +# #@ markers: zipp python_version>="3.7" #@ add: zipp<3.7 ; python_version=="3.6.*" #@ markers: MarkupSafe python_version>="3.7" #@ add: MarkupSafe<2.1.0 ; python_version=="3.6.*" +#@ markers: Jinja2 python_version>="3.7" +#@ add: Jinja2<3.1.0 ; python_version=="3.6.*" diff --git a/misc/requirements/requirements-sphinx.txt b/misc/requirements/requirements-sphinx.txt index 6216b2b89..bec429e04 100644 --- a/misc/requirements/requirements-sphinx.txt +++ b/misc/requirements/requirements-sphinx.txt @@ -8,7 +8,7 @@ docutils==0.17.1 idna==3.3 imagesize==1.3.0 importlib-metadata==4.11.3 -Jinja2==3.0.3 +Jinja2==3.1.1 MarkupSafe==2.1.1 packaging==21.3 Pygments==2.11.2 @@ -16,7 +16,7 @@ pyparsing==3.0.7 pytz==2022.1 requests==2.27.1 snowballstemmer==2.2.0 -Sphinx==4.4.0 +Sphinx==4.5.0 sphinxcontrib-applehelp==1.0.2 sphinxcontrib-devhelp==1.0.2 sphinxcontrib-htmlhelp==2.0.0 diff --git a/misc/requirements/requirements-tests.txt b/misc/requirements/requirements-tests.txt index 5321647a8..9954d86f7 100644 --- a/misc/requirements/requirements-tests.txt +++ b/misc/requirements/requirements-tests.txt @@ -12,13 +12,13 @@ filelock==3.6.0 ; python_version>="3.7" Flask==2.0.3 glob2==0.7 hunter==3.4.3 -hypothesis==6.39.4 ; python_version>="3.7" +hypothesis==6.39.6 ; python_version>="3.7" icdiff==2.0.4 idna==3.3 iniconfig==1.1.1 -itsdangerous==2.1.1 ; python_version>="3.7" +itsdangerous==2.1.2 ; python_version>="3.7" jaraco.functools==3.5.0 ; python_version>="3.7" -# Jinja2==3.0.3 +# Jinja2==3.1.1 Mako==1.2.0 ; python_version>="3.7" manhole==1.8.0 # MarkupSafe==2.1.1 diff --git a/misc/requirements/requirements-tox.txt b/misc/requirements/requirements-tox.txt index eb6c78a12..a87519740 100644 --- a/misc/requirements/requirements-tox.txt +++ b/misc/requirements/requirements-tox.txt @@ -8,11 +8,11 @@ platformdirs==2.5.1 ; python_version>="3.7" pluggy==1.0.0 py==1.11.0 pyparsing==3.0.7 -setuptools==60.10.0 ; python_version>="3.7" +setuptools==61.2.0 ; python_version>="3.7" six==1.16.0 toml==0.10.2 tox==3.24.5 -virtualenv==20.13.4 +virtualenv==20.14.0 wheel==0.37.1 setuptools<60 ; python_version=="3.6.*" filelock==3.4.1 ; python_version=="3.6.*" diff --git a/qutebrowser/completion/completer.py b/qutebrowser/completion/completer.py index fb61e48fb..8b0de9d8a 100644 --- a/qutebrowser/completion/completer.py +++ b/qutebrowser/completion/completer.py @@ -39,7 +39,7 @@ class CompletionInfo: """Context passed into all completion functions.""" config: config.Config - keyconf: config.KeyConfig # pylint: disable=undefined-variable + keyconf: config.KeyConfig # pylint: disable=used-before-assignment win_id: int cur_tab: 'browsertab.AbstractTab' diff --git a/qutebrowser/utils/resources.py b/qutebrowser/utils/resources.py index f561d6747..d664498a7 100644 --- a/qutebrowser/utils/resources.py +++ b/qutebrowser/utils/resources.py @@ -24,19 +24,28 @@ import sys import contextlib import posixpath import pathlib -from typing import Iterator, Iterable +from typing import Iterator, Iterable, Union # We cannot use the stdlib version on 3.7-3.8 because we need the files() API. if sys.version_info >= (3, 9): import importlib.resources as importlib_resources + from importlib.abc import Traversable else: # pragma: no cover import importlib_resources + from importlib_resources.abc import Traversable import qutebrowser _cache = {} -def _path(filename: str) -> pathlib.Path: + +# Unfortunately, we can't tell mypy about this also possibly being a +# zipfile.Path because we set "python_version = 3.6" in .mypy.ini, but the +# zipfile stubs (correctly) only declare zipfile.Path with Python 3.8... +_ResourceType = Union[Traversable, pathlib.Path] + + +def _path(filename: str) -> _ResourceType: """Get a pathlib.Path object for a resource.""" assert not posixpath.isabs(filename), filename assert os.path.pardir not in filename.split(posixpath.sep), filename @@ -64,7 +73,7 @@ def _keyerror_workaround() -> Iterator[None]: def _glob( - resource_path: pathlib.Path, + resource_path: _ResourceType, subdir: str, ext: str, ) -> Iterable[str]: @@ -77,14 +86,11 @@ def _glob( glob_path = resource_path / subdir if isinstance(resource_path, pathlib.Path): + assert isinstance(glob_path, pathlib.Path) for full_path in glob_path.glob(f'*{ext}'): # . is contained in ext yield full_path.relative_to(resource_path).as_posix() - else: # zipfile.Path or importlib_resources compat object - # Unfortunately, we can't tell mypy about resource_path being of type - # Union[pathlib.Path, zipfile.Path] because we set "python_version = 3.6" in - # .mypy.ini, but the zipfile stubs (correctly) only declare zipfile.Path with - # Python 3.8... - assert glob_path.is_dir(), glob_path # type: ignore[unreachable] + else: # zipfile.Path or importlib_resources.abc.Traversable + assert glob_path.is_dir(), glob_path for subpath in glob_path.iterdir(): if subpath.name.endswith(ext): yield posixpath.join(subdir, subpath.name) diff --git a/requirements.txt b/requirements.txt index 2e8167732..25c1bd98f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,13 +4,15 @@ adblock==0.5.2 colorama==0.4.4 dataclasses==0.6 ; python_version<"3.7" importlib-metadata==4.11.3 ; python_version=="3.7.*" -importlib-resources==5.4.0 ; python_version<"3.9" -Jinja2==3.0.3 +importlib-resources==5.6.0 ; python_version=="3.7.*" or python_version=="3.8.*" +Jinja2==3.1.1 ; python_version>="3.7" MarkupSafe==2.1.1 ; python_version>="3.7" Pygments==2.11.2 PyYAML==6.0 typing_extensions==4.1.1 ; python_version<"3.8" zipp==3.7.0 ; python_version>="3.7" +importlib-resources<5.6.0 ; python_version=="3.6.*" importlib-metadata<4.9 ; python_version=="3.6.*" zipp<3.7 ; python_version=="3.6.*" MarkupSafe<2.1.0 ; python_version=="3.6.*" +Jinja2<3.1.0 ; python_version=="3.6.*" diff --git a/scripts/dev/build_release.py b/scripts/dev/build_release.py index 5463441be..797b15e52 100755 --- a/scripts/dev/build_release.py +++ b/scripts/dev/build_release.py @@ -596,9 +596,9 @@ def github_upload(artifacts, tag, gh_token): assets = [asset for asset in release.assets() if asset.name == basename] if assets: - asset = assets[0] - print("Deleting stray asset {}".format(asset.name)) - asset.delete() + stray_asset = assets[0] + print("Deleting stray asset {}".format(stray_asset.name)) + stray_asset.delete() else: break diff --git a/scripts/dev/changelog_urls.json b/scripts/dev/changelog_urls.json index 53b62b0df..0de1d68d9 100644 --- a/scripts/dev/changelog_urls.json +++ b/scripts/dev/changelog_urls.json @@ -1,6 +1,7 @@ { "pyparsing": "https://github.com/pyparsing/pyparsing/blob/master/CHANGES", "pylint": "https://pylint.pycqa.org/en/latest/whatsnew/changelog.html", + "dill": "https://github.com/uqfoundation/dill/commits/master", "isort": "https://pycqa.github.io/isort/CHANGELOG/", "lazy-object-proxy": "https://github.com/ionelmc/python-lazy-object-proxy/blob/master/CHANGELOG.rst", "mccabe": "https://github.com/PyCQA/mccabe#changes", @@ -134,7 +135,7 @@ "platformdirs": "https://github.com/platformdirs/platformdirs/blob/main/CHANGES.rst", "pluggy": "https://github.com/pytest-dev/pluggy/blob/master/CHANGELOG.rst", "mypy-extensions": "https://github.com/python/mypy_extensions/commits/master", - "pyroma": "https://github.com/regebro/pyroma/blob/master/HISTORY.txt", + "pyroma": "https://github.com/regebro/pyroma/blob/master/CHANGES.txt", "adblock": "https://github.com/ArniDagur/python-adblock/blob/master/CHANGELOG.md", "importlib-resources": "https://importlib-resources.readthedocs.io/en/latest/history.html", "importlib-metadata": "https://github.com/python/importlib_metadata/blob/main/CHANGES.rst", diff --git a/scripts/dev/run_pylint_on_tests.py b/scripts/dev/run_pylint_on_tests.py index 28c6e32c9..a44828a85 100644 --- a/scripts/dev/run_pylint_on_tests.py +++ b/scripts/dev/run_pylint_on_tests.py @@ -64,6 +64,9 @@ def main(): 'import-error', # tests/helpers imports 'wrong-import-order', + # https://github.com/PyCQA/pylint/issues/6036 + # https://github.com/PyCQA/pylint/issues/6037 + 'unnecessary-ellipsis', ] toxinidir = sys.argv[1] diff --git a/tests/end2end/fixtures/webserver_sub.py b/tests/end2end/fixtures/webserver_sub.py index 92f3091d1..b4964d973 100644 --- a/tests/end2end/fixtures/webserver_sub.py +++ b/tests/end2end/fixtures/webserver_sub.py @@ -292,6 +292,8 @@ def view_user_agent(): @app.route('/favicon.ico') def favicon(): + # WORKAROUND for https://github.com/PyCQA/pylint/issues/5783 + # pylint: disable-next=no-member,useless-suppression icon_dir = END2END_DIR.parents[1] / 'icons' return flask.send_from_directory( icon_dir, 'qutebrowser.ico', mimetype='image/vnd.microsoft.icon') diff --git a/tests/unit/utils/test_log.py b/tests/unit/utils/test_log.py index 9f5a15065..bbc6b02db 100644 --- a/tests/unit/utils/test_log.py +++ b/tests/unit/utils/test_log.py @@ -27,7 +27,7 @@ import warnings import dataclasses import pytest -import _pytest.logging +import _pytest.logging # pylint: disable=import-private-name from PyQt5 import QtCore from qutebrowser import qutebrowser @@ -14,7 +14,7 @@ setenv = PYTEST_QT_API=pyqt5 pyqt{,512,513,514,515,5150}: LINK_PYQT_SKIP=true cov: PYTEST_ADDOPTS=--cov --cov-report xml --cov-report=html --cov-report= -passenv = PYTHON DISPLAY XAUTHORITY HOME USERNAME USER CI XDG_* QUTE_* DOCKER QT_QUICK_BACKEND PY_COLORS DBUS_SESSION_BUS_ADDRESS +passenv = PYTHON DISPLAY XAUTHORITY HOME USERNAME USER CI XDG_* QUTE_* DOCKER QT_QUICK_BACKEND FORCE_COLOR DBUS_SESSION_BUS_ADDRESS basepython = py: {env:PYTHON:python3} py3: {env:PYTHON:python3} @@ -78,7 +78,7 @@ commands = {[testenv:vulture]commands} [testenv:pylint] -basepython = {env:PYTHON:python3.8} +basepython = {env:PYTHON:python3} ignore_errors = true passenv = deps = |