return NULL;
return PySequence_GetItem(o, key_value);
}
- return type_error("sequence index must be integer");
+ else if (o->ob_type->tp_as_sequence->sq_item)
+ return type_error("sequence index must be integer");
}
return type_error("unsubscriptable object");
return -1;
return PySequence_SetItem(o, key_value, value);
}
- type_error("sequence index must be integer");
- return -1;
+ else if (o->ob_type->tp_as_sequence->sq_ass_item) {
+ type_error("sequence index must be integer");
+ return -1;
+ }
}
type_error("object does not support item assignment");
return -1;
return PySequence_DelItem(o, key_value);
}
- type_error("sequence index must be integer");
- return -1;
+ else if (o->ob_type->tp_as_sequence->sq_ass_item) {
+ type_error("sequence index must be integer");
+ return -1;
+ }
}
type_error("object does not support item deletion");