mirror of
https://github.com/Ladebeze66/projetcbaollm.git
synced 2025-12-18 09:17:49 +01:00
84 lines
2.2 KiB
Python
84 lines
2.2 KiB
Python
from __future__ import annotations
|
|
|
|
import inspect
|
|
|
|
from rich.console import Console
|
|
from rich.table import Table
|
|
|
|
import gradio._simple_templates
|
|
import gradio.components
|
|
import gradio.layouts
|
|
from gradio.analytics import custom_component_analytics
|
|
from gradio.blocks import BlockContext
|
|
from gradio.components import Component, FormComponent
|
|
|
|
_IGNORE = {
|
|
"Text",
|
|
"Dataframe",
|
|
"Highlightedtext",
|
|
"Annotatedimage",
|
|
"Checkboxgroup",
|
|
"Json",
|
|
"Highlight",
|
|
"Component",
|
|
"Form",
|
|
"Dataset",
|
|
"FormComponent",
|
|
"Fallback",
|
|
"State",
|
|
"LogoutButton",
|
|
}
|
|
|
|
_BEGINNER_FRIENDLY = {"Slider", "Radio", "Checkbox", "Number", "CheckboxGroup", "File"}
|
|
|
|
|
|
def _get_table_items(module):
|
|
items = []
|
|
for name in module.__all__:
|
|
if name in _IGNORE:
|
|
continue
|
|
gr_cls = getattr(module, name)
|
|
if not (
|
|
inspect.isclass(gr_cls) and issubclass(gr_cls, (Component, BlockContext))
|
|
):
|
|
continue
|
|
tags = []
|
|
if "Simple" in name or name in _BEGINNER_FRIENDLY:
|
|
tags.append(":seedling::handshake:Beginner Friendly:seedling::handshake:")
|
|
if issubclass(gr_cls, FormComponent):
|
|
tags.append(":pencil::jigsaw:Form Component:pencil::jigsaw:")
|
|
if name in gradio.layouts.__all__:
|
|
tags.append(":triangular_ruler:Layout:triangular_ruler:")
|
|
doc = inspect.getdoc(gr_cls) or "No description available."
|
|
doc = doc.split(".")[0]
|
|
if tags:
|
|
doc = f"[{', '.join(tags)}]" + " " + doc
|
|
items.append((name, doc))
|
|
|
|
return items
|
|
|
|
|
|
def _show():
|
|
custom_component_analytics(
|
|
"show",
|
|
None,
|
|
upload_demo=None,
|
|
upload_pypi=None,
|
|
upload_source=None,
|
|
)
|
|
items = (
|
|
_get_table_items(gradio._simple_templates)
|
|
+ _get_table_items(gradio.components)
|
|
+ _get_table_items(gradio.layouts)
|
|
)
|
|
table = Table(show_header=True, header_style="orange1", show_lines=True)
|
|
table.add_column("Name", justify="center")
|
|
table.add_column("Description", justify="center")
|
|
|
|
for item in items:
|
|
table.add_row(*item)
|
|
|
|
console = Console()
|
|
with console.pager():
|
|
console.print(table)
|