code: def coerce(self, value):
          
          if value is None:
              if self.optional:
                  return self.default
              else:
                  value = ""
          if value == "":
              if not self.allow_none:
                  raise MissingParameterError(self.name, kind=self.kind)
              return self.default
          try:
              self._check_range(value)
              parsed = self.parse(value)
              if self.validator and not self.validator(parsed):
                  raise ValueError(value)
              return parsed
          except ValueError:
              try:
                  value = value.decode("utf-8")
                  message = "Invalid %s value %s" % (self.kind, value)
              except UnicodeDecodeError:
                  message = "Invalid %s value" % self.kind
              raise InvalidParameterValueError(message)
docs: Coerce a single value according to this parameter's settings.
  
          @param value: A L{str}, or L{None}. If L{None} is passed - meaning no
              value is avalable at all, not even the empty string - and this
              parameter is optional, L{self.default} will be returned.