code: def type(self):
          
          value = self._schema.get("type", "any")
          if not isinstance(value, (basestring, dict, list)):
              raise SchemaError(
                  "type value {0!r} is not a simple type name, nested "
                  "schema nor a list of those".format(value))
          if isinstance(value, list):
              type_list = value
              # Union types have to have at least two alternatives
              if len(type_list) < 2:
                  raise SchemaError(
                      "union type {0!r} is too short".format(value))
          else:
              type_list = [value]
          seen = set()
          for js_type in type_list:
              if isinstance(js_type, dict):
                  # no nested validation here
                  pass
              elif isinstance(js_type, list):
                  # no nested validation here
                  pass
              else:
                  if js_type in seen:
                      raise SchemaError(
                          ("type value {0!r} contains duplicate element"
                           " {1!r}").format(value, js_type))
                  else:
                      seen.add(js_type)
                  if js_type not in (
                      "string", "number", "integer", "boolean", "object",
                      "array", "null", "any"):
                      raise SchemaError(
                          "type value {0!r} is not a simple type "
                          "name".format(js_type))
          return value
docs: Type of a valid object.
  
          Type may be a JSON type name or a list of such names. Valid JSON type
          names are ``string``, ``number``, ``integer``, ``boolean``, ``object``,
          ``array``, ``any`` (default).