prompt: We are currently solving the following issue within our repository. Here is the issue text:
  --- BEGIN ISSUE ---
  Add a description field(s) to setup.py
  This populates the description on PYPI:
  
  https://packaging.python.org/tutorials/distributing-packages/#description
  
  --- 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 """Use the following command to install retriever: python setup.py install"""
  2 from __future__ import absolute_import
  3 
  4 import os
  5 import platform
  6 
  7 from pkg_resources import parse_version
  8 from setuptools import setup, find_packages
  9 
  10 current_platform = platform.system().lower()
  11 extra_includes = []
  12 if current_platform == "windows":
  13     extra_includes += ["pypyodbc"]
  14 
  15 if os.path.exists(".git/hooks"):  # check if we are in git repo
  16     os.system("cp hooks/pre-commit .git/hooks/pre-commit")
  17     os.system("chmod +x .git/hooks/pre-commit")
  18 
  19 app_data = "~/.retriever/scripts"
  20 if os.path.exists(app_data):
  21     os.system("rm -r {}".format(app_data))
  22 
  23 __version__ = 'v2.1.dev'
  24 with open(os.path.join("retriever", "_version.py"), "w") as version_file:
  25     version_file.write("__version__ = " + "'" + __version__ + "'\n")
  26     version_file.close()
  27 
  28 
  29 def clean_version(v):
  30     return parse_version(v).__repr__().lstrip("<Version('").rstrip("')>")
  31 
  32 includes = [
  33                'xlrd',
  34                'future',
  35                'argcomplete',
  36                'pymysql',
  37                'psycopg2',
  38                'sqlite3',
  39            ] + extra_includes
  40 
  41 excludes = [
  42     'pyreadline',
  43     'doctest',
  44     'pickle',
  45     'pdb',
  46     'pywin', 'pywin.debugger',
  47     'pywin.debugger.dbgcon',
  48     'pywin.dialogs', 'pywin.dialogs.list',
  49     'Tkconstants', 'Tkinter', 'tcl', 'tk'
  50 ]
  51 
  52 setup(name='retriever',
  53       version=clean_version(__version__),
  54       description='Data Retriever',
  55       author='Ben Morris, Shivam Negi, Akash Goel, Andrew Zhang, Henry Senyondo, Ethan White',
  56       author_email='ethan@weecology.org',
  57       url='https://github.com/weecology/retriever',
  58       classifiers=['Intended Audience :: Science/Research',
  59                    'License :: OSI Approved :: MIT License',
  60                    'Programming Language :: Python',
  61                    'Programming Language :: Python :: 2',
  62                    'Programming Language :: Python :: 3', ],
  63       packages=find_packages(
  64           exclude=['hooks',
  65                    'docs',
  66                    'tests',
  67                    'scripts',
  68                    'docker',
  69                    ".cache"]),
  70       entry_points={
  71           'console_scripts': [
  72               'retriever = retriever.__main__:main',
  73           ],
  74       },
  75       install_requires=[
  76           'xlrd',
  77           'future',
  78           'argcomplete',
  79           'tqdm'
  80       ],
  81       data_files=[('', ['CITATION'])],
  82       setup_requires=[],
  83       )
  84 
  85 # windows doesn't have bash. No point in using bash-completion
  86 if current_platform != "windows":
  87     # if platform is OS X use "~/.bash_profile"
  88     if current_platform == "darwin":
  89         bash_file = "~/.bash_profile"
  90     # if platform is Linux use "~/.bashrc
  91     elif current_platform == "linux":
  92         bash_file = "~/.bashrc"
  93     # else write and discard
  94     else:
  95         bash_file = "/dev/null"
  96 
  97     argcomplete_command = 'eval "$(register-python-argcomplete retriever)"'
  98     with open(os.path.expanduser(bash_file), "a+") as bashrc:
  99         bashrc.seek(0)
  100         # register retriever for arg-completion if not already registered
  101         # whenever a new shell is spawned
  102         if argcomplete_command not in bashrc.read():
  103             bashrc.write(argcomplete_command + "\n")
  104             bashrc.close()
  105     os.system("activate-global-python-argcomplete")
  106     # register for the current shell
  107     os.system(argcomplete_command)
  108 
  109 try:
  110     from retriever.compile import compile
  111     from retriever.lib.repository import check_for_updates
  112 
  113     check_for_updates(False)
  114     compile()
  115 except:
  116     pass
  117
  ```
  --- 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
  @@ -29,6 +29,7 @@
   def clean_version(v):
       return parse_version(v).__repr__().lstrip("<Version('").rstrip("')>")
   
  +
   includes = [
                  'xlrd',
                  'future',
  @@ -52,6 +53,10 @@
   setup(name='retriever',
         version=clean_version(__version__),
         description='Data Retriever',
  +      long_description=('The Data Retriever is a package manager for data. '
  +                        'It downloads, cleans, and stores publicly available data, '
  +                        'so that analysts spend less time cleaning and managing data, '
  +                        'and more time analyzing it.'),
         author='Ben Morris, Shivam Negi, Akash Goel, Andrew Zhang, Henry Senyondo, Ethan White',
         author_email='ethan@weecology.org',
         url='https://github.com/weecology/retriever',
  
verification_info: {"golden_diff": "diff --git a/setup.py b/setup.py\n--- a/setup.py\n+++ b/setup.py\n@@ -29,6 +29,7 @@\n def clean_version(v):\n     return parse_version(v).__repr__().lstrip(\"<Version('\").rstrip(\"')>\")\n \n+\n includes = [\n                'xlrd',\n                'future',\n@@ -52,6 +53,10 @@\n setup(name='retriever',\n       version=clean_version(__version__),\n       description='Data Retriever',\n+      long_description=('The Data Retriever is a package manager for data. '\n+                        'It downloads, cleans, and stores publicly available data, '\n+                        'so that analysts spend less time cleaning and managing data, '\n+                        'and more time analyzing it.'),\n       author='Ben Morris, Shivam Negi, Akash Goel, Andrew Zhang, Henry Senyondo, Ethan White',\n       author_email='ethan@weecology.org',\n       url='https://github.com/weecology/retriever',\n", "issue": "Add a description field(s) to setup.py\nThis populates the description on PYPI:\r\n\r\nhttps://packaging.python.org/tutorials/distributing-packages/#description\n", "before_files": [{"content": "\"\"\"Use the following command to install retriever: python setup.py install\"\"\"\nfrom __future__ import absolute_import\n\nimport os\nimport platform\n\nfrom pkg_resources import parse_version\nfrom setuptools import setup, find_packages\n\ncurrent_platform = platform.system().lower()\nextra_includes = []\nif current_platform == \"windows\":\n    extra_includes += [\"pypyodbc\"]\n\nif os.path.exists(\".git/hooks\"):  # check if we are in git repo\n    os.system(\"cp hooks/pre-commit .git/hooks/pre-commit\")\n    os.system(\"chmod +x .git/hooks/pre-commit\")\n\napp_data = \"~/.retriever/scripts\"\nif os.path.exists(app_data):\n    os.system(\"rm -r {}\".format(app_data))\n\n__version__ = 'v2.1.dev'\nwith open(os.path.join(\"retriever\", \"_version.py\"), \"w\") as version_file:\n    version_file.write(\"__version__ = \" + \"'\" + __version__ + \"'\\n\")\n    version_file.close()\n\n\ndef clean_version(v):\n    return parse_version(v).__repr__().lstrip(\"<Version('\").rstrip(\"')>\")\n\nincludes = [\n               'xlrd',\n               'future',\n               'argcomplete',\n               'pymysql',\n               'psycopg2',\n               'sqlite3',\n           ] + extra_includes\n\nexcludes = [\n    'pyreadline',\n    'doctest',\n    'pickle',\n    'pdb',\n    'pywin', 'pywin.debugger',\n    'pywin.debugger.dbgcon',\n    'pywin.dialogs', 'pywin.dialogs.list',\n    'Tkconstants', 'Tkinter', 'tcl', 'tk'\n]\n\nsetup(name='retriever',\n      version=clean_version(__version__),\n      description='Data Retriever',\n      author='Ben Morris, Shivam Negi, Akash Goel, Andrew Zhang, Henry Senyondo, Ethan White',\n      author_email='ethan@weecology.org',\n      url='https://github.com/weecology/retriever',\n      classifiers=['Intended Audience :: Science/Research',\n                   'License :: OSI Approved :: MIT License',\n                   'Programming Language :: Python',\n                   'Programming Language :: Python :: 2',\n                   'Programming Language :: Python :: 3', ],\n      packages=find_packages(\n          exclude=['hooks',\n                   'docs',\n                   'tests',\n                   'scripts',\n                   'docker',\n                   \".cache\"]),\n      entry_points={\n          'console_scripts': [\n              'retriever = retriever.__main__:main',\n          ],\n      },\n      install_requires=[\n          'xlrd',\n          'future',\n          'argcomplete',\n          'tqdm'\n      ],\n      data_files=[('', ['CITATION'])],\n      setup_requires=[],\n      )\n\n# windows doesn't have bash. No point in using bash-completion\nif current_platform != \"windows\":\n    # if platform is OS X use \"~/.bash_profile\"\n    if current_platform == \"darwin\":\n        bash_file = \"~/.bash_profile\"\n    # if platform is Linux use \"~/.bashrc\n    elif current_platform == \"linux\":\n        bash_file = \"~/.bashrc\"\n    # else write and discard\n    else:\n        bash_file = \"/dev/null\"\n\n    argcomplete_command = 'eval \"$(register-python-argcomplete retriever)\"'\n    with open(os.path.expanduser(bash_file), \"a+\") as bashrc:\n        bashrc.seek(0)\n        # register retriever for arg-completion if not already registered\n        # whenever a new shell is spawned\n        if argcomplete_command not in bashrc.read():\n            bashrc.write(argcomplete_command + \"\\n\")\n            bashrc.close()\n    os.system(\"activate-global-python-argcomplete\")\n    # register for the current shell\n    os.system(argcomplete_command)\n\ntry:\n    from retriever.compile import compile\n    from retriever.lib.repository import check_for_updates\n\n    check_for_updates(False)\n    compile()\nexcept:\n    pass\n", "path": "setup.py"}], "after_files": [{"content": "\"\"\"Use the following command to install retriever: python setup.py install\"\"\"\nfrom __future__ import absolute_import\n\nimport os\nimport platform\n\nfrom pkg_resources import parse_version\nfrom setuptools import setup, find_packages\n\ncurrent_platform = platform.system().lower()\nextra_includes = []\nif current_platform == \"windows\":\n    extra_includes += [\"pypyodbc\"]\n\nif os.path.exists(\".git/hooks\"):  # check if we are in git repo\n    os.system(\"cp hooks/pre-commit .git/hooks/pre-commit\")\n    os.system(\"chmod +x .git/hooks/pre-commit\")\n\napp_data = \"~/.retriever/scripts\"\nif os.path.exists(app_data):\n    os.system(\"rm -r {}\".format(app_data))\n\n__version__ = 'v2.1.dev'\nwith open(os.path.join(\"retriever\", \"_version.py\"), \"w\") as version_file:\n    version_file.write(\"__version__ = \" + \"'\" + __version__ + \"'\\n\")\n    version_file.close()\n\n\ndef clean_version(v):\n    return parse_version(v).__repr__().lstrip(\"<Version('\").rstrip(\"')>\")\n\n\nincludes = [\n               'xlrd',\n               'future',\n               'argcomplete',\n               'pymysql',\n               'psycopg2',\n               'sqlite3',\n           ] + extra_includes\n\nexcludes = [\n    'pyreadline',\n    'doctest',\n    'pickle',\n    'pdb',\n    'pywin', 'pywin.debugger',\n    'pywin.debugger.dbgcon',\n    'pywin.dialogs', 'pywin.dialogs.list',\n    'Tkconstants', 'Tkinter', 'tcl', 'tk'\n]\n\nsetup(name='retriever',\n      version=clean_version(__version__),\n      description='Data Retriever',\n      long_description=('The Data Retriever is a package manager for data. '\n                        'It downloads, cleans, and stores publicly available data, '\n                        'so that analysts spend less time cleaning and managing data, '\n                        'and more time analyzing it.'),\n      author='Ben Morris, Shivam Negi, Akash Goel, Andrew Zhang, Henry Senyondo, Ethan White',\n      author_email='ethan@weecology.org',\n      url='https://github.com/weecology/retriever',\n      classifiers=['Intended Audience :: Science/Research',\n                   'License :: OSI Approved :: MIT License',\n                   'Programming Language :: Python',\n                   'Programming Language :: Python :: 2',\n                   'Programming Language :: Python :: 3', ],\n      packages=find_packages(\n          exclude=['hooks',\n                   'docs',\n                   'tests',\n                   'scripts',\n                   'docker',\n                   \".cache\"]),\n      entry_points={\n          'console_scripts': [\n              'retriever = retriever.__main__:main',\n          ],\n      },\n      install_requires=[\n          'xlrd',\n          'future',\n          'argcomplete',\n          'tqdm'\n      ],\n      data_files=[('', ['CITATION'])],\n      setup_requires=[],\n      )\n\n# windows doesn't have bash. No point in using bash-completion\nif current_platform != \"windows\":\n    # if platform is OS X use \"~/.bash_profile\"\n    if current_platform == \"darwin\":\n        bash_file = \"~/.bash_profile\"\n    # if platform is Linux use \"~/.bashrc\n    elif current_platform == \"linux\":\n        bash_file = \"~/.bashrc\"\n    # else write and discard\n    else:\n        bash_file = \"/dev/null\"\n\n    argcomplete_command = 'eval \"$(register-python-argcomplete retriever)\"'\n    with open(os.path.expanduser(bash_file), \"a+\") as bashrc:\n        bashrc.seek(0)\n        # register retriever for arg-completion if not already registered\n        # whenever a new shell is spawned\n        if argcomplete_command not in bashrc.read():\n            bashrc.write(argcomplete_command + \"\\n\")\n            bashrc.close()\n    os.system(\"activate-global-python-argcomplete\")\n    # register for the current shell\n    os.system(argcomplete_command)\n\ntry:\n    from retriever.compile import compile\n    from retriever.lib.repository import check_for_updates\n\n    check_for_updates(False)\n    compile()\nexcept:\n    pass\n", "path": "setup.py"}]}