Repository: googleapis/google-api-python-client

Issue:
discovery_cache module not packaged during installation.
I've installed `google-api-python-client` from source, but when at some point my application was failing with this message:

```
  ...
  ...
  File "build/bdist.linux-x86_64/egg/oauth2client/util.py", line 142, in positional_wrapper
    return wrapped(*args, **kwargs)
  File "build/bdist.linux-x86_64/egg/googleapiclient/discovery.py", line 193, in build
    content = _retrieve_discovery_doc(requested_url, http, cache_discovery, cache)
  File "build/bdist.linux-x86_64/egg/googleapiclient/discovery.py", line 215, in _retrieve_discovery_doc
    from . import discovery_cache
ImportError: cannot import name discovery_cache
```

I've checked if `discovery_cache` module was actually part of the `egg`, and unfortunately it was not:

```
[root@e42fb97ce657 unit]# python
Python 2.7.5 (default, Jun 24 2015, 00:41:19) 
[GCC 4.8.3 20140911 (Red Hat 4.8.3-9)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import googleapiclient.discovery_cache
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named discovery_cache
>>> 
```

Here are all the files in `egg`

```
[root@e42fb97ce657 ~]# unzip -l /usr/lib/python2.7/site-packages/google_api_python_client-1.4.1-py2.7.egg 
Archive:  /usr/lib/python2.7/site-packages/google_api_python_client-1.4.1-py2.7.egg
  Length      Date    Time    Name
---------  ---------- -----   ----
     1169  09-03-2015 16:09   apiclient/__init__.py
     1301  09-03-2015 16:09   apiclient/__init__.pyc
        1  09-03-2015 16:09   EGG-INFO/dependency_links.txt
       62  09-03-2015 16:09   EGG-INFO/requires.txt
       26  09-03-2015 16:09   EGG-INFO/top_level.txt
      969  09-03-2015 16:09   EGG-INFO/PKG-INFO
        1  09-03-2015 16:09   EGG-INFO/zip-safe
      545  09-03-2015 16:09   EGG-INFO/SOURCES.txt
    53575  09-03-2015 16:09   googleapiclient/http.py
     9910  09-03-2015 16:09   googleapiclient/channel.py
    40890  09-03-2015 16:09   googleapiclient/discovery.py
     9907  09-03-2015 16:09   googleapiclient/schema.pyc
      620  09-03-2015 16:09   googleapiclient/__init__.py
     9317  09-03-2015 16:09   googleapiclient/schema.py
    11830  09-03-2015 16:09   googleapiclient/model.py
     4047  09-03-2015 16:09   googleapiclient/sample_tools.py
     6552  09-03-2015 16:09   googleapiclient/mimeparse.py
    53976  09-03-2015 16:09   googleapiclient/http.pyc
     7043  09-03-2015 16:09   googleapiclient/mimeparse.pyc
     6333  09-03-2015 16:09   googleapiclient/errors.pyc
     3131  09-03-2015 16:09   googleapiclient/sample_tools.pyc
     3622  09-03-2015 16:09   googleapiclient/errors.py
    35534  09-03-2015 16:09   googleapiclient/discovery.pyc
    14028  09-03-2015 16:09   googleapiclient/model.pyc
      175  09-03-2015 16:09   googleapiclient/__init__.pyc
    10690  09-03-2015 16:09   googleapiclient/channel.pyc
---------                     -------
   285254                     26 files
[root@e42fb97ce657 ~]# 
```

As a workaround I had to add `googleapiclient/discovery_cache` to the `packages` in `setup.py` so it looked like that:

```
[root@e42fb97ce657 google-api-python-client]# more setup.py | grep packages -A 4 -m1
packages = [
    'apiclient',
    'googleapiclient',
    'googleapiclient/discovery_cache'
]
```

Then installed and everything magically started working.

```
[root@e42fb97ce657 google-api-python-client]# python
Python 2.7.5 (default, Jun 24 2015, 00:41:19) 
[GCC 4.8.3 20140911 (Red Hat 4.8.3-9)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import googleapiclient.discovery_cache
>>> 
```

Here is a quick sample that looks similar to my environment using `Docker`:

```
FROM centos:centos7

RUN yum install -y git python-devel python-setuptools unzip
RUN easy_install pip
RUN cd /tmp ;\
    git clone https://github.com/google/google-api-python-client && \
    cd google-api-python-client && \
    python setup.py install 
```

I've also tried to follow preferred suggestion from the `README.md` and install it from `pip` but it ended up in the same situation.

Please advice on how to proceed without making "manual" modifications to the official package?



Discussion:
@tmatsuo, what do you make of this report?

Let's add the sub package   `googleapiclient/discovery_cache` to setup.py. I will create a PR shortly.


Resolving patch:
diff --git a/setup.py b/setup.py
--- a/setup.py
+++ b/setup.py
@@ -59,6 +59,7 @@ def _DetectBadness():
 packages = [
     'apiclient',
     'googleapiclient',
+    'googleapiclient/discovery_cache',
 ]
 
 install_requires = [


Test patch: