namespace.py 483 B

1234567891011121314151617181920
  1. from typing import *
  2. # Assigns unique integer IDs (counting from 0) to names.
  3. class Namespace:
  4. def __init__(self):
  5. self.ids: Dict[str, int] = {}
  6. self.names: List[str] = []
  7. def assign_id(self, name: str) -> int:
  8. id = self.ids.setdefault(name, len(self.names))
  9. if id == len(self.names):
  10. self.names.append(name)
  11. return id
  12. def get_id(self, name: str) -> int:
  13. return self.ids[name]
  14. def get_name(self, id: int) -> str:
  15. return self.names[id]