1616from api import jwt_ops
1717from config import RAW_DATA_PATH
1818
19+ import structlog
20+ logger = structlog .get_logger ()
21+
22+
1923ALLOWED_EXTENSIONS = {"csv" , "xlsx" }
2024
2125
@@ -32,7 +36,7 @@ def upload_csv():
3236 try :
3337 validate_and_arrange_upload (file )
3438 except Exception as e :
35- current_app . logger .exception (e )
39+ logger .exception (e )
3640 finally :
3741 file .close ()
3842
@@ -44,7 +48,7 @@ def upload_csv():
4448def list_current_files ():
4549 result = None
4650
47- current_app . logger .info ("Start returning file list" )
51+ logger .info ("Start returning file list" )
4852 file_list_result = os .listdir (RAW_DATA_PATH )
4953
5054 if len (file_list_result ) > 0 :
@@ -56,9 +60,9 @@ def list_current_files():
5660@admin_api .route ("/api/execute" , methods = ["POST" ])
5761@jwt_ops .admin_required
5862def execute ():
59- current_app . logger .info ("Execute flow" )
63+ logger .info ("Execute flow" )
6064 job_outcome = flow_script .start_flow () # 'busy', 'completed', or 'nothing to do'
61- current_app . logger .info ("Job outcome: " + str (job_outcome ))
65+ logger .info ("Job outcome: %s" , str (job_outcome ))
6266
6367
6468 # -------- Skip update if 'busy' or 'nothing to do' as nothing changed ? ------
@@ -87,8 +91,8 @@ def execute():
8791 try :
8892 connection .execute (upsert )
8993 except Exception as e :
90- current_app . logger .error ("Insert/Update failed on Last Execution stats" )
91- current_app . logger .exception (e )
94+ logger .error ("Insert/Update failed on Last Execution stats" )
95+ logger .error (e )
9296 # -------------------------------------------------------------------------------
9397
9498 if job_outcome == 'busy' :
@@ -127,7 +131,7 @@ def get_statistics():
127131@jwt_ops .admin_required
128132def list_statistics ():
129133 """ Pull Last Execution stats from DB. """
130- current_app . logger .info ("list_statistics() request" )
134+ logger .info ("list_statistics() request" )
131135 last_execution_details = '{}' # Empty but valid JSON
132136
133137 engine .dispose () # we don't want other process's conn pool
@@ -143,7 +147,7 @@ def list_statistics():
143147 last_execution_details = result .fetchone ()[0 ]
144148
145149 except Exception as e :
146- current_app . logger .error ("Failure reading Last Execution stats from DB - OK on first run" )
150+ logger .error ("Failure reading Last Execution stats from DB - OK on first run" )
147151 # Will happen on first run, shouldn't after
148152
149153 return last_execution_details
@@ -220,10 +224,10 @@ def start_job():
220224
221225 if running_job :
222226 # There was a running job already
223- current_app . logger .info ("Request to start job, but job_id " + str (running_job ) + " already executing" )
227+ logger .warn ("Request to start job, but job_id " + str (running_job ) + " already executing" )
224228 return None
225229 else :
226- current_app . logger .info ("Assigned job_id " + job_id )
230+ logger .info ("Assigned job_id " + job_id )
227231 return job_id
228232
229233
@@ -269,7 +273,7 @@ def import_rfm_csv():
269273 with open ('C:\\ Projects\\ paws-stuff\\ score_tuples.csv' , 'r' ) as csvfile :
270274 reader = csv .reader (csvfile , delimiter = ',' )
271275 hdr = next (reader )
272- print ('Skipping header: ' , hdr )
276+ logger . debug ('Skipping header: %s ' , hdr )
273277 for row in reader :
274278 score_list .append (row )
275279
@@ -302,14 +306,14 @@ def write_rfm_edges(rfm_dict : dict) :
302306 try :
303307 connection .execute (upsert )
304308 except Exception as e :
305- current_app . logger .error ("Insert/Update failed on rfm edge " )
306- current_app . logger .exception (e )
309+ logger .error ("Insert/Update failed on rfm edge " )
310+ logger .error (e )
307311 return None
308312
309313 return 0
310314
311315 else : # Malformed dict
312- current_app . logger .error ("Received rfm_edge dictionary with " + str (len (rfm_dict )) + " entries - expected 3" )
316+ logger .error ("Received rfm_edge dictionary with " + str (len (rfm_dict )) + " entries - expected 3" )
313317 return None
314318
315319
@@ -321,14 +325,14 @@ def read_rfm_edges() :
321325 with engine .begin () as connection : # BEGIN TRANSACTION
322326 q_result = connection .execute (q )
323327 if q_result .rowcount == 0 :
324- current_app . logger .error ("No rfm_edge entry found in DB" )
328+ logger .error ("No rfm_edge entry found in DB" )
325329 return None
326330 else :
327331 edge_string = q_result .fetchone ()[0 ]
328332 try :
329333 edge_dict = json .loads (edge_string ) # Convert stored string to dict
330334 except json .decoder .JSONDecodeError :
331- current_app . logger .error ("rfm_edge entry found in DB was malformed" )
335+ logger .error ("rfm_edge entry found in DB was malformed" )
332336 return None
333337
334338 return edge_dict
@@ -380,9 +384,9 @@ def generate_dummy_rfm_scores():
380384
381385 # return jsonify(sfd_list) # enable if using endpoint, but it returns a lot of data
382386
383- current_app . logger .debug ("Inserting dummy scores..." )
387+ logger .debug ("Inserting dummy scores..." )
384388 count = insert_rfm_scores (dummy_scores )
385- current_app . logger .debug ("Finished inserting" )
389+ logger .debug ("Finished inserting" )
386390
387391
388392 return count
0 commit comments