helpers.py 457 B

12345678910111213141516171819
  1. from contextlib import contextmanager
  2. from typing import Any, Generator
  3. from .exceptions import NotInitializedError
  4. @contextmanager
  5. def require(obj, *names) -> Generator[Any, Any, None]:
  6. values = []
  7. for name in names:
  8. value = getattr(obj, name, None)
  9. if value is None:
  10. raise NotInitializedError(name)
  11. values.append(value)
  12. if len(values) == 1:
  13. yield values[0]
  14. else:
  15. yield tuple(values)