1+ import logging
12import requests
23from requests_file import FileAdapter
34
67from kepler_model .util .loader import load_metadata
78from kepler_model .util .train_types import ModelOutputType
89
10+ logger = logging .getLogger (__name__ )
11+
912failed_list = []
1013
1114FILTER_ITEM_DELIMIT = ";"
@@ -39,19 +42,21 @@ def valid_metrics(metrics, features):
3942def is_valid_model (metrics , metadata , filters ):
4043 if not valid_metrics (metrics , metadata ["features" ]):
4144 return False
45+
4246 for attrb , val in filters .items ():
4347 if not hasattr (metadata , attrb ) or getattr (metadata , attrb ) is None :
44- print ( "{ } has no {}" . format ( metadata [ "model_name" ], attrb ) )
48+ logger . warn ( f" { metadata [ 'model_name' ] } has no { attrb } " )
4549 return False
46- else :
47- cmp_val = getattr (metadata , attrb )
48- val = float (val )
49- if attrb == "abs_max_corr" : # higher is better
50- valid = cmp_val >= val
51- else : # lower is better
52- valid = cmp_val <= val
53- if not valid :
54- return False
50+
51+ cmp_val = getattr (metadata , attrb )
52+ val = float (val )
53+ if attrb == "abs_max_corr" : # higher is better
54+ valid = cmp_val >= val
55+ else : # lower is better
56+ valid = cmp_val <= val
57+ if not valid :
58+ return False
59+
5560 return True
5661
5762
@@ -61,15 +66,14 @@ def reset_failed_list():
6166
6267
6368def get_achived_model (power_request ):
64- print ("get archived model" )
6569 global failed_list
6670 output_type_name = power_request .output_type
6771 if output_type_name in failed_list :
6872 return None
6973 output_type = ModelOutputType [power_request .output_type ]
7074 url = get_init_model_url (power_request .energy_source , output_type_name )
7175 if url == "" :
72- print ("no URL set for " , output_type_name , power_request .energy_source )
76+ logger . warn ("no URL set for " , output_type_name , power_request .energy_source )
7377 return None
7478 logger .info (f"try getting archieved model from URL: { url } for { output_type_name } " )
7579
@@ -89,7 +93,8 @@ def get_achived_model(power_request):
8993 if not is_valid_model (power_request .metrics , metadata , filters ):
9094 failed_list += [output_type_name ]
9195 return None
92- except :
93- print ( "cannot validate the archived model" )
96+ except Exception as e :
97+ logger . warn ( f "cannot validate the archived model: { e } " )
9498 return None
99+
95100 return output_path
0 commit comments