misc.py 287 B

12345678910111213141516171819
  1. import functools
  2. def first(it):
  3. for d in it:
  4. if d:
  5. return d
  6. def lazy(func):
  7. res = []
  8. @functools.wraps(func)
  9. def wrapper(*args, **kwargs):
  10. if not res:
  11. res.append(func(*args, **kwargs))
  12. return res[0]
  13. return wrapper