1010import argparse
1111
1212import pandas as pd
13- import numpy as np
13+
14+ from allocator import get_logger
15+ logger = get_logger (__name__ )
1416
1517from random import randint
1618
@@ -79,7 +81,7 @@ def ortools_tsp(A, args):
7981 cost = 0
8082 if assignment :
8183 # Solution cost.
82- print (( assignment .ObjectiveValue ()) )
84+ logger . info ( f"Objective value: { assignment .ObjectiveValue ()} " )
8385 cost = assignment .ObjectiveValue ()
8486 # Inspect solution.
8587 # Only one route here; otherwise iterate from 0 to
@@ -93,9 +95,9 @@ def ortools_tsp(A, args):
9395 node = assignment .Value (routing .NextVar (node ))
9496 route += '0'
9597 path .append (0 )
96- print ( route )
98+ logger . debug ( f"Route: { route } " )
9799 else :
98- print ('No solution found.' )
100+ logger . error ('No solution found.' )
99101
100102 return cost , path
101103
@@ -116,8 +118,7 @@ def do_save_map(args, label, C):
116118 points = polyline .decode (out ['routes' ][0 ]['geometry' ])
117119 cost = int (float (out ['routes' ][0 ]['distance' ] / 1000.0 ))
118120 duration = out ['routes' ][0 ]['duration' ]
119- print (("Route map distance: {:.1f}, duration: {:.1f}"
120- .format (cost , duration )))
121+ logger .info (f"Route map distance: { cost :.1f} , duration: { duration :.1f} " )
121122 # FIXME: unused
122123 # legs = out['routes'][0]['legs']
123124 # waypoints = out['waypoints']
@@ -142,10 +143,10 @@ def do_save_map(args, label, C):
142143
143144 fn , fe = os .path .splitext (args .save_map )
144145 fname = "{:s}-{:d}{:s}" .format (fn , label , fe )
145- print (( "Save map HTML to file '{:s }'". format ( fname )) )
146+ logger . debug ( f"Saved map HTML to file '{ fname } '" )
146147 map_osm .save (fname )
147148 except Exception as e :
148- print (( "Error: Cannot save map to file ({!s })" . format ( e )) )
149+ logger . error ( f "Error: Cannot save map to file ({ e } )" )
149150
150151
151152def main (argv = sys .argv [1 :]):
@@ -179,7 +180,7 @@ def main(argv=sys.argv[1:]):
179180
180181 args = parser .parse_args (argv )
181182
182- print ( args )
183+ logger . debug ( f"Arguments: { args } " )
183184
184185 df = pd .read_csv (args .input )
185186
@@ -195,7 +196,7 @@ def main(argv=sys.argv[1:]):
195196 output = []
196197 total_cost = 0
197198 for i , l in enumerate (sorted (df .assigned_points .unique ())):
198- print (( "Search TSP path for #{:d }..." . format ( l )) )
199+ logger . info ( f "Search TSP path for #{ l } ..." )
199200 adf = df .loc [df .assigned_points == l , ['start_long' , 'start_lat' ]]
200201 A = adf .values
201202 # FIXME: OSRM distance matrix actually isn't distance but it's duration
@@ -211,7 +212,7 @@ def main(argv=sys.argv[1:]):
211212 title = ('TSP: {:d}, Cost: {:0.1f}, N: {:d} ({:s})'
212213 .format (l , cost , N , args .distance_func .title ()))
213214
214- print (title )
215+ logger . info (title )
215216
216217 if args .plot or args .save_plot :
217218 fig = plt .figure (figsize = (16 , 16 ))
@@ -236,7 +237,7 @@ def main(argv=sys.argv[1:]):
236237 if args .save_plot :
237238 fn , fe = os .path .splitext (args .save_plot )
238239 fname = "{:s}-{:d}{:s}" .format (fn , l , fe )
239- print (( "Plotting to file '{:s }'" . format ( fname )) )
240+ logger . debug ( f "Plotting to file '{ fname } '" )
240241 fig .savefig (fname )
241242 plt .close ()
242243
@@ -253,10 +254,10 @@ def main(argv=sys.argv[1:]):
253254 new_path = path [pos :] + path [:pos ]
254255 output .append ([l , cost , N , ';' .join ([str (p ) for p in new_path ])])
255256
256- print (( "Total cost: {0 :.1f}" . format ( total_cost )) )
257+ logger . info ( f "Total cost: { total_cost :.1f} " )
257258
258259 # save output to file
259- print (( "Save the output file to '{:s}'" . format ( args .output )) )
260+ logger . info ( f"Saved output file to '{ args .output } '" )
260261 odf = pd .DataFrame (output , columns = ['worker_id' , 'cost' , 'n' ,
261262 'path_order' ])
262263 odf .to_csv (args .output , index = False )
0 commit comments