We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
py.typed missing in published artifacts
I didn’t check for earlier versions, but at least 0.11.4 on PyPI does not include `py.typed`. I assume this is an oversight, given it is mentioned in `setup.py`?

https://github.com/encode/starlette/blob/77b84a08c1e4de0db64a197b58ac363a26c51d4f/setup.py#L49

--- 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 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3 
4 import os
5 import re
6 
7 from setuptools import setup
8 
9 
10 def get_version(package):
11     """
12     Return package version as listed in `__version__` in `init.py`.
13     """
14     with open(os.path.join(package, "__init__.py")) as f:
15         return re.search("__version__ = ['\"]([^'\"]+)['\"]", f.read()).group(1)
16 
17 
18 def get_long_description():
19     """
20     Return the README.
21     """
22     with open("README.md", encoding="utf8") as f:
23         return f.read()
24 
25 
26 def get_packages(package):
27     """
28     Return root package and all sub-packages.
29     """
30     return [
31         dirpath
32         for dirpath, dirnames, filenames in os.walk(package)
33         if os.path.exists(os.path.join(dirpath, "__init__.py"))
34     ]
35 
36 
37 setup(
38     name="starlette",
39     python_requires=">=3.6",
40     version=get_version("starlette"),
41     url="https://github.com/encode/starlette",
42     license="BSD",
43     description="The little ASGI library that shines.",
44     long_description=get_long_description(),
45     long_description_content_type="text/markdown",
46     author="Tom Christie",
47     author_email="tom@tomchristie.com",
48     packages=get_packages("starlette"),
49     package_data={"starlette": ["py.typed"]},
50     data_files=[("", ["LICENSE.md"])],
51     extras_require={
52         "full": [
53             "aiofiles",
54             "asyncpg",
55             "graphene",
56             "itsdangerous",
57             "jinja2",
58             "python-multipart",
59             "pyyaml",
60             "requests",
61             "ujson",
62         ]
63     },
64     classifiers=[
65         "Development Status :: 3 - Alpha",
66         "Environment :: Web Environment",
67         "Intended Audience :: Developers",
68         "License :: OSI Approved :: BSD License",
69         "Operating System :: OS Independent",
70         "Topic :: Internet :: WWW/HTTP",
71         "Programming Language :: Python :: 3",
72         "Programming Language :: Python :: 3.6",
73         "Programming Language :: Python :: 3.7",
74     ],
75 )
76
```
--- 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/setup.py b/setup.py
--- a/setup.py
+++ b/setup.py
@@ -72,4 +72,5 @@
         "Programming Language :: Python :: 3.6",
         "Programming Language :: Python :: 3.7",
     ],
+    zip_safe=False,
 )

{"golden_diff": "diff --git a/setup.py b/setup.py\n--- a/setup.py\n+++ b/setup.py\n@@ -72,4 +72,5 @@\n         \"Programming Language :: Python :: 3.6\",\n         \"Programming Language :: Python :: 3.7\",\n     ],\n+    zip_safe=False,\n )\n", "issue": "py.typed missing in published artifacts\nI didn\u2019t check for earlier versions, but at least 0.11.4 on PyPI does not include `py.typed`. I assume this is an oversight, given it is mentioned in `setup.py`?\r\n\r\nhttps://github.com/encode/starlette/blob/77b84a08c1e4de0db64a197b58ac363a26c51d4f/setup.py#L49\n", "before_files": [{"content": "#!/usr/bin/env python\n# -*- coding: utf-8 -*-\n\nimport os\nimport re\n\nfrom setuptools import setup\n\n\ndef get_version(package):\n    \"\"\"\n    Return package version as listed in `__version__` in `init.py`.\n    \"\"\"\n    with open(os.path.join(package, \"__init__.py\")) as f:\n        return re.search(\"__version__ = ['\\\"]([^'\\\"]+)['\\\"]\", f.read()).group(1)\n\n\ndef get_long_description():\n    \"\"\"\n    Return the README.\n    \"\"\"\n    with open(\"README.md\", encoding=\"utf8\") as f:\n        return f.read()\n\n\ndef get_packages(package):\n    \"\"\"\n    Return root package and all sub-packages.\n    \"\"\"\n    return [\n        dirpath\n        for dirpath, dirnames, filenames in os.walk(package)\n        if os.path.exists(os.path.join(dirpath, \"__init__.py\"))\n    ]\n\n\nsetup(\n    name=\"starlette\",\n    python_requires=\">=3.6\",\n    version=get_version(\"starlette\"),\n    url=\"https://github.com/encode/starlette\",\n    license=\"BSD\",\n    description=\"The little ASGI library that shines.\",\n    long_description=get_long_description(),\n    long_description_content_type=\"text/markdown\",\n    author=\"Tom Christie\",\n    author_email=\"tom@tomchristie.com\",\n    packages=get_packages(\"starlette\"),\n    package_data={\"starlette\": [\"py.typed\"]},\n    data_files=[(\"\", [\"LICENSE.md\"])],\n    extras_require={\n        \"full\": [\n            \"aiofiles\",\n            \"asyncpg\",\n            \"graphene\",\n            \"itsdangerous\",\n            \"jinja2\",\n            \"python-multipart\",\n            \"pyyaml\",\n            \"requests\",\n            \"ujson\",\n        ]\n    },\n    classifiers=[\n        \"Development Status :: 3 - Alpha\",\n        \"Environment :: Web Environment\",\n        \"Intended Audience :: Developers\",\n        \"License :: OSI Approved :: BSD License\",\n        \"Operating System :: OS Independent\",\n        \"Topic :: Internet :: WWW/HTTP\",\n        \"Programming Language :: Python :: 3\",\n        \"Programming Language :: Python :: 3.6\",\n        \"Programming Language :: Python :: 3.7\",\n    ],\n)\n", "path": "setup.py"}], "after_files": [{"content": "#!/usr/bin/env python\n# -*- coding: utf-8 -*-\n\nimport os\nimport re\n\nfrom setuptools import setup\n\n\ndef get_version(package):\n    \"\"\"\n    Return package version as listed in `__version__` in `init.py`.\n    \"\"\"\n    with open(os.path.join(package, \"__init__.py\")) as f:\n        return re.search(\"__version__ = ['\\\"]([^'\\\"]+)['\\\"]\", f.read()).group(1)\n\n\ndef get_long_description():\n    \"\"\"\n    Return the README.\n    \"\"\"\n    with open(\"README.md\", encoding=\"utf8\") as f:\n        return f.read()\n\n\ndef get_packages(package):\n    \"\"\"\n    Return root package and all sub-packages.\n    \"\"\"\n    return [\n        dirpath\n        for dirpath, dirnames, filenames in os.walk(package)\n        if os.path.exists(os.path.join(dirpath, \"__init__.py\"))\n    ]\n\n\nsetup(\n    name=\"starlette\",\n    python_requires=\">=3.6\",\n    version=get_version(\"starlette\"),\n    url=\"https://github.com/encode/starlette\",\n    license=\"BSD\",\n    description=\"The little ASGI library that shines.\",\n    long_description=get_long_description(),\n    long_description_content_type=\"text/markdown\",\n    author=\"Tom Christie\",\n    author_email=\"tom@tomchristie.com\",\n    packages=get_packages(\"starlette\"),\n    package_data={\"starlette\": [\"py.typed\"]},\n    data_files=[(\"\", [\"LICENSE.md\"])],\n    extras_require={\n        \"full\": [\n            \"aiofiles\",\n            \"asyncpg\",\n            \"graphene\",\n            \"itsdangerous\",\n            \"jinja2\",\n            \"python-multipart\",\n            \"pyyaml\",\n            \"requests\",\n            \"ujson\",\n        ]\n    },\n    classifiers=[\n        \"Development Status :: 3 - Alpha\",\n        \"Environment :: Web Environment\",\n        \"Intended Audience :: Developers\",\n        \"License :: OSI Approved :: BSD License\",\n        \"Operating System :: OS Independent\",\n        \"Topic :: Internet :: WWW/HTTP\",\n        \"Programming Language :: Python :: 3\",\n        \"Programming Language :: Python :: 3.6\",\n        \"Programming Language :: Python :: 3.7\",\n    ],\n    zip_safe=False,\n)\n", "path": "setup.py"}]}