Commit 9efd40b5ab270f769e4e7e315e07c9c298879488
1 parent
e0891e8e
Replace print statements by calls to sys.stdout.write() functions.
As Python3 replaces the print statement by a print() function, the previous code was not compatible with Python3. We thus replaced all print statements by calls to sys.stdout.write() so that the code works both for Python2 and Python3.
Showing
9 changed files
with
60 additions
and
61 deletions
examples/make_binned_analysis.py
| ... | ... | @@ -28,6 +28,7 @@ from gammalib import * |
| 28 | 28 | from math import * |
| 29 | 29 | import os |
| 30 | 30 | import glob |
| 31 | +import sys | |
| 31 | 32 | |
| 32 | 33 | |
| 33 | 34 | # ============================= # |
| ... | ... | @@ -82,7 +83,7 @@ def pipeline_v1(): |
| 82 | 83 | sim["emin"].real(emin) |
| 83 | 84 | sim["emax"].real(emax) |
| 84 | 85 | sim.execute() |
| 85 | - print "Simulated events ("+str(sim.celapse())+" CPU seconds)" | |
| 86 | + sys.stdout.write("Simulated events ("+str(sim.celapse())+" CPU seconds)\n") | |
| 86 | 87 | |
| 87 | 88 | # Update timing |
| 88 | 89 | wall_seconds += sim.telapse() |
| ... | ... | @@ -104,7 +105,7 @@ def pipeline_v1(): |
| 104 | 105 | bin["yref"].real(dec) |
| 105 | 106 | bin["proj"].string(proj) |
| 106 | 107 | bin.execute() |
| 107 | - print "Binned events into counts map ("+str(bin.celapse())+" CPU seconds)" | |
| 108 | + sys.stdout.write("Binned events into counts map ("+str(bin.celapse())+" CPU seconds)\n") | |
| 108 | 109 | |
| 109 | 110 | # Update timing |
| 110 | 111 | wall_seconds += bin.telapse() |
| ... | ... | @@ -119,15 +120,15 @@ def pipeline_v1(): |
| 119 | 120 | like["caldb"].string(caldb) |
| 120 | 121 | like["irf"].string(irf) |
| 121 | 122 | like.execute() |
| 122 | - print "Maximum likelihood fitting ("+str(like.celapse())+" CPU seconds)" | |
| 123 | + sys.stdout.write("Maximum likelihood fitting ("+str(like.celapse())+" CPU seconds)\n") | |
| 123 | 124 | |
| 124 | 125 | # Update timing |
| 125 | 126 | wall_seconds += like.telapse() |
| 126 | 127 | cpu_seconds += like.celapse() |
| 127 | 128 | |
| 128 | 129 | # Show total times |
| 129 | - print "Total wall time elapsed: "+str(wall_seconds)+" seconds" | |
| 130 | - print "Total CPU time used ...: "+str(cpu_seconds)+" seconds" | |
| 130 | + sys.stdout.write("Total wall time elapsed: "+str(wall_seconds)+" seconds\n") | |
| 131 | + sys.stdout.write("Total CPU time used ...: "+str(cpu_seconds)+" seconds\n") | |
| 131 | 132 | |
| 132 | 133 | # Return |
| 133 | 134 | return |
| ... | ... | @@ -181,7 +182,7 @@ def pipeline_v2(): |
| 181 | 182 | sim["emin"].real(emin) |
| 182 | 183 | sim["emax"].real(emax) |
| 183 | 184 | sim.run() |
| 184 | - print "Simulated events ("+str(sim.celapse())+" CPU seconds)" | |
| 185 | + sys.stdout.write("Simulated events ("+str(sim.celapse())+" CPU seconds)\n") | |
| 185 | 186 | |
| 186 | 187 | # Update timing |
| 187 | 188 | wall_seconds += sim.telapse() |
| ... | ... | @@ -200,7 +201,7 @@ def pipeline_v2(): |
| 200 | 201 | bin["yref"].real(dec) |
| 201 | 202 | bin["proj"].string(proj) |
| 202 | 203 | bin.run() |
| 203 | - print "Binned events into counts map ("+str(bin.celapse())+" CPU seconds)" | |
| 204 | + sys.stdout.write("Binned events into counts map ("+str(bin.celapse())+" CPU seconds)\n") | |
| 204 | 205 | |
| 205 | 206 | # Update timing |
| 206 | 207 | wall_seconds += bin.telapse() |
| ... | ... | @@ -209,18 +210,18 @@ def pipeline_v2(): |
| 209 | 210 | # Perform maximum likelihood fitting |
| 210 | 211 | like = ctlike(bin.obs()) |
| 211 | 212 | like.run() |
| 212 | - print "Maximum likelihood fitting ("+str(like.celapse())+" CPU seconds)" | |
| 213 | + sys.stdout.write("Maximum likelihood fitting ("+str(like.celapse())+" CPU seconds)\n") | |
| 213 | 214 | |
| 214 | 215 | # Update timing |
| 215 | 216 | wall_seconds += like.telapse() |
| 216 | 217 | cpu_seconds += like.celapse() |
| 217 | 218 | |
| 218 | 219 | # Show total times |
| 219 | - print "Total wall time elapsed: "+str(wall_seconds)+" seconds" | |
| 220 | - print "Total CPU time used ...: "+str(cpu_seconds)+" seconds" | |
| 220 | + sys.stdout.write("Total wall time elapsed: "+str(wall_seconds)+" seconds\n") | |
| 221 | + sys.stdout.write("Total CPU time used ...: "+str(cpu_seconds)+" seconds\n") | |
| 221 | 222 | |
| 222 | 223 | # Show model fitting results |
| 223 | - #print like.obs().models() | |
| 224 | + #sys.stdout.write(like.obs().models()+"\n") | |
| 224 | 225 | |
| 225 | 226 | # Plot counts |
| 226 | 227 | plot_counts(bin.obs()) |
| ... | ... | @@ -249,9 +250,9 @@ def plot_counts(observations): |
| 249 | 250 | styles = ['b-', 'g-', 'y-', 'n-'] |
| 250 | 251 | |
| 251 | 252 | # Dump header |
| 252 | - print "" | |
| 253 | - print "Make plots (using matplotlib):" | |
| 254 | - print "==============================" | |
| 253 | + sys.stdout.write("\n") | |
| 254 | + sys.stdout.write("Make plots (using matplotlib):\n") | |
| 255 | + sys.stdout.write("==============================\n") | |
| 255 | 256 | |
| 256 | 257 | # Create figure 1 |
| 257 | 258 | plt.figure(1,figsize=(12,6)) |
| ... | ... | @@ -274,7 +275,7 @@ def plot_counts(observations): |
| 274 | 275 | energy.append(ebounds.elogmean(i).TeV()) |
| 275 | 276 | |
| 276 | 277 | # Create spectrum |
| 277 | - print "Extract data:" | |
| 278 | + sys.stdout.write("Extract data:\n") | |
| 278 | 279 | counts = [0.0 for i in range(ebounds.size())] |
| 279 | 280 | for bin in cube: |
| 280 | 281 | index = ebounds.index(bin.energy()) |
| ... | ... | @@ -288,10 +289,10 @@ def plot_counts(observations): |
| 288 | 289 | plt.errorbar(energy, counts, error, fmt=None, ecolor='r') |
| 289 | 290 | |
| 290 | 291 | # Extract models |
| 291 | - print "Extract models:" | |
| 292 | + sys.stdout.write("Extract models:\n") | |
| 292 | 293 | sum_model = [0.0 for i in range(ebounds.size())] |
| 293 | 294 | for k, m in enumerate(observations.models()): |
| 294 | - print "- "+m.name() | |
| 295 | + sys.stdout.write("- "+m.name()+"\n") | |
| 295 | 296 | model = [0.0 for i in range(ebounds.size())] |
| 296 | 297 | for bin in cube: |
| 297 | 298 | index = ebounds.index(bin.energy()) |
| ... | ... | @@ -322,7 +323,7 @@ def plot_counts(observations): |
| 322 | 323 | cube = cast_GCTAEventCube(obs.events()) |
| 323 | 324 | |
| 324 | 325 | # Create offset histogram |
| 325 | - print "Extract data:" | |
| 326 | + sys.stdout.write("Extract data:\n") | |
| 326 | 327 | nx = 30 |
| 327 | 328 | doffset2 = 0.01 |
| 328 | 329 | offset2 = [(i+0.5)*doffset2 for i in range(nx)] |
| ... | ... | @@ -341,10 +342,10 @@ def plot_counts(observations): |
| 341 | 342 | plt.semilogy(offset2, counts, 'ro', label='data') |
| 342 | 343 | |
| 343 | 344 | # Extract models |
| 344 | - print "Extract models:" | |
| 345 | + sys.stdout.write("Extract models:\n") | |
| 345 | 346 | sum_model = [0.0 for i in range(nx)] |
| 346 | 347 | for k, m in enumerate(observations.models()): |
| 347 | - print "- "+m.name() | |
| 348 | + sys.stdout.write("- "+m.name()+"\n") | |
| 348 | 349 | model = [0.0 for i in range(nx)] |
| 349 | 350 | for bin in cube: |
| 350 | 351 | off = bin.dir().dist_deg(crab) |
| ... | ... | @@ -368,7 +369,7 @@ def plot_counts(observations): |
| 368 | 369 | plt.show() |
| 369 | 370 | |
| 370 | 371 | except: |
| 371 | - print "Matplotlib is not (correctly) installed on your system. No counts spectra are shown." | |
| 372 | + sys.stdout.write("Matplotlib is not (correctly) installed on your system. No counts spectra are shown.\n") | |
| 372 | 373 | |
| 373 | 374 | # Return |
| 374 | 375 | return |
| ... | ... | @@ -398,10 +399,10 @@ if __name__ == '__main__': |
| 398 | 399 | around the Crab has been performed. |
| 399 | 400 | """ |
| 400 | 401 | # Dump header |
| 401 | - print "*************************************" | |
| 402 | - print "* CTA binned analysis scripts *" | |
| 403 | - print "*************************************" | |
| 404 | - print "... this script will take 1-2 minutes" | |
| 402 | + sys.stdout.write("*************************************\n") | |
| 403 | + sys.stdout.write("* CTA binned analysis scripts *\n") | |
| 404 | + sys.stdout.write("*************************************\n") | |
| 405 | + sys.stdout.write("... this script will take 1-2 minutes\n") | |
| 405 | 406 | |
| 406 | 407 | # Remove any existing result files |
| 407 | 408 | list = [glob.glob("*.fits"), glob.glob("*.log"), glob.glob("*.xml")] |
| ... | ... | @@ -410,14 +411,14 @@ if __name__ == '__main__': |
| 410 | 411 | os.remove(file) |
| 411 | 412 | |
| 412 | 413 | # Save intermediate results on disk |
| 413 | - print "" | |
| 414 | - print "Executable analysis pipeline:" | |
| 415 | - print "=============================" | |
| 414 | + sys.stdout.write("\n") | |
| 415 | + sys.stdout.write("Executable analysis pipeline:\n") | |
| 416 | + sys.stdout.write("=============================\n") | |
| 416 | 417 | pipeline_v1() |
| 417 | 418 | |
| 418 | 419 | # Do analysis in memory |
| 419 | - print "" | |
| 420 | - print "In memory analysis pipeline:" | |
| 421 | - print "============================" | |
| 420 | + sys.stdout.write("\n") | |
| 421 | + sys.stdout.write("In memory analysis pipeline:\n") | |
| 422 | + sys.stdout.write("============================\n") | |
| 422 | 423 | pipeline_v2() |
| 423 | - print "" | |
| 424 | + sys.stdout.write("\n") | ... | ... |
examples/show_pull_histogram.py
| ... | ... | @@ -58,11 +58,10 @@ def read_pull(filename, parname): |
| 58 | 58 | try: |
| 59 | 59 | index = row.index(parname) |
| 60 | 60 | except: |
| 61 | - print 'ERROR: Parameter "'+parname+'" not found in list:' | |
| 61 | + sys.stdout.write('ERROR: Parameter "'+parname+'" not found in list:\n') | |
| 62 | 62 | for p in row: |
| 63 | - print ' "'+p+'"' | |
| 63 | + sys.stdout.write(' "'+p+'"\n') | |
| 64 | 64 | raise NameError(parname) |
| 65 | - #print index | |
| 66 | 65 | |
| 67 | 66 | # Handle data rows |
| 68 | 67 | else: |
| ... | ... | @@ -73,7 +72,6 @@ def read_pull(filename, parname): |
| 73 | 72 | |
| 74 | 73 | # Create numpy array |
| 75 | 74 | a = np.array(values) |
| 76 | - #print a | |
| 77 | 75 | |
| 78 | 76 | # Return array |
| 79 | 77 | return a |
| ... | ... | @@ -89,7 +87,7 @@ if __name__ == '__main__': |
| 89 | 87 | # Print usage information |
| 90 | 88 | usage = "Usage: show_pull_histogram filename parname [bins]" |
| 91 | 89 | if len(sys.argv) < 3: |
| 92 | - print usage | |
| 90 | + sys.stdout.write(usage+"\n") | |
| 93 | 91 | sys.exit() |
| 94 | 92 | |
| 95 | 93 | # Extract parameters | ... | ... |
examples/show_ts_distribution.py
| ... | ... | @@ -53,10 +53,9 @@ def read_ts(filename, tsname="TS"): |
| 53 | 53 | try: |
| 54 | 54 | index = row.index(tsname) |
| 55 | 55 | except: |
| 56 | - print 'ERROR: Column "TS" not found in file' | |
| 57 | - print row | |
| 56 | + sys.stdout.write('ERROR: Column "TS" not found in file\n') | |
| 57 | + sys.stdout.write(row+"\n") | |
| 58 | 58 | raise NameError("TS") |
| 59 | - #print index | |
| 60 | 59 | |
| 61 | 60 | # Handle data rows |
| 62 | 61 | else: |
| ... | ... | @@ -227,7 +226,7 @@ if __name__ == '__main__': |
| 227 | 226 | usage = "Usage: show_ts_distribution filename" \ |
| 228 | 227 | " [-n bins] [-c column] [-t title] [-p plot]" |
| 229 | 228 | if len(sys.argv) < 2: |
| 230 | - print usage | |
| 229 | + sys.stdout.write(usage+"\n") | |
| 231 | 230 | sys.exit() |
| 232 | 231 | |
| 233 | 232 | # Extract parameters |
| ... | ... | @@ -257,10 +256,10 @@ if __name__ == '__main__': |
| 257 | 256 | try: |
| 258 | 257 | par['value'] = sys.argv[i] |
| 259 | 258 | except: |
| 260 | - print usage | |
| 259 | + sys.stdout.write(usage+"\n") | |
| 261 | 260 | sys.exit() |
| 262 | 261 | else: |
| 263 | - print usage | |
| 262 | + sys.stdout.write(usage+"\n") | |
| 264 | 263 | sys.exit() |
| 265 | 264 | |
| 266 | 265 | # Next item |
| ... | ... | @@ -274,7 +273,7 @@ if __name__ == '__main__': |
| 274 | 273 | |
| 275 | 274 | # Read values from CSV file |
| 276 | 275 | values = read_ts(filename, tsname=tsname) |
| 277 | - print len(values), "values read." | |
| 276 | + sys.stdout.write(len(values), "values read.\n") | |
| 278 | 277 | |
| 279 | 278 | # Show histogram |
| 280 | 279 | if plot == "pdf": | ... | ... |
scripts/cspull.py
| ... | ... | @@ -90,7 +90,7 @@ class cspull(GApplication): |
| 90 | 90 | pars = GPars(parfile) |
| 91 | 91 | except: |
| 92 | 92 | # Signal if parfile was not found |
| 93 | - print "Parfile "+parfile+" not found. Create default parfile." | |
| 93 | + sys.stdout.write("Parfile "+parfile+" not found. Create default parfile.\n") | |
| 94 | 94 | |
| 95 | 95 | # Create default parfile |
| 96 | 96 | pars = GPars() | ... | ... |
scripts/cssens.py
| ... | ... | @@ -101,7 +101,7 @@ class cssens(GApplication): |
| 101 | 101 | pars = GPars(parfile) |
| 102 | 102 | except: |
| 103 | 103 | # Signal if parfile was not found |
| 104 | - print "Parfile "+parfile+" not found. Create default parfile." | |
| 104 | + sys.stdout.write("Parfile "+parfile+" not found. Create default parfile.\n") | |
| 105 | 105 | |
| 106 | 106 | # Create default parfile |
| 107 | 107 | pars = GPars() | ... | ... |
scripts/cstsdist.py
| ... | ... | @@ -91,7 +91,7 @@ class cstsdist(GApplication): |
| 91 | 91 | pars = GPars(parfile) |
| 92 | 92 | except: |
| 93 | 93 | # Signal if parfile was not found |
| 94 | - print "Parfile "+parfile+" not found. Create default parfile." | |
| 94 | + sys.stdout.write("Parfile "+parfile+" not found. Create default parfile.\n") | |
| 95 | 95 | |
| 96 | 96 | # Create default parfile |
| 97 | 97 | pars = GPars() | ... | ... |
scripts/cta_make_nodes.py
| ... | ... | @@ -86,7 +86,8 @@ def create_nodes(emin, emax, enumbins): |
| 86 | 86 | write_node(file, energy, scale) |
| 87 | 87 | |
| 88 | 88 | # Debug |
| 89 | - #print energy, math.pow(10.0, int(math.log10(scale))-1.0) | |
| 89 | + #sys.stdout.write(energy) | |
| 90 | + #sys.stdout.write(math.pow(10.0, int(math.log10(scale))-1.0)±"\n") | |
| 90 | 91 | |
| 91 | 92 | # Close file |
| 92 | 93 | file.close() |
| ... | ... | @@ -105,7 +106,7 @@ if __name__ == '__main__': |
| 105 | 106 | # Check command line |
| 106 | 107 | usage = "Usage: cta_make_nodes emin emax enumbins" |
| 107 | 108 | if len(sys.argv) < 3: |
| 108 | - print usage | |
| 109 | + sys.stdout.write(usage+"\n") | |
| 109 | 110 | sys.exit() |
| 110 | 111 | |
| 111 | 112 | # Extract parameters | ... | ... |
scripts/cta_root2irf.py
| ... | ... | @@ -149,7 +149,7 @@ def make_files(filename, prfname, bkgname): |
| 149 | 149 | |
| 150 | 150 | # Write header |
| 151 | 151 | fprf.write("log(E) Area r68 r80 ERes. BG Rate Diff Sens\n") |
| 152 | - print "log(E) Area Area80 r68 r80 ERes. BG Rate Diff Sens BGRateSqDeg BGInt (BGIntControl)" | |
| 152 | + #sys.stdout.write("log(E) Area Area80 r68 r80 ERes. BG Rate Diff Sens BGRateSqDeg BGInt (BGIntControl)\n") | |
| 153 | 153 | |
| 154 | 154 | # Get histograms. Konrad's root files do not have an EffectiveArea80 |
| 155 | 155 | # histogram, but his effective area is for 80% containment radius |
| ... | ... | @@ -222,8 +222,8 @@ def make_files(filename, prfname, bkgname): |
| 222 | 222 | fbkg.write(str(energy)+" "+str(bkg_rate)+"\n") |
| 223 | 223 | |
| 224 | 224 | # Show performance file |
| 225 | - print "%.1f %.1f %.1f %.4f %.4f %.4f %.7f %.5e %.5e %.5e (%.5e)" % \ | |
| 226 | - (logE, area, area80, r68, r80, dE, bgd, diffs, bgdsq, bkg_rate, bkg_rate2) | |
| 225 | + #print "%.1f %.1f %.1f %.4f %.4f %.4f %.7f %.5e %.5e %.5e (%.5e)" % \ | |
| 226 | + # (logE, area, area80, r68, r80, dE, bgd, diffs, bgdsq, bkg_rate, bkg_rate2) | |
| 227 | 227 | |
| 228 | 228 | # Write trailer |
| 229 | 229 | fprf.write("---------------------------------------------\n") |
| ... | ... | @@ -285,7 +285,7 @@ if __name__ == '__main__': |
| 285 | 285 | # Build output filenames |
| 286 | 286 | prfname = name + ".dat" |
| 287 | 287 | bkgname = "bkg_"+name+".txt" |
| 288 | - print prfname, bkgname | |
| 288 | + #print prfname, bkgname | |
| 289 | 289 | |
| 290 | 290 | # Create files |
| 291 | 291 | make_files(file, prfname, bkgname) | ... | ... |
test/test_python.py
| ... | ... | @@ -177,10 +177,10 @@ if __name__ == '__main__': |
| 177 | 177 | Test ctools Python modules. |
| 178 | 178 | """ |
| 179 | 179 | # Dump header |
| 180 | - print "" | |
| 181 | - print "*************************************" | |
| 182 | - print "* ctools Python interface testing *" | |
| 183 | - print "************************************" | |
| 180 | + sys.stdout.write("\n") | |
| 181 | + sys.stdout.write("***********************************\n") | |
| 182 | + sys.stdout.write("* ctools Python interface testing *\n") | |
| 183 | + sys.stdout.write("***********************************\n") | |
| 184 | 184 | |
| 185 | 185 | # Set PFILES environment variable |
| 186 | 186 | try: |
| ... | ... | @@ -197,11 +197,11 @@ if __name__ == '__main__': |
| 197 | 197 | os.remove(file) |
| 198 | 198 | |
| 199 | 199 | # Save intermediate results on disk |
| 200 | - print "Test executable analysis: ", | |
| 200 | + sys.stdout.write("Test executable analysis: ") | |
| 201 | 201 | pipeline_v1() |
| 202 | - print " ok" | |
| 202 | + sys.stdout.write(" ok\n") | |
| 203 | 203 | |
| 204 | 204 | # Keep results in memory |
| 205 | - print "Test in-memory analysis: ", | |
| 205 | + sys.stdout.write("Test in-memory analysis: ") | |
| 206 | 206 | pipeline_v2() |
| 207 | - print " ok" | |
| 207 | + sys.stdout.write(" ok\n") | ... | ... |