File size: 3,626 Bytes
e1a9145 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 | from __future__ import annotations
from gradio_client.documentation import document
from gradio_client.exceptions import AppError
class DuplicateBlockError(ValueError):
"""Raised when a Blocks contains more than one Block with the same id"""
pass
class InvalidComponentError(ValueError):
"""Raised when invalid components are used."""
pass
class ModelNotFoundError(Exception):
"""Raised when the provided model doesn't exists or is not found by the provided api url."""
pass
class RenderError(Exception):
"""Raised when a component has not been rendered in the current Blocks but is expected to have been rendered."""
pass
class InvalidApiNameError(ValueError):
pass
class ServerFailedToStartError(Exception):
pass
class InvalidBlockError(ValueError):
"""Raised when an event in a Blocks contains a reference to a Block that is not in the original Blocks"""
pass
class ReloadError(ValueError):
"""Raised when something goes wrong when reloading the gradio app."""
pass
class GradioVersionIncompatibleError(Exception):
"""Raised when loading a 3.x space with 4.0"""
pass
class ComponentProcessingError(ValueError):
"""Raised when a component fails to pre/postprocess a value passed to or
returned from an event handler. Wraps the original exception with information
identifying which component/argument was at fault."""
pass
InvalidApiName = InvalidApiNameError # backwards compatibility
@document(documentation_group="modals")
class Error(AppError):
"""
This class allows you to pass custom error messages to the user. You can do so by raising a gr.Error("custom message") anywhere in the code, and when that line is executed the custom message will appear in a modal on the demo.
Example:
import gradio as gr
def divide(numerator, denominator):
if denominator == 0:
raise gr.Error("Cannot divide by zero!")
gr.Interface(divide, ["number", "number"], "number").launch()
Demos: calculator, blocks_chained_events
Guides: alerts
"""
def __init__(
self,
message: str = "Error raised.",
duration: float | None = 10,
visible: bool = True,
title: str = "Error",
print_exception: bool = True,
):
"""
Parameters:
message: The error message to be displayed to the user. Can be HTML, which will be rendered in the modal.
duration: The duration in seconds to display the error message. If None or 0, the error message will be displayed until the user closes it.
visible: Whether the error message should be displayed in the UI.
title: The title to be displayed to the user at the top of the error modal.
print_exception: Whether to print traceback of the error to the console when the error is raised.
"""
super().__init__(
message=message,
duration=duration,
visible=visible,
title=title,
print_exception=print_exception,
)
def __str__(self):
return repr(self.message)
class ComponentDefinitionError(NotImplementedError):
pass
class InvalidPathError(ValueError):
pass
class ChecksumMismatchError(Exception):
pass
class ShareCertificateWriteError(RuntimeError):
pass
class TooManyRequestsError(Error):
"""Raised when the Hugging Face API returns a 429 status code."""
def __init__(self, message: str = "Too many requests. Please try again later."):
super().__init__(message)
|