prompt: We are currently solving the following issue within our repository. Here is the issue text:
  --- BEGIN ISSUE ---
  Check deps on CI
  `pip install gpflow` currently installs dependencies (setuptools, scipy) with versions that are incompatible with the tensorflow version installed.
  
  This ticket isn't to fix the dependencies, per se, but suggests adding a `pip check -vvv` stage to CI, so that such problems are caught at PR stage.
  
  --- 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 # pylint: skip-file
  5 
  6 import os
  7 import sys
  8 
  9 from setuptools import find_packages, setup
  10 
  11 
  12 # Dependencies of GPflow
  13 requirements = [
  14     "numpy>=1.10.0",
  15     "scipy>=0.18.0",
  16     "multipledispatch>=0.6",
  17     "tabulate",
  18     "typing_extensions",
  19     "cloudpickle==1.3.0",  # temporary workaround for tensorflow/probability#991
  20 ]
  21 
  22 if sys.version_info < (3, 7):
  23     # became part of stdlib in python 3.7
  24     requirements.append("dataclasses")
  25 
  26 # We do not want to install tensorflow in the readthedocs environment, where we
  27 # use autodoc_mock_imports instead. Hence we use this flag to decide whether or
  28 # not to append tensorflow and tensorflow_probability to the requirements:
  29 if os.environ.get("READTHEDOCS") != "True":
  30     requirements.extend(["tensorflow>=2.1.0,<2.3", "tensorflow-probability>=0.9,<0.11"])
  31 
  32 
  33 def read_file(filename):
  34     with open(filename, encoding="utf-8") as f:
  35         return f.read().strip()
  36 
  37 
  38 version = read_file("VERSION")
  39 readme_text = read_file("README.md")
  40 
  41 packages = find_packages(".", exclude=["tests"])
  42 
  43 setup(
  44     name="gpflow",
  45     version=version,
  46     author="James Hensman, Alex Matthews",
  47     author_email="james.hensman@gmail.com",
  48     description="Gaussian process methods in TensorFlow",
  49     long_description=readme_text,
  50     long_description_content_type="text/markdown",
  51     license="Apache License 2.0",
  52     keywords="machine-learning gaussian-processes kernels tensorflow",
  53     url="https://www.gpflow.org",
  54     project_urls={
  55         "Source on GitHub": "https://github.com/GPflow/GPflow",
  56         "Documentation": "https://gpflow.readthedocs.io",
  57     },
  58     packages=packages,
  59     include_package_data=True,
  60     install_requires=requirements,
  61     extras_require={"ImageToTensorBoard": ["matplotlib"]},
  62     python_requires=">=3.6",
  63     classifiers=[
  64         "License :: OSI Approved :: Apache Software License",
  65         "Natural Language :: English",
  66         "Operating System :: MacOS :: MacOS X",
  67         "Operating System :: Microsoft :: Windows",
  68         "Operating System :: POSIX :: Linux",
  69         "Programming Language :: Python :: 3.6",
  70         "Topic :: Scientific/Engineering :: Artificial Intelligence",
  71     ],
  72 )
  73
  ```
  --- 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
  @@ -12,11 +12,10 @@
   # Dependencies of GPflow
   requirements = [
       "numpy>=1.10.0",
  -    "scipy>=0.18.0",
  +    "scipy>=0.18.0,==1.4.1",  # pinned to ==1.4.1 to satisfy tensorflow requirements
       "multipledispatch>=0.6",
       "tabulate",
       "typing_extensions",
  -    "cloudpickle==1.3.0",  # temporary workaround for tensorflow/probability#991
   ]
   
   if sys.version_info < (3, 7):
  @@ -27,7 +26,18 @@
   # use autodoc_mock_imports instead. Hence we use this flag to decide whether or
   # not to append tensorflow and tensorflow_probability to the requirements:
   if os.environ.get("READTHEDOCS") != "True":
  -    requirements.extend(["tensorflow>=2.1.0,<2.3", "tensorflow-probability>=0.9,<0.11"])
  +    requirements.extend(
  +        [
  +            # tensorflow>=2.3 not compatible with tensorflow-probability<0.11
  +            "tensorflow>=2.1.0,<2.3",
  +            # tensorflow-probability==0.10.0 doesn't install correctly
  +            # https://github.com/tensorflow/probability/issues/991
  +            #
  +            # gpflow uses private functionality not present in tensorflow-probability~=0.11
  +            "tensorflow-probability>=0.9,<0.11,!=0.10.0",
  +            "setuptools>=41.0.0",  # to satisfy dependency constraints
  +        ]
  +    )
   
   
   def read_file(filename):
  
verification_info: {"golden_diff": "diff --git a/setup.py b/setup.py\n--- a/setup.py\n+++ b/setup.py\n@@ -12,11 +12,10 @@\n # Dependencies of GPflow\n requirements = [\n     \"numpy>=1.10.0\",\n-    \"scipy>=0.18.0\",\n+    \"scipy>=0.18.0,==1.4.1\",  # pinned to ==1.4.1 to satisfy tensorflow requirements\n     \"multipledispatch>=0.6\",\n     \"tabulate\",\n     \"typing_extensions\",\n-    \"cloudpickle==1.3.0\",  # temporary workaround for tensorflow/probability#991\n ]\n \n if sys.version_info < (3, 7):\n@@ -27,7 +26,18 @@\n # use autodoc_mock_imports instead. Hence we use this flag to decide whether or\n # not to append tensorflow and tensorflow_probability to the requirements:\n if os.environ.get(\"READTHEDOCS\") != \"True\":\n-    requirements.extend([\"tensorflow>=2.1.0,<2.3\", \"tensorflow-probability>=0.9,<0.11\"])\n+    requirements.extend(\n+        [\n+            # tensorflow>=2.3 not compatible with tensorflow-probability<0.11\n+            \"tensorflow>=2.1.0,<2.3\",\n+            # tensorflow-probability==0.10.0 doesn't install correctly\n+            # https://github.com/tensorflow/probability/issues/991\n+            #\n+            # gpflow uses private functionality not present in tensorflow-probability~=0.11\n+            \"tensorflow-probability>=0.9,<0.11,!=0.10.0\",\n+            \"setuptools>=41.0.0\",  # to satisfy dependency constraints\n+        ]\n+    )\n \n \n def read_file(filename):\n", "issue": "Check deps on CI\n`pip install gpflow` currently installs dependencies (setuptools, scipy) with versions that are incompatible with the tensorflow version installed.\r\n\r\nThis ticket isn't to fix the dependencies, per se, but suggests adding a `pip check -vvv` stage to CI, so that such problems are caught at PR stage.\n", "before_files": [{"content": "#!/usr/bin/env python\n# -*- coding: utf-8 -*-\n\n# pylint: skip-file\n\nimport os\nimport sys\n\nfrom setuptools import find_packages, setup\n\n\n# Dependencies of GPflow\nrequirements = [\n    \"numpy>=1.10.0\",\n    \"scipy>=0.18.0\",\n    \"multipledispatch>=0.6\",\n    \"tabulate\",\n    \"typing_extensions\",\n    \"cloudpickle==1.3.0\",  # temporary workaround for tensorflow/probability#991\n]\n\nif sys.version_info < (3, 7):\n    # became part of stdlib in python 3.7\n    requirements.append(\"dataclasses\")\n\n# We do not want to install tensorflow in the readthedocs environment, where we\n# use autodoc_mock_imports instead. Hence we use this flag to decide whether or\n# not to append tensorflow and tensorflow_probability to the requirements:\nif os.environ.get(\"READTHEDOCS\") != \"True\":\n    requirements.extend([\"tensorflow>=2.1.0,<2.3\", \"tensorflow-probability>=0.9,<0.11\"])\n\n\ndef read_file(filename):\n    with open(filename, encoding=\"utf-8\") as f:\n        return f.read().strip()\n\n\nversion = read_file(\"VERSION\")\nreadme_text = read_file(\"README.md\")\n\npackages = find_packages(\".\", exclude=[\"tests\"])\n\nsetup(\n    name=\"gpflow\",\n    version=version,\n    author=\"James Hensman, Alex Matthews\",\n    author_email=\"james.hensman@gmail.com\",\n    description=\"Gaussian process methods in TensorFlow\",\n    long_description=readme_text,\n    long_description_content_type=\"text/markdown\",\n    license=\"Apache License 2.0\",\n    keywords=\"machine-learning gaussian-processes kernels tensorflow\",\n    url=\"https://www.gpflow.org\",\n    project_urls={\n        \"Source on GitHub\": \"https://github.com/GPflow/GPflow\",\n        \"Documentation\": \"https://gpflow.readthedocs.io\",\n    },\n    packages=packages,\n    include_package_data=True,\n    install_requires=requirements,\n    extras_require={\"ImageToTensorBoard\": [\"matplotlib\"]},\n    python_requires=\">=3.6\",\n    classifiers=[\n        \"License :: OSI Approved :: Apache Software License\",\n        \"Natural Language :: English\",\n        \"Operating System :: MacOS :: MacOS X\",\n        \"Operating System :: Microsoft :: Windows\",\n        \"Operating System :: POSIX :: Linux\",\n        \"Programming Language :: Python :: 3.6\",\n        \"Topic :: Scientific/Engineering :: Artificial Intelligence\",\n    ],\n)\n", "path": "setup.py"}], "after_files": [{"content": "#!/usr/bin/env python\n# -*- coding: utf-8 -*-\n\n# pylint: skip-file\n\nimport os\nimport sys\n\nfrom setuptools import find_packages, setup\n\n\n# Dependencies of GPflow\nrequirements = [\n    \"numpy>=1.10.0\",\n    \"scipy>=0.18.0,==1.4.1\",  # pinned to ==1.4.1 to satisfy tensorflow requirements\n    \"multipledispatch>=0.6\",\n    \"tabulate\",\n    \"typing_extensions\",\n]\n\nif sys.version_info < (3, 7):\n    # became part of stdlib in python 3.7\n    requirements.append(\"dataclasses\")\n\n# We do not want to install tensorflow in the readthedocs environment, where we\n# use autodoc_mock_imports instead. Hence we use this flag to decide whether or\n# not to append tensorflow and tensorflow_probability to the requirements:\nif os.environ.get(\"READTHEDOCS\") != \"True\":\n    requirements.extend(\n        [\n            # tensorflow>=2.3 not compatible with tensorflow-probability<0.11\n            \"tensorflow>=2.1.0,<2.3\",\n            # tensorflow-probability==0.10.0 doesn't install correctly\n            # https://github.com/tensorflow/probability/issues/991\n            #\n            # gpflow uses private functionality not present in tensorflow-probability~=0.11\n            \"tensorflow-probability>=0.9,<0.11,!=0.10.0\",\n            \"setuptools>=41.0.0\",  # to satisfy dependency constraints\n        ]\n    )\n\n\ndef read_file(filename):\n    with open(filename, encoding=\"utf-8\") as f:\n        return f.read().strip()\n\n\nversion = read_file(\"VERSION\")\nreadme_text = read_file(\"README.md\")\n\npackages = find_packages(\".\", exclude=[\"tests\"])\n\nsetup(\n    name=\"gpflow\",\n    version=version,\n    author=\"James Hensman, Alex Matthews\",\n    author_email=\"james.hensman@gmail.com\",\n    description=\"Gaussian process methods in TensorFlow\",\n    long_description=readme_text,\n    long_description_content_type=\"text/markdown\",\n    license=\"Apache License 2.0\",\n    keywords=\"machine-learning gaussian-processes kernels tensorflow\",\n    url=\"https://www.gpflow.org\",\n    project_urls={\n        \"Source on GitHub\": \"https://github.com/GPflow/GPflow\",\n        \"Documentation\": \"https://gpflow.readthedocs.io\",\n    },\n    packages=packages,\n    include_package_data=True,\n    install_requires=requirements,\n    extras_require={\"ImageToTensorBoard\": [\"matplotlib\"]},\n    python_requires=\">=3.6\",\n    classifiers=[\n        \"License :: OSI Approved :: Apache Software License\",\n        \"Natural Language :: English\",\n        \"Operating System :: MacOS :: MacOS X\",\n        \"Operating System :: Microsoft :: Windows\",\n        \"Operating System :: POSIX :: Linux\",\n        \"Programming Language :: Python :: 3.6\",\n        \"Topic :: Scientific/Engineering :: Artificial Intelligence\",\n    ],\n)\n", "path": "setup.py"}]}