diff --git a/changelog.d/12320.misc b/changelog.d/12320.misc
new file mode 100644
index 0000000000..7b4748d230
--- /dev/null
+++ b/changelog.d/12320.misc
@@ -0,0 +1 @@
+Bump the version of `black` for compatibility with the latest `click` release.
diff --git a/contrib/jitsimeetbridge/jitsimeetbridge.py b/contrib/jitsimeetbridge/jitsimeetbridge.py
index 495fd4e10a..b3de468687 100644
--- a/contrib/jitsimeetbridge/jitsimeetbridge.py
+++ b/contrib/jitsimeetbridge/jitsimeetbridge.py
@@ -193,12 +193,15 @@ class TrivialXmppClient:
time.sleep(7)
print("SSRC spammer started")
while self.running:
- ssrcMsg = "%(nick)s" % {
- "tojid": "%s@%s/%s" % (ROOMNAME, ROOMDOMAIN, self.shortJid),
- "nick": self.userId,
- "assrc": self.ssrcs["audio"],
- "vssrc": self.ssrcs["video"],
- }
+ ssrcMsg = (
+ "%(nick)s"
+ % {
+ "tojid": "%s@%s/%s" % (ROOMNAME, ROOMDOMAIN, self.shortJid),
+ "nick": self.userId,
+ "assrc": self.ssrcs["audio"],
+ "vssrc": self.ssrcs["video"],
+ }
+ )
res = self.sendIq(ssrcMsg)
print("reply from ssrc announce: ", res)
time.sleep(10)
diff --git a/setup.py b/setup.py
index 63da71ad7b..48bd418bb8 100755
--- a/setup.py
+++ b/setup.py
@@ -95,7 +95,7 @@ CONDITIONAL_REQUIREMENTS["all"] = list(ALL_OPTIONAL_REQUIREMENTS)
# We pin black so that our tests don't start failing on new releases.
CONDITIONAL_REQUIREMENTS["lint"] = [
"isort==5.7.0",
- "black==21.12b0",
+ "black==22.3.0",
"flake8-comprehensions",
"flake8-bugbear==21.3.2",
"flake8",
@@ -128,7 +128,7 @@ CONDITIONAL_REQUIREMENTS["dev"] = (
+ CONDITIONAL_REQUIREMENTS["test"]
+ [
# The following are used by the release script
- "click==7.1.2",
+ "click==8.1.0",
"redbaron==0.9.2",
"GitPython==3.1.14",
"commonmark==0.9.1",
diff --git a/synapse/api/constants.py b/synapse/api/constants.py
index b0c08a074d..92907415e6 100644
--- a/synapse/api/constants.py
+++ b/synapse/api/constants.py
@@ -23,7 +23,7 @@ from typing_extensions import Final
MAX_PDU_SIZE = 65536
# the "depth" field on events is limited to 2**63 - 1
-MAX_DEPTH = 2 ** 63 - 1
+MAX_DEPTH = 2**63 - 1
# the maximum length for a room alias is 255 characters
MAX_ALIAS_LENGTH = 255
diff --git a/synapse/appservice/scheduler.py b/synapse/appservice/scheduler.py
index 72417151ba..a6084b9c35 100644
--- a/synapse/appservice/scheduler.py
+++ b/synapse/appservice/scheduler.py
@@ -428,7 +428,7 @@ class _Recoverer:
"as-recoverer-%s" % (self.service.id,), self.retry
)
- delay = 2 ** self.backoff_counter
+ delay = 2**self.backoff_counter
logger.info("Scheduling retries on %s in %fs", self.service.id, delay)
self.clock.call_later(delay, _retry)
diff --git a/synapse/crypto/keyring.py b/synapse/crypto/keyring.py
index 93d56c077a..6cf384f6a1 100644
--- a/synapse/crypto/keyring.py
+++ b/synapse/crypto/keyring.py
@@ -182,7 +182,7 @@ class Keyring:
vk = get_verify_key(hs.signing_key)
self._local_verify_keys[f"{vk.alg}:{vk.version}"] = FetchKeyResult(
verify_key=vk,
- valid_until_ts=2 ** 63, # fake future timestamp
+ valid_until_ts=2**63, # fake future timestamp
)
async def verify_json_for_server(
diff --git a/synapse/events/utils.py b/synapse/events/utils.py
index 7120062127..918e87ed9c 100644
--- a/synapse/events/utils.py
+++ b/synapse/events/utils.py
@@ -49,7 +49,7 @@ if TYPE_CHECKING:
# the literal fields "foo\" and "bar" but will instead be treated as "foo\\.bar"
SPLIT_FIELD_REGEX = re.compile(r"(? cls.RETRY_ON_CONNECT_ERROR_ATTEMPTS:
raise
- delay = 2 ** attempts
+ delay = 2**attempts
logger.warning(
"%s request connection failed; retrying in %ds: %r",
cls.NAME,
diff --git a/synapse/rest/media/v1/media_storage.py b/synapse/rest/media/v1/media_storage.py
index 9f6c251caf..604f18bf52 100644
--- a/synapse/rest/media/v1/media_storage.py
+++ b/synapse/rest/media/v1/media_storage.py
@@ -352,7 +352,7 @@ class ReadableFileWrapper:
`IConsumer`.
"""
- CHUNK_SIZE = 2 ** 14
+ CHUNK_SIZE = 2**14
clock: Clock
path: str
diff --git a/synapse/rest/media/v1/preview_html.py b/synapse/rest/media/v1/preview_html.py
index 4cc9c66fbe..ca73965fc2 100644
--- a/synapse/rest/media/v1/preview_html.py
+++ b/synapse/rest/media/v1/preview_html.py
@@ -23,10 +23,10 @@ if TYPE_CHECKING:
logger = logging.getLogger(__name__)
_charset_match = re.compile(
- br'<\s*meta[^>]*charset\s*=\s*"?([a-z0-9_-]+)"?', flags=re.I
+ rb'<\s*meta[^>]*charset\s*=\s*"?([a-z0-9_-]+)"?', flags=re.I
)
_xml_encoding_match = re.compile(
- br'\s*<\s*\?\s*xml[^>]*encoding="([a-z0-9_-]+)"', flags=re.I
+ rb'\s*<\s*\?\s*xml[^>]*encoding="([a-z0-9_-]+)"', flags=re.I
)
_content_type_match = re.compile(r'.*; *charset="?(.*?)"?(;|$)', flags=re.I)
diff --git a/synapse/storage/database.py b/synapse/storage/database.py
index 72fef1533f..3ef2bdd74b 100644
--- a/synapse/storage/database.py
+++ b/synapse/storage/database.py
@@ -63,7 +63,7 @@ if TYPE_CHECKING:
from synapse.server import HomeServer
# python 3 does not have a maximum int value
-MAX_TXN_ID = 2 ** 63 - 1
+MAX_TXN_ID = 2**63 - 1
logger = logging.getLogger(__name__)
diff --git a/synapse/util/patch_inline_callbacks.py b/synapse/util/patch_inline_callbacks.py
index 6d4b0b7c5a..dace68666c 100644
--- a/synapse/util/patch_inline_callbacks.py
+++ b/synapse/util/patch_inline_callbacks.py
@@ -217,13 +217,16 @@ def _check_yield_points(
# We don't raise here as its perfectly valid for contexts to
# change in a function, as long as it sets the correct context
# on resolving (which is checked separately).
- err = "%s changed context from %s to %s, happened between lines %d and %d in %s" % (
- frame.f_code.co_name,
- expected_context,
- current_context(),
- last_yield_line_no,
- frame.f_lineno,
- frame.f_code.co_filename,
+ err = (
+ "%s changed context from %s to %s, happened between lines %d and %d in %s"
+ % (
+ frame.f_code.co_name,
+ expected_context,
+ current_context(),
+ last_yield_line_no,
+ frame.f_lineno,
+ frame.f_code.co_filename,
+ )
)
changes.append(err)
diff --git a/synapse/util/retryutils.py b/synapse/util/retryutils.py
index 648d9a95a7..d81f2527d7 100644
--- a/synapse/util/retryutils.py
+++ b/synapse/util/retryutils.py
@@ -30,7 +30,7 @@ MIN_RETRY_INTERVAL = 10 * 60 * 1000
RETRY_MULTIPLIER = 5
# a cap on the backoff. (Essentially none)
-MAX_RETRY_INTERVAL = 2 ** 62
+MAX_RETRY_INTERVAL = 2**62
class NotRetryingDestination(Exception):
diff --git a/tests/handlers/test_federation.py b/tests/handlers/test_federation.py
index 89078fc637..4d65639a1e 100644
--- a/tests/handlers/test_federation.py
+++ b/tests/handlers/test_federation.py
@@ -496,8 +496,8 @@ class EventFromPduTestCase(TestCase):
def test_invalid_numbers(self) -> None:
"""Invalid values for an integer should be rejected, all floats should be rejected."""
for value in [
- -(2 ** 53),
- 2 ** 53,
+ -(2**53),
+ 2**53,
1.0,
float("inf"),
float("-inf"),
@@ -524,7 +524,7 @@ class EventFromPduTestCase(TestCase):
event_from_pdu_json(
{
"type": EventTypes.Message,
- "content": {"foo": [{"bar": 2 ** 56}]},
+ "content": {"foo": [{"bar": 2**56}]},
"room_id": "!room:test",
"sender": "@user:test",
"depth": 1,
diff --git a/tests/replication/_base.py b/tests/replication/_base.py
index 9c5df266bd..a0589b6d6a 100644
--- a/tests/replication/_base.py
+++ b/tests/replication/_base.py
@@ -206,7 +206,7 @@ class BaseStreamTestCase(unittest.HomeserverTestCase):
path: bytes = request.path # type: ignore
self.assertRegex(
path,
- br"^/_synapse/replication/get_repl_stream_updates/%s/[^/]+$"
+ rb"^/_synapse/replication/get_repl_stream_updates/%s/[^/]+$"
% (stream_name.encode("ascii"),),
)