original_docstring: Return dictionaries with upper and lower keys with respective
      coordiantes. It is assumed the leading edge is frontmost point at
      alpha=0
docstring: Return dictionaries with upper and lower keys with respective
  coordiantes. It is assumed the leading edge is frontmost point at
  alpha=0
docstring_tokens: Return dictionaries with upper and lower keys with respective coordiantes . It is assumed the leading edge is frontmost point at alpha = 0
code: def separate_upper_lower(x, y, Cp = None, i_separator=None):
      """Return dictionaries with upper and lower keys with respective
      coordiantes. It is assumed the leading edge is frontmost point at
      alpha=0"""
      #TODO: when using list generated by xfoil, there are two points for
      #the leading edge
      def separate(variable_list, i_separator):
          if type(i_separator) == int:
              variable_dictionary = {'upper': variable_list[0:i_separator+1],
                                     'lower': variable_list[i_separator+1:]}
          elif type(i_separator) == list:
              i_upper = i_separator[0]
              i_lower = i_separator[1]
              
              variable_dictionary = {'upper': variable_list[0:i_upper],
                                     'lower': variable_list[i_lower:]}
          return variable_dictionary
      #If i is not defined, separate upper and lower surface from the
      # leading edge
      if i_separator == None:
          i_separator = x.index(min(x))
  
      if Cp == None:
          x = separate(x, i_separator)
          y = separate(y, i_separator)
          return x, y
      else:
          x = separate(x, i_separator)
          y = separate(y, i_separator)
          Cp = separate(Cp, i_separator)
          return x, y, Cp
code_tokens: def separate_upper_lower ( x , y , Cp = None , i_separator = None ) : def separate ( variable_list , i_separator ) : if type ( i_separator ) == int : variable_dictionary = { 'upper' : variable_list [ 0 : i_separator + 1 ] , 'lower' : variable_list [ i_separator + 1 : ] } elif type ( i_separator ) == list : i_upper = i_separator [ 0 ] i_lower = i_separator [ 1 ] variable_dictionary = { 'upper' : variable_list [ 0 : i_upper ] , 'lower' : variable_list [ i_lower : ] } return variable_dictionary if i_separator == None : i_separator = x . index ( min ( x ) ) if Cp == None : x = separate ( x , i_separator ) y = separate ( y , i_separator ) return x , y else : x = separate ( x , i_separator ) y = separate ( y , i_separator ) Cp = separate ( Cp , i_separator ) return x , y , Cp
short_docstring: Return dictionaries with upper and lower keys with respective
  coordiantes.
short_docstring_tokens: Return dictionaries with upper and lower keys with respective coordiantes .
comment: """Return dictionaries with upper and lower keys with respective
      coordiantes. It is assumed the leading edge is frontmost point at
      alpha=0"""$SEP$#TODO: when using list generated by xfoil, there are two points for$SEP$#the leading edge$SEP$#If i is not defined, separate upper and lower surface from the$SEP$# leading edge