We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
clients.neic tests fail
Potentially a server side change?

``` bash
$ obspy.runtests clients.neic

Running /Users/lion/workspace/code/obspy/obspy/scripts/runtests.py, ObsPy version '1.0.2.post0+358.ged0c7fb007'
....F

======================================================================
FAIL: test_get_waveform_nscl (obspy.clients.neic.tests.test_client.ClientTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/lion/workspace/code/obspy/obspy/clients/neic/tests/test_client.py", line 93, in test_get_waveform_nscl
    self.assertEqual(st, st2)
AssertionError: <obspy.core.stream.Stream object at 0x10d8276a0> != <obspy.core.stream.Stream object at 0x10cf5a3c8>

----------------------------------------------------------------------
Ran 5 tests in 8.443s

FAILED (failures=1)
```


--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `obspy/clients/syngine/__init__.py`
Content:
```
1 # -*- coding: utf-8 -*-
2 """
3 obspy.clients.syngine - Client for the IRIS Syngine service
4 ===========================================================
5 
6 This module offers methods to download from the IRIS syngine service
7 (https://ds.iris.edu/ds/products/syngine/). The service is able to generate
8 fully three dimensional synthetics through various 1D Earth models with
9 arbitrary source-receiver geometries and source mechanisms.
10 
11 :copyright:
12     The ObsPy Development Team (devs@obspy.org)
13 :license:
14     GNU Lesser General Public License, Version 3
15     (https://www.gnu.org/copyleft/lesser.html)
16 
17 
18 Basic Usage
19 -----------
20 
21 First initialize a client object.
22 
23 >>> from obspy.clients.syngine import Client
24 >>> client = Client()
25 
26 Then request some data.
27 
28 >>> st = client.get_waveforms(model="ak135f_5s", network="IU", station="ANMO",
29 ...                           eventid="GCMT:C201002270634A")
30 >>> print(st)  # doctest: +ELLIPSIS
31 3 Trace(s) in Stream:
32 IU.ANMO.SE.MXZ | 2010-02-27T06:35:14... - ... | 4.0 Hz, 15520 samples
33 IU.ANMO.SE.MXN | 2010-02-27T06:35:14... - ... | 4.0 Hz, 15520 samples
34 IU.ANMO.SE.MXE | 2010-02-27T06:35:14... - ... | 4.0 Hz, 15520 samples
35 >>> st.plot()  # doctest: +SKIP
36 
37 .. plot::
38 
39     from obspy.clients.syngine import Client
40     client = Client()
41     st = client.get_waveforms(model="ak135f_5s", network="IU", station="ANMO",
42                               eventid="GCMT:C201002270634A")
43     st.plot()
44 
45 The available parameters are explained in detail in the
46 :meth:`~obspy.clients.syngine.client.Client.get_waveforms()` method and on
47 the `Syngine <https://ds.iris.edu/ds/products/syngine/>`_ website.
48 
49 
50 The queries are quite flexible. The following uses a station name wildcard
51 and only requests data around the P arrival. Please be a bit careful as one
52 can potentially download a lot of data with a single request.
53 
54 >>> st = client.get_waveforms(model="ak135f_5s", network="IU", station="AN*",
55 ...                           eventid="GCMT:C201002270634A",
56 ...                           starttime="P-10", endtime="P+20")
57 >>> st.plot()  # doctest: +SKIP
58 
59 .. plot::
60 
61     from obspy.clients.syngine import Client
62     client = Client()
63     st = client.get_waveforms(model="ak135f_5s", network="IU", station="A*",
64                               eventid="GCMT:C201002270634A",
65                               starttime="P-10", endtime="P+20")
66     st.plot()
67 
68 
69 Bulk Requests
70 -------------
71 
72 It is also possible to send requests for multiple user-defined stations. See
73 the :meth:`~obspy.clients.syngine.client.Client.get_waveforms_bulk()` method
74 for details. This example specifies a bunch of receiver coordinates and
75 requests seismograms for all of these.
76 
77 >>> bulk = [{"latitude": 10.1, "longitude": 12.2, "stationcode": "AA"},
78 ...         {"latitude": 14.5, "longitude": 10.0, "stationcode": "BB"}]
79 >>> st = client.get_waveforms_bulk(
80 ...     model="ak135f_5s", eventid="GCMT:C201002270634A",
81 ...     bulk=bulk, starttime="P-10", endtime="P+20")
82 >>> print(st)  # doctest: +ELLIPSIS
83 6 Trace(s) in Stream:
84 XX.AA.SE.MXZ | 2010-02-27T06:48:11.500000Z - ... | 4.0 Hz, 120 samples
85 XX.AA.SE.MXN | 2010-02-27T06:48:11.500000Z - ... | 4.0 Hz, 120 samples
86 XX.AA.SE.MXE | 2010-02-27T06:48:11.500000Z - ... | 4.0 Hz, 120 samples
87 XX.BB.SE.MXZ | 2010-02-27T06:48:15.250000Z - ... | 4.0 Hz, 120 samples
88 XX.BB.SE.MXN | 2010-02-27T06:48:15.250000Z - ... | 4.0 Hz, 120 samples
89 XX.BB.SE.MXE | 2010-02-27T06:48:15.250000Z - ... | 4.0 Hz, 120 samples
90 
91 
92 Other Useful Methods
93 --------------------
94 
95 Use the :meth:`~obspy.clients.syngine.client.Client.get_available_models()`
96 method for a list of all available methods including some meta-information.
97 
98 >>> client.get_available_models()  # doctest: +SKIP
99 {'ak135f_1s': {'components': 'vertical only',
100   'default_components': 'Z',
101   'default_dt': '0.05',
102   'description': 'ak135 with density & Q of Montagner & Kennet(1996)',
103   'length': 1815.00690721715,
104   'max_event_depth': 750000,
105   'max_period': '~100',
106   'max_sampling_period': '0.255383',
107   'min_period': 1.04999995231628},
108  'ak135f_2s': ...
109  ...
110  }
111 
112 The :func:`~obspy.clients.syngine.client.Client.get_model_info()`
113 method should be used to retrieve information about a specific model.
114 
115 >>> from obspy.clients.syngine import Client
116 >>> c = Client()
117 >>> db_info = c.get_model_info(model_name="ak135f_5s")
118 >>> print(db_info.period)
119 5.125
120 """
121 from __future__ import (absolute_import, division, print_function,
122                         unicode_literals)
123 from future.builtins import *  # NOQA
124 from future.utils import native_str
125 
126 from .client import Client  # NOQA
127 
128 __all__ = [native_str("Client")]
129 
130 
131 if __name__ == '__main__':
132     import doctest
133     doctest.testmod(exclude_empty=True)
134
```
--- 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/obspy/clients/syngine/__init__.py b/obspy/clients/syngine/__init__.py
--- a/obspy/clients/syngine/__init__.py
+++ b/obspy/clients/syngine/__init__.py
@@ -81,12 +81,12 @@
 ...     bulk=bulk, starttime="P-10", endtime="P+20")
 >>> print(st)  # doctest: +ELLIPSIS
 6 Trace(s) in Stream:
-XX.AA.SE.MXZ | 2010-02-27T06:48:11.500000Z - ... | 4.0 Hz, 120 samples
-XX.AA.SE.MXN | 2010-02-27T06:48:11.500000Z - ... | 4.0 Hz, 120 samples
-XX.AA.SE.MXE | 2010-02-27T06:48:11.500000Z - ... | 4.0 Hz, 120 samples
-XX.BB.SE.MXZ | 2010-02-27T06:48:15.250000Z - ... | 4.0 Hz, 120 samples
-XX.BB.SE.MXN | 2010-02-27T06:48:15.250000Z - ... | 4.0 Hz, 120 samples
-XX.BB.SE.MXE | 2010-02-27T06:48:15.250000Z - ... | 4.0 Hz, 120 samples
+XX.AA.SE.MXZ | 2010-02-27T06:48:11... - ... | 4.0 Hz, 120 samples
+XX.AA.SE.MXN | 2010-02-27T06:48:11... - ... | 4.0 Hz, 120 samples
+XX.AA.SE.MXE | 2010-02-27T06:48:11... - ... | 4.0 Hz, 120 samples
+XX.BB.SE.MXZ | 2010-02-27T06:48:15... - ... | 4.0 Hz, 120 samples
+XX.BB.SE.MXN | 2010-02-27T06:48:15... - ... | 4.0 Hz, 120 samples
+XX.BB.SE.MXE | 2010-02-27T06:48:15... - ... | 4.0 Hz, 120 samples
 
 
 Other Useful Methods

{"golden_diff": "diff --git a/obspy/clients/syngine/__init__.py b/obspy/clients/syngine/__init__.py\n--- a/obspy/clients/syngine/__init__.py\n+++ b/obspy/clients/syngine/__init__.py\n@@ -81,12 +81,12 @@\n ...     bulk=bulk, starttime=\"P-10\", endtime=\"P+20\")\n >>> print(st)  # doctest: +ELLIPSIS\n 6 Trace(s) in Stream:\n-XX.AA.SE.MXZ | 2010-02-27T06:48:11.500000Z - ... | 4.0 Hz, 120 samples\n-XX.AA.SE.MXN | 2010-02-27T06:48:11.500000Z - ... | 4.0 Hz, 120 samples\n-XX.AA.SE.MXE | 2010-02-27T06:48:11.500000Z - ... | 4.0 Hz, 120 samples\n-XX.BB.SE.MXZ | 2010-02-27T06:48:15.250000Z - ... | 4.0 Hz, 120 samples\n-XX.BB.SE.MXN | 2010-02-27T06:48:15.250000Z - ... | 4.0 Hz, 120 samples\n-XX.BB.SE.MXE | 2010-02-27T06:48:15.250000Z - ... | 4.0 Hz, 120 samples\n+XX.AA.SE.MXZ | 2010-02-27T06:48:11... - ... | 4.0 Hz, 120 samples\n+XX.AA.SE.MXN | 2010-02-27T06:48:11... - ... | 4.0 Hz, 120 samples\n+XX.AA.SE.MXE | 2010-02-27T06:48:11... - ... | 4.0 Hz, 120 samples\n+XX.BB.SE.MXZ | 2010-02-27T06:48:15... - ... | 4.0 Hz, 120 samples\n+XX.BB.SE.MXN | 2010-02-27T06:48:15... - ... | 4.0 Hz, 120 samples\n+XX.BB.SE.MXE | 2010-02-27T06:48:15... - ... | 4.0 Hz, 120 samples\n \n \n Other Useful Methods\n", "issue": "clients.neic tests fail\nPotentially a server side change?\n\n``` bash\n$ obspy.runtests clients.neic\n\nRunning /Users/lion/workspace/code/obspy/obspy/scripts/runtests.py, ObsPy version '1.0.2.post0+358.ged0c7fb007'\n....F\n\n======================================================================\nFAIL: test_get_waveform_nscl (obspy.clients.neic.tests.test_client.ClientTestCase)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n  File \"/Users/lion/workspace/code/obspy/obspy/clients/neic/tests/test_client.py\", line 93, in test_get_waveform_nscl\n    self.assertEqual(st, st2)\nAssertionError: <obspy.core.stream.Stream object at 0x10d8276a0> != <obspy.core.stream.Stream object at 0x10cf5a3c8>\n\n----------------------------------------------------------------------\nRan 5 tests in 8.443s\n\nFAILED (failures=1)\n```\n\n", "before_files": [{"content": "# -*- coding: utf-8 -*-\n\"\"\"\nobspy.clients.syngine - Client for the IRIS Syngine service\n===========================================================\n\nThis module offers methods to download from the IRIS syngine service\n(https://ds.iris.edu/ds/products/syngine/). The service is able to generate\nfully three dimensional synthetics through various 1D Earth models with\narbitrary source-receiver geometries and source mechanisms.\n\n:copyright:\n    The ObsPy Development Team (devs@obspy.org)\n:license:\n    GNU Lesser General Public License, Version 3\n    (https://www.gnu.org/copyleft/lesser.html)\n\n\nBasic Usage\n-----------\n\nFirst initialize a client object.\n\n>>> from obspy.clients.syngine import Client\n>>> client = Client()\n\nThen request some data.\n\n>>> st = client.get_waveforms(model=\"ak135f_5s\", network=\"IU\", station=\"ANMO\",\n...                           eventid=\"GCMT:C201002270634A\")\n>>> print(st)  # doctest: +ELLIPSIS\n3 Trace(s) in Stream:\nIU.ANMO.SE.MXZ | 2010-02-27T06:35:14... - ... | 4.0 Hz, 15520 samples\nIU.ANMO.SE.MXN | 2010-02-27T06:35:14... - ... | 4.0 Hz, 15520 samples\nIU.ANMO.SE.MXE | 2010-02-27T06:35:14... - ... | 4.0 Hz, 15520 samples\n>>> st.plot()  # doctest: +SKIP\n\n.. plot::\n\n    from obspy.clients.syngine import Client\n    client = Client()\n    st = client.get_waveforms(model=\"ak135f_5s\", network=\"IU\", station=\"ANMO\",\n                              eventid=\"GCMT:C201002270634A\")\n    st.plot()\n\nThe available parameters are explained in detail in the\n:meth:`~obspy.clients.syngine.client.Client.get_waveforms()` method and on\nthe `Syngine <https://ds.iris.edu/ds/products/syngine/>`_ website.\n\n\nThe queries are quite flexible. The following uses a station name wildcard\nand only requests data around the P arrival. Please be a bit careful as one\ncan potentially download a lot of data with a single request.\n\n>>> st = client.get_waveforms(model=\"ak135f_5s\", network=\"IU\", station=\"AN*\",\n...                           eventid=\"GCMT:C201002270634A\",\n...                           starttime=\"P-10\", endtime=\"P+20\")\n>>> st.plot()  # doctest: +SKIP\n\n.. plot::\n\n    from obspy.clients.syngine import Client\n    client = Client()\n    st = client.get_waveforms(model=\"ak135f_5s\", network=\"IU\", station=\"A*\",\n                              eventid=\"GCMT:C201002270634A\",\n                              starttime=\"P-10\", endtime=\"P+20\")\n    st.plot()\n\n\nBulk Requests\n-------------\n\nIt is also possible to send requests for multiple user-defined stations. See\nthe :meth:`~obspy.clients.syngine.client.Client.get_waveforms_bulk()` method\nfor details. This example specifies a bunch of receiver coordinates and\nrequests seismograms for all of these.\n\n>>> bulk = [{\"latitude\": 10.1, \"longitude\": 12.2, \"stationcode\": \"AA\"},\n...         {\"latitude\": 14.5, \"longitude\": 10.0, \"stationcode\": \"BB\"}]\n>>> st = client.get_waveforms_bulk(\n...     model=\"ak135f_5s\", eventid=\"GCMT:C201002270634A\",\n...     bulk=bulk, starttime=\"P-10\", endtime=\"P+20\")\n>>> print(st)  # doctest: +ELLIPSIS\n6 Trace(s) in Stream:\nXX.AA.SE.MXZ | 2010-02-27T06:48:11.500000Z - ... | 4.0 Hz, 120 samples\nXX.AA.SE.MXN | 2010-02-27T06:48:11.500000Z - ... | 4.0 Hz, 120 samples\nXX.AA.SE.MXE | 2010-02-27T06:48:11.500000Z - ... | 4.0 Hz, 120 samples\nXX.BB.SE.MXZ | 2010-02-27T06:48:15.250000Z - ... | 4.0 Hz, 120 samples\nXX.BB.SE.MXN | 2010-02-27T06:48:15.250000Z - ... | 4.0 Hz, 120 samples\nXX.BB.SE.MXE | 2010-02-27T06:48:15.250000Z - ... | 4.0 Hz, 120 samples\n\n\nOther Useful Methods\n--------------------\n\nUse the :meth:`~obspy.clients.syngine.client.Client.get_available_models()`\nmethod for a list of all available methods including some meta-information.\n\n>>> client.get_available_models()  # doctest: +SKIP\n{'ak135f_1s': {'components': 'vertical only',\n  'default_components': 'Z',\n  'default_dt': '0.05',\n  'description': 'ak135 with density & Q of Montagner & Kennet(1996)',\n  'length': 1815.00690721715,\n  'max_event_depth': 750000,\n  'max_period': '~100',\n  'max_sampling_period': '0.255383',\n  'min_period': 1.04999995231628},\n 'ak135f_2s': ...\n ...\n }\n\nThe :func:`~obspy.clients.syngine.client.Client.get_model_info()`\nmethod should be used to retrieve information about a specific model.\n\n>>> from obspy.clients.syngine import Client\n>>> c = Client()\n>>> db_info = c.get_model_info(model_name=\"ak135f_5s\")\n>>> print(db_info.period)\n5.125\n\"\"\"\nfrom __future__ import (absolute_import, division, print_function,\n                        unicode_literals)\nfrom future.builtins import *  # NOQA\nfrom future.utils import native_str\n\nfrom .client import Client  # NOQA\n\n__all__ = [native_str(\"Client\")]\n\n\nif __name__ == '__main__':\n    import doctest\n    doctest.testmod(exclude_empty=True)\n", "path": "obspy/clients/syngine/__init__.py"}], "after_files": [{"content": "# -*- coding: utf-8 -*-\n\"\"\"\nobspy.clients.syngine - Client for the IRIS Syngine service\n===========================================================\n\nThis module offers methods to download from the IRIS syngine service\n(https://ds.iris.edu/ds/products/syngine/). The service is able to generate\nfully three dimensional synthetics through various 1D Earth models with\narbitrary source-receiver geometries and source mechanisms.\n\n:copyright:\n    The ObsPy Development Team (devs@obspy.org)\n:license:\n    GNU Lesser General Public License, Version 3\n    (https://www.gnu.org/copyleft/lesser.html)\n\n\nBasic Usage\n-----------\n\nFirst initialize a client object.\n\n>>> from obspy.clients.syngine import Client\n>>> client = Client()\n\nThen request some data.\n\n>>> st = client.get_waveforms(model=\"ak135f_5s\", network=\"IU\", station=\"ANMO\",\n...                           eventid=\"GCMT:C201002270634A\")\n>>> print(st)  # doctest: +ELLIPSIS\n3 Trace(s) in Stream:\nIU.ANMO.SE.MXZ | 2010-02-27T06:35:14... - ... | 4.0 Hz, 15520 samples\nIU.ANMO.SE.MXN | 2010-02-27T06:35:14... - ... | 4.0 Hz, 15520 samples\nIU.ANMO.SE.MXE | 2010-02-27T06:35:14... - ... | 4.0 Hz, 15520 samples\n>>> st.plot()  # doctest: +SKIP\n\n.. plot::\n\n    from obspy.clients.syngine import Client\n    client = Client()\n    st = client.get_waveforms(model=\"ak135f_5s\", network=\"IU\", station=\"ANMO\",\n                              eventid=\"GCMT:C201002270634A\")\n    st.plot()\n\nThe available parameters are explained in detail in the\n:meth:`~obspy.clients.syngine.client.Client.get_waveforms()` method and on\nthe `Syngine <https://ds.iris.edu/ds/products/syngine/>`_ website.\n\n\nThe queries are quite flexible. The following uses a station name wildcard\nand only requests data around the P arrival. Please be a bit careful as one\ncan potentially download a lot of data with a single request.\n\n>>> st = client.get_waveforms(model=\"ak135f_5s\", network=\"IU\", station=\"AN*\",\n...                           eventid=\"GCMT:C201002270634A\",\n...                           starttime=\"P-10\", endtime=\"P+20\")\n>>> st.plot()  # doctest: +SKIP\n\n.. plot::\n\n    from obspy.clients.syngine import Client\n    client = Client()\n    st = client.get_waveforms(model=\"ak135f_5s\", network=\"IU\", station=\"A*\",\n                              eventid=\"GCMT:C201002270634A\",\n                              starttime=\"P-10\", endtime=\"P+20\")\n    st.plot()\n\n\nBulk Requests\n-------------\n\nIt is also possible to send requests for multiple user-defined stations. See\nthe :meth:`~obspy.clients.syngine.client.Client.get_waveforms_bulk()` method\nfor details. This example specifies a bunch of receiver coordinates and\nrequests seismograms for all of these.\n\n>>> bulk = [{\"latitude\": 10.1, \"longitude\": 12.2, \"stationcode\": \"AA\"},\n...         {\"latitude\": 14.5, \"longitude\": 10.0, \"stationcode\": \"BB\"}]\n>>> st = client.get_waveforms_bulk(\n...     model=\"ak135f_5s\", eventid=\"GCMT:C201002270634A\",\n...     bulk=bulk, starttime=\"P-10\", endtime=\"P+20\")\n>>> print(st)  # doctest: +ELLIPSIS\n6 Trace(s) in Stream:\nXX.AA.SE.MXZ | 2010-02-27T06:48:11... - ... | 4.0 Hz, 120 samples\nXX.AA.SE.MXN | 2010-02-27T06:48:11... - ... | 4.0 Hz, 120 samples\nXX.AA.SE.MXE | 2010-02-27T06:48:11... - ... | 4.0 Hz, 120 samples\nXX.BB.SE.MXZ | 2010-02-27T06:48:15... - ... | 4.0 Hz, 120 samples\nXX.BB.SE.MXN | 2010-02-27T06:48:15... - ... | 4.0 Hz, 120 samples\nXX.BB.SE.MXE | 2010-02-27T06:48:15... - ... | 4.0 Hz, 120 samples\n\n\nOther Useful Methods\n--------------------\n\nUse the :meth:`~obspy.clients.syngine.client.Client.get_available_models()`\nmethod for a list of all available methods including some meta-information.\n\n>>> client.get_available_models()  # doctest: +SKIP\n{'ak135f_1s': {'components': 'vertical only',\n  'default_components': 'Z',\n  'default_dt': '0.05',\n  'description': 'ak135 with density & Q of Montagner & Kennet(1996)',\n  'length': 1815.00690721715,\n  'max_event_depth': 750000,\n  'max_period': '~100',\n  'max_sampling_period': '0.255383',\n  'min_period': 1.04999995231628},\n 'ak135f_2s': ...\n ...\n }\n\nThe :func:`~obspy.clients.syngine.client.Client.get_model_info()`\nmethod should be used to retrieve information about a specific model.\n\n>>> from obspy.clients.syngine import Client\n>>> c = Client()\n>>> db_info = c.get_model_info(model_name=\"ak135f_5s\")\n>>> print(db_info.period)\n5.125\n\"\"\"\nfrom __future__ import (absolute_import, division, print_function,\n                        unicode_literals)\nfrom future.builtins import *  # NOQA\nfrom future.utils import native_str\n\nfrom .client import Client  # NOQA\n\n__all__ = [native_str(\"Client\")]\n\n\nif __name__ == '__main__':\n    import doctest\n    doctest.testmod(exclude_empty=True)\n", "path": "obspy/clients/syngine/__init__.py"}]}