diff --git a/changelog.d/8583.misc b/changelog.d/8583.misc
new file mode 100644
index 0000000000000000000000000000000000000000..d24973f09af15a94e4d7572a9fa6ead55fc69dfa
--- /dev/null
+++ b/changelog.d/8583.misc
@@ -0,0 +1 @@
+Update `mypy` static type checker to 0.790.
\ No newline at end of file
diff --git a/setup.py b/setup.py
index 08843fe2a3e44637d315b452ae8f1fa6a431af57..494f50239f30ebd1eccb533f5fa5b9d9a545eada 100755
--- a/setup.py
+++ b/setup.py
@@ -102,6 +102,8 @@ CONDITIONAL_REQUIREMENTS["lint"] = [
     "flake8",
 ]
 
+CONDITIONAL_REQUIREMENTS["mypy"] = ["mypy==0.790", "mypy-zope"]
+
 # Dependencies which are exclusively required by unit test code. This is
 # NOT a list of all modules that are necessary to run the unit tests.
 # Tests assume that all optional dependencies are installed.
diff --git a/tox.ini b/tox.ini
index 6d08153782aa286598597e0335fd146b46b57261..6dcc439a4038f51c03602713b8fbb9f038730022 100644
--- a/tox.ini
+++ b/tox.ini
@@ -160,9 +160,7 @@ commands=
 [testenv:mypy]
 deps =
     {[base]deps}
-    mypy==0.782
-    mypy-zope
-extras = all
+extras = all,mypy
 commands = mypy
 
 # To find all folders that pass mypy you run: