We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Removing compatibility for Python 2
In #1458 and the Setuptools 45 release, this project dropped declared support for Python 2, adding a warning when a late version was invoked on Python 2. This warning helped address many of the systemic uses of Setuptools 45+ on Python 2, but there continue to be users (presumably) reporting that they've [encountered the warning](https://github.com/pypa/setuptools/issues?q=is%3Aissue+in%3Atitle+%22incompatible+install%22+).

I say presumably because most of them have submitted a blank template without providing any information.

Since March, these users have been directed to the template via bit.ly, so I have metrics on the number of users encountering and following the link.

![image](https://user-images.githubusercontent.com/308610/81501269-806b5b80-92a5-11ea-9d0a-1189e4c57061.png)

It seems there have been 50-100 clicks per day since Apr 11. I'm guessing bit.ly doesn't give me data older than 30 days.

To put that in perspective, Setuptools received over 45M downloads in the last month, so the number of people that followed that link (3.3k) is 0.007% of the downloads.

Still, that's upwards of 100 people per day whose workflow would be broken until they could fix their environment.

Let's also consider that each of these users encountering this issue are following discouraged if not deprecated workflows and are creating new or updated environments (new since setuptools 45 was released in January).

It seems to me we have two options - support Python 2 until the incidents of users encountering this error message reduces to a trickle (what is that threshold) or bite the bullet and drop support for Python 2.

I'd like to review the outstanding issues relating to this issue, but my inclination is to move forward with dropping support.

--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `pkg_resources/py2_warn.py`
Content:
```
1 import sys
2 import warnings
3 import textwrap
4 
5 
6 msg = textwrap.dedent("""
7     You are running Setuptools on Python 2, which is no longer
8     supported and
9     >>> SETUPTOOLS WILL STOP WORKING <<<
10     in a subsequent release (no sooner than 2020-04-20).
11     Please ensure you are installing
12     Setuptools using pip 9.x or later or pin to `setuptools<45`
13     in your environment.
14     If you have done those things and are still encountering
15     this message, please follow up at
16     https://bit.ly/setuptools-py2-warning.
17     """)
18 
19 pre = "Setuptools will stop working on Python 2\n"
20 
21 sys.version_info < (3,) and warnings.warn(pre + "*" * 60 + msg + "*" * 60)
22
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/pkg_resources/py2_warn.py b/pkg_resources/py2_warn.py
--- a/pkg_resources/py2_warn.py
+++ b/pkg_resources/py2_warn.py
@@ -4,18 +4,13 @@
 
 
 msg = textwrap.dedent("""
-    You are running Setuptools on Python 2, which is no longer
-    supported and
-    >>> SETUPTOOLS WILL STOP WORKING <<<
-    in a subsequent release (no sooner than 2020-04-20).
-    Please ensure you are installing
-    Setuptools using pip 9.x or later or pin to `setuptools<45`
-    in your environment.
-    If you have done those things and are still encountering
-    this message, please follow up at
-    https://bit.ly/setuptools-py2-warning.
+    Encountered a version of Setuptools that no longer supports
+    this version of Python. Please head to
+    https://bit.ly/setuptools-py2-warning for support.
     """)
 
-pre = "Setuptools will stop working on Python 2\n"
+pre = "Setuptools no longer works on Python 2\n"
 
-sys.version_info < (3,) and warnings.warn(pre + "*" * 60 + msg + "*" * 60)
+if sys.version_info < (3,):
+    warnings.warn(pre + "*" * 60 + msg + "*" * 60)
+    raise SystemExit(32)

{"golden_diff": "diff --git a/pkg_resources/py2_warn.py b/pkg_resources/py2_warn.py\n--- a/pkg_resources/py2_warn.py\n+++ b/pkg_resources/py2_warn.py\n@@ -4,18 +4,13 @@\n \n \n msg = textwrap.dedent(\"\"\"\n-    You are running Setuptools on Python 2, which is no longer\n-    supported and\n-    >>> SETUPTOOLS WILL STOP WORKING <<<\n-    in a subsequent release (no sooner than 2020-04-20).\n-    Please ensure you are installing\n-    Setuptools using pip 9.x or later or pin to `setuptools<45`\n-    in your environment.\n-    If you have done those things and are still encountering\n-    this message, please follow up at\n-    https://bit.ly/setuptools-py2-warning.\n+    Encountered a version of Setuptools that no longer supports\n+    this version of Python. Please head to\n+    https://bit.ly/setuptools-py2-warning for support.\n     \"\"\")\n \n-pre = \"Setuptools will stop working on Python 2\\n\"\n+pre = \"Setuptools no longer works on Python 2\\n\"\n \n-sys.version_info < (3,) and warnings.warn(pre + \"*\" * 60 + msg + \"*\" * 60)\n+if sys.version_info < (3,):\n+    warnings.warn(pre + \"*\" * 60 + msg + \"*\" * 60)\n+    raise SystemExit(32)\n", "issue": "Removing compatibility for Python 2\nIn #1458 and the Setuptools 45 release, this project dropped declared support for Python 2, adding a warning when a late version was invoked on Python 2. This warning helped address many of the systemic uses of Setuptools 45+ on Python 2, but there continue to be users (presumably) reporting that they've [encountered the warning](https://github.com/pypa/setuptools/issues?q=is%3Aissue+in%3Atitle+%22incompatible+install%22+).\r\n\r\nI say presumably because most of them have submitted a blank template without providing any information.\r\n\r\nSince March, these users have been directed to the template via bit.ly, so I have metrics on the number of users encountering and following the link.\r\n\r\n![image](https://user-images.githubusercontent.com/308610/81501269-806b5b80-92a5-11ea-9d0a-1189e4c57061.png)\r\n\r\nIt seems there have been 50-100 clicks per day since Apr 11. I'm guessing bit.ly doesn't give me data older than 30 days.\r\n\r\nTo put that in perspective, Setuptools received over 45M downloads in the last month, so the number of people that followed that link (3.3k) is 0.007% of the downloads.\r\n\r\nStill, that's upwards of 100 people per day whose workflow would be broken until they could fix their environment.\r\n\r\nLet's also consider that each of these users encountering this issue are following discouraged if not deprecated workflows and are creating new or updated environments (new since setuptools 45 was released in January).\r\n\r\nIt seems to me we have two options - support Python 2 until the incidents of users encountering this error message reduces to a trickle (what is that threshold) or bite the bullet and drop support for Python 2.\r\n\r\nI'd like to review the outstanding issues relating to this issue, but my inclination is to move forward with dropping support.\n", "before_files": [{"content": "import sys\nimport warnings\nimport textwrap\n\n\nmsg = textwrap.dedent(\"\"\"\n    You are running Setuptools on Python 2, which is no longer\n    supported and\n    >>> SETUPTOOLS WILL STOP WORKING <<<\n    in a subsequent release (no sooner than 2020-04-20).\n    Please ensure you are installing\n    Setuptools using pip 9.x or later or pin to `setuptools<45`\n    in your environment.\n    If you have done those things and are still encountering\n    this message, please follow up at\n    https://bit.ly/setuptools-py2-warning.\n    \"\"\")\n\npre = \"Setuptools will stop working on Python 2\\n\"\n\nsys.version_info < (3,) and warnings.warn(pre + \"*\" * 60 + msg + \"*\" * 60)\n", "path": "pkg_resources/py2_warn.py"}], "after_files": [{"content": "import sys\nimport warnings\nimport textwrap\n\n\nmsg = textwrap.dedent(\"\"\"\n    Encountered a version of Setuptools that no longer supports\n    this version of Python. Please head to\n    https://bit.ly/setuptools-py2-warning for support.\n    \"\"\")\n\npre = \"Setuptools no longer works on Python 2\\n\"\n\nif sys.version_info < (3,):\n    warnings.warn(pre + \"*\" * 60 + msg + \"*\" * 60)\n    raise SystemExit(32)\n", "path": "pkg_resources/py2_warn.py"}]}