docs: def sort(TableName,DestinationTableName=None,ParameterNames=None,Accending=True,Output=False,File=None):
      """
      INPUT PARAMETERS: 
          TableName:                name of source table          (required)
          DestinationTableName:     name of resulting table       (optional)
          ParameterNames:       list of parameters or expressions to sort by    (optional)
          Accending:       sort in ascending (True) or descending (False) order (optional)
          Output:   enable (True) or suppress (False) text output (optional)
          File:     enable (True) or suppress (False) file output (optional)
      OUTPUT PARAMETERS: 
          none
      ---
      DESCRIPTION:
          Sort a table by a list of it's parameters or expressions.
          The sorted table is saved in DestinationTableName (if specified).
      ---
      EXAMPLE OF USAGE:
          sort('sampletab',ParameterNames=(p1,('+',p1,p2)))
      ---
      """
      number_of_rows = LOCAL_TABLE_CACHE[TableName]['header']['number_of_rows']
      index = range(0,number_of_rows)
      #print 'num = '+str(number_of_rows)
      if not DestinationTableName:
         DestinationTableName = TableName
      # if names are not provided use all parameters in sorting
      if not ParameterNames:
         ParameterNames = LOCAL_TABLE_CACHE[TableName]['header']['order']
      elif type(ParameterNames) not in set([list,tuple]):
         ParameterNames = [ParameterNames] # fix of stupid bug where ('p1',) != ('p1')
      #print 'SRT: ParameterNames = '+str(ParameterNames)
      #print 'parnames: '+str(ParameterNames)
      index_sorted = quickSort(index,TableName,ParameterNames,Accending)
      arrangeTable(TableName,DestinationTableName,index_sorted)
      if Output:
         outputTable(DestinationTableName,File=File)