class_docstr: User-facing class that wraps a Gradio App in a Serve Deployment.
docstr: Builds and wraps an ASGI app from the provided builder.
  
  The builder should take no arguments and return a Gradio App (of type Interface
  or Blocks).
docstr_tok: ["Builds","and","wraps","an","ASGI","app","from","the","provided","builder",".","The","builder","should","take","no","arguments","and","return","a","Gradio","App","(","of","type","Interface","or","Blocks",")","."]
code: def __init__(self, builder: Callable[[], Blocks]):
      """Builds and wraps an ASGI app from the provided builder.
  
      The builder should take no arguments and return a Gradio App (of type Interface
      or Blocks).
      """
      io: Blocks = builder()
      super().__init__(routes.App.create_app(io))
  
file_path: ray/python/ray/serve/gradio_integrations.py
imports: import logging
  from typing import Callable
  from ray import serve
  from ray.serve._private.http_util import ASGIAppReplicaWrapper
  from ray.util.annotations import PublicAPI
label_desc: Use image node_id 1 to create a new GradioIngress object from inherited base classes: ASGIAppReplicaWrapper with example: obj = GradioIngress(builder)