docs: def check_time(value):
      """Convert time from most popular representations to datetime"""
      if value is None:
          return None
      if isinstance(value, (time.struct_time, tuple)):
          return value
      if isinstance(value, datetime.datetime):
          return value.timetuple()
      if isinstance(value, datetime.date):
          res = datetime.datetime.utcnow()
          res.replace(year=value.year, month=value.month, day=value.day)
          return res.timetuple()
      if isinstance(value, datetime.time):
          return datetime.datetime.combine(datetime.date.today(),
                                           value).timetuple()
      if isinteger(value):
          # Handle integer as timestamp
          return time.gmtime(value)
      if isinstance(value, basestring):
          if value.lower() == 'now':
              return time.gmtime()
          # TODO: parsinng some popular strings
      raise ValueError("Unsupported time representation:" + repr(value))