From: Wolfgang Bangerth Date: Wed, 7 May 2025 02:14:00 +0000 (-0600) Subject: Convert to Python 3 and indent Python scripts. X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=729c55f0e7e75cf7aa5e62975b8fbb08e48c9893;p=dealii.git Convert to Python 3 and indent Python scripts. --- diff --git a/contrib/utilities/parse_ctest_output.py b/contrib/utilities/parse_ctest_output.py index 2439d044a5..7f71d21b5c 100755 --- a/contrib/utilities/parse_ctest_output.py +++ b/contrib/utilities/parse_ctest_output.py @@ -25,6 +25,7 @@ import xml.etree.ElementTree as ET import glob + class Group: def __init__(self, name): self.name = name @@ -33,68 +34,70 @@ class Group: self.fail = [] self.fail_text = {} self.fail_status = {} - self.n_status = [0,0,0,0,0] + self.n_status = [0, 0, 0, 0, 0] + class Revision: def __init__(self): self.groups = {} self.number = -1 - self.name = '' + self.name = "" self.n_tests = 0 self.n_fail = 0 + def parse_revision(dirname): rev = Revision() - if len(glob.glob(dirname+'/Update.xml'))>0: - #new format - tree = ET.parse(dirname+'/Update.xml') - rev.name = tree.getroot().find('BuildName').text - rev.number = tree.getroot().find('Revision').text - elif len(glob.glob(dirname+'/Notes.xml'))>0: - #old format - tree = ET.parse(dirname+'/Notes.xml') - rev.name = tree.getroot().attrib['BuildName'] - number = rev.name.split('-')[-1] + if len(glob.glob(dirname + "/Update.xml")) > 0: + # new format + tree = ET.parse(dirname + "/Update.xml") + rev.name = tree.getroot().find("BuildName").text + rev.number = tree.getroot().find("Revision").text + elif len(glob.glob(dirname + "/Notes.xml")) > 0: + # old format + tree = ET.parse(dirname + "/Notes.xml") + rev.name = tree.getroot().attrib["BuildName"] + number = rev.name.split("-")[-1] rev.number = number[1:] else: return None - print dirname, "BUILD: ", rev.name + print(dirname, "BUILD: ", rev.name) - #now Test.xml: - tree = ET.parse(dirname+'/Test.xml') + # now Test.xml: + tree = ET.parse(dirname + "/Test.xml") root = tree.getroot() - testing = root.find('Testing') + testing = root.find("Testing") for test in testing.findall("Test"): - fail=False - if test.attrib['Status']=="failed": - fail=True - name = test.find('Name').text - group = name.split('/')[0] + fail = False + if test.attrib["Status"] == "failed": + fail = True + name = test.find("Name").text + group = name.split("/")[0] status = 4 if fail: - text = test.find('Results').find('Measurement').find('Value').text + text = test.find("Results").find("Measurement").find("Value").text if text is None: - text="" - failtext = text.encode('utf-8') - failtextlines = failtext.replace('"','').split('\n') - failstatustxt = failtextlines[0].split(' ')[-1] - for i in range(0,len(failtextlines)): + text = "" + failtext = text.encode("utf-8") + failtextlines = failtext.replace('"', "").split("\n") + failstatustxt = failtextlines[0].split(" ")[-1] + for i in range(0, len(failtextlines)): failtextlines[i] = failtextlines[i][0:80] - if failtextlines[i].startswith('FAILED: '): - failtextlines[i]='FAILED: ...' - failtext = '\n'.join(failtextlines[4:min(25,len(failtext))]) - statuslist=['CONFIGURE','BUILD','RUN','DIFF'] + if failtextlines[i].startswith("FAILED: "): + failtextlines[i] = "FAILED: ..." + failtext = "\n".join(failtextlines[4 : min(25, len(failtext))]) + statuslist = ["CONFIGURE", "BUILD", "RUN", "DIFF"] if failstatustxt in statuslist: status = statuslist.index(failstatustxt) else: - print "unknown status '%s' in test %s "% (failstatustxt,name) - status=0 + print("unknown status '%s' in test %s " % (failstatustxt, name)) + status = 0 if not group in rev.groups: - rev.groups[group]= Group(group) + rev.groups[group] = Group(group) rev.groups[group].n_tests += 1 rev.n_tests += 1 @@ -103,34 +106,32 @@ def parse_revision(dirname): rev.groups[group].n_fail += 1 rev.n_fail += 1 rev.groups[group].fail.append(name) - rev.groups[group].fail_text[name]=failtext - rev.groups[group].fail_status[name]=status + rev.groups[group].fail_text[name] = failtext + rev.groups[group].fail_status[name] = status for g in sorted(rev.groups): g = rev.groups[g] - #print g.name, g.n_tests, g.n_fail, g.fail + # print (g.name, g.n_tests, g.n_fail, g.fail) return rev +# from xml.dom import minidom -#from xml.dom import minidom - - -n=glob.glob("*/Build.xml") +n = glob.glob("*/Build.xml") n.sort(reverse=True) -numberofrevisions=10 -n = n[0:min(10,len(n))] +numberofrevisions = 10 +n = n[0 : min(10, len(n))] revs = [] allgroups = set() for f in n: - dirname = f.replace('/Build.xml','') + dirname = f.replace("/Build.xml", "") rev = parse_revision(dirname) - if rev!=None: + if rev != None: revs.append(rev) for gr in rev.groups: allgroups.add(gr) @@ -139,9 +140,10 @@ revs.sort(key=lambda x: x.number, reverse=True) allgroups = sorted(allgroups) -f = open('tests.html', 'w') -f.write('') -f.write("""""") -f.write(""" -""") -f.write('') +""" +) +f.write("
") f.write('') for rev in revs: f.write('') -f.write('\n') +f.write("\n") -f.write('') +f.write("") f.write('') for rev in revs: - f.write(''%(rev.number,rev.number)) -f.write('\n') - -f.write('') -f.write('') + f.write( + '' + % (rev.number, rev.number) + ) +f.write("\n") + +f.write("") +f.write("") for rev in revs: - if (rev.n_fail>0): - f.write('') + if rev.n_fail > 0: + f.write( + '" + ) else: - f.write('') -f.write('\n') - -#second header + f.write( + '" + ) +f.write("\n") + +# second header f.write('') -f.write('') +f.write("") for rev in revs: - for c in range(0,5): + for c in range(0, 5): - titles=['Configure','Build','Run','Diff','Pass'] - caption=['C','B','R','D','P'] - f.write(''%(titles[c],c,caption[c])) -f.write('\n') + titles = ["Configure", "Build", "Run", "Diff", "Pass"] + caption = ["C", "B", "R", "D", "P"] + f.write('' % (titles[c], c, caption[c])) +f.write("\n") -counter=0 +counter = 0 for group in allgroups: - counter+=1 - if counter % 2==0: + counter += 1 + if counter % 2 == 0: f.write('') else: f.write('') @@ -248,53 +268,55 @@ for group in allgroups: failing |= set(rev.groups[group].fail) failing = sorted(failing) - if (len(failing)>0): - f.write(''%(group,group)) + if len(failing) > 0: + f.write( + '' + % (group, group) + ) else: - f.write('') + f.write("") for rev in revs: if group not in rev.groups: - for c in range(0,5): - f.write('') + for c in range(0, 5): + f.write("") else: gr = rev.groups[group] - for c in range(0,5): - if gr.n_status[c]==0: - f.write('') + for c in range(0, 5): + if gr.n_status[c] == 0: + f.write("") else: - f.write(''%(c,gr.n_status[c])) - - f.write('\n') + f.write('' % (c, gr.n_status[c])) + f.write("\n") - #failing tests in group: - if len(failing)>0: - f.write(''%group) + # failing tests in group: + if len(failing) > 0: + f.write('' % group) for fail in failing: - f.write('') - name = fail[len(group):] # cut off group name - f.write('') + f.write("") + name = fail[len(group) :] # cut off group name + f.write("") for rev in revs: if group in rev.groups and fail in rev.groups[group].fail: - status=rev.groups[group].fail_status[fail] - text=rev.groups[group].fail_text[fail] - for c in range(0,5): - if c==status: - f.write(''%(c,text)) + status = rev.groups[group].fail_status[fail] + text = rev.groups[group].fail_text[fail] + for c in range(0, 5): + if c == status: + f.write('' % (c, text)) else: - f.write('') + f.write("") else: f.write('') - f.write('\n') - f.write('\n') + f.write("\n") + f.write("\n") - f.write('\n\n') + f.write("\n\n") -f.write('
 r%s
ALLr%s
ALL' + str(rev.n_fail) + ' / ' + str(rev.n_tests) + '' + + str(rev.n_fail) + + " / " + + str(rev.n_tests) + + "' + str(rev.n_fail) + ' / ' + str(rev.n_tests) + '
' + + str(rev.n_fail) + + " / " + + str(rev.n_tests) + + "
%s
%s
%s%s' + group + '" + group + "%d
%d
') +f.write("") -f.write('') +f.write("") diff --git a/tests/optimization/bfgs_05.py b/tests/optimization/bfgs_05.py index 6599253bb3..948e62376e 100755 --- a/tests/optimization/bfgs_05.py +++ b/tests/optimization/bfgs_05.py @@ -24,11 +24,11 @@ from scipy.optimize import rosen_der # dimension of Rosenbrok function dim = 20 -x0 = np.zeros(dim+1) -one = np.ones(dim+1) -location = np.zeros(dim+1) -for i in range(dim+1): - location[i] = (1.*i)/dim +x0 = np.zeros(dim + 1) +one = np.ones(dim + 1) +location = np.zeros(dim + 1) +for i in range(dim + 1): + location[i] = (1.0 * i) / dim def v_rosen(theta): @@ -39,13 +39,13 @@ def g_rosen(theta): return rosen_der(theta - location + one) -x, min_val, info = fmin_l_bfgs_b(func=v_rosen,x0=x0,fprime=g_rosen,m=3, factr=10) +x, min_val, info = fmin_l_bfgs_b(func=v_rosen, x0=x0, fprime=g_rosen, m=3, factr=10) dx = x - location -print "{0} iterations".format(info['nit']) -print "function value: {0}".format(min_val) -print "linf_norm = {0}".format(np.linalg.norm(dx,ord=np.inf)) -print "Gradient noorm: {0}".format(np.linalg.norm(g_rosen(x))) -print "function calls: {0}".format(info['funcalls']) -print "Solution:" -print x +print("{0} iterations".format(info["nit"])) +print("function value: {0}".format(min_val)) +print("linf_norm = {0}".format(np.linalg.norm(dx, ord=np.inf))) +print("Gradient noorm: {0}".format(np.linalg.norm(g_rosen(x)))) +print("function calls: {0}".format(info["funcalls"])) +print("Solution:") +print(x)