code: def call_once(func):
    argspec = inspect.getargspec(func)
    if argspec.args or argspec.varargs or argspec.keywords:
      raise ValueError('Can only decorate functions with no args', func, argspec)
    @functools.wraps(func)
    def _wrapper():
      if not _wrapper.HasRun():
        _wrapper.MarkAsRun()
        _wrapper.return_value = func()
      return _wrapper.return_value
    _wrapper.has_run = False
    _wrapper.HasRun = lambda: _wrapper.has_run
    _wrapper.MarkAsRun = lambda: setattr(_wrapper, 'has_run', True)
    return _wrapper