prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  Consider promoting `case` to the top level
  ## Current behavior
  *Please describe how the feature works today*
  Currently, the `case` context manager must be imported from `prefect.tasks.control_flow.case`.
  
  
  
  ## Proposed behavior
  *Please describe your proposed change to the current behavior*
  I think we should consider promoting `case` to being importable as `prefect.case`, since it forms a fundamental part of the Python API. Other control flow utilities have "task-like" semantics (even if they are called as functions), and it's more appropriate for them to live in a `tasks` submodule. However, like `task`, `Flow`, `tags`, and `unmapped`, I believe `case` represents a significant component of Prefect's Python syntax and warrants top-level availability.
  
  
  
  
  ## Example
  *Please give an example of how the enhancement would be useful*
  ```
  from prefect import Flow, case
  
  with Flow("example"):
      with case(is_this_easy, True):
          do_stuff()
  
      with prefect.tasks.control_flow.case(is_this_easy, False):
          do_other_stuff()
  ```
  
  </issue>
  <code>
  [start of src/prefect/__init__.py]
  1 import prefect.utilities
  2 from prefect.configuration import config
  3 
  4 from prefect.utilities.context import context
  5 
  6 from prefect.client import Client
  7 import prefect.schedules
  8 import prefect.triggers
  9 import prefect.environments
  10 
  11 from prefect.core import Task, Flow, Parameter
  12 import prefect.engine
  13 import prefect.tasks
  14 from prefect.utilities.tasks import task, tags, unmapped
  15 
  16 import prefect.serialization
  17 
  18 import prefect.agent
  19 
  20 from ._version import get_versions
  21 
  22 __version__ = get_versions()["version"]  # type: ignore
  23 del get_versions
  24 
  25 try:
  26     import signal as _signal
  27     from ._siginfo import sig_handler as _sig_handler
  28 
  29     _signal.signal(29, _sig_handler)
  30 except:
  31     pass
  32
  [end of src/prefect/__init__.py]
  </code>
  
  I need you to solve this issue by generating a single patch file that I can apply directly to this repository using git apply. Please respond with a single patch file in the following format.
  <patch>
  diff --git a/file.py b/file.py
  --- a/file.py
  +++ b/file.py
  @@ -1,27 +1,35 @@
   def euclidean(a, b):
  -    while b:
  -        a, b = b, a % b
  -    return a
  +    if b == 0:
  +        return a
  +    return euclidean(b, a % b)
   
   
   def bresenham(x0, y0, x1, y1):
       points = []
       dx = abs(x1 - x0)
       dy = abs(y1 - y0)
  -    sx = 1 if x0 < x1 else -1
  -    sy = 1 if y0 < y1 else -1
  -    err = dx - dy
  +    x, y = x0, y0
  +    sx = -1 if x0 > x1 else 1
  +    sy = -1 if y0 > y1 else 1
   
  -    while True:
  -        points.append((x0, y0))
  -        if x0 == x1 and y0 == y1:
  -            break
  -        e2 = 2 * err
  -        if e2 > -dy:
  -            err -= dy
  -            x0 += sx
  -        if e2 < dx:
  -            err += dx
  -            y0 += sy
  +    if dx > dy:
  +        err = dx / 2.0
  +        while x != x1:
  +            points.append((x, y))
  +            err -= dy
  +            if err < 0:
  +                y += sy
  +                err += dx
  +            x += sx
  +    else:
  +        err = dy / 2.0
  +        while y != y1:
  +            points.append((x, y))
  +            err -= dx
  +            if err < 0:
  +                x += sx
  +                err += dy
  +            y += sy
  +
  +    points.append((x, y))
       return points
  
  </patch>
golden_diff: diff --git a/src/prefect/__init__.py b/src/prefect/__init__.py
  --- a/src/prefect/__init__.py
  +++ b/src/prefect/__init__.py
  @@ -11,6 +11,7 @@
   from prefect.core import Task, Flow, Parameter
   import prefect.engine
   import prefect.tasks
  +from prefect.tasks.control_flow import case
   from prefect.utilities.tasks import task, tags, unmapped
   
   import prefect.serialization
  
verification_info: {"golden_diff": "diff --git a/src/prefect/__init__.py b/src/prefect/__init__.py\n--- a/src/prefect/__init__.py\n+++ b/src/prefect/__init__.py\n@@ -11,6 +11,7 @@\n from prefect.core import Task, Flow, Parameter\n import prefect.engine\n import prefect.tasks\n+from prefect.tasks.control_flow import case\n from prefect.utilities.tasks import task, tags, unmapped\n \n import prefect.serialization\n", "issue": "Consider promoting `case` to the top level\n## Current behavior\r\n*Please describe how the feature works today*\r\nCurrently, the `case` context manager must be imported from `prefect.tasks.control_flow.case`.\r\n\r\n\r\n\r\n## Proposed behavior\r\n*Please describe your proposed change to the current behavior*\r\nI think we should consider promoting `case` to being importable as `prefect.case`, since it forms a fundamental part of the Python API. Other control flow utilities have \"task-like\" semantics (even if they are called as functions), and it's more appropriate for them to live in a `tasks` submodule. However, like `task`, `Flow`, `tags`, and `unmapped`, I believe `case` represents a significant component of Prefect's Python syntax and warrants top-level availability.\r\n\r\n\r\n\r\n\r\n## Example\r\n*Please give an example of how the enhancement would be useful*\r\n```\r\nfrom prefect import Flow, case\r\n\r\nwith Flow(\"example\"):\r\n    with case(is_this_easy, True):\r\n        do_stuff()\r\n\r\n    with prefect.tasks.control_flow.case(is_this_easy, False):\r\n        do_other_stuff()\r\n```\n", "before_files": [{"content": "import prefect.utilities\nfrom prefect.configuration import config\n\nfrom prefect.utilities.context import context\n\nfrom prefect.client import Client\nimport prefect.schedules\nimport prefect.triggers\nimport prefect.environments\n\nfrom prefect.core import Task, Flow, Parameter\nimport prefect.engine\nimport prefect.tasks\nfrom prefect.utilities.tasks import task, tags, unmapped\n\nimport prefect.serialization\n\nimport prefect.agent\n\nfrom ._version import get_versions\n\n__version__ = get_versions()[\"version\"]  # type: ignore\ndel get_versions\n\ntry:\n    import signal as _signal\n    from ._siginfo import sig_handler as _sig_handler\n\n    _signal.signal(29, _sig_handler)\nexcept:\n    pass\n", "path": "src/prefect/__init__.py"}]}