code: def setex(self, key, seconds, value):
          
          if isinstance(seconds, float):
              return self.psetex(key, int(seconds * 1000), value)
          if not isinstance(seconds, int):
              raise TypeError("milliseconds argument must be int")
          fut = self.execute(b'SETEX', key, seconds, value)
          return wait_ok(fut)
docs: Set the value and expiration of a key.
  
          If seconds is float it will be multiplied by 1000
          coerced to int and passed to `psetex` method.
  
          :raises TypeError: if seconds is neither int nor float