prompt: 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()
  
  ```
  
golden_diff: 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)
  
verification_info: {"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"}]}