manager.py 726 B

1234567891011121314151617181920212223242526
  1. from typing import Dict
  2. from gradio.components import Component
  3. class Manager:
  4. def __init__(self) -> None:
  5. self._id_to_elem: Dict[str, "Component"] = {}
  6. self._elem_to_id: Dict["Component", str] = {}
  7. def add_elems(self, elem_dict: Dict[str, "Component"]) -> None:
  8. for elem_id, elem in elem_dict.items():
  9. self._id_to_elem[elem_id] = elem
  10. self._elem_to_id[elem] = elem_id
  11. def _get_elem_by_id(self, elem_id: str) -> "Component":
  12. return self._id_to_elem[elem_id]
  13. def _get_id_by_elem(self, elem: "Component") -> str:
  14. return self._elem_to_id[elem]
  15. def get(self, data, key):
  16. return data[self._get_elem_by_id(key)]
  17. engine = Manager()