<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _ParseTypeCheckString(type_check_string, stack_location, self_name):
 """Convert string version of a type_check into a python instance. Type checks can be either defined directly in python code or in a string. The syntax is exactly the same since we use eval to parse the string. :param int stack_location: For eval to get the right globals() scope, we require a stack_location to tell us the index in inspect.stack to where the string was defined. :param str self_name: Optional name of the class itself, which can be used to type check for an instance of a class you are currently defining, and thus would not be available in the globals namespace. If none, it will be quessed from the stack. """

  target_frame = inspect.stack()[stack_location][0]
  self_name = self_name or inspect.stack()[stack_location][3]
  eval_globals = target_frame.f_globals
  eval_locals = {self_name: Typename[self_name]}

  try:
    return eval(type_check_string, eval_globals, eval_locals)
  except:
    print "Exception while parsing", type_check_string
    raise