Gradio 用户月活达到 100 万!

阅读更多
Gradio logo
  1. 组件
  2. 代码

Gradio 新手?从这里开始: 开始使用

查看发布历史

代码

gradio.Code(···)
import gradio as gr with gr.Blocks() as demo: gr.Code(language="python", value=""" import gradio as gr def hello(name): return "hello " + name interface = gr.Interface(hello, "text", "text") interface.launch() """, interactive=True, lines=6) demo.launch()

描述

创建一个代码编辑器,用于查看代码(作为输出组件),或用于输入和编辑代码(作为输入组件)。

行为

作为输入组件: 将输入的代码作为 str 传递。

你的函数应该接受以下类型之一
def predict(
	value: str | None
)
	...

作为输出组件: 期望一个 str 代码。

你的函数应该返回以下类型之一
def predict(···) -> tuple[str] | str | None
	...	
	return value

初始化

参数
🔗
value: str | Callable | None
default = None

代码编辑器中显示的默认值。如果提供一个函数,则每次应用加载时都会调用该函数以设置此组件的初始值。

🔗
language: Literal['python', 'c', 'cpp', 'markdown', 'json', 'html', 'css', 'javascript', 'jinja2', 'typescript', 'yaml', 'dockerfile', 'shell', 'r', 'sql', 'sql-msSQL', 'sql-mySQL', 'sql-mariaDB', 'sql-sqlite', 'sql-cassandra', 'sql-plSQL', 'sql-hive', 'sql-pgSQL', 'sql-gql', 'sql-gpSQL', 'sql-sparkSQL', 'sql-esper'] | None
default = None

用于显示代码的语言。支持的语言在 `gr.Code.languages` 中列出。

🔗
every: Timer | float | None
default = None

如果 `value` 是函数,则持续调用 `value` 以重新计算它(否则无效)。可以提供一个 Timer,其 tick 重置 `value`,或者一个 float,提供重置 Timer 的固定间隔。

🔗
inputs: Component | list[Component] | set[Component] | None
default = None

用作计算 `value` 输入的组件(如果 `value` 是函数,则无效)。每当输入更改时,`value` 都会重新计算。

🔗
lines: int
default = 5

代码编辑器中显示的最少可见行数。

🔗
max_lines: int | None
default = None

代码编辑器中显示的最大可见行数。默认为 None,并将填充容器的高度。

🔗
label: str | None
default = None

此组件的标签。显示在组件上方,如果此组件有示例表,则也用作标题。如果为 None 且在 `gr.Interface` 中使用,则标签将为此组件分配到的参数名称。

🔗
interactive: bool | None
default = None

用户是否应该能够输入代码,还是只能查看代码。

🔗
show_label: bool | None
default = None

如果为 True,将显示标签。

🔗
container: bool
default = True

如果为 True,则将组件放置在容器中 - 在边框周围提供一些额外的填充。

🔗
scale: int | None
default = None

与相邻组件相比的相对大小。例如,如果组件 A 和 B 在 Row 中,并且 A 的 scale=2,B 的 scale=1,则 A 的宽度将是 B 的两倍。应为整数。scale 应用于 Rows,以及 Blocks 中 fill_height=True 的顶级组件。

🔗
min_width: int
default = 160

最小像素宽度,如果屏幕空间不足以满足此值,则将换行。如果某个 scale 值导致此组件比 min_width 窄,则将首先遵循 min_width 参数。

🔗
visible: bool
default = True

如果为 False,组件将被隐藏。

🔗
elem_id: str | None
default = None

一个可选字符串,在 HTML DOM 中分配为此组件的 id。可用于定位 CSS 样式。

🔗
elem_classes: list[str] | str | None
default = None

一个可选的字符串列表,在 HTML DOM 中分配为此组件的类。可用于定位 CSS 样式。

🔗
render: bool
default = True

如果为 False,组件将不会在 Blocks 上下文中呈现。如果目的是现在分配事件监听器,但稍后呈现组件,则应使用此选项。

🔗
key: int | str | None
default = None

如果已分配,将用于在重新渲染中假定身份。在重新渲染中具有相同 key 的组件将保留其值。

🔗
wrap_lines: bool
default = False

如果为 True,则在发生溢出时将行包装到容器的宽度。默认为 False。

🔗
show_line_numbers: bool
default = True

如果为 True,则显示行号,如果为 False,则隐藏行号。

🔗
autocomplete: bool
default = False

如果为 True,将显示受支持语言的自动完成建议。默认为 False。

快捷键

Interface 字符串快捷方式 初始化

gradio.Code

"code"

使用默认值

事件监听器

描述

事件监听器允许您响应用户与您在 Gradio Blocks 应用中定义的 UI 组件的交互。当用户与元素交互时,例如更改滑块值或上传图像,将调用一个函数。

支持的事件监听器

Code 组件支持以下事件监听器。每个事件监听器都采用相同的参数,这些参数在下面的事件参数 表中列出。

监听器 描述

Code.languages(fn, ···)

['python', 'c', 'cpp', 'markdown', 'json', 'html', 'css', 'javascript', 'jinja2', 'typescript', 'yaml', 'dockerfile', 'shell', 'r', 'sql', 'sql-msSQL', 'sql-mySQL', 'sql-mariaDB', 'sql-sqlite', 'sql-cassandra', 'sql-plSQL', 'sql-hive', 'sql-pgSQL', 'sql-gql', 'sql-gpSQL', 'sql-sparkSQL', 'sql-esper', None]

Code.change(fn, ···)

当代码的值因用户输入(例如,用户在文本框中键入)或函数更新(例如,图像从事件触发器的输出接收值)而更改时触发。有关仅由用户输入触发的监听器,请参阅 .input()

Code.input(fn, ···)

当用户更改代码的值时,将触发此监听器。

Code.focus(fn, ···)

当代码获得焦点时,将触发此监听器。

Code.blur(fn, ···)

当代码失去焦点/模糊时,将触发此监听器。

事件参数

参数