From 6aeaa315b5e3d5f3f2689ac415bfaa9573255ccd Mon Sep 17 00:00:00 2001 From: Craig Warren Date: Thu, 18 Aug 2016 14:58:25 +0100 Subject: [PATCH] Added option to disable progress bars and ensure they always write to stdout instead of stderr. --- gprMax/gprMax.py | 8 ++++---- gprMax/grid.py | 1 + gprMax/input_cmds_geometry.py | 6 +++--- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/gprMax/gprMax.py b/gprMax/gprMax.py index 051b7888..ca42b3db 100644 --- a/gprMax/gprMax.py +++ b/gprMax/gprMax.py @@ -348,7 +348,7 @@ def run_model(args, modelrun, numbermodelruns, inputfile, usernamespace): # Build the model, i.e. set the material properties (ID) for every edge of every Yee cell print() - pbar = tqdm(total=2, desc='Building FDTD grid', ncols=get_terminal_size()[0] - 1) + pbar = tqdm(total=2, desc='Building FDTD grid', ncols=get_terminal_size()[0] - 1, file=sys.stdout, disable=G.tqdmdisable) build_electric_components(G.solid, G.rigidE, G.ID, G) pbar.update() build_magnetic_components(G.solid, G.rigidH, G.ID, G) @@ -417,7 +417,7 @@ def run_model(args, modelrun, numbermodelruns, inputfile, usernamespace): for i, geometryview in enumerate(G.geometryviews): geometryview.set_filename(modelrun, numbermodelruns, G) geoiters = 6 * (((geometryview.xf - geometryview.xs) / geometryview.dx) * ((geometryview.yf - geometryview.ys) / geometryview.dy) * ((geometryview.zf - geometryview.zs) / geometryview.dz)) - pbar = tqdm(total=geoiters, unit='byte', unit_scale=True, desc='Writing geometry file {} of {}, {}'.format(i + 1, len(G.geometryviews), os.path.split(geometryview.filename)[1]), ncols=get_terminal_size()[0] - 1) + pbar = tqdm(total=geoiters, unit='byte', unit_scale=True, desc='Writing geometry file {} of {}, {}'.format(i + 1, len(G.geometryviews), os.path.split(geometryview.filename)[1]), ncols=get_terminal_size()[0] - 1, file=sys.stdout, disable=G.tqdmdisable) geometryview.write_vtk(modelrun, numbermodelruns, G, pbar) pbar.close() # geometryview.write_xdmf(modelrun, numbermodelruns, G) @@ -445,7 +445,7 @@ def run_model(args, modelrun, numbermodelruns, inputfile, usernamespace): # Absolute time abstime = 0 - for timestep in tqdm(range(G.iterations), desc='Running simulation, model ' + str(modelrun) + ' of ' + str(numbermodelruns), ncols=get_terminal_size()[0] - 1): + for timestep in tqdm(range(G.iterations), desc='Running simulation, model ' + str(modelrun) + ' of ' + str(numbermodelruns), ncols=get_terminal_size()[0] - 1, file=sys.stdout, disable=G.tqdmdisable): # Store field component values for every receiver and transmission line store_outputs(timestep, G.Ex, G.Ey, G.Ez, G.Hx, G.Hy, G.Hz, G) @@ -453,7 +453,7 @@ def run_model(args, modelrun, numbermodelruns, inputfile, usernamespace): for i, snap in enumerate(G.snapshots): if snap.time == timestep + 1: snapiters = 36 * (((snap.xf - snap.xs) / snap.dx) * ((snap.yf - snap.ys) / snap.dy) * ((snap.zf - snap.zs) / snap.dz)) - pbar = tqdm(total=snapiters, leave=False, unit='byte', unit_scale=True, desc=' Writing snapshot file {} of {}, {}'.format(i + 1, len(G.snapshots), os.path.split(snap.filename)[1]), ncols=get_terminal_size()[0] - 1) + pbar = tqdm(total=snapiters, leave=False, unit='byte', unit_scale=True, desc=' Writing snapshot file {} of {}, {}'.format(i + 1, len(G.snapshots), os.path.split(snap.filename)[1]), ncols=get_terminal_size()[0] - 1, file=sys.stdout, disable=G.tqdmdisable) snap.write_vtk_imagedata(G.Ex, G.Ey, G.Ez, G.Hx, G.Hy, G.Hz, G, pbar) pbar.close() diff --git a/gprMax/grid.py b/gprMax/grid.py index ac6dc88d..235bf8d4 100644 --- a/gprMax/grid.py +++ b/gprMax/grid.py @@ -74,6 +74,7 @@ class FDTDGrid(Grid): self.inputdirectory = '' self.title = '' self.messages = True + self.tqdmdisable = False self.nx = 0 self.ny = 0 self.nz = 0 diff --git a/gprMax/input_cmds_geometry.py b/gprMax/input_cmds_geometry.py index 7a9a10fc..321f083c 100644 --- a/gprMax/input_cmds_geometry.py +++ b/gprMax/input_cmds_geometry.py @@ -44,11 +44,11 @@ def process_geometrycmds(geometry, G): # Disable progress bar if on Windows as it does not update properly when messages are printed if sys.platform == 'win32': - tqdmbar = True + tqdmdisable = True else: - tqdmbar = False + tqdmdisable = G.tqdmdisable - for object in tqdm(geometry, desc='Processing geometry related cmds', unit='cmds', ncols=get_terminal_size()[0] - 1, disable=tqdmbar): + for object in tqdm(geometry, desc='Processing geometry related cmds', unit='cmds', ncols=get_terminal_size()[0] - 1, file=sys.stdout, disable=tqdmdisable): tmp = object.split() if tmp[0] == '#geometry_objects_file:':