Repository: googleapis/google-api-python-client

Issue:
Use version.py instead of pkg_resource
I met the same issue on the google-api-python-client about the pkg_resources exception (
https://github.com/googleapis/python-api-core/issues/27)
https://github.com/googleapis/google-api-python-client/blob/0f2e2a13bf8f4e4150fed1f79cf995309ddc34f1/googleapiclient/model.py#L34

```
pkg_resources.DistributionNotFound: The 'google-api-python-client' distribution was not found and is required by the application
```

I found the google-auth source and python-api-core has changed. Could it be changed this way accordingly?
https://github.com/googleapis/google-auth-library-python/pull/683/commits/ff6b52ccbb3811dbc5adcb2c12f6d66fa4e8ef78


Discussion:

Resolving patch:
diff --git a/googleapiclient/model.py b/googleapiclient/model.py
--- a/googleapiclient/model.py
+++ b/googleapiclient/model.py
@@ -26,12 +26,12 @@
 import json
 import logging
 import platform
-import pkg_resources
 import urllib
 
+from googleapiclient import version as googleapiclient_version
 from googleapiclient.errors import HttpError
 
-_LIBRARY_VERSION = pkg_resources.get_distribution("google-api-python-client").version
+_LIBRARY_VERSION = googleapiclient_version.__version__
 _PY_VERSION = platform.python_version()
 
 LOGGER = logging.getLogger(__name__)
diff --git a/googleapiclient/version.py b/googleapiclient/version.py
new file mode 100644
--- /dev/null
+++ b/googleapiclient/version.py
@@ -0,0 +1,15 @@
+# Copyright 2021 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+__version__ = "2.33.0" 
diff --git a/setup.py b/setup.py
--- a/setup.py
+++ b/setup.py
@@ -51,7 +51,12 @@
 with io.open(readme_filename, encoding="utf-8") as readme_file:
     readme = readme_file.read()
 
-version = "2.33.0"
+package_root = os.path.abspath(os.path.dirname(__file__))
+
+version = {}
+with open(os.path.join(package_root, "googleapiclient/version.py")) as fp:
+    exec(fp.read(), version)
+version = version["__version__"]
 
 setup(
     name="google-api-python-client",


Test patch:
diff --git a/tests/test_json_model.py b/tests/test_json_model.py
--- a/tests/test_json_model.py
+++ b/tests/test_json_model.py
@@ -25,17 +25,17 @@
 import io
 import httplib2
 import json
-import pkg_resources
 import platform
 import unittest
 import urllib
 
 import googleapiclient.model
 
+from googleapiclient import version as googleapiclient_version
 from googleapiclient.errors import HttpError
 from googleapiclient.model import JsonModel
 
-_LIBRARY_VERSION = pkg_resources.get_distribution("google-api-python-client").version
+_LIBRARY_VERSION = googleapiclient_version.__version__
 CSV_TEXT_MOCK = 'column1,column2,column3\nstring1,1.2,string2'