summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Bruhin <me@the-compiler.org>2022-03-30 11:17:12 +0200
committerFlorian Bruhin <me@the-compiler.org>2022-03-30 11:17:12 +0200
commit9a5e9b328ee3a187b06b8445ae8c53c00f83e284 (patch)
tree055ee5b9a3f6b6fcc27499461fb6fb60332d3fe3
parente93cb0a00d1d05f279b49ec428f67df54e7aceae (diff)
parent151b0209e8581c389d7ecf675a7ad0051b9981fe (diff)
downloadqutebrowser-9a5e9b328ee3a187b06b8445ae8c53c00f83e284.tar.gz
qutebrowser-9a5e9b328ee3a187b06b8445ae8c53c00f83e284.zip
Merge branch 'update-dependencies'
-rw-r--r--.github/workflows/bleeding.yml2
-rw-r--r--.github/workflows/ci.yml4
-rw-r--r--.pylintrc1
-rw-r--r--misc/requirements/requirements-dev.txt2
-rw-r--r--misc/requirements/requirements-flake8.txt2
-rw-r--r--misc/requirements/requirements-mypy.txt8
-rw-r--r--misc/requirements/requirements-pyinstaller.txt2
-rw-r--r--misc/requirements/requirements-pylint.txt11
-rw-r--r--misc/requirements/requirements-pyroma.txt2
-rw-r--r--misc/requirements/requirements-qutebrowser.txt-raw6
-rw-r--r--misc/requirements/requirements-sphinx.txt4
-rw-r--r--misc/requirements/requirements-tests.txt6
-rw-r--r--misc/requirements/requirements-tox.txt4
-rw-r--r--qutebrowser/completion/completer.py2
-rw-r--r--qutebrowser/utils/resources.py24
-rw-r--r--requirements.txt6
-rwxr-xr-xscripts/dev/build_release.py6
-rw-r--r--scripts/dev/changelog_urls.json3
-rw-r--r--scripts/dev/run_pylint_on_tests.py3
-rw-r--r--tests/end2end/fixtures/webserver_sub.py2
-rw-r--r--tests/unit/utils/test_log.py2
-rw-r--r--tox.ini4
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'
diff --git a/.pylintrc b/.pylintrc
index a3ac3d82a..4ff4f2080 100644
--- a/.pylintrc
+++ b/.pylintrc
@@ -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
diff --git a/tox.ini b/tox.ini
index f52d7b158..370adbc9e 100644
--- a/tox.ini
+++ b/tox.ini
@@ -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 =