UnboundLocalError: local variable 'index' referenced before assignment happens in Python when you use a global variable in a function that also defines a local version of the same variable.
Because index is defined globally as well as inside the
foo() function, Python throws an exception if you try to use the variable inside
foo before it’s declared.
In this case either move the index declaration up higher in the
foo function, or rename the variable to avoid the conflict.