|  |  |  | @ -16,6 +16,25 @@ Frequently used text tools. | 
			
		
	
		
			
				
					|  |  |  |  | import numpy | 
			
		
	
		
			
				
					|  |  |  |  | from wpylib.sugar import ifelse | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | def read_text_table(F, maps={}, sep=None, comment_char="#"): | 
			
		
	
		
			
				
					|  |  |  |  |   """Reads in a 2-D table from a text stream. | 
			
		
	
		
			
				
					|  |  |  |  |   Returns a list of lists containing the table content, in each cell by | 
			
		
	
		
			
				
					|  |  |  |  |   default as a string, unless a mapping function is provided (for simple | 
			
		
	
		
			
				
					|  |  |  |  |   data conversion only).""" | 
			
		
	
		
			
				
					|  |  |  |  |   rows = [] | 
			
		
	
		
			
				
					|  |  |  |  |   for L in F: | 
			
		
	
		
			
				
					|  |  |  |  |     if comment_char != None: | 
			
		
	
		
			
				
					|  |  |  |  |       L = L.split(comment_char,1)[0] | 
			
		
	
		
			
				
					|  |  |  |  |     flds = L.split(sep) | 
			
		
	
		
			
				
					|  |  |  |  |     if len(flds) == 0: | 
			
		
	
		
			
				
					|  |  |  |  |       continue | 
			
		
	
		
			
				
					|  |  |  |  |     if maps: | 
			
		
	
		
			
				
					|  |  |  |  |       for i in xrange(len(flds)): | 
			
		
	
		
			
				
					|  |  |  |  |         if i in maps: | 
			
		
	
		
			
				
					|  |  |  |  |           flds[i] = maps[i](flds[i]) | 
			
		
	
		
			
				
					|  |  |  |  |     rows.append(flds) | 
			
		
	
		
			
				
					|  |  |  |  |   return rows | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | def make_matrix(Str, debug=None): | 
			
		
	
		
			
				
					|  |  |  |  |   """Simple tool to convert a string like | 
			
		
	
		
			
				
					|  |  |  |  |     '''1 2 3 | 
			
		
	
	
		
			
				
					|  |  |  | 
 |