code: def parse_default_property_value(property_name, property_type_id, default_value_string):
      
      if property_type_id == PROPERTY_TYPE_EMBEDDED_SET_ID and default_value_string == '{}':
          return set()
      elif property_type_id == PROPERTY_TYPE_EMBEDDED_LIST_ID and default_value_string == '[]':
          return list()
      elif (property_type_id == PROPERTY_TYPE_STRING_ID and
            isinstance(default_value_string, six.string_types)):
          return default_value_string
      elif property_type_id == PROPERTY_TYPE_BOOLEAN_ID:
          return _parse_bool_default_value(property_name, default_value_string)
      elif property_type_id == PROPERTY_TYPE_DATETIME_ID:
          return _parse_datetime_default_value(property_name, default_value_string)
      elif property_type_id == PROPERTY_TYPE_DATE_ID:
          return _parse_date_default_value(property_name, default_value_string)
      else:
          raise AssertionError(u'Unsupported default value for property "{}" with type id {}: '
                               u'{}'.format(property_name, property_type_id, default_value_string))
docs: Parse the default value string into its proper form given the property type ID.
  
      Args:
          property_name: string, the name of the property whose default value is being parsed.
                         Used primarily to construct meaningful error messages, should the default
                         value prove invalid.
          property_type_id: int, one of the property type ID constants defined in this file that
                            OrientDB uses to designate the native type of a given property.
          default_value_string: string, the textual representation of the default value for
                                for the property, as returned by OrientDB's schema introspection code.
  
      Returns:
          an object of type matching the property that can be used as the property's default value.
          For example, if the property is of string type, the return type will be a string, and if
          the property is of list type, the return type will be a list.
  
      Raises:
          AssertionError, if the default value is not supported or does not match the
          property's declared type (e.g. if a default of "[]" is set on an integer property).