polishing and changed to comply with PEP 8 style guide
This commit is contained in:
parent
205bb49b34
commit
99b7dcf7b5
|
@ -13,21 +13,20 @@ class DAMASK_TOOLS():
|
|||
|
||||
|
||||
class ASCII_TABLE():
|
||||
'''
|
||||
There should be a doc string here :)
|
||||
'''
|
||||
import sys
|
||||
|
||||
__slots__ = ['__IO__',
|
||||
'info',
|
||||
'labels',
|
||||
'data',
|
||||
]
|
||||
|
||||
|
||||
#.............................................
|
||||
def __init__(self,
|
||||
fileIn = sys.stdin,
|
||||
fileOut = sys.stdout,
|
||||
buffered = True):
|
||||
|
||||
self.__IO__ = {'in': fileIn,
|
||||
'out':fileOut,
|
||||
'output':[],
|
||||
|
@ -38,41 +37,31 @@ class ASCII_TABLE():
|
|||
self.labels = []
|
||||
self.data = []
|
||||
|
||||
|
||||
#.............................................
|
||||
def output_write(self,
|
||||
what):
|
||||
|
||||
if isinstance(what,list):
|
||||
for item in what: self.output_write(item)
|
||||
else:
|
||||
self.__IO__['output'] += [str(what)]
|
||||
self.__IO__['buffered'] or self.output_flush()
|
||||
|
||||
|
||||
#.............................................
|
||||
def output_flush(self,
|
||||
clear = True):
|
||||
|
||||
self.__IO__['output'] == [] or self.__IO__['out'].write('\n'.join(self.__IO__['output']) + '\n')
|
||||
if clear: self.output_clear()
|
||||
|
||||
|
||||
#.............................................
|
||||
def output_clear(self):
|
||||
|
||||
self.__IO__['output'] = []
|
||||
|
||||
|
||||
#.............................................
|
||||
def head_read(self):
|
||||
# get column labels by either read the first row, or - if keyword "head[*]" is present - the last line of the header
|
||||
|
||||
'''
|
||||
get column labels by either read the first row, or
|
||||
--if keyword "head[*]" is present-- the last line of the header
|
||||
'''
|
||||
try:
|
||||
self.__IO__['in'].seek(0)
|
||||
except:
|
||||
pass
|
||||
|
||||
firstline = self.__IO__['in'].readline()
|
||||
m = re.search('(\d+)\s*head', firstline.lower())
|
||||
if m:
|
||||
|
@ -81,72 +70,50 @@ class ASCII_TABLE():
|
|||
else:
|
||||
self.info = []
|
||||
self.labels = firstline.split()
|
||||
|
||||
self.__IO__['validReadSize'] = len(self.labels)
|
||||
|
||||
|
||||
#.............................................
|
||||
def head_write(self):
|
||||
|
||||
self.output_write (['%i\theader'%(len(self.info)+1),
|
||||
self.info,
|
||||
'\t'.join(self.labels)])
|
||||
|
||||
|
||||
#.............................................
|
||||
def labels_append(self,
|
||||
what):
|
||||
|
||||
if isinstance(what,list):
|
||||
for item in what: self.labels_append(item)
|
||||
else: self.labels += [str(what)]
|
||||
|
||||
|
||||
#.............................................
|
||||
def info_append(self,
|
||||
what):
|
||||
|
||||
if isinstance(what,list):
|
||||
for item in what: self.info_append(item)
|
||||
else: self.info += [str(what)]
|
||||
|
||||
|
||||
#.............................................
|
||||
def data_read(self):
|
||||
|
||||
line = self.__IO__['in'].readline()
|
||||
items = line.split()[:self.__IO__['validReadSize']] # get next data row
|
||||
self.data = {False: [],
|
||||
True: items}[len(items) == self.__IO__['validReadSize']] # take if correct number of entries
|
||||
|
||||
return line != ''
|
||||
|
||||
#.............................................
|
||||
def data_write(self):
|
||||
|
||||
if isinstance(self.data[0],list):
|
||||
self.output_write (['\t'.join(map(str,items)) for items in self.data])
|
||||
else:
|
||||
self.output_write ('\t'.join(map(str,self.data)))
|
||||
|
||||
|
||||
#.............................................
|
||||
def data_append(self,
|
||||
what):
|
||||
|
||||
if isinstance(what,list):
|
||||
for item in what: self.data_append(item)
|
||||
else: self.data += [str(what)]
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
class MATERIAL_CONFIG():
|
||||
|
||||
'''
|
||||
Reads, manipulates and writes material.config files
|
||||
'''
|
||||
__slots__ = ['data']
|
||||
|
||||
|
||||
def __init__(self):
|
||||
self.parts = [
|
||||
|
@ -310,17 +277,19 @@ class MATERIAL_CONFIG():
|
|||
'__order__':['crystallite','(constituent)']}
|
||||
self.add_data(part='microstructure',section=label,data=data)
|
||||
|
||||
|
||||
def change_value(self,part=None,section=None,key=None,value=None):
|
||||
def change_value(self, part=None,
|
||||
section=None,
|
||||
key=None,
|
||||
value=None):
|
||||
if type(value) is not type([]):
|
||||
if type(value) is not type('s'):
|
||||
value='%s'%value
|
||||
value=[value]
|
||||
newlen=len(value)
|
||||
oldval=self.data[part][section][key]
|
||||
oldlen=len(oldval)
|
||||
value = '%s'%value
|
||||
value = [value]
|
||||
newlen = len(value)
|
||||
oldval = self.data[part][section][key]
|
||||
oldlen = len(oldval)
|
||||
print('changing %s:%s:%s:%s'%(part,section,key,oldval))
|
||||
self.data[part][section][key]=value
|
||||
self.data[part][section][key] = value
|
||||
print('new: %s'%self.data[part][section][key])
|
||||
if newlen is not oldlen:
|
||||
print('Length of value was changed from %i to %i!'%(oldlen,newlen))
|
||||
|
|
Loading…
Reference in New Issue