code: def snapshot(self, at):
      
      if self._name_parts.decorator != '':
        raise Exception("Cannot use snapshot() on an already decorated table")
  
      value = Table._convert_decorator_time(at)
      return Table("%s@%s" % (self._full_name, str(value)), context=self._context)
docs: Return a new Table which is a snapshot of this table at the specified time.
  
      Args:
        at: the time of the snapshot. This can be a Python datetime (absolute) or timedelta
            (relative to current time). The result must be after the table was created and no more
            than seven days in the past. Passing None will get a reference the oldest snapshot.
  
            Note that using a datetime will get a snapshot at an absolute point in time, while
            a timedelta will provide a varying snapshot; any queries issued against such a Table
            will be done against a snapshot that has an age relative to the execution time of the
            query.
  
      Returns:
        A new Table object referencing the snapshot.
  
      Raises:
        An exception if this Table is already decorated, or if the time specified is invalid.