Repository: great-expectations/great_expectations

Issue:
Mising importlib-metadata dependency in verson 0.11.6
**Describe the bug**
When installing version 0.11.6 (latest right now) I cannot use the library because I get an error `ModuleNotFoundError: No module named 'importlib_metadata' `

**To Reproduce**
Steps to reproduce the behavior:
1. Create an empty folder 
2. Run `python3.8 -m venv venv`
3. Activate the env `source venv/bin/activate`
4. Install the library `pip install great_expectations`
5. Run the tutorial  `great_expectations init`
6. The next exception is thrown
```
Traceback (most recent call last):
  File "/home/jsanz/Projects/urba/poc/great_expectations/test/venv/bin/great_expectations", line 7, in <module>
    from great_expectations.cli import main
  File "/home/jsanz/Projects/urba/poc/great_expectations/test/venv/lib/python3.8/site-packages/great_expectations/__init__.py", line 7, in <module>
    from great_expectations.data_context import DataContext
  File "/home/jsanz/Projects/urba/poc/great_expectations/test/venv/lib/python3.8/site-packages/great_expectations/data_context/__init__.py", line 3, in <module>
    from .data_context import BaseDataContext, DataContext, ExplorerDataContext
  File "/home/jsanz/Projects/urba/poc/great_expectations/test/venv/lib/python3.8/site-packages/great_expectations/data_context/data_context.py", line 28, in <module>
    from great_expectations.core.usage_statistics.usage_statistics import (
  File "/home/jsanz/Projects/urba/poc/great_expectations/test/venv/lib/python3.8/site-packages/great_expectations/core/usage_statistics/usage_statistics.py", line 17, in <module>
    from great_expectations.core.usage_statistics.anonymizers.anonymizer import Anonymizer
  File "/home/jsanz/Projects/urba/poc/great_expectations/test/venv/lib/python3.8/site-packages/great_expectations/core/usage_statistics/anonymizers/anonymizer.py", line 4, in <module>
    from great_expectations.util import load_class
  File "/home/jsanz/Projects/urba/poc/great_expectations/test/venv/lib/python3.8/site-packages/great_expectations/util.py", line 13, in <module>
    import importlib_metadata
ModuleNotFoundError: No module named 'importlib_metadata'
```

**Expected behavior**
Start the tutorial with no errors. 

**Environment (please complete the following information):**
 - OS: Ubuntu 18.04.4 LTS, Python 3.8.0 (default, Oct 28 2019, 16:14:01) 
 - GE Version: 0.11.6

**Additional context**
Running `pip install importlib-metadata` solves the issue. 


Discussion:
I think I might have been impacted by this bug https://bugs.python.org/issue34632
I just replicated this
```
=================================== ERRORS ====================================

    from great_expectations.core import (
21
/opt/hostedtoolcache/Python/3.8.3/x64/lib/python3.8/site-packages/great_expectations/__init__.py:7: in <module>
22
    from great_expectations.data_context import DataContext
23
/opt/hostedtoolcache/Python/3.8.3/x64/lib/python3.8/site-packages/great_expectations/data_context/__init__.py:3: in <module>
24
    from .data_context import BaseDataContext, DataContext, ExplorerDataContext
25
/opt/hostedtoolcache/Python/3.8.3/x64/lib/python3.8/site-packages/great_expectations/data_context/data_context.py:29: in <module>
26
    from great_expectations.core.usage_statistics.usage_statistics import (
27
/opt/hostedtoolcache/Python/3.8.3/x64/lib/python3.8/site-packages/great_expectations/core/usage_statistics/usage_statistics.py:17: in <module>
28
    from great_expectations.core.usage_statistics.anonymizers.anonymizer import Anonymizer
29
/opt/hostedtoolcache/Python/3.8.3/x64/lib/python3.8/site-packages/great_expectations/core/usage_statistics/anonymizers/anonymizer.py:4: in <module>
30
    from great_expectations.util import load_class
31
/opt/hostedtoolcache/Python/3.8.3/x64/lib/python3.8/site-packages/great_expectations/util.py:13: in <module>
32
    import importlib_metadata
```
Same here, `importlib_metadata` is not installed with `pip install great-expectations` (workaround `pip install importlib_metadata` works luckily)

Resolving patch:
diff --git a/great_expectations/util.py b/great_expectations/util.py
--- a/great_expectations/util.py
+++ b/great_expectations/util.py
@@ -10,7 +10,6 @@
 from typing import Callable, Union
 
 import black
-import importlib_metadata
 from pkg_resources import Distribution
 
 from great_expectations.core import expectationSuiteSchema
@@ -19,6 +18,14 @@
     PluginModuleNotFoundError,
 )
 
+try:
+    # This library moved in python 3.8
+    import importlib.metadata as importlib_metadata
+except ModuleNotFoundError:
+    # Fallback for python < 3.8
+    import importlib_metadata
+
+
 logger = logging.getLogger(__name__)
 
 


Test patch: