prompt: We are currently solving the following issue within our repository. Here is the issue text:
  --- BEGIN ISSUE ---
  Remove IPyParallel executor
  **Is your feature request related to a problem? Please describe.**
  The parsl ipp code isn't really maintained any more. As I try to tidy up some stuff in the test suite I find myself spending more time than I'd like to debugging what is happening inside the IPP  parsl executor, while at the same time the folklore is "don't use IPP".
  
  **Describe the solution you'd like**
  I'd like to remove all IPP tests from the test suite now. This will inevitably lead to the ipp code rotting fast, and so in addition the IPP executor should probably be removed in its entirely.
  
  **Describe alternatives you've considered**
  An alternative is to put developer effort into maintaining IPP as a supported executor.
  
  **Additional context**
  The folklore on slack seems to be "don't use IPP". This feature request turns that folklore into reality.
  
  I invite comment in support or against from @kylechard @yadudoc @annawoodard especially as regards how this would affect existing users who have not moved to htex (if any?).
  
  see #1328 
  
  --- END ISSUE ---
  
  Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
  --- BEGIN FILES ---
  Path: `parsl/executors/ipp_controller.py`
  Content:
  ```
  1 class Controller():
  2     """This stub exists to issue a more helpful warning about the IPyParallel
  3     executor being removed from parsl some time after v0.9.
  4 
  5     It can eventually be removed entirely - perhaps after v0.10
  6     """
  7     def __init__(self, *args, **kwargs):
  8         raise RuntimeError("The IPyParallel executor has been removed from parsl")
  9
  ```
  
  Path: `parsl/executors/__init__.py`
  Content:
  ```
  1 from parsl.executors.threads import ThreadPoolExecutor
  2 from parsl.executors.ipp import IPyParallelExecutor
  3 from parsl.executors.workqueue.executor import WorkQueueExecutor
  4 from parsl.executors.high_throughput.executor import HighThroughputExecutor
  5 from parsl.executors.extreme_scale.executor import ExtremeScaleExecutor
  6 from parsl.executors.low_latency.executor import LowLatencyExecutor
  7 from parsl.executors.flux.executor import FluxExecutor
  8 
  9 __all__ = ['IPyParallelExecutor',
  10            'ThreadPoolExecutor',
  11            'HighThroughputExecutor',
  12            'ExtremeScaleExecutor',
  13            'LowLatencyExecutor',
  14            'WorkQueueExecutor',
  15            'FluxExecutor']
  16
  ```
  
  Path: `parsl/executors/ipp.py`
  Content:
  ```
  1 from parsl.executors.base import ParslExecutor
  2 
  3 
  4 class IPyParallelExecutor(ParslExecutor):
  5     """This stub exists to issue a more helpful warning about the IPyParallel
  6     executor being removed from parsl some time after v0.9.
  7 
  8     It can eventually be removed entirely - perhaps after v0.10
  9     """
  10 
  11     def __new__(*args, **kwargs):
  12         raise RuntimeError("The IPyParallel executor has been removed from parsl")
  13
  ```
  --- 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/parsl/executors/__init__.py b/parsl/executors/__init__.py
  --- a/parsl/executors/__init__.py
  +++ b/parsl/executors/__init__.py
  @@ -1,13 +1,11 @@
   from parsl.executors.threads import ThreadPoolExecutor
  -from parsl.executors.ipp import IPyParallelExecutor
   from parsl.executors.workqueue.executor import WorkQueueExecutor
   from parsl.executors.high_throughput.executor import HighThroughputExecutor
   from parsl.executors.extreme_scale.executor import ExtremeScaleExecutor
   from parsl.executors.low_latency.executor import LowLatencyExecutor
   from parsl.executors.flux.executor import FluxExecutor
   
  -__all__ = ['IPyParallelExecutor',
  -           'ThreadPoolExecutor',
  +__all__ = ['ThreadPoolExecutor',
              'HighThroughputExecutor',
              'ExtremeScaleExecutor',
              'LowLatencyExecutor',
  diff --git a/parsl/executors/ipp.py b/parsl/executors/ipp.py
  deleted file mode 100644
  --- a/parsl/executors/ipp.py
  +++ /dev/null
  @@ -1,12 +0,0 @@
  -from parsl.executors.base import ParslExecutor
  -
  -
  -class IPyParallelExecutor(ParslExecutor):
  -    """This stub exists to issue a more helpful warning about the IPyParallel
  -    executor being removed from parsl some time after v0.9.
  -
  -    It can eventually be removed entirely - perhaps after v0.10
  -    """
  -
  -    def __new__(*args, **kwargs):
  -        raise RuntimeError("The IPyParallel executor has been removed from parsl")
  diff --git a/parsl/executors/ipp_controller.py b/parsl/executors/ipp_controller.py
  deleted file mode 100644
  --- a/parsl/executors/ipp_controller.py
  +++ /dev/null
  @@ -1,8 +0,0 @@
  -class Controller():
  -    """This stub exists to issue a more helpful warning about the IPyParallel
  -    executor being removed from parsl some time after v0.9.
  -
  -    It can eventually be removed entirely - perhaps after v0.10
  -    """
  -    def __init__(self, *args, **kwargs):
  -        raise RuntimeError("The IPyParallel executor has been removed from parsl")
  
verification_info: {"golden_diff": "diff --git a/parsl/executors/__init__.py b/parsl/executors/__init__.py\n--- a/parsl/executors/__init__.py\n+++ b/parsl/executors/__init__.py\n@@ -1,13 +1,11 @@\n from parsl.executors.threads import ThreadPoolExecutor\n-from parsl.executors.ipp import IPyParallelExecutor\n from parsl.executors.workqueue.executor import WorkQueueExecutor\n from parsl.executors.high_throughput.executor import HighThroughputExecutor\n from parsl.executors.extreme_scale.executor import ExtremeScaleExecutor\n from parsl.executors.low_latency.executor import LowLatencyExecutor\n from parsl.executors.flux.executor import FluxExecutor\n \n-__all__ = ['IPyParallelExecutor',\n-           'ThreadPoolExecutor',\n+__all__ = ['ThreadPoolExecutor',\n            'HighThroughputExecutor',\n            'ExtremeScaleExecutor',\n            'LowLatencyExecutor',\ndiff --git a/parsl/executors/ipp.py b/parsl/executors/ipp.py\ndeleted file mode 100644\n--- a/parsl/executors/ipp.py\n+++ /dev/null\n@@ -1,12 +0,0 @@\n-from parsl.executors.base import ParslExecutor\n-\n-\n-class IPyParallelExecutor(ParslExecutor):\n-    \"\"\"This stub exists to issue a more helpful warning about the IPyParallel\n-    executor being removed from parsl some time after v0.9.\n-\n-    It can eventually be removed entirely - perhaps after v0.10\n-    \"\"\"\n-\n-    def __new__(*args, **kwargs):\n-        raise RuntimeError(\"The IPyParallel executor has been removed from parsl\")\ndiff --git a/parsl/executors/ipp_controller.py b/parsl/executors/ipp_controller.py\ndeleted file mode 100644\n--- a/parsl/executors/ipp_controller.py\n+++ /dev/null\n@@ -1,8 +0,0 @@\n-class Controller():\n-    \"\"\"This stub exists to issue a more helpful warning about the IPyParallel\n-    executor being removed from parsl some time after v0.9.\n-\n-    It can eventually be removed entirely - perhaps after v0.10\n-    \"\"\"\n-    def __init__(self, *args, **kwargs):\n-        raise RuntimeError(\"The IPyParallel executor has been removed from parsl\")\n", "issue": "Remove IPyParallel executor\n**Is your feature request related to a problem? Please describe.**\r\nThe parsl ipp code isn't really maintained any more. As I try to tidy up some stuff in the test suite I find myself spending more time than I'd like to debugging what is happening inside the IPP  parsl executor, while at the same time the folklore is \"don't use IPP\".\r\n\r\n**Describe the solution you'd like**\r\nI'd like to remove all IPP tests from the test suite now. This will inevitably lead to the ipp code rotting fast, and so in addition the IPP executor should probably be removed in its entirely.\r\n\r\n**Describe alternatives you've considered**\r\nAn alternative is to put developer effort into maintaining IPP as a supported executor.\r\n\r\n**Additional context**\r\nThe folklore on slack seems to be \"don't use IPP\". This feature request turns that folklore into reality.\r\n\r\nI invite comment in support or against from @kylechard @yadudoc @annawoodard especially as regards how this would affect existing users who have not moved to htex (if any?).\r\n\r\nsee #1328 \n", "before_files": [{"content": "class Controller():\n    \"\"\"This stub exists to issue a more helpful warning about the IPyParallel\n    executor being removed from parsl some time after v0.9.\n\n    It can eventually be removed entirely - perhaps after v0.10\n    \"\"\"\n    def __init__(self, *args, **kwargs):\n        raise RuntimeError(\"The IPyParallel executor has been removed from parsl\")\n", "path": "parsl/executors/ipp_controller.py"}, {"content": "from parsl.executors.threads import ThreadPoolExecutor\nfrom parsl.executors.ipp import IPyParallelExecutor\nfrom parsl.executors.workqueue.executor import WorkQueueExecutor\nfrom parsl.executors.high_throughput.executor import HighThroughputExecutor\nfrom parsl.executors.extreme_scale.executor import ExtremeScaleExecutor\nfrom parsl.executors.low_latency.executor import LowLatencyExecutor\nfrom parsl.executors.flux.executor import FluxExecutor\n\n__all__ = ['IPyParallelExecutor',\n           'ThreadPoolExecutor',\n           'HighThroughputExecutor',\n           'ExtremeScaleExecutor',\n           'LowLatencyExecutor',\n           'WorkQueueExecutor',\n           'FluxExecutor']\n", "path": "parsl/executors/__init__.py"}, {"content": "from parsl.executors.base import ParslExecutor\n\n\nclass IPyParallelExecutor(ParslExecutor):\n    \"\"\"This stub exists to issue a more helpful warning about the IPyParallel\n    executor being removed from parsl some time after v0.9.\n\n    It can eventually be removed entirely - perhaps after v0.10\n    \"\"\"\n\n    def __new__(*args, **kwargs):\n        raise RuntimeError(\"The IPyParallel executor has been removed from parsl\")\n", "path": "parsl/executors/ipp.py"}], "after_files": [{"content": null, "path": "parsl/executors/ipp_controller.py"}, {"content": "from parsl.executors.threads import ThreadPoolExecutor\nfrom parsl.executors.workqueue.executor import WorkQueueExecutor\nfrom parsl.executors.high_throughput.executor import HighThroughputExecutor\nfrom parsl.executors.extreme_scale.executor import ExtremeScaleExecutor\nfrom parsl.executors.low_latency.executor import LowLatencyExecutor\nfrom parsl.executors.flux.executor import FluxExecutor\n\n__all__ = ['ThreadPoolExecutor',\n           'HighThroughputExecutor',\n           'ExtremeScaleExecutor',\n           'LowLatencyExecutor',\n           'WorkQueueExecutor',\n           'FluxExecutor']\n", "path": "parsl/executors/__init__.py"}, {"content": null, "path": "parsl/executors/ipp.py"}]}