manager.py 875 B

1234567891011121314151617181920212223242526272829303132
  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. def get_all(self, data) -> Dict:
  18. all = {}
  19. for k, v in self._id_to_elem.items():
  20. all[k] = data[v]
  21. return all
  22. engine = Manager()