We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Provide an example of splitting sections of an attr query out of the Fido.search method.
@Cadair's had this snippet of code

``` python
import datetime
from sunpy.net import vso
from sunpy.time import parse_time

# Start time and end time for the AIA search
start = parse_time('2014/07/17T10:01:30')
stop = start + datetime.timedelta(seconds=12)
stop_hmi = start + datetime.timedelta(seconds=30)

# Define two VSO Searches for the AIA data and the HMI data
search_aia = (vso.attrs.Time(start, stop), vso.attrs.Instrument('AIA'))
search_hmi = (vso.attrs.Time(start, stop_hmi), vso.attrs.Instrument('HMI'),
              vso.attrs.Physobs('LOS_magnetic_field'))

# Create the VSO Client
vsoClient = vso.VSOClient()

# Query VSO for both searches using the or operator `|`
results = vsoClient.query(search_aia | search_hmi)
```

That used to work but now I get this error. 

``` python
TypeError: unsupported operand type(s) for |: 'tuple' and 'tuple'
```

Should this operation be possible? 


--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `examples/acquiring_data/searching_vso.py`
Content:
```
1 """
2 ======================================
3 Searching and downloading from the VSO
4 ======================================
5 
6 How to download data from the VSO with Fido.
7 """
8 import astropy.units as u
9 
10 from sunpy.net import Fido
11 from sunpy.net import attrs as a
12 
13 ###############################################################################
14 # `sunpy.net.Fido` is the primary interface to search for and download data and
15 # will search the VSO when appropriate. The following example searches for all
16 # SOHO/EIT images between the times defined below by defining a
17 # timerange (`~sunpy.net.attrs.Time`) and the instrument (`~sunpy.net.attrs.Instrument`).
18 
19 attrs_time = a.Time('2005/01/01 00:10', '2005/01/01 00:15')
20 result = Fido.search(attrs_time, a.Instrument.eit)
21 
22 ###############################################################################
23 # Let's inspect the results.
24 
25 print(result)
26 
27 ###############################################################################
28 # The following shows how to download the results. If we
29 # don't provide a path it will download the file into the sunpy data directory.
30 # The output provides the path of the downloaded files.
31 
32 downloaded_files = Fido.fetch(result)
33 print(downloaded_files)
34 
35 ###############################################################################
36 # More complicated queries can be constructed by using relational operators.
37 # For example, it is possible to query two wavelengths at the same time with
38 # the OR operator (|).
39 
40 result = Fido.search(a.Time('2020/03/04 00:00', '2020/03/04 00:02'),
41                      a.Instrument.aia,
42                      a.Wavelength(171*u.angstrom) | a.Wavelength(94*u.angstrom))
43 print(result)
44
```
--- 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/examples/acquiring_data/searching_vso.py b/examples/acquiring_data/searching_vso.py
--- a/examples/acquiring_data/searching_vso.py
+++ b/examples/acquiring_data/searching_vso.py
@@ -41,3 +41,15 @@
                      a.Instrument.aia,
                      a.Wavelength(171*u.angstrom) | a.Wavelength(94*u.angstrom))
 print(result)
+
+###############################################################################
+# We can even combine entire queries in this manner.
+# Here we will define two searches for the AIA and HMI data.
+# But unlike other examples, we have to ``&`` the individual queries.
+
+search_aia = (a.Time('2020/03/04 00:00', '2020/03/04 00:01') & a.Instrument.aia)
+search_hmi = (a.Time('2020/03/04 00:00', '2020/03/04 00:01')
+              & a.Instrument.hmi & a.Physobs.los_magnetic_field)
+
+result = Fido.search(search_aia | search_hmi)
+print(result)

{"golden_diff": "diff --git a/examples/acquiring_data/searching_vso.py b/examples/acquiring_data/searching_vso.py\n--- a/examples/acquiring_data/searching_vso.py\n+++ b/examples/acquiring_data/searching_vso.py\n@@ -41,3 +41,15 @@\n                      a.Instrument.aia,\n                      a.Wavelength(171*u.angstrom) | a.Wavelength(94*u.angstrom))\n print(result)\n+\n+###############################################################################\n+# We can even combine entire queries in this manner.\n+# Here we will define two searches for the AIA and HMI data.\n+# But unlike other examples, we have to ``&`` the individual queries.\n+\n+search_aia = (a.Time('2020/03/04 00:00', '2020/03/04 00:01') & a.Instrument.aia)\n+search_hmi = (a.Time('2020/03/04 00:00', '2020/03/04 00:01')\n+              & a.Instrument.hmi & a.Physobs.los_magnetic_field)\n+\n+result = Fido.search(search_aia | search_hmi)\n+print(result)\n", "issue": "Provide an example of splitting sections of an attr query out of the Fido.search method.\n@Cadair's had this snippet of code\r\n\r\n``` python\r\nimport datetime\r\nfrom sunpy.net import vso\r\nfrom sunpy.time import parse_time\r\n\r\n# Start time and end time for the AIA search\r\nstart = parse_time('2014/07/17T10:01:30')\r\nstop = start + datetime.timedelta(seconds=12)\r\nstop_hmi = start + datetime.timedelta(seconds=30)\r\n\r\n# Define two VSO Searches for the AIA data and the HMI data\r\nsearch_aia = (vso.attrs.Time(start, stop), vso.attrs.Instrument('AIA'))\r\nsearch_hmi = (vso.attrs.Time(start, stop_hmi), vso.attrs.Instrument('HMI'),\r\n              vso.attrs.Physobs('LOS_magnetic_field'))\r\n\r\n# Create the VSO Client\r\nvsoClient = vso.VSOClient()\r\n\r\n# Query VSO for both searches using the or operator `|`\r\nresults = vsoClient.query(search_aia | search_hmi)\r\n```\r\n\r\nThat used to work but now I get this error. \r\n\r\n``` python\r\nTypeError: unsupported operand type(s) for |: 'tuple' and 'tuple'\r\n```\r\n\r\nShould this operation be possible? \r\n\n", "before_files": [{"content": "\"\"\"\n======================================\nSearching and downloading from the VSO\n======================================\n\nHow to download data from the VSO with Fido.\n\"\"\"\nimport astropy.units as u\n\nfrom sunpy.net import Fido\nfrom sunpy.net import attrs as a\n\n###############################################################################\n# `sunpy.net.Fido` is the primary interface to search for and download data and\n# will search the VSO when appropriate. The following example searches for all\n# SOHO/EIT images between the times defined below by defining a\n# timerange (`~sunpy.net.attrs.Time`) and the instrument (`~sunpy.net.attrs.Instrument`).\n\nattrs_time = a.Time('2005/01/01 00:10', '2005/01/01 00:15')\nresult = Fido.search(attrs_time, a.Instrument.eit)\n\n###############################################################################\n# Let's inspect the results.\n\nprint(result)\n\n###############################################################################\n# The following shows how to download the results. If we\n# don't provide a path it will download the file into the sunpy data directory.\n# The output provides the path of the downloaded files.\n\ndownloaded_files = Fido.fetch(result)\nprint(downloaded_files)\n\n###############################################################################\n# More complicated queries can be constructed by using relational operators.\n# For example, it is possible to query two wavelengths at the same time with\n# the OR operator (|).\n\nresult = Fido.search(a.Time('2020/03/04 00:00', '2020/03/04 00:02'),\n                     a.Instrument.aia,\n                     a.Wavelength(171*u.angstrom) | a.Wavelength(94*u.angstrom))\nprint(result)\n", "path": "examples/acquiring_data/searching_vso.py"}], "after_files": [{"content": "\"\"\"\n======================================\nSearching and downloading from the VSO\n======================================\n\nHow to download data from the VSO with Fido.\n\"\"\"\nimport astropy.units as u\n\nfrom sunpy.net import Fido\nfrom sunpy.net import attrs as a\n\n###############################################################################\n# `sunpy.net.Fido` is the primary interface to search for and download data and\n# will search the VSO when appropriate. The following example searches for all\n# SOHO/EIT images between the times defined below by defining a\n# timerange (`~sunpy.net.attrs.Time`) and the instrument (`~sunpy.net.attrs.Instrument`).\n\nattrs_time = a.Time('2005/01/01 00:10', '2005/01/01 00:15')\nresult = Fido.search(attrs_time, a.Instrument.eit)\n\n###############################################################################\n# Let's inspect the results.\n\nprint(result)\n\n###############################################################################\n# The following shows how to download the results. If we\n# don't provide a path it will download the file into the sunpy data directory.\n# The output provides the path of the downloaded files.\n\ndownloaded_files = Fido.fetch(result)\nprint(downloaded_files)\n\n###############################################################################\n# More complicated queries can be constructed by using relational operators.\n# For example, it is possible to query two wavelengths at the same time with\n# the OR operator (|).\n\nresult = Fido.search(a.Time('2020/03/04 00:00', '2020/03/04 00:02'),\n                     a.Instrument.aia,\n                     a.Wavelength(171*u.angstrom) | a.Wavelength(94*u.angstrom))\nprint(result)\n\n###############################################################################\n# We can even combine entire queries in this manner.\n# Here we will define two searches for the AIA and HMI data.\n# But unlike other examples, we have to ``&`` the individual queries.\n\nsearch_aia = (a.Time('2020/03/04 00:00', '2020/03/04 00:01') & a.Instrument.aia)\nsearch_hmi = (a.Time('2020/03/04 00:00', '2020/03/04 00:01')\n              & a.Instrument.hmi & a.Physobs.los_magnetic_field)\n\nresult = Fido.search(search_aia | search_hmi)\nprint(result)\n", "path": "examples/acquiring_data/searching_vso.py"}]}