|
from typing import TYPE_CHECKING, Dict, List, Set |
|
|
|
|
|
if TYPE_CHECKING: |
|
from gradio.components import Component |
|
|
|
|
|
class Manager: |
|
def __init__(self) -> None: |
|
self.all_elems: Dict[str, Dict[str, "Component"]] = {} |
|
|
|
def get_elem_by_name(self, name: str) -> "Component": |
|
r""" |
|
Example: top.lang, train.dataset |
|
""" |
|
tab_name, elem_name = name.split(".") |
|
return self.all_elems[tab_name][elem_name] |
|
|
|
def get_base_elems(self) -> Set["Component"]: |
|
return { |
|
self.all_elems["top"]["lang"], |
|
self.all_elems["top"]["model_name"], |
|
self.all_elems["top"]["model_path"], |
|
self.all_elems["top"]["adapter_path"], |
|
self.all_elems["top"]["finetuning_type"], |
|
self.all_elems["top"]["quantization_bit"], |
|
self.all_elems["top"]["template"], |
|
self.all_elems["top"]["rope_scaling"], |
|
self.all_elems["top"]["booster"], |
|
} |
|
|
|
def list_elems(self) -> List["Component"]: |
|
return [elem for elems in self.all_elems.values() for elem in elems.values()] |
|
|