--- a/src/twisted/python/_setup.py
+++ b/src/twisted/python/_setup.py
-@@ -150,7 +150,6 @@ _CONSOLE_SCRIPTS = [
+@@ -151,7 +151,6 @@ _CONSOLE_SCRIPTS = [
"conch = twisted.conch.scripts.conch:run",
"mailmail = twisted.mail.scripts.mailmail:run",
"pyhtmlizer = twisted.scripts.htmlizer:run",
--- a/src/twisted/python/_setup.py
+++ b/src/twisted/python/_setup.py
-@@ -176,11 +176,6 @@ class ConditionalExtension(Extension, ob
+@@ -177,11 +177,6 @@ class ConditionalExtension(Extension, ob
# The C extensions used for Twisted.
_EXTENSIONS = [
ConditionalExtension(
"twisted.internet.iocpreactor.iocpsupport",
sources=[
"src/twisted/internet/iocpreactor/iocpsupport/iocpsupport.c",
-@@ -285,12 +280,11 @@ def getSetupArgs(extensions=_EXTENSIONS,
- "incremental >= 16.10.1",
- "Automat >= 0.3.0",
- "hyperlink >= 17.1.1",
-- "PyHamcrest >= 1.9.0",
- "attrs >= 17.4.0",
+@@ -275,12 +270,11 @@ def getSetupArgs(extensions=_EXTENSIONS,
+ # PyHamcrest 1.10.0 is Python 3 only, but lacks package metadata that
+ # says so. This condition can be dropped when Twisted drops support for
+ # Python 2.7.
+- "PyHamcrest >= 1.9.0, != 1.10.0",
+ "attrs >= 19.2.0",
]
arguments.update(dict(
use_incremental=True,
setup_requires=["incremental >= 16.10.1"],
install_requires=requirements,
-@@ -300,7 +294,7 @@ def getSetupArgs(extensions=_EXTENSIONS,
+@@ -290,7 +284,7 @@ def getSetupArgs(extensions=_EXTENSIONS,
cmdclass=command_classes,
include_package_data=True,
exclude_package_data={