prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  SyntaxWarning for loading indicator widget
  I receive this warning after upgrading to `0.52.0`:
  
  ```
  /Users/cthompson/Library/Caches/pypoetry/virtualenvs/dolphie-z84eXs3q-py3.11/lib/python3.11/site-packages/textual/widgets/_loading_indicator.py:57: SyntaxWarning: "is" with a literal. Did you mean "=="?
    if self.app.animation_level is "none":
  ```
  
  https://github.com/Textualize/textual/blob/main/src/textual/widgets/_loading_indicator.py#L57
  
  Seems we just need to change `is "none"` to `== "none"`
  
  </issue>
  <code>
  [start of src/textual/widgets/_loading_indicator.py]
  1 from __future__ import annotations
  2 
  3 from time import time
  4 
  5 from rich.console import RenderableType
  6 from rich.style import Style
  7 from rich.text import Text
  8 
  9 from ..color import Gradient
  10 from ..events import Mount
  11 from ..widget import Widget
  12 
  13 
  14 class LoadingIndicator(Widget):
  15     """Display an animated loading indicator."""
  16 
  17     DEFAULT_CSS = """
  18     LoadingIndicator {
  19         width: 100%;
  20         height: 100%;
  21         min-height: 1;
  22         content-align: center middle;
  23         color: $accent;
  24     }
  25     LoadingIndicator.-textual-loading-indicator {
  26         layer: _loading;
  27         background: $boost;
  28         dock: top;
  29     }
  30     """
  31 
  32     def __init__(
  33         self,
  34         name: str | None = None,
  35         id: str | None = None,
  36         classes: str | None = None,
  37         disabled: bool = False,
  38     ):
  39         """Initialize a loading indicator.
  40 
  41         Args:
  42             name: The name of the widget.
  43             id: The ID of the widget in the DOM.
  44             classes: The CSS classes for the widget.
  45             disabled: Whether the widget is disabled or not.
  46         """
  47         super().__init__(name=name, id=id, classes=classes, disabled=disabled)
  48 
  49         self._start_time: float = 0.0
  50         """The time the loading indicator was mounted (a Unix timestamp)."""
  51 
  52     def _on_mount(self, _: Mount) -> None:
  53         self._start_time = time()
  54         self.auto_refresh = 1 / 16
  55 
  56     def render(self) -> RenderableType:
  57         if self.app.animation_level is "none":
  58             return Text("Loading...")
  59 
  60         elapsed = time() - self._start_time
  61         speed = 0.8
  62         dot = "\u25cf"
  63         _, _, background, color = self.colors
  64 
  65         gradient = Gradient(
  66             (0.0, background.blend(color, 0.1)),
  67             (0.7, color),
  68             (1.0, color.lighten(0.1)),
  69         )
  70 
  71         blends = [(elapsed * speed - dot_number / 8) % 1 for dot_number in range(5)]
  72 
  73         dots = [
  74             (
  75                 f"{dot} ",
  76                 Style.from_color(gradient.get_color((1 - blend) ** 2).rich_color),
  77             )
  78             for blend in blends
  79         ]
  80         indicator = Text.assemble(*dots)
  81         indicator.rstrip()
  82         return indicator
  83
  [end of src/textual/widgets/_loading_indicator.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/textual/widgets/_loading_indicator.py b/src/textual/widgets/_loading_indicator.py
  --- a/src/textual/widgets/_loading_indicator.py
  +++ b/src/textual/widgets/_loading_indicator.py
  @@ -54,7 +54,7 @@
           self.auto_refresh = 1 / 16
   
       def render(self) -> RenderableType:
  -        if self.app.animation_level is "none":
  +        if self.app.animation_level == "none":
               return Text("Loading...")
   
           elapsed = time() - self._start_time
  
verification_info: {"golden_diff": "diff --git a/src/textual/widgets/_loading_indicator.py b/src/textual/widgets/_loading_indicator.py\n--- a/src/textual/widgets/_loading_indicator.py\n+++ b/src/textual/widgets/_loading_indicator.py\n@@ -54,7 +54,7 @@\n         self.auto_refresh = 1 / 16\n \n     def render(self) -> RenderableType:\n-        if self.app.animation_level is \"none\":\n+        if self.app.animation_level == \"none\":\n             return Text(\"Loading...\")\n \n         elapsed = time() - self._start_time\n", "issue": "SyntaxWarning for loading indicator widget\nI receive this warning after upgrading to `0.52.0`:\r\n\r\n```\r\n/Users/cthompson/Library/Caches/pypoetry/virtualenvs/dolphie-z84eXs3q-py3.11/lib/python3.11/site-packages/textual/widgets/_loading_indicator.py:57: SyntaxWarning: \"is\" with a literal. Did you mean \"==\"?\r\n  if self.app.animation_level is \"none\":\r\n```\r\n\r\nhttps://github.com/Textualize/textual/blob/main/src/textual/widgets/_loading_indicator.py#L57\r\n\r\nSeems we just need to change `is \"none\"` to `== \"none\"`\n", "before_files": [{"content": "from __future__ import annotations\n\nfrom time import time\n\nfrom rich.console import RenderableType\nfrom rich.style import Style\nfrom rich.text import Text\n\nfrom ..color import Gradient\nfrom ..events import Mount\nfrom ..widget import Widget\n\n\nclass LoadingIndicator(Widget):\n    \"\"\"Display an animated loading indicator.\"\"\"\n\n    DEFAULT_CSS = \"\"\"\n    LoadingIndicator {\n        width: 100%;\n        height: 100%;\n        min-height: 1;\n        content-align: center middle;\n        color: $accent;\n    }\n    LoadingIndicator.-textual-loading-indicator {\n        layer: _loading;\n        background: $boost;\n        dock: top;\n    }\n    \"\"\"\n\n    def __init__(\n        self,\n        name: str | None = None,\n        id: str | None = None,\n        classes: str | None = None,\n        disabled: bool = False,\n    ):\n        \"\"\"Initialize a loading indicator.\n\n        Args:\n            name: The name of the widget.\n            id: The ID of the widget in the DOM.\n            classes: The CSS classes for the widget.\n            disabled: Whether the widget is disabled or not.\n        \"\"\"\n        super().__init__(name=name, id=id, classes=classes, disabled=disabled)\n\n        self._start_time: float = 0.0\n        \"\"\"The time the loading indicator was mounted (a Unix timestamp).\"\"\"\n\n    def _on_mount(self, _: Mount) -> None:\n        self._start_time = time()\n        self.auto_refresh = 1 / 16\n\n    def render(self) -> RenderableType:\n        if self.app.animation_level is \"none\":\n            return Text(\"Loading...\")\n\n        elapsed = time() - self._start_time\n        speed = 0.8\n        dot = \"\\u25cf\"\n        _, _, background, color = self.colors\n\n        gradient = Gradient(\n            (0.0, background.blend(color, 0.1)),\n            (0.7, color),\n            (1.0, color.lighten(0.1)),\n        )\n\n        blends = [(elapsed * speed - dot_number / 8) % 1 for dot_number in range(5)]\n\n        dots = [\n            (\n                f\"{dot} \",\n                Style.from_color(gradient.get_color((1 - blend) ** 2).rich_color),\n            )\n            for blend in blends\n        ]\n        indicator = Text.assemble(*dots)\n        indicator.rstrip()\n        return indicator\n", "path": "src/textual/widgets/_loading_indicator.py"}]}