We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Remove mapquest from geocoder
The mapquest API is now only available to enterprise customers and has been removed from geopy.

See [geopy docs](https://geopy.readthedocs.org/en/1.10.0/#id4)


--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `geopandas/tools/geocoding.py`
Content:
```
1 from collections import defaultdict
2 import time
3 
4 from fiona.crs import from_epsg
5 import numpy as np
6 import pandas as pd
7 from shapely.geometry import Point
8 from six import iteritems
9 
10 import geopandas as gpd
11 
12 
13 def _throttle_time(provider):
14     """ Amount of time to wait between requests to a geocoding API.
15 
16     Currently implemented for Nominatim, as their terms of service
17     require a maximum of 1 request per second.
18     https://wiki.openstreetmap.org/wiki/Nominatim_usage_policy
19     """
20     if provider == 'nominatim':
21         return 1
22     else:
23         return 0
24 
25 
26 def geocode(strings, provider='googlev3', **kwargs):
27     """
28     Geocode a set of strings and get a GeoDataFrame of the resulting points.
29 
30     Parameters
31     ----------
32     strings : list or Series of addresses to geocode
33     provider : geopy geocoder to use, default 'googlev3'
34         Some providers require additional arguments such as access keys
35         See each geocoder's specific parameters in geopy.geocoders
36         * googlev3, default
37         * bing
38         * google
39         * yahoo
40         * mapquest
41         * openmapquest
42 
43     Ensure proper use of the results by consulting the Terms of Service for
44     your provider.
45 
46     Geocoding requires geopy. Install it using 'pip install geopy'. See also
47     https://github.com/geopy/geopy
48 
49     Example
50     -------
51     >>> df = geocode(['boston, ma', '1600 pennsylvania ave. washington, dc'])
52 
53                                                  address  \
54     0                                    Boston, MA, USA
55     1  1600 Pennsylvania Avenue Northwest, President'...
56 
57                              geometry
58     0  POINT (-71.0597732 42.3584308)
59     1  POINT (-77.0365305 38.8977332)
60 
61     """
62     return _query(strings, True, provider, **kwargs)
63 
64 
65 def reverse_geocode(points, provider='googlev3', **kwargs):
66     """
67     Reverse geocode a set of points and get a GeoDataFrame of the resulting
68     addresses.
69 
70     The points
71 
72     Parameters
73     ----------
74     points : list or Series of Shapely Point objects.
75         x coordinate is longitude
76         y coordinate is latitude
77     provider : geopy geocoder to use, default 'googlev3'
78         These are the same options as the geocode() function
79         Some providers require additional arguments such as access keys
80         See each geocoder's specific parameters in geopy.geocoders
81         * googlev3, default
82         * bing
83         * google
84         * yahoo
85         * mapquest
86         * openmapquest
87 
88     Ensure proper use of the results by consulting the Terms of Service for
89     your provider.
90 
91     Reverse geocoding requires geopy. Install it using 'pip install geopy'.
92     See also https://github.com/geopy/geopy
93 
94     Example
95     -------
96     >>> df = reverse_geocode([Point(-71.0594869, 42.3584697),
97                               Point(-77.0365305, 38.8977332)])
98 
99                                              address  \
100     0             29 Court Square, Boston, MA 02108, USA
101     1  1600 Pennsylvania Avenue Northwest, President'...
102 
103                              geometry
104     0  POINT (-71.0594869 42.3584697)
105     1  POINT (-77.0365305 38.8977332)
106 
107     """
108     return _query(points, False, provider, **kwargs)
109 
110 
111 def _query(data, forward, provider, **kwargs):
112     import geopy
113     from geopy.geocoders.base import GeocoderQueryError
114 
115     if not isinstance(data, pd.Series):
116         data = pd.Series(data)
117 
118     # workaround changed name in 0.96
119     try:
120         Yahoo = geopy.geocoders.YahooPlaceFinder
121     except AttributeError:
122         Yahoo = geopy.geocoders.Yahoo
123 
124     coders = {'googlev3': geopy.geocoders.GoogleV3,
125               'bing': geopy.geocoders.Bing,
126               'yahoo': Yahoo,
127               'mapquest': geopy.geocoders.MapQuest,
128               'openmapquest': geopy.geocoders.OpenMapQuest,
129               'nominatim': geopy.geocoders.Nominatim}
130 
131     if provider not in coders:
132         raise ValueError('Unknown geocoding provider: {0}'.format(provider))
133 
134     coder = coders[provider](**kwargs)
135     results = {}
136     for i, s in iteritems(data):
137         try:
138             if forward:
139                 results[i] = coder.geocode(s)
140             else:
141                 results[i] = coder.reverse((s.y, s.x), exactly_one=True)
142         except (GeocoderQueryError, ValueError):
143             results[i] = (None, None)
144         time.sleep(_throttle_time(provider))
145 
146     df = _prepare_geocode_result(results)
147     return df
148 
149 
150 def _prepare_geocode_result(results):
151     """
152     Helper function for the geocode function
153 
154     Takes a dict where keys are index entries, values are tuples containing:
155     (address, (lat, lon))
156 
157     """
158     # Prepare the data for the DataFrame as a dict of lists
159     d = defaultdict(list)
160     index = []
161 
162     for i, s in iteritems(results):
163         address, loc = s
164 
165         # loc is lat, lon and we want lon, lat
166         if loc is None:
167             p = Point()
168         else:
169             p = Point(loc[1], loc[0])
170 
171         if address is None:
172             address = np.nan
173 
174         d['geometry'].append(p)
175         d['address'].append(address)
176         index.append(i)
177 
178     df = gpd.GeoDataFrame(d, index=index)
179     df.crs = from_epsg(4326)
180 
181     return df
182
```
--- 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/geopandas/tools/geocoding.py b/geopandas/tools/geocoding.py
--- a/geopandas/tools/geocoding.py
+++ b/geopandas/tools/geocoding.py
@@ -124,7 +124,6 @@
     coders = {'googlev3': geopy.geocoders.GoogleV3,
               'bing': geopy.geocoders.Bing,
               'yahoo': Yahoo,
-              'mapquest': geopy.geocoders.MapQuest,
               'openmapquest': geopy.geocoders.OpenMapQuest,
               'nominatim': geopy.geocoders.Nominatim}

{"golden_diff": "diff --git a/geopandas/tools/geocoding.py b/geopandas/tools/geocoding.py\n--- a/geopandas/tools/geocoding.py\n+++ b/geopandas/tools/geocoding.py\n@@ -124,7 +124,6 @@\n     coders = {'googlev3': geopy.geocoders.GoogleV3,\n               'bing': geopy.geocoders.Bing,\n               'yahoo': Yahoo,\n-              'mapquest': geopy.geocoders.MapQuest,\n               'openmapquest': geopy.geocoders.OpenMapQuest,\n               'nominatim': geopy.geocoders.Nominatim}\n", "issue": "Remove mapquest from geocoder\nThe mapquest API is now only available to enterprise customers and has been removed from geopy.\n\nSee [geopy docs](https://geopy.readthedocs.org/en/1.10.0/#id4)\n\n", "before_files": [{"content": "from collections import defaultdict\nimport time\n\nfrom fiona.crs import from_epsg\nimport numpy as np\nimport pandas as pd\nfrom shapely.geometry import Point\nfrom six import iteritems\n\nimport geopandas as gpd\n\n\ndef _throttle_time(provider):\n    \"\"\" Amount of time to wait between requests to a geocoding API.\n\n    Currently implemented for Nominatim, as their terms of service\n    require a maximum of 1 request per second.\n    https://wiki.openstreetmap.org/wiki/Nominatim_usage_policy\n    \"\"\"\n    if provider == 'nominatim':\n        return 1\n    else:\n        return 0\n\n\ndef geocode(strings, provider='googlev3', **kwargs):\n    \"\"\"\n    Geocode a set of strings and get a GeoDataFrame of the resulting points.\n\n    Parameters\n    ----------\n    strings : list or Series of addresses to geocode\n    provider : geopy geocoder to use, default 'googlev3'\n        Some providers require additional arguments such as access keys\n        See each geocoder's specific parameters in geopy.geocoders\n        * googlev3, default\n        * bing\n        * google\n        * yahoo\n        * mapquest\n        * openmapquest\n\n    Ensure proper use of the results by consulting the Terms of Service for\n    your provider.\n\n    Geocoding requires geopy. Install it using 'pip install geopy'. See also\n    https://github.com/geopy/geopy\n\n    Example\n    -------\n    >>> df = geocode(['boston, ma', '1600 pennsylvania ave. washington, dc'])\n\n                                                 address  \\\n    0                                    Boston, MA, USA\n    1  1600 Pennsylvania Avenue Northwest, President'...\n\n                             geometry\n    0  POINT (-71.0597732 42.3584308)\n    1  POINT (-77.0365305 38.8977332)\n\n    \"\"\"\n    return _query(strings, True, provider, **kwargs)\n\n\ndef reverse_geocode(points, provider='googlev3', **kwargs):\n    \"\"\"\n    Reverse geocode a set of points and get a GeoDataFrame of the resulting\n    addresses.\n\n    The points\n\n    Parameters\n    ----------\n    points : list or Series of Shapely Point objects.\n        x coordinate is longitude\n        y coordinate is latitude\n    provider : geopy geocoder to use, default 'googlev3'\n        These are the same options as the geocode() function\n        Some providers require additional arguments such as access keys\n        See each geocoder's specific parameters in geopy.geocoders\n        * googlev3, default\n        * bing\n        * google\n        * yahoo\n        * mapquest\n        * openmapquest\n\n    Ensure proper use of the results by consulting the Terms of Service for\n    your provider.\n\n    Reverse geocoding requires geopy. Install it using 'pip install geopy'.\n    See also https://github.com/geopy/geopy\n\n    Example\n    -------\n    >>> df = reverse_geocode([Point(-71.0594869, 42.3584697),\n                              Point(-77.0365305, 38.8977332)])\n\n                                             address  \\\n    0             29 Court Square, Boston, MA 02108, USA\n    1  1600 Pennsylvania Avenue Northwest, President'...\n\n                             geometry\n    0  POINT (-71.0594869 42.3584697)\n    1  POINT (-77.0365305 38.8977332)\n\n    \"\"\"\n    return _query(points, False, provider, **kwargs)\n\n\ndef _query(data, forward, provider, **kwargs):\n    import geopy\n    from geopy.geocoders.base import GeocoderQueryError\n\n    if not isinstance(data, pd.Series):\n        data = pd.Series(data)\n\n    # workaround changed name in 0.96\n    try:\n        Yahoo = geopy.geocoders.YahooPlaceFinder\n    except AttributeError:\n        Yahoo = geopy.geocoders.Yahoo\n\n    coders = {'googlev3': geopy.geocoders.GoogleV3,\n              'bing': geopy.geocoders.Bing,\n              'yahoo': Yahoo,\n              'mapquest': geopy.geocoders.MapQuest,\n              'openmapquest': geopy.geocoders.OpenMapQuest,\n              'nominatim': geopy.geocoders.Nominatim}\n\n    if provider not in coders:\n        raise ValueError('Unknown geocoding provider: {0}'.format(provider))\n\n    coder = coders[provider](**kwargs)\n    results = {}\n    for i, s in iteritems(data):\n        try:\n            if forward:\n                results[i] = coder.geocode(s)\n            else:\n                results[i] = coder.reverse((s.y, s.x), exactly_one=True)\n        except (GeocoderQueryError, ValueError):\n            results[i] = (None, None)\n        time.sleep(_throttle_time(provider))\n\n    df = _prepare_geocode_result(results)\n    return df\n\n\ndef _prepare_geocode_result(results):\n    \"\"\"\n    Helper function for the geocode function\n\n    Takes a dict where keys are index entries, values are tuples containing:\n    (address, (lat, lon))\n\n    \"\"\"\n    # Prepare the data for the DataFrame as a dict of lists\n    d = defaultdict(list)\n    index = []\n\n    for i, s in iteritems(results):\n        address, loc = s\n\n        # loc is lat, lon and we want lon, lat\n        if loc is None:\n            p = Point()\n        else:\n            p = Point(loc[1], loc[0])\n\n        if address is None:\n            address = np.nan\n\n        d['geometry'].append(p)\n        d['address'].append(address)\n        index.append(i)\n\n    df = gpd.GeoDataFrame(d, index=index)\n    df.crs = from_epsg(4326)\n\n    return df\n", "path": "geopandas/tools/geocoding.py"}], "after_files": [{"content": "from collections import defaultdict\nimport time\n\nfrom fiona.crs import from_epsg\nimport numpy as np\nimport pandas as pd\nfrom shapely.geometry import Point\nfrom six import iteritems\n\nimport geopandas as gpd\n\n\ndef _throttle_time(provider):\n    \"\"\" Amount of time to wait between requests to a geocoding API.\n\n    Currently implemented for Nominatim, as their terms of service\n    require a maximum of 1 request per second.\n    https://wiki.openstreetmap.org/wiki/Nominatim_usage_policy\n    \"\"\"\n    if provider == 'nominatim':\n        return 1\n    else:\n        return 0\n\n\ndef geocode(strings, provider='googlev3', **kwargs):\n    \"\"\"\n    Geocode a set of strings and get a GeoDataFrame of the resulting points.\n\n    Parameters\n    ----------\n    strings : list or Series of addresses to geocode\n    provider : geopy geocoder to use, default 'googlev3'\n        Some providers require additional arguments such as access keys\n        See each geocoder's specific parameters in geopy.geocoders\n        * googlev3, default\n        * bing\n        * google\n        * yahoo\n        * mapquest\n        * openmapquest\n\n    Ensure proper use of the results by consulting the Terms of Service for\n    your provider.\n\n    Geocoding requires geopy. Install it using 'pip install geopy'. See also\n    https://github.com/geopy/geopy\n\n    Example\n    -------\n    >>> df = geocode(['boston, ma', '1600 pennsylvania ave. washington, dc'])\n\n                                                 address  \\\n    0                                    Boston, MA, USA\n    1  1600 Pennsylvania Avenue Northwest, President'...\n\n                             geometry\n    0  POINT (-71.0597732 42.3584308)\n    1  POINT (-77.0365305 38.8977332)\n\n    \"\"\"\n    return _query(strings, True, provider, **kwargs)\n\n\ndef reverse_geocode(points, provider='googlev3', **kwargs):\n    \"\"\"\n    Reverse geocode a set of points and get a GeoDataFrame of the resulting\n    addresses.\n\n    The points\n\n    Parameters\n    ----------\n    points : list or Series of Shapely Point objects.\n        x coordinate is longitude\n        y coordinate is latitude\n    provider : geopy geocoder to use, default 'googlev3'\n        These are the same options as the geocode() function\n        Some providers require additional arguments such as access keys\n        See each geocoder's specific parameters in geopy.geocoders\n        * googlev3, default\n        * bing\n        * google\n        * yahoo\n        * mapquest\n        * openmapquest\n\n    Ensure proper use of the results by consulting the Terms of Service for\n    your provider.\n\n    Reverse geocoding requires geopy. Install it using 'pip install geopy'.\n    See also https://github.com/geopy/geopy\n\n    Example\n    -------\n    >>> df = reverse_geocode([Point(-71.0594869, 42.3584697),\n                              Point(-77.0365305, 38.8977332)])\n\n                                             address  \\\n    0             29 Court Square, Boston, MA 02108, USA\n    1  1600 Pennsylvania Avenue Northwest, President'...\n\n                             geometry\n    0  POINT (-71.0594869 42.3584697)\n    1  POINT (-77.0365305 38.8977332)\n\n    \"\"\"\n    return _query(points, False, provider, **kwargs)\n\n\ndef _query(data, forward, provider, **kwargs):\n    import geopy\n    from geopy.geocoders.base import GeocoderQueryError\n\n    if not isinstance(data, pd.Series):\n        data = pd.Series(data)\n\n    # workaround changed name in 0.96\n    try:\n        Yahoo = geopy.geocoders.YahooPlaceFinder\n    except AttributeError:\n        Yahoo = geopy.geocoders.Yahoo\n\n    coders = {'googlev3': geopy.geocoders.GoogleV3,\n              'bing': geopy.geocoders.Bing,\n              'yahoo': Yahoo,\n              'openmapquest': geopy.geocoders.OpenMapQuest,\n              'nominatim': geopy.geocoders.Nominatim}\n\n    if provider not in coders:\n        raise ValueError('Unknown geocoding provider: {0}'.format(provider))\n\n    coder = coders[provider](**kwargs)\n    results = {}\n    for i, s in iteritems(data):\n        try:\n            if forward:\n                results[i] = coder.geocode(s)\n            else:\n                results[i] = coder.reverse((s.y, s.x), exactly_one=True)\n        except (GeocoderQueryError, ValueError):\n            results[i] = (None, None)\n        time.sleep(_throttle_time(provider))\n\n    df = _prepare_geocode_result(results)\n    return df\n\n\ndef _prepare_geocode_result(results):\n    \"\"\"\n    Helper function for the geocode function\n\n    Takes a dict where keys are index entries, values are tuples containing:\n    (address, (lat, lon))\n\n    \"\"\"\n    # Prepare the data for the DataFrame as a dict of lists\n    d = defaultdict(list)\n    index = []\n\n    for i, s in iteritems(results):\n        address, loc = s\n\n        # loc is lat, lon and we want lon, lat\n        if loc is None:\n            p = Point()\n        else:\n            p = Point(loc[1], loc[0])\n\n        if address is None:\n            address = np.nan\n\n        d['geometry'].append(p)\n        d['address'].append(address)\n        index.append(i)\n\n    df = gpd.GeoDataFrame(d, index=index)\n    df.crs = from_epsg(4326)\n\n    return df\n", "path": "geopandas/tools/geocoding.py"}]}