I'd prefer my original suggestion for the exception, which matches what Python does when trying to subscript a non-subscriptable object.  An IndexError would normally be a list index out of range.
```
>>> a = 1
>>> a[1]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'int' object is not subscriptable
```