prompt: We are currently solving the following issue within our repository. Here is the issue text:
  --- BEGIN ISSUE ---
  Lightwood pip packages creates tests module
  Installing lightwood creates 'tests' module in python site-packages
  
  Steps to reproduce:
  - `pip install lightwood`
  - in python
   - `import tests`
   - `print(tests.__file__) `
  It will show that 'tests' is in site-packages
  
  --- 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 import sys
  2 import setuptools
  3 import os
  4 
  5 
  6 def remove_requirements(requirements, name, replace=''):
  7     new_requirements = []
  8     for requirement in requirements:
  9         if requirement.split(' ')[0] != name:
  10             new_requirements.append(requirement)
  11         elif replace is not None:
  12             new_requirements.append(replace)
  13     return new_requirements
  14 
  15 
  16 sys_platform = sys.platform
  17 
  18 about = {}
  19 with open("lightwood/__about__.py") as fp:
  20     exec(fp.read(), about)
  21 
  22 with open("README.md", "r") as fh:
  23     long_description = fh.read()
  24 
  25 with open('requirements.txt') as req_file:
  26     requirements = [req.strip() for req in req_file.read().splitlines()]
  27 
  28 extra_requirements = {}
  29 for fn in os.listdir('.'):
  30     if fn.startswith('requirements_') and fn.endswith('.txt'):
  31         extra_name = fn.replace('requirements_', '').replace('.txt', '')
  32         with open(fn) as fp:
  33             extra = [req.strip() for req in fp.read().splitlines()]
  34         extra_requirements[extra_name] = extra
  35 full_requirements = []
  36 for v in extra_requirements.values():
  37     full_requirements += v
  38 extra_requirements['all_extras'] = list(set(full_requirements))
  39 
  40 # Windows specific requirements
  41 if sys_platform in ['win32', 'cygwin', 'windows']:
  42     # These have to be installed manually or via the installers in windows
  43     requirements = remove_requirements(requirements, 'torch')
  44 
  45 setuptools.setup(
  46     name=about['__title__'],
  47     version=about['__version__'],
  48     url=about['__github__'],
  49     download_url=about['__pypi__'],
  50     license=about['__license__'],
  51     author=about['__author__'],
  52     author_email=about['__email__'],
  53     description=about['__description__'],
  54     long_description=long_description,
  55     long_description_content_type="text/markdown",
  56     packages=setuptools.find_packages(),
  57     package_data={'project': ['requirements.txt']},
  58     install_requires=requirements,
  59     extras_require=extra_requirements,
  60     classifiers=[
  61         "Programming Language :: Python :: 3",
  62         "License :: OSI Approved :: MIT License",
  63         "Operating System :: OS Independent",
  64     ],
  65     python_requires=">=3.7"
  66 )
  67
  ```
  --- 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
  @@ -53,7 +53,7 @@
       description=about['__description__'],
       long_description=long_description,
       long_description_content_type="text/markdown",
  -    packages=setuptools.find_packages(),
  +    packages=setuptools.find_packages(exclude=["tests", "tests.*"]),
       package_data={'project': ['requirements.txt']},
       install_requires=requirements,
       extras_require=extra_requirements,
  
verification_info: {"golden_diff": "diff --git a/setup.py b/setup.py\n--- a/setup.py\n+++ b/setup.py\n@@ -53,7 +53,7 @@\n     description=about['__description__'],\n     long_description=long_description,\n     long_description_content_type=\"text/markdown\",\n-    packages=setuptools.find_packages(),\n+    packages=setuptools.find_packages(exclude=[\"tests\", \"tests.*\"]),\n     package_data={'project': ['requirements.txt']},\n     install_requires=requirements,\n     extras_require=extra_requirements,\n", "issue": "Lightwood pip packages creates tests module\nInstalling lightwood creates 'tests' module in python site-packages\r\n\r\nSteps to reproduce:\r\n- `pip install lightwood`\r\n- in python\r\n - `import tests`\r\n - `print(tests.__file__) `\r\nIt will show that 'tests' is in site-packages\n", "before_files": [{"content": "import sys\nimport setuptools\nimport os\n\n\ndef remove_requirements(requirements, name, replace=''):\n    new_requirements = []\n    for requirement in requirements:\n        if requirement.split(' ')[0] != name:\n            new_requirements.append(requirement)\n        elif replace is not None:\n            new_requirements.append(replace)\n    return new_requirements\n\n\nsys_platform = sys.platform\n\nabout = {}\nwith open(\"lightwood/__about__.py\") as fp:\n    exec(fp.read(), about)\n\nwith open(\"README.md\", \"r\") as fh:\n    long_description = fh.read()\n\nwith open('requirements.txt') as req_file:\n    requirements = [req.strip() for req in req_file.read().splitlines()]\n\nextra_requirements = {}\nfor fn in os.listdir('.'):\n    if fn.startswith('requirements_') and fn.endswith('.txt'):\n        extra_name = fn.replace('requirements_', '').replace('.txt', '')\n        with open(fn) as fp:\n            extra = [req.strip() for req in fp.read().splitlines()]\n        extra_requirements[extra_name] = extra\nfull_requirements = []\nfor v in extra_requirements.values():\n    full_requirements += v\nextra_requirements['all_extras'] = list(set(full_requirements))\n\n# Windows specific requirements\nif sys_platform in ['win32', 'cygwin', 'windows']:\n    # These have to be installed manually or via the installers in windows\n    requirements = remove_requirements(requirements, 'torch')\n\nsetuptools.setup(\n    name=about['__title__'],\n    version=about['__version__'],\n    url=about['__github__'],\n    download_url=about['__pypi__'],\n    license=about['__license__'],\n    author=about['__author__'],\n    author_email=about['__email__'],\n    description=about['__description__'],\n    long_description=long_description,\n    long_description_content_type=\"text/markdown\",\n    packages=setuptools.find_packages(),\n    package_data={'project': ['requirements.txt']},\n    install_requires=requirements,\n    extras_require=extra_requirements,\n    classifiers=[\n        \"Programming Language :: Python :: 3\",\n        \"License :: OSI Approved :: MIT License\",\n        \"Operating System :: OS Independent\",\n    ],\n    python_requires=\">=3.7\"\n)\n", "path": "setup.py"}], "after_files": [{"content": "import sys\nimport setuptools\nimport os\n\n\ndef remove_requirements(requirements, name, replace=''):\n    new_requirements = []\n    for requirement in requirements:\n        if requirement.split(' ')[0] != name:\n            new_requirements.append(requirement)\n        elif replace is not None:\n            new_requirements.append(replace)\n    return new_requirements\n\n\nsys_platform = sys.platform\n\nabout = {}\nwith open(\"lightwood/__about__.py\") as fp:\n    exec(fp.read(), about)\n\nwith open(\"README.md\", \"r\") as fh:\n    long_description = fh.read()\n\nwith open('requirements.txt') as req_file:\n    requirements = [req.strip() for req in req_file.read().splitlines()]\n\nextra_requirements = {}\nfor fn in os.listdir('.'):\n    if fn.startswith('requirements_') and fn.endswith('.txt'):\n        extra_name = fn.replace('requirements_', '').replace('.txt', '')\n        with open(fn) as fp:\n            extra = [req.strip() for req in fp.read().splitlines()]\n        extra_requirements[extra_name] = extra\nfull_requirements = []\nfor v in extra_requirements.values():\n    full_requirements += v\nextra_requirements['all_extras'] = list(set(full_requirements))\n\n# Windows specific requirements\nif sys_platform in ['win32', 'cygwin', 'windows']:\n    # These have to be installed manually or via the installers in windows\n    requirements = remove_requirements(requirements, 'torch')\n\nsetuptools.setup(\n    name=about['__title__'],\n    version=about['__version__'],\n    url=about['__github__'],\n    download_url=about['__pypi__'],\n    license=about['__license__'],\n    author=about['__author__'],\n    author_email=about['__email__'],\n    description=about['__description__'],\n    long_description=long_description,\n    long_description_content_type=\"text/markdown\",\n    packages=setuptools.find_packages(exclude=[\"tests\", \"tests.*\"]),\n    package_data={'project': ['requirements.txt']},\n    install_requires=requirements,\n    extras_require=extra_requirements,\n    classifiers=[\n        \"Programming Language :: Python :: 3\",\n        \"License :: OSI Approved :: MIT License\",\n        \"Operating System :: OS Independent\",\n    ],\n    python_requires=\">=3.7\"\n)\n", "path": "setup.py"}]}