prompt: We are currently solving the following issue within our repository. Here is the issue text:
  --- BEGIN ISSUE ---
  [Docs] Example may accidentally be encouraging users to write invalid `pyproject.toml` files
  ### Description
  
  Hi guys, first of all thank you for the amazing project (always good to remember).
  
  While I was working on adding support for PEP 621 to setuptools, I noticed a series of users having problems with invalid `pyproject.toml` files. The common pattern seem to be a almost empty `[project]` table with only a `requires-python` field set, which is invalid according to PEP 621.
  
  It took me some time to find the reason for this behaviour but I think it comes from:
  https://cibuildwheel.readthedocs.io/en/stable/options/#requires-python
  
  I suspect that the example and notes about the preferred way of setting the config has been encouraging users that are unaware of PEP 621 to write technically invalid `pyproject.toml` files.
  
  Please note that this issue is not necessarily related to setuptools itself.
  The existence of the `[project]` table in the `pyproject.toml` allows (according to the standard) the installer/builder/consumer program to treat the package differently (specially regarding `dynamic`).
  
  I think it would be nice to at least add a note about this so users became aware of the implications of adding a `[project]` table.
  
  ### Build log
  
  _No response_
  
  ### CI config
  
  _No response_
  
  --- END ISSUE ---
  
  Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
  --- BEGIN FILES ---
  Path: `setup.py`
  Content:
  ```
  1 from setuptools import setup
  2 
  3 extras = {
  4     "docs": [
  5         "mkdocs-include-markdown-plugin==2.8.0",
  6         "mkdocs==1.0.4",
  7         "pymdown-extensions",
  8         "mkdocs-macros-plugin",
  9     ],
  10     "test": [
  11         "jinja2",
  12         "pytest>=6",
  13         "pytest-timeout",
  14         "pytest-xdist",
  15     ],
  16     "bin": [
  17         "click",
  18         "ghapi",
  19         "pip-tools",
  20         "pygithub",
  21         "pyyaml",
  22         "requests",
  23         "rich>=9.6",
  24         "packaging>=21.0",
  25     ],
  26     "mypy": [
  27         "mypy>=0.901",
  28         "types-jinja2",
  29         "types-certifi",
  30         "types-toml",
  31         "types-jinja2",
  32         "types-pyyaml",
  33         "types-click",
  34         "types-requests",
  35     ],
  36 }
  37 
  38 extras["dev"] = [
  39     *extras["mypy"],
  40     *extras["test"],
  41     *extras["bin"],
  42 ]
  43 
  44 extras["all"] = sum(extras.values(), [])
  45 
  46 setup(extras_require=extras)
  47
  ```
  --- 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()
  
  ```
  
golden_diff: diff --git a/setup.py b/setup.py
  --- a/setup.py
  +++ b/setup.py
  @@ -4,6 +4,7 @@
       "docs": [
           "mkdocs-include-markdown-plugin==2.8.0",
           "mkdocs==1.0.4",
  +        "jinja2==3.0.3",
           "pymdown-extensions",
           "mkdocs-macros-plugin",
       ],
  
verification_info: {"golden_diff": "diff --git a/setup.py b/setup.py\n--- a/setup.py\n+++ b/setup.py\n@@ -4,6 +4,7 @@\n     \"docs\": [\n         \"mkdocs-include-markdown-plugin==2.8.0\",\n         \"mkdocs==1.0.4\",\n+        \"jinja2==3.0.3\",\n         \"pymdown-extensions\",\n         \"mkdocs-macros-plugin\",\n     ],\n", "issue": "[Docs] Example may accidentally be encouraging users to write invalid `pyproject.toml` files\n### Description\r\n\r\nHi guys, first of all thank you for the amazing project (always good to remember).\r\n\r\nWhile I was working on adding support for PEP 621 to setuptools, I noticed a series of users having problems with invalid `pyproject.toml` files. The common pattern seem to be a almost empty `[project]` table with only a `requires-python` field set, which is invalid according to PEP 621.\r\n\r\nIt took me some time to find the reason for this behaviour but I think it comes from:\r\nhttps://cibuildwheel.readthedocs.io/en/stable/options/#requires-python\r\n\r\nI suspect that the example and notes about the preferred way of setting the config has been encouraging users that are unaware of PEP 621 to write technically invalid `pyproject.toml` files.\r\n\r\nPlease note that this issue is not necessarily related to setuptools itself.\r\nThe existence of the `[project]` table in the `pyproject.toml` allows (according to the standard) the installer/builder/consumer program to treat the package differently (specially regarding `dynamic`).\r\n\r\nI think it would be nice to at least add a note about this so users became aware of the implications of adding a `[project]` table.\r\n\r\n### Build log\r\n\r\n_No response_\r\n\r\n### CI config\r\n\r\n_No response_\n", "before_files": [{"content": "from setuptools import setup\n\nextras = {\n    \"docs\": [\n        \"mkdocs-include-markdown-plugin==2.8.0\",\n        \"mkdocs==1.0.4\",\n        \"pymdown-extensions\",\n        \"mkdocs-macros-plugin\",\n    ],\n    \"test\": [\n        \"jinja2\",\n        \"pytest>=6\",\n        \"pytest-timeout\",\n        \"pytest-xdist\",\n    ],\n    \"bin\": [\n        \"click\",\n        \"ghapi\",\n        \"pip-tools\",\n        \"pygithub\",\n        \"pyyaml\",\n        \"requests\",\n        \"rich>=9.6\",\n        \"packaging>=21.0\",\n    ],\n    \"mypy\": [\n        \"mypy>=0.901\",\n        \"types-jinja2\",\n        \"types-certifi\",\n        \"types-toml\",\n        \"types-jinja2\",\n        \"types-pyyaml\",\n        \"types-click\",\n        \"types-requests\",\n    ],\n}\n\nextras[\"dev\"] = [\n    *extras[\"mypy\"],\n    *extras[\"test\"],\n    *extras[\"bin\"],\n]\n\nextras[\"all\"] = sum(extras.values(), [])\n\nsetup(extras_require=extras)\n", "path": "setup.py"}], "after_files": [{"content": "from setuptools import setup\n\nextras = {\n    \"docs\": [\n        \"mkdocs-include-markdown-plugin==2.8.0\",\n        \"mkdocs==1.0.4\",\n        \"jinja2==3.0.3\",\n        \"pymdown-extensions\",\n        \"mkdocs-macros-plugin\",\n    ],\n    \"test\": [\n        \"jinja2\",\n        \"pytest>=6\",\n        \"pytest-timeout\",\n        \"pytest-xdist\",\n    ],\n    \"bin\": [\n        \"click\",\n        \"ghapi\",\n        \"pip-tools\",\n        \"pygithub\",\n        \"pyyaml\",\n        \"requests\",\n        \"rich>=9.6\",\n        \"packaging>=21.0\",\n    ],\n    \"mypy\": [\n        \"mypy>=0.901\",\n        \"types-jinja2\",\n        \"types-certifi\",\n        \"types-toml\",\n        \"types-jinja2\",\n        \"types-pyyaml\",\n        \"types-click\",\n        \"types-requests\",\n    ],\n}\n\nextras[\"dev\"] = [\n    *extras[\"mypy\"],\n    *extras[\"test\"],\n    *extras[\"bin\"],\n]\n\nextras[\"all\"] = sum(extras.values(), [])\n\nsetup(extras_require=extras)\n", "path": "setup.py"}]}