Changeset 13125
- Timestamp:
- 08/22/12 10:42:58 (13 years ago)
- Location:
- issm/trunk-jpl/src/m/miscellaneous
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/m/miscellaneous/fielddisplay.m
r13010 r13125 3 3 % 4 4 % Usage: 5 % fielddisplay(md, offset,name,comment)5 % fielddisplay(md,name,comment) 6 6 7 7 %get field … … 56 56 end 57 57 58 58 %structure 59 59 elseif isstruct(field), 60 if ~isempty(fields(field)) 61 displayunit(offset,name,'(structure)',comment), 62 struct_display(field,[offset ' ']), 63 else 64 displayunit(offset,name,'N/A',comment), 65 end 60 struct_display(offset,name,field,comment), 66 61 67 62 %cell … … 75 70 end%}}} 76 71 77 function struct_display( structure,offset) % {{{72 function struct_display(offset,name,field,comment) % {{{ 78 73 79 structure_fields=fields(structure); 74 if ~isempty(fields(field)) 75 displayunit(offset,name,'(structure)',comment), 76 offset=[offset ' ']; 80 77 81 for i=1:length(structure_fields),78 structure_fields=fields(field); 82 79 83 %get current field 84 field=structure.(structure_fields{i}); 80 for i=1:length(structure_fields), 85 81 86 %recursive call if necessary 87 if isstruct(field), 88 displayunit(offset,structure_fields{i},'(structure)',''), 89 struct_display(field,[offset ' ']); 82 %get current field 83 sfield=field.(structure_fields{i}); 90 84 91 %display value 92 else 93 parsedisplay(offset,structure_fields{i},field,''); 85 %display value 86 parsedisplay(offset,structure_fields{i},sfield,''); 94 87 end 88 89 else 90 displayunit(offset,name,'N/A',comment), 91 95 92 end 96 93 end% }}} … … 149 146 end 150 147 else 151 error('fielddisplay error message: format for comment not supporte tyet');148 error('fielddisplay error message: format for comment not supported yet'); 152 149 end 153 150 end -
issm/trunk-jpl/src/m/miscellaneous/fielddisplay.py
r13098 r13125 1 1 #Module import 2 import numpy 2 3 from math import isnan 3 4 from MatlabFuncs import * 4 5 5 6 def fielddisplay(md,name,comment): 6 #FIELDDISPLAY - display model field 7 # 8 # Usage: 9 # fielddisplay(md,name,comment) 7 """ 8 FIELDDISPLAY - display model field 9 10 Usage: 11 fielddisplay(md,name,comment) 12 """ 10 13 11 14 #get field … … 15 18 return parsedisplay(" ",name,field,comment); 16 19 17 #parsedisplay{{{ 18 def parsedisplay(offset,name,field,comment): 20 def parsedisplay(offset,name,field,comment): # {{{ 19 21 20 22 #string 21 23 if isinstance(field,(str,unicode)): 24 22 25 if len(field)>30: 23 26 string=displayunit(offset,name,"not displayed",comment) 24 27 else: 25 string=displayunit(offset,name, field,comment)28 string=displayunit(offset,name,"'%s'" % field,comment) 26 29 27 30 #numeric 28 elif isinstance(field, (int,long)):29 string=displayunit(offset,name, "%i" %(field),comment)31 elif isinstance(field,(int,long,float)): 32 string=displayunit(offset,name,str(field),comment) 30 33 31 elif isinstance(field, complex): 32 raise RuntimeError("fielddisplay cannot handle complex numbers") 33 34 elif isinstance(field, float): 35 string=displayunit(offset,name,"%g"%(field),comment) 34 #matrix 35 elif isinstance(field,numpy.ndarray): 36 string=displayunit(offset,name,str(field.shape),comment) 36 37 37 38 #logical 38 39 elif isinstance(field,bool): 39 40 if field: 40 string=displayunit(offset,name," true",comment)41 string=displayunit(offset,name,"True",comment) 41 42 else: 42 string=displayunit(offset,name," false",comment)43 string=displayunit(offset,name,"False",comment) 43 44 45 #dictionary 44 46 elif isinstance(field,dict): 45 if not field: 46 string=displayunit(offset,name,'N/A',comment) 47 else: 48 string=displayunit(offset,name,'(dictionary)',comment) 49 for key in field.keys(): 50 string="%s\n%s"%(string,parsedisplay(offset + ' ',key,field[key],'')) 47 string=dict_display(offset,name,field,comment) 51 48 52 elif isinstance(field,list): 53 if not field: 54 string=displayunit(offset,name,'N/A',comment), 55 else: 56 string=displayunit(offset,name,'(structure)',comment) 57 for i in range(len(field)): 58 string="%s\n%s"%(string,displayunit(offset + ' ',name,field[i],comment)) 59 #cell 60 #elif iscell(field): 61 # cell_display(offset,name,field,comment), 49 #list or tuple 50 elif isinstance(field,(list,tuple)): 51 string=list_display(offset,name,field,comment) 62 52 63 53 else: … … 65 55 66 56 return string 57 # }}} 67 58 68 #}}} 69 #displayunit {{{ 70 def displayunit(offset,name,characterization,comment): 59 def dict_display(offset,name,field,comment): # {{{ 60 61 if field: 62 string =displayunit(offset,name,'{dictionary}',comment)+'\n' 63 offset+=' ' 64 65 for structure_field,sfield in field.iteritems(): 66 string+=parsedisplay(offset,str(structure_field),sfield,'')+'\n' 67 68 if string and string[-1]=='\n': 69 string=string[:-1] 70 71 else: 72 string=displayunit(offset,name,'N/A',comment) 73 74 return string 75 # }}} 76 77 def list_display(offset,name,field,comment): # {{{ 78 79 #initialization 80 if isinstance(field,tuple): 81 sbeg='(' 82 send=')' 83 elif isinstance(field,list): 84 sbeg='[' 85 send=']' 86 string=sbeg 87 88 #go through the cell and fill string 89 if len(field)<5: 90 for fieldi in field: 91 if isinstance(fieldi,(str,unicode)): 92 string+="'%s'," % fieldi 93 elif isinstance(fieldi,(bool,int,long,float)): 94 string+="%s," % str(fieldi) 95 else: 96 string=sbeg 97 break 98 99 if strcmp(string,sbeg): 100 string="%s%dx1%s" % (sbeg,len(field),send) 101 else: 102 string=string[:-1]+send 103 104 #call displayunit 105 return displayunit(offset,name,string,comment) 106 # }}} 107 108 def displayunit(offset,name,characterization,comment): # {{{ 71 109 72 110 #take care of name 73 111 if len(name)>23: 74 name="%s..." % (name[:19])112 name="%s..." % name[:20] 75 113 76 114 #take care of characterization 77 if characterization=="": 78 characterization="N/A" 79 80 if characterization=="nan": 115 if strcmp(characterization,"''") or strcmp(characterization,'""') or strcmpi(characterization,'nan'): 81 116 characterization="N/A" 82 117 83 118 if len(characterization)>15: 84 characterization="%s %s" % (characterization[:11],"...")119 characterization="%s..." % characterization[:12] 85 120 86 121 #print … … 88 123 string="%s%-23s: %-15s" % (offset,name,characterization) 89 124 else: 90 if isinstance(comment,(str,unicode)):125 if isinstance(comment,(str,unicode)): 91 126 string="%s%-23s: %-15s -- %s" % (offset,name,characterization,comment) 92 127 elif isinstance(comment,list): 93 print(comment)94 128 string="%s%-23s: %-15s -- %s" % (offset,name,characterization,comment[0]) 95 for i in range(1,len(comment)): 96 string2="%s%-23s %-15s %s" %(offset,"","",comment[i]) 97 string="%s\n%s"%(string,string2) 129 for commenti in comment: 130 string+="\n%s%-23s %-15s %s" % (offset,'','',comment[i]) 98 131 else: 99 raise RuntimeError("fielddisplay error message: format for comment not supporte tyet")132 raise RuntimeError("fielddisplay error message: format for comment not supported yet") 100 133 101 134 return string 102 #}}} 135 # }}} 136
Note:
See TracChangeset
for help on using the changeset viewer.