We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Installed KFServing SDK 0.4 but getting import error while running the custom built image
/kind bug

**What steps did you take and what happened:**
Run a custom built image with KFServing SDK 0.4.
```
Traceback (most recent call last):
  File "/python3/lib/python3.7/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/python3/lib/python3.7/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/job/blambda-function/image_transformer_v2/__main__.py", line 15, in <module>
    import kfserving
  File "/python3/lib/python3.7/site-packages/kfserving/__init__.py", line 18, in <module>
    from .storage import Storage
  File "/python3/lib/python3.7/site-packages/kfserving/storage.py", line 23, in <module>
    from google.cloud import storage
  File "/python3/lib/python3.7/site-packages/google/cloud/storage/__init__.py", line 39, in <module>
    from google.cloud.storage.batch import Batch
  File "/python3/lib/python3.7/site-packages/google/cloud/storage/batch.py", line 31, in <module>
    from google.cloud.storage._http import Connection
  File "/python3/lib/python3.7/site-packages/google/cloud/storage/_http.py", line 17, in <module>
    from google.cloud import _http
  File "/python3/lib/python3.7/site-packages/google/cloud/_http.py", line 22, in <module>
    from six.moves import collections_abc
ImportError: cannot import name 'collections_abc' from 'six.moves' (unknown location)
```


**What did you expect to happen:**


**Anything else you would like to add:**
We have fixed this in master branch but looks like we need to patch the setup.py in 0.4 branch and release a new minor version

**Environment:**

- Istio Version:
- Knative Version:
- KFServing Version:
- Kubeflow version:
- Kfdef:[k8s_istio/istio_dex/gcp_basic_auth/gcp_iap/aws/aws_cognito/ibm]
- Minikube version:
- Kubernetes version: (use `kubectl version`):
- OS (e.g. from `/etc/os-release`):


--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `python/alibiexplainer/setup.py`
Content:
```
1 # Copyright 2019 kubeflow.org.
2 #
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
6 #
7 #    http://www.apache.org/licenses/LICENSE-2.0
8 #
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
14 
15 from setuptools import setup, find_packages
16 
17 tests_require = [
18     'pytest',
19     'pytest-tornasync',
20     'mypy'
21 ]
22 
23 setup(
24     name='alibiexplainer',
25     version='0.4.0',
26     author_email='cc@seldon.io',
27     license='../../LICENSE.txt',
28     url='https://github.com/kubeflow/kfserving/python/kfserving/alibiexplainer',
29     description='Model Explaination Server. \
30                  Not intended for use outside KFServing Frameworks Images',
31     long_description=open('README.md').read(),
32     python_requires='>=3.6',
33     packages=find_packages("alibiexplainer"),
34     install_requires=[
35         "kfserving>=0.4.0",
36         "alibi==0.4.0",
37         "scikit-learn>=0.20.3",
38         "argparse>=1.4.0",
39         "requests>=2.22.0",
40         "joblib>=0.13.2",
41         "pandas>=0.24.2",
42         "numpy>=1.16.3",
43         "dill>=0.3.0",
44         "spacy>=2.1.4"
45     ],
46     tests_require=tests_require,
47     extras_require={'test': tests_require}
48 )
49
```
--- 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/python/alibiexplainer/setup.py b/python/alibiexplainer/setup.py
--- a/python/alibiexplainer/setup.py
+++ b/python/alibiexplainer/setup.py
@@ -32,6 +32,7 @@
     python_requires='>=3.6',
     packages=find_packages("alibiexplainer"),
     install_requires=[
+        "shap==0.35",
         "kfserving>=0.4.0",
         "alibi==0.4.0",
         "scikit-learn>=0.20.3",

{"golden_diff": "diff --git a/python/alibiexplainer/setup.py b/python/alibiexplainer/setup.py\n--- a/python/alibiexplainer/setup.py\n+++ b/python/alibiexplainer/setup.py\n@@ -32,6 +32,7 @@\n     python_requires='>=3.6',\n     packages=find_packages(\"alibiexplainer\"),\n     install_requires=[\n+        \"shap==0.35\",\n         \"kfserving>=0.4.0\",\n         \"alibi==0.4.0\",\n         \"scikit-learn>=0.20.3\",\n", "issue": "Installed KFServing SDK 0.4 but getting import error while running the custom built image\n/kind bug\r\n\r\n**What steps did you take and what happened:**\r\nRun a custom built image with KFServing SDK 0.4.\r\n```\r\nTraceback (most recent call last):\r\n  File \"/python3/lib/python3.7/runpy.py\", line 193, in _run_module_as_main\r\n    \"__main__\", mod_spec)\r\n  File \"/python3/lib/python3.7/runpy.py\", line 85, in _run_code\r\n    exec(code, run_globals)\r\n  File \"/job/blambda-function/image_transformer_v2/__main__.py\", line 15, in <module>\r\n    import kfserving\r\n  File \"/python3/lib/python3.7/site-packages/kfserving/__init__.py\", line 18, in <module>\r\n    from .storage import Storage\r\n  File \"/python3/lib/python3.7/site-packages/kfserving/storage.py\", line 23, in <module>\r\n    from google.cloud import storage\r\n  File \"/python3/lib/python3.7/site-packages/google/cloud/storage/__init__.py\", line 39, in <module>\r\n    from google.cloud.storage.batch import Batch\r\n  File \"/python3/lib/python3.7/site-packages/google/cloud/storage/batch.py\", line 31, in <module>\r\n    from google.cloud.storage._http import Connection\r\n  File \"/python3/lib/python3.7/site-packages/google/cloud/storage/_http.py\", line 17, in <module>\r\n    from google.cloud import _http\r\n  File \"/python3/lib/python3.7/site-packages/google/cloud/_http.py\", line 22, in <module>\r\n    from six.moves import collections_abc\r\nImportError: cannot import name 'collections_abc' from 'six.moves' (unknown location)\r\n```\r\n\r\n\r\n**What did you expect to happen:**\r\n\r\n\r\n**Anything else you would like to add:**\r\nWe have fixed this in master branch but looks like we need to patch the setup.py in 0.4 branch and release a new minor version\r\n\r\n**Environment:**\r\n\r\n- Istio Version:\r\n- Knative Version:\r\n- KFServing Version:\r\n- Kubeflow version:\r\n- Kfdef:[k8s_istio/istio_dex/gcp_basic_auth/gcp_iap/aws/aws_cognito/ibm]\r\n- Minikube version:\r\n- Kubernetes version: (use `kubectl version`):\r\n- OS (e.g. from `/etc/os-release`):\r\n\n", "before_files": [{"content": "# Copyright 2019 kubeflow.org.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#    http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nfrom setuptools import setup, find_packages\n\ntests_require = [\n    'pytest',\n    'pytest-tornasync',\n    'mypy'\n]\n\nsetup(\n    name='alibiexplainer',\n    version='0.4.0',\n    author_email='cc@seldon.io',\n    license='../../LICENSE.txt',\n    url='https://github.com/kubeflow/kfserving/python/kfserving/alibiexplainer',\n    description='Model Explaination Server. \\\n                 Not intended for use outside KFServing Frameworks Images',\n    long_description=open('README.md').read(),\n    python_requires='>=3.6',\n    packages=find_packages(\"alibiexplainer\"),\n    install_requires=[\n        \"kfserving>=0.4.0\",\n        \"alibi==0.4.0\",\n        \"scikit-learn>=0.20.3\",\n        \"argparse>=1.4.0\",\n        \"requests>=2.22.0\",\n        \"joblib>=0.13.2\",\n        \"pandas>=0.24.2\",\n        \"numpy>=1.16.3\",\n        \"dill>=0.3.0\",\n        \"spacy>=2.1.4\"\n    ],\n    tests_require=tests_require,\n    extras_require={'test': tests_require}\n)\n", "path": "python/alibiexplainer/setup.py"}], "after_files": [{"content": "# Copyright 2019 kubeflow.org.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#    http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nfrom setuptools import setup, find_packages\n\ntests_require = [\n    'pytest',\n    'pytest-tornasync',\n    'mypy'\n]\n\nsetup(\n    name='alibiexplainer',\n    version='0.4.0',\n    author_email='cc@seldon.io',\n    license='../../LICENSE.txt',\n    url='https://github.com/kubeflow/kfserving/python/kfserving/alibiexplainer',\n    description='Model Explaination Server. \\\n                 Not intended for use outside KFServing Frameworks Images',\n    long_description=open('README.md').read(),\n    python_requires='>=3.6',\n    packages=find_packages(\"alibiexplainer\"),\n    install_requires=[\n        \"shap==0.35\",\n        \"kfserving>=0.4.0\",\n        \"alibi==0.4.0\",\n        \"scikit-learn>=0.20.3\",\n        \"argparse>=1.4.0\",\n        \"requests>=2.22.0\",\n        \"joblib>=0.13.2\",\n        \"pandas>=0.24.2\",\n        \"numpy>=1.16.3\",\n        \"dill>=0.3.0\",\n        \"spacy>=2.1.4\"\n    ],\n    tests_require=tests_require,\n    extras_require={'test': tests_require}\n)\n", "path": "python/alibiexplainer/setup.py"}]}