We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
BUG with dependency: SQLAlchemy 1.4.0 for user installation
**Describe the bug**

SQLAlchemy `>= 1.4.0` breaks the imports in 
https://github.com/great-expectations/great_expectations/blob/18234477693306e5e3845e69a1be78a85c639295/great_expectations/dataset/sqlalchemy_dataset.py#L42

This isn't showing up in the tests since the tests [pin the version](https://github.com/great-expectations/great_expectations/pull/2547) from above whereas the user installation doesn't
https://github.com/great-expectations/great_expectations/blob/18234477693306e5e3845e69a1be78a85c639295/setup.py#L25

The stack trace is from trying to scaffold a new suite is:
```
...
  File ".../great_expectations/data_context/data_context.py", line 1421, in get_batch
    return self._get_batch_v2(
  File ".../great_expectations/data_context/data_context.py", line 1147, in _get_batch_v2
    return validator.get_dataset()
  File ".../great_expectations/validator/validator.py", line 1431, in get_dataset
    return self.expectation_engine(
  File ".../great_expectations/dataset/sqlalchemy_dataset.py", line 508, in __init__
    self._table = sa.Table(table_name, sa.MetaData(), schema=schema)
AttributeError: 'NoneType' object has no attribute 'Table'
```

As a work around until the code is upgraded to work with `1.4.0` the version installed should be `<1.4.0`.

--- 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 from setuptools import find_packages, setup
2 
3 import versioneer
4 
5 # Parse requirements.txt
6 with open("requirements.txt") as f:
7     required = f.read().splitlines()
8 
9 # try:
10 #    import pypandoc
11 #    long_description = pypandoc.convert_file('README.md', 'rst')
12 # except (IOError, ImportError):
13 long_description = "Always know what to expect from your data. (See https://github.com/great-expectations/great_expectations for full description)."
14 
15 config = {
16     "description": "Always know what to expect from your data.",
17     "author": "The Great Expectations Team",
18     "url": "https://github.com/great-expectations/great_expectations",
19     "author_email": "team@greatexpectations.io",
20     "version": versioneer.get_version(),
21     "cmdclass": versioneer.get_cmdclass(),
22     "install_requires": required,
23     "extras_require": {
24         "spark": ["pyspark>=2.3.2"],
25         "sqlalchemy": ["sqlalchemy>=1.2"],
26         "airflow": ["apache-airflow[s3]>=1.9.0", "boto3>=1.7.3"],
27         "gcp": [
28             "google-cloud>=0.34.0",
29             "google-cloud-storage>=1.28.0",
30             "google-cloud-secret-manager>=1.0.0",
31             "pybigquery==0.4.15",
32         ],
33         "redshift": ["psycopg2>=2.8"],
34         "s3": ["boto3>=1.14"],
35         "aws_secrets": ["boto3>=1.8.7"],
36         "azure_secrets": ["azure-identity>=1.0.0", "azure-keyvault-secrets>=4.0.0"],
37         "snowflake": ["snowflake-sqlalchemy>=1.2"],
38     },
39     "packages": find_packages(exclude=["contrib*", "docs*", "tests*", "examples*"]),
40     "entry_points": {
41         "console_scripts": ["great_expectations=great_expectations.cli:main"]
42     },
43     "name": "great_expectations",
44     "long_description": long_description,
45     "license": "Apache-2.0",
46     "keywords": "data science testing pipeline data quality dataquality validation datavalidation",
47     "include_package_data": True,
48     "classifiers": [
49         "Development Status :: 4 - Beta",
50         "Intended Audience :: Developers",
51         "Intended Audience :: Science/Research",
52         "Intended Audience :: Other Audience",
53         "Topic :: Scientific/Engineering",
54         "Topic :: Software Development",
55         "Topic :: Software Development :: Testing",
56         "License :: OSI Approved :: Apache Software License",
57         "Programming Language :: Python :: 3",
58         "Programming Language :: Python :: 3.6",
59         "Programming Language :: Python :: 3.7",
60         "Programming Language :: Python :: 3.8",
61     ],
62 }
63 
64 setup(**config)
65
```
--- 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/setup.py b/setup.py
--- a/setup.py
+++ b/setup.py
@@ -22,7 +22,7 @@
     "install_requires": required,
     "extras_require": {
         "spark": ["pyspark>=2.3.2"],
-        "sqlalchemy": ["sqlalchemy>=1.2"],
+        "sqlalchemy": ["sqlalchemy>=1.2,<1.4.0"],
         "airflow": ["apache-airflow[s3]>=1.9.0", "boto3>=1.7.3"],
         "gcp": [
             "google-cloud>=0.34.0",

{"golden_diff": "diff --git a/setup.py b/setup.py\n--- a/setup.py\n+++ b/setup.py\n@@ -22,7 +22,7 @@\n     \"install_requires\": required,\n     \"extras_require\": {\n         \"spark\": [\"pyspark>=2.3.2\"],\n-        \"sqlalchemy\": [\"sqlalchemy>=1.2\"],\n+        \"sqlalchemy\": [\"sqlalchemy>=1.2,<1.4.0\"],\n         \"airflow\": [\"apache-airflow[s3]>=1.9.0\", \"boto3>=1.7.3\"],\n         \"gcp\": [\n             \"google-cloud>=0.34.0\",\n", "issue": "BUG with dependency: SQLAlchemy 1.4.0 for user installation\n**Describe the bug**\r\n\r\nSQLAlchemy `>= 1.4.0` breaks the imports in \r\nhttps://github.com/great-expectations/great_expectations/blob/18234477693306e5e3845e69a1be78a85c639295/great_expectations/dataset/sqlalchemy_dataset.py#L42\r\n\r\nThis isn't showing up in the tests since the tests [pin the version](https://github.com/great-expectations/great_expectations/pull/2547) from above whereas the user installation doesn't\r\nhttps://github.com/great-expectations/great_expectations/blob/18234477693306e5e3845e69a1be78a85c639295/setup.py#L25\r\n\r\nThe stack trace is from trying to scaffold a new suite is:\r\n```\r\n...\r\n  File \".../great_expectations/data_context/data_context.py\", line 1421, in get_batch\r\n    return self._get_batch_v2(\r\n  File \".../great_expectations/data_context/data_context.py\", line 1147, in _get_batch_v2\r\n    return validator.get_dataset()\r\n  File \".../great_expectations/validator/validator.py\", line 1431, in get_dataset\r\n    return self.expectation_engine(\r\n  File \".../great_expectations/dataset/sqlalchemy_dataset.py\", line 508, in __init__\r\n    self._table = sa.Table(table_name, sa.MetaData(), schema=schema)\r\nAttributeError: 'NoneType' object has no attribute 'Table'\r\n```\r\n\r\nAs a work around until the code is upgraded to work with `1.4.0` the version installed should be `<1.4.0`.\n", "before_files": [{"content": "from setuptools import find_packages, setup\n\nimport versioneer\n\n# Parse requirements.txt\nwith open(\"requirements.txt\") as f:\n    required = f.read().splitlines()\n\n# try:\n#    import pypandoc\n#    long_description = pypandoc.convert_file('README.md', 'rst')\n# except (IOError, ImportError):\nlong_description = \"Always know what to expect from your data. (See https://github.com/great-expectations/great_expectations for full description).\"\n\nconfig = {\n    \"description\": \"Always know what to expect from your data.\",\n    \"author\": \"The Great Expectations Team\",\n    \"url\": \"https://github.com/great-expectations/great_expectations\",\n    \"author_email\": \"team@greatexpectations.io\",\n    \"version\": versioneer.get_version(),\n    \"cmdclass\": versioneer.get_cmdclass(),\n    \"install_requires\": required,\n    \"extras_require\": {\n        \"spark\": [\"pyspark>=2.3.2\"],\n        \"sqlalchemy\": [\"sqlalchemy>=1.2\"],\n        \"airflow\": [\"apache-airflow[s3]>=1.9.0\", \"boto3>=1.7.3\"],\n        \"gcp\": [\n            \"google-cloud>=0.34.0\",\n            \"google-cloud-storage>=1.28.0\",\n            \"google-cloud-secret-manager>=1.0.0\",\n            \"pybigquery==0.4.15\",\n        ],\n        \"redshift\": [\"psycopg2>=2.8\"],\n        \"s3\": [\"boto3>=1.14\"],\n        \"aws_secrets\": [\"boto3>=1.8.7\"],\n        \"azure_secrets\": [\"azure-identity>=1.0.0\", \"azure-keyvault-secrets>=4.0.0\"],\n        \"snowflake\": [\"snowflake-sqlalchemy>=1.2\"],\n    },\n    \"packages\": find_packages(exclude=[\"contrib*\", \"docs*\", \"tests*\", \"examples*\"]),\n    \"entry_points\": {\n        \"console_scripts\": [\"great_expectations=great_expectations.cli:main\"]\n    },\n    \"name\": \"great_expectations\",\n    \"long_description\": long_description,\n    \"license\": \"Apache-2.0\",\n    \"keywords\": \"data science testing pipeline data quality dataquality validation datavalidation\",\n    \"include_package_data\": True,\n    \"classifiers\": [\n        \"Development Status :: 4 - Beta\",\n        \"Intended Audience :: Developers\",\n        \"Intended Audience :: Science/Research\",\n        \"Intended Audience :: Other Audience\",\n        \"Topic :: Scientific/Engineering\",\n        \"Topic :: Software Development\",\n        \"Topic :: Software Development :: Testing\",\n        \"License :: OSI Approved :: Apache Software License\",\n        \"Programming Language :: Python :: 3\",\n        \"Programming Language :: Python :: 3.6\",\n        \"Programming Language :: Python :: 3.7\",\n        \"Programming Language :: Python :: 3.8\",\n    ],\n}\n\nsetup(**config)\n", "path": "setup.py"}], "after_files": [{"content": "from setuptools import find_packages, setup\n\nimport versioneer\n\n# Parse requirements.txt\nwith open(\"requirements.txt\") as f:\n    required = f.read().splitlines()\n\n# try:\n#    import pypandoc\n#    long_description = pypandoc.convert_file('README.md', 'rst')\n# except (IOError, ImportError):\nlong_description = \"Always know what to expect from your data. (See https://github.com/great-expectations/great_expectations for full description).\"\n\nconfig = {\n    \"description\": \"Always know what to expect from your data.\",\n    \"author\": \"The Great Expectations Team\",\n    \"url\": \"https://github.com/great-expectations/great_expectations\",\n    \"author_email\": \"team@greatexpectations.io\",\n    \"version\": versioneer.get_version(),\n    \"cmdclass\": versioneer.get_cmdclass(),\n    \"install_requires\": required,\n    \"extras_require\": {\n        \"spark\": [\"pyspark>=2.3.2\"],\n        \"sqlalchemy\": [\"sqlalchemy>=1.2,<1.4.0\"],\n        \"airflow\": [\"apache-airflow[s3]>=1.9.0\", \"boto3>=1.7.3\"],\n        \"gcp\": [\n            \"google-cloud>=0.34.0\",\n            \"google-cloud-storage>=1.28.0\",\n            \"google-cloud-secret-manager>=1.0.0\",\n            \"pybigquery==0.4.15\",\n        ],\n        \"redshift\": [\"psycopg2>=2.8\"],\n        \"s3\": [\"boto3>=1.14\"],\n        \"aws_secrets\": [\"boto3>=1.8.7\"],\n        \"azure_secrets\": [\"azure-identity>=1.0.0\", \"azure-keyvault-secrets>=4.0.0\"],\n        \"snowflake\": [\"snowflake-sqlalchemy>=1.2\"],\n    },\n    \"packages\": find_packages(exclude=[\"contrib*\", \"docs*\", \"tests*\", \"examples*\"]),\n    \"entry_points\": {\n        \"console_scripts\": [\"great_expectations=great_expectations.cli:main\"]\n    },\n    \"name\": \"great_expectations\",\n    \"long_description\": long_description,\n    \"license\": \"Apache-2.0\",\n    \"keywords\": \"data science testing pipeline data quality dataquality validation datavalidation\",\n    \"include_package_data\": True,\n    \"classifiers\": [\n        \"Development Status :: 4 - Beta\",\n        \"Intended Audience :: Developers\",\n        \"Intended Audience :: Science/Research\",\n        \"Intended Audience :: Other Audience\",\n        \"Topic :: Scientific/Engineering\",\n        \"Topic :: Software Development\",\n        \"Topic :: Software Development :: Testing\",\n        \"License :: OSI Approved :: Apache Software License\",\n        \"Programming Language :: Python :: 3\",\n        \"Programming Language :: Python :: 3.6\",\n        \"Programming Language :: Python :: 3.7\",\n        \"Programming Language :: Python :: 3.8\",\n    ],\n}\n\nsetup(**config)\n", "path": "setup.py"}]}