python /home/admin/mtr/script_for_cron.py -j default -m 20 -a 'python3 /home/admin/workarea/git/Velours/python/prod/memo/memo.py --job=sla_mensuel --raspi=20084 --dashboard_places=dechet_Valcor_v2 --rootfolder_sla=/data_4/data_log/job/memo/dechet_Valcor_v2 -v --mtr_id=1055 --date=`date -d"$nowdate 15 day ago" +%Y-%m` ' -s sla_mensuel -M 0 -S 0 -U 90,80,95 import MySQLdb succeeded Import error (python version) Need env var : LOGRASPI Raspi : 20084, Date : 2026-04 _cr_cnf_ : /home/admin/mtr/.credentials/credentials.py _cr_cnf_ : /home/admin/mtr/.credentials/credentials.py warning , we can't find thcl infos in json_data warning , we can't find pdt infos in json_data nb_day : (2, 30) VR TODO TOCHECK : due to this bug it shouldn't have being able to work, or maybe it was due to a change directory not done ! SELECT name, created_at,limit_max FROM MTRDatou.mtr_datou WHERE id=4311 SELECT mtd.id, mtdt.`type`, mtd.`param`, mtd.param_json, mtdt.nb_input, mtdt.nb_output, mtdt.prod, mtdt.is_local, mtdt.is_datou_depend, mtdt.is_photo_id_local FROM MTRDatou.mtr_datou_step mtd, MTRDatou.mtr_datou_step_types mtdt WHERE mtdt.`id`=mtd.`type` AND mtd.mtd_id=4311 SELECT mtd.id, mtd.mtd_id, mdsdt.id, mdsdt.name, mdsdt.description, msid.output_or_input, msid.data_order_id, mdsdt.type FROM MTRDatou.mtr_datou_step mtd, MTRDatou.mtr_datou_steptype_io_datatypes msid, MTRDatou.mtr_datou_step_data_types mdsdt WHERE mtd.`type`=msid.`mtr_datou_step_type` AND mtd.mtd_id= 4311 AND msid.data_type=mdsdt.id SELECT mts_id_output, id_output, mts_id_input, id_input FROM MTRDatou.mtr_datou_step_by_step WHERE mtd_id=4311 # VR 17-11-17 : to create in DB ! Here we check the datou graph and we reorder steps ! Tree builded and cycle checked, now we need to re-order the steps ! We have currenlty an error because there is no dependence between the last step for the case tile - detect - glue We can either keep the depence of, it is better to keep an order compatible with the id of steps if we do not have sons, so a lexical order : (number_son, step_id) All sons are already in current list ! DONE and to test : checkNoCycle ! Here we check the consistency of inputs/outputs number between the given ones and the db ! eke 1-6-18 : checkConsistencyNbInputNbOutput should be processed after step reordering ! WARNING : number of outputs for step 11939 matching_dashboard is not consistent : 1 used against 0 in the step definition ! Step 11940 split_time_score have less inputs used (1) than in the step definition (2) : maybe we manage optionnal inputs ! Number of inputs / outputs for each step checked ! Here we check the consistency of outputs/inputs types during steps connections eke 1-6-18 : checkConsistencyTypeOutputInput should be processed after checkConsistencyNbInputNbOutput ! WARNING : type of output 0 of step 11939 doesn't seem to be define in the database( WARNING : type of input 2 of step 11940 doesn't seem to be define in the database( DataTypes for each output/input checked ! {"input_values":[]} We expected an STS datou with a camera_place_name, so there is a PB, datou_id: 4311 ! None was removed should we ? None was removed should we ? donnée sous forme de texte was removed should we ? [ptf_id0,ptf_id1...] was removed should we ? {'id': '4311', 'name': 'sts_dechet_valcor_matching_v2_2022Q3', 'limit_max': 100, 'nb_steps': 2, 'estimated_time': 8640, 'list_steps': [{'id': 11939, 'type': 'matching_dashboard', 'param': '0', 'json_param_as_string': "{'camera_matching': 'plaque_Valcor', 'max_time_diff': 120, 'matching_method': '1_vs_n', 'input_default_values': []}", 'json_param': {'camera_matching': 'plaque_Valcor', 'max_time_diff': 120, 'matching_method': '1_vs_n', 'input_default_values': []}, 'nb_input': 1, 'nb_output': 0, 'prod': False, 'is_local': False, 'is_datou_depend': False, 'is_photo_id_local': False, 'list_data': [{'step_id': 11939, 'datou_id': 4311, 'type_id': 18, 'name': 'portfolio_id', 'output_or_input': False, 'data_order_id': 0, 'type_python': 'int'}]}, {'id': 11940, 'type': 'split_time_score', 'param': '0', 'json_param_as_string': "{'camera_place_name': 'dechet_Valcor_v2', 'ETA': 8640, 'param_moyenne_mobile': 5, 'thcl': 3442, 'list_task_complete': [''], 'list_tasks': 'LOAD,ORDER,CONVENTION,SPLIT_TRUCK,merge_port_according_to_plate_info,remove_no_plate_batch,CREATE_PORT_LAUNCH_CARAC_FILL_DASHBOARD', 'forced_hashtag': 'truck', 'list_hashtag_class_create': 'truck', 'ponderation': '0.001,0.001,0.001,0.001,0.001', 'datou_proportion_papier': {'test': 370, 'truck': 4234}, 'datou_matching_id': 4311, 'cod': 1, 'min_number_photo_per_batch': 2, 'host': 'marlene.fotonower.com', 'datou_truck_for_info': 4234}", 'json_param': {'camera_place_name': 'dechet_Valcor_v2', 'ETA': 8640, 'param_moyenne_mobile': 5, 'thcl': 3442, 'list_task_complete': [''], 'list_tasks': 'LOAD,ORDER,CONVENTION,SPLIT_TRUCK,merge_port_according_to_plate_info,remove_no_plate_batch,CREATE_PORT_LAUNCH_CARAC_FILL_DASHBOARD', 'forced_hashtag': 'truck', 'list_hashtag_class_create': 'truck', 'ponderation': '0.001,0.001,0.001,0.001,0.001', 'datou_proportion_papier': {'test': 370, 'truck': 4234}, 'datou_matching_id': 4311, 'cod': 1, 'min_number_photo_per_batch': 2, 'host': 'marlene.fotonower.com', 'datou_truck_for_info': 4234}, 'nb_input': 2, 'nb_output': 1, 'prod': False, 'is_local': False, 'is_datou_depend': False, 'is_photo_id_local': False, 'list_data': [{'step_id': 11940, 'datou_id': 4311, 'type_id': 18, 'name': 'portfolio_id', 'output_or_input': False, 'data_order_id': 0, 'type_python': 'int'}, {'step_id': 11940, 'datou_id': 4311, 'type_id': 10, 'name': 'data_string', 'output_or_input': False, 'data_order_id': 1, 'type_python': 'string'}, {'step_id': 11940, 'datou_id': 4311, 'type_id': 22, 'name': 'portfolios_ids_list', 'output_or_input': True, 'data_order_id': 0, 'type_python': 'liste_de_int'}]}], 'depends_step': [{'output': 11939, 'output_id': 0, 'input': 11940, 'input_id': 2}]} check if it is the case where we have multiple sts in one datou no, it is not this case SELECT name, created_at,limit_max FROM MTRDatou.mtr_datou WHERE id=370 SELECT mtd.id, mtdt.`type`, mtd.`param`, mtd.param_json, mtdt.nb_input, mtdt.nb_output, mtdt.prod, mtdt.is_local, mtdt.is_datou_depend, mtdt.is_photo_id_local FROM MTRDatou.mtr_datou_step mtd, MTRDatou.mtr_datou_step_types mtdt WHERE mtdt.`id`=mtd.`type` AND mtd.mtd_id=370 SELECT mtd.id, mtd.mtd_id, mdsdt.id, mdsdt.name, mdsdt.description, msid.output_or_input, msid.data_order_id, mdsdt.type FROM MTRDatou.mtr_datou_step mtd, MTRDatou.mtr_datou_steptype_io_datatypes msid, MTRDatou.mtr_datou_step_data_types mdsdt WHERE mtd.`type`=msid.`mtr_datou_step_type` AND mtd.mtd_id= 370 AND msid.data_type=mdsdt.id SELECT mts_id_output, id_output, mts_id_input, id_input FROM MTRDatou.mtr_datou_step_by_step WHERE mtd_id=370 # VR 17-11-17 : to create in DB ! Here we check the datou graph and we reorder steps ! Tree builded and cycle checked, now we need to re-order the steps ! We have currenlty an error because there is no dependence between the last step for the case tile - detect - glue We can either keep the depence of, it is better to keep an order compatible with the id of steps if we do not have sons, so a lexical order : (number_son, step_id) All sons are already in current list ! All sons are already in current list ! All sons are already in current list ! All sons are already in current list ! DONE and to test : checkNoCycle ! Here we check the consistency of inputs/outputs number between the given ones and the db ! eke 1-6-18 : checkConsistencyNbInputNbOutput should be processed after step reordering ! Number of inputs / outputs for each step checked ! Here we check the consistency of outputs/inputs types during steps connections eke 1-6-18 : checkConsistencyTypeOutputInput should be processed after checkConsistencyNbInputNbOutput ! We ignore checkConsistencyTypeOutputInput for datou_step final ! We ignore checkConsistencyTypeOutputInput for datou_step final ! We ignore checkConsistencyTypeOutputInput for datou_step final ! DataTypes for each output/input checked ! {"input_values":[]} Unexpected error treated as WARNING for now expected given param in final step {'min_score': 0.7, 'name_pipeline': 'proportion_papier_tapis', 'hashtag_type': 705, 'hashtag_proportion': 492668766, 'hashtag_parmi': 538914404, 'hashtag_to_consider': 'papier_only', 'hashtag_background': 493012381} Found hashtag_parmi in final step, will be used and useful if different from matiere_majoritaire in classifier ventilate_hashtags_in_portfolio step not found ! SELECT name, created_at,limit_max FROM MTRDatou.mtr_datou WHERE id=4234 SELECT mtd.id, mtdt.`type`, mtd.`param`, mtd.param_json, mtdt.nb_input, mtdt.nb_output, mtdt.prod, mtdt.is_local, mtdt.is_datou_depend, mtdt.is_photo_id_local FROM MTRDatou.mtr_datou_step mtd, MTRDatou.mtr_datou_step_types mtdt WHERE mtdt.`id`=mtd.`type` AND mtd.mtd_id=4234 SELECT mtd.id, mtd.mtd_id, mdsdt.id, mdsdt.name, mdsdt.description, msid.output_or_input, msid.data_order_id, mdsdt.type FROM MTRDatou.mtr_datou_step mtd, MTRDatou.mtr_datou_steptype_io_datatypes msid, MTRDatou.mtr_datou_step_data_types mdsdt WHERE mtd.`type`=msid.`mtr_datou_step_type` AND mtd.mtd_id= 4234 AND msid.data_type=mdsdt.id SELECT mts_id_output, id_output, mts_id_input, id_input FROM MTRDatou.mtr_datou_step_by_step WHERE mtd_id=4234 # VR 17-11-17 : to create in DB ! Here we check the datou graph and we reorder steps ! Tree builded and cycle checked, now we need to re-order the steps ! We have currenlty an error because there is no dependence between the last step for the case tile - detect - glue We can either keep the depence of, it is better to keep an order compatible with the id of steps if we do not have sons, so a lexical order : (number_son, step_id) All sons are already in current list ! All sons are already in current list ! All sons are already in current list ! All sons are already in current list ! All sons are already in current list ! All sons are already in current list ! All sons are already in current list ! All sons are already in current list ! All sons are already in current list ! All sons are already in current list ! DONE and to test : checkNoCycle ! Here we check the consistency of inputs/outputs number between the given ones and the db ! eke 1-6-18 : checkConsistencyNbInputNbOutput should be processed after step reordering ! WARNING : number of outputs for step 11415 rle_unique_nms_with_priority is not consistent : 2 used against 1 in the step definition ! Step 11419 crop_condition have less inputs used (1) than in the step definition (2) : maybe we manage optionnal inputs ! WARNING : number of outputs for step 11419 crop_condition is not consistent : 4 used against 3 in the step definition ! WARNING : number of inputs for step 11416 ventilate_hashtags_in_portfolio is not consistent : 2 used against 1 in the step definition ! WARNING : number of outputs for step 11416 ventilate_hashtags_in_portfolio is not consistent : 2 used against 1 in the step definition ! Step 11417 final have less inputs used (2) than in the step definition (3) : maybe we manage optionnal inputs ! Step 11417 final have less outputs used (1) than in the step definition (2) : some outputs may be not used ! Step 11422 split_time_score have less inputs used (1) than in the step definition (2) : maybe we manage optionnal inputs ! Number of inputs / outputs for each step checked ! Here we check the consistency of outputs/inputs types during steps connections eke 1-6-18 : checkConsistencyTypeOutputInput should be processed after checkConsistencyNbInputNbOutput ! We ignore checkConsistencyTypeOutputInput for datou_step final ! WARNING : output 0 of step 11416 have datatype=10 whereas input 2 of step 11418 have datatype=6 We ignore checkConsistencyTypeOutputInput for datou_step final ! WARNING : type of input 2 of step 11419 doesn't seem to be define in the database( WARNING : output 1 of step 11415 have datatype=7 whereas input 2 of step 11419 have datatype=None WARNING : type of output 3 of step 11419 doesn't seem to be define in the database( WARNING : type of input 1 of step 11416 doesn't seem to be define in the database( WARNING : type of output 1 of step 11416 doesn't seem to be define in the database( WARNING : type of input 3 of step 11417 doesn't seem to be define in the database( We ignore checkConsistencyTypeOutputInput for datou_step final ! WARNING : output 0 of step 11416 have datatype=10 whereas input 0 of step 11420 have datatype=18 WARNING : type of input 5 of step 11418 doesn't seem to be define in the database( WARNING : output 0 of step 11420 have datatype=11 whereas input 5 of step 11418 have datatype=None WARNING : type of input 2 of step 11416 doesn't seem to be define in the database( WARNING : output 0 of step 11421 have datatype=5 whereas input 2 of step 11416 have datatype=None WARNING : output 0 of step 11418 have datatype=10 whereas input 0 of step 11422 have datatype=18 DataTypes for each output/input checked ! {"input_values":[]} Unexpected error treated as WARNING for now expected given param in final step {'name_pipeline': 'aggregate_carac_ratio', 'hashtag_type': 4230, 'hashtag_proportion': 'papier,carton,metal,pet_clair,autre,pehd,pet_fonce', 'hashtag_parmi': 'refus', 'hashtag_weights': {'autre': 3.0, 'barquette_avec_film': 3.0, 'carton': 3.0, 'metal': 3.0, 'papier': 3.0, 'pehd': 3.0, 'pet_fonce': 3.0, 'pet_clair': 1.0, 'flou': 1.0, 'mal_croppe': 1.0}, 'option_sccu': 1} Found hashtag_parmi in final step, will be used and useful if different from matiere_majoritaire in classifier TODO : Insert select and so on SELECT id, name, misc_info, datou_id_for_right FROM MTRPhoto.dashboard_places WHERE name="dechet_Valcor_v2"; SELECT name, created_at,limit_max FROM MTRDatou.mtr_datou WHERE id=4311 SELECT mtd.id, mtdt.`type`, mtd.`param`, mtd.param_json, mtdt.nb_input, mtdt.nb_output, mtdt.prod, mtdt.is_local, mtdt.is_datou_depend, mtdt.is_photo_id_local FROM MTRDatou.mtr_datou_step mtd, MTRDatou.mtr_datou_step_types mtdt WHERE mtdt.`id`=mtd.`type` AND mtd.mtd_id=4311 SELECT mtd.id, mtd.mtd_id, mdsdt.id, mdsdt.name, mdsdt.description, msid.output_or_input, msid.data_order_id, mdsdt.type FROM MTRDatou.mtr_datou_step mtd, MTRDatou.mtr_datou_steptype_io_datatypes msid, MTRDatou.mtr_datou_step_data_types mdsdt WHERE mtd.`type`=msid.`mtr_datou_step_type` AND mtd.mtd_id= 4311 AND msid.data_type=mdsdt.id SELECT mts_id_output, id_output, mts_id_input, id_input FROM MTRDatou.mtr_datou_step_by_step WHERE mtd_id=4311 # VR 17-11-17 : to create in DB ! Here we check the datou graph and we reorder steps ! Tree builded and cycle checked, now we need to re-order the steps ! We have currenlty an error because there is no dependence between the last step for the case tile - detect - glue We can either keep the depence of, it is better to keep an order compatible with the id of steps if we do not have sons, so a lexical order : (number_son, step_id) All sons are already in current list ! DONE and to test : checkNoCycle ! Here we check the consistency of inputs/outputs number between the given ones and the db ! eke 1-6-18 : checkConsistencyNbInputNbOutput should be processed after step reordering ! WARNING : number of outputs for step 11939 matching_dashboard is not consistent : 1 used against 0 in the step definition ! Step 11940 split_time_score have less inputs used (1) than in the step definition (2) : maybe we manage optionnal inputs ! Number of inputs / outputs for each step checked ! Here we check the consistency of outputs/inputs types during steps connections eke 1-6-18 : checkConsistencyTypeOutputInput should be processed after checkConsistencyNbInputNbOutput ! WARNING : type of output 0 of step 11939 doesn't seem to be define in the database( WARNING : type of input 2 of step 11940 doesn't seem to be define in the database( DataTypes for each output/input checked ! {"input_values":[]} We expected an STS datou with a camera_place_name, so there is a PB, datou_id: 4311 ! None was removed should we ? None was removed should we ? donnée sous forme de texte was removed should we ? [ptf_id0,ptf_id1...] was removed should we ? {'id': 4311, 'name': 'sts_dechet_valcor_matching_v2_2022Q3', 'limit_max': 100, 'nb_steps': 2, 'estimated_time': 8640, 'list_steps': [{'id': 11939, 'type': 'matching_dashboard', 'param': '0', 'json_param_as_string': "{'camera_matching': 'plaque_Valcor', 'max_time_diff': 120, 'matching_method': '1_vs_n', 'input_default_values': []}", 'json_param': {'camera_matching': 'plaque_Valcor', 'max_time_diff': 120, 'matching_method': '1_vs_n', 'input_default_values': []}, 'nb_input': 1, 'nb_output': 0, 'prod': False, 'is_local': False, 'is_datou_depend': False, 'is_photo_id_local': False, 'list_data': [{'step_id': 11939, 'datou_id': 4311, 'type_id': 18, 'name': 'portfolio_id', 'output_or_input': False, 'data_order_id': 0, 'type_python': 'int'}]}, {'id': 11940, 'type': 'split_time_score', 'param': '0', 'json_param_as_string': "{'camera_place_name': 'dechet_Valcor_v2', 'ETA': 8640, 'param_moyenne_mobile': 5, 'thcl': 3442, 'list_task_complete': [''], 'list_tasks': 'LOAD,ORDER,CONVENTION,SPLIT_TRUCK,merge_port_according_to_plate_info,remove_no_plate_batch,CREATE_PORT_LAUNCH_CARAC_FILL_DASHBOARD', 'forced_hashtag': 'truck', 'list_hashtag_class_create': 'truck', 'ponderation': '0.001,0.001,0.001,0.001,0.001', 'datou_proportion_papier': {'test': 370, 'truck': 4234}, 'datou_matching_id': 4311, 'cod': 1, 'min_number_photo_per_batch': 2, 'host': 'marlene.fotonower.com', 'datou_truck_for_info': 4234}", 'json_param': {'camera_place_name': 'dechet_Valcor_v2', 'ETA': 8640, 'param_moyenne_mobile': 5, 'thcl': 3442, 'list_task_complete': [''], 'list_tasks': 'LOAD,ORDER,CONVENTION,SPLIT_TRUCK,merge_port_according_to_plate_info,remove_no_plate_batch,CREATE_PORT_LAUNCH_CARAC_FILL_DASHBOARD', 'forced_hashtag': 'truck', 'list_hashtag_class_create': 'truck', 'ponderation': '0.001,0.001,0.001,0.001,0.001', 'datou_proportion_papier': {'test': 370, 'truck': 4234}, 'datou_matching_id': 4311, 'cod': 1, 'min_number_photo_per_batch': 2, 'host': 'marlene.fotonower.com', 'datou_truck_for_info': 4234}, 'nb_input': 2, 'nb_output': 1, 'prod': False, 'is_local': False, 'is_datou_depend': False, 'is_photo_id_local': False, 'list_data': [{'step_id': 11940, 'datou_id': 4311, 'type_id': 18, 'name': 'portfolio_id', 'output_or_input': False, 'data_order_id': 0, 'type_python': 'int'}, {'step_id': 11940, 'datou_id': 4311, 'type_id': 10, 'name': 'data_string', 'output_or_input': False, 'data_order_id': 1, 'type_python': 'string'}, {'step_id': 11940, 'datou_id': 4311, 'type_id': 22, 'name': 'portfolios_ids_list', 'output_or_input': True, 'data_order_id': 0, 'type_python': 'liste_de_int'}]}], 'depends_step': [{'output': 11939, 'output_id': 0, 'input': 11940, 'input_id': 2}]} check if it is the case where we have multiple sts in one datou no, it is not this case SELECT name, created_at,limit_max FROM MTRDatou.mtr_datou WHERE id=370 SELECT mtd.id, mtdt.`type`, mtd.`param`, mtd.param_json, mtdt.nb_input, mtdt.nb_output, mtdt.prod, mtdt.is_local, mtdt.is_datou_depend, mtdt.is_photo_id_local FROM MTRDatou.mtr_datou_step mtd, MTRDatou.mtr_datou_step_types mtdt WHERE mtdt.`id`=mtd.`type` AND mtd.mtd_id=370 SELECT mtd.id, mtd.mtd_id, mdsdt.id, mdsdt.name, mdsdt.description, msid.output_or_input, msid.data_order_id, mdsdt.type FROM MTRDatou.mtr_datou_step mtd, MTRDatou.mtr_datou_steptype_io_datatypes msid, MTRDatou.mtr_datou_step_data_types mdsdt WHERE mtd.`type`=msid.`mtr_datou_step_type` AND mtd.mtd_id= 370 AND msid.data_type=mdsdt.id SELECT mts_id_output, id_output, mts_id_input, id_input FROM MTRDatou.mtr_datou_step_by_step WHERE mtd_id=370 # VR 17-11-17 : to create in DB ! Here we check the datou graph and we reorder steps ! Tree builded and cycle checked, now we need to re-order the steps ! We have currenlty an error because there is no dependence between the last step for the case tile - detect - glue We can either keep the depence of, it is better to keep an order compatible with the id of steps if we do not have sons, so a lexical order : (number_son, step_id) All sons are already in current list ! All sons are already in current list ! All sons are already in current list ! All sons are already in current list ! DONE and to test : checkNoCycle ! Here we check the consistency of inputs/outputs number between the given ones and the db ! eke 1-6-18 : checkConsistencyNbInputNbOutput should be processed after step reordering ! Number of inputs / outputs for each step checked ! Here we check the consistency of outputs/inputs types during steps connections eke 1-6-18 : checkConsistencyTypeOutputInput should be processed after checkConsistencyNbInputNbOutput ! We ignore checkConsistencyTypeOutputInput for datou_step final ! We ignore checkConsistencyTypeOutputInput for datou_step final ! We ignore checkConsistencyTypeOutputInput for datou_step final ! DataTypes for each output/input checked ! {"input_values":[]} Unexpected error treated as WARNING for now expected given param in final step {'min_score': 0.7, 'name_pipeline': 'proportion_papier_tapis', 'hashtag_type': 705, 'hashtag_proportion': 492668766, 'hashtag_parmi': 538914404, 'hashtag_to_consider': 'papier_only', 'hashtag_background': 493012381} Found hashtag_parmi in final step, will be used and useful if different from matiere_majoritaire in classifier ventilate_hashtags_in_portfolio step not found ! SELECT name, created_at,limit_max FROM MTRDatou.mtr_datou WHERE id=4234 SELECT mtd.id, mtdt.`type`, mtd.`param`, mtd.param_json, mtdt.nb_input, mtdt.nb_output, mtdt.prod, mtdt.is_local, mtdt.is_datou_depend, mtdt.is_photo_id_local FROM MTRDatou.mtr_datou_step mtd, MTRDatou.mtr_datou_step_types mtdt WHERE mtdt.`id`=mtd.`type` AND mtd.mtd_id=4234 SELECT mtd.id, mtd.mtd_id, mdsdt.id, mdsdt.name, mdsdt.description, msid.output_or_input, msid.data_order_id, mdsdt.type FROM MTRDatou.mtr_datou_step mtd, MTRDatou.mtr_datou_steptype_io_datatypes msid, MTRDatou.mtr_datou_step_data_types mdsdt WHERE mtd.`type`=msid.`mtr_datou_step_type` AND mtd.mtd_id= 4234 AND msid.data_type=mdsdt.id SELECT mts_id_output, id_output, mts_id_input, id_input FROM MTRDatou.mtr_datou_step_by_step WHERE mtd_id=4234 # VR 17-11-17 : to create in DB ! Here we check the datou graph and we reorder steps ! Tree builded and cycle checked, now we need to re-order the steps ! We have currenlty an error because there is no dependence between the last step for the case tile - detect - glue We can either keep the depence of, it is better to keep an order compatible with the id of steps if we do not have sons, so a lexical order : (number_son, step_id) All sons are already in current list ! All sons are already in current list ! All sons are already in current list ! All sons are already in current list ! All sons are already in current list ! All sons are already in current list ! All sons are already in current list ! All sons are already in current list ! All sons are already in current list ! All sons are already in current list ! DONE and to test : checkNoCycle ! Here we check the consistency of inputs/outputs number between the given ones and the db ! eke 1-6-18 : checkConsistencyNbInputNbOutput should be processed after step reordering ! WARNING : number of outputs for step 11415 rle_unique_nms_with_priority is not consistent : 2 used against 1 in the step definition ! Step 11419 crop_condition have less inputs used (1) than in the step definition (2) : maybe we manage optionnal inputs ! WARNING : number of outputs for step 11419 crop_condition is not consistent : 4 used against 3 in the step definition ! WARNING : number of inputs for step 11416 ventilate_hashtags_in_portfolio is not consistent : 2 used against 1 in the step definition ! WARNING : number of outputs for step 11416 ventilate_hashtags_in_portfolio is not consistent : 2 used against 1 in the step definition ! Step 11417 final have less inputs used (2) than in the step definition (3) : maybe we manage optionnal inputs ! Step 11417 final have less outputs used (1) than in the step definition (2) : some outputs may be not used ! Step 11422 split_time_score have less inputs used (1) than in the step definition (2) : maybe we manage optionnal inputs ! Number of inputs / outputs for each step checked ! Here we check the consistency of outputs/inputs types during steps connections eke 1-6-18 : checkConsistencyTypeOutputInput should be processed after checkConsistencyNbInputNbOutput ! We ignore checkConsistencyTypeOutputInput for datou_step final ! WARNING : output 0 of step 11416 have datatype=10 whereas input 2 of step 11418 have datatype=6 We ignore checkConsistencyTypeOutputInput for datou_step final ! WARNING : type of input 2 of step 11419 doesn't seem to be define in the database( WARNING : output 1 of step 11415 have datatype=7 whereas input 2 of step 11419 have datatype=None WARNING : type of output 3 of step 11419 doesn't seem to be define in the database( WARNING : type of input 1 of step 11416 doesn't seem to be define in the database( WARNING : type of output 1 of step 11416 doesn't seem to be define in the database( WARNING : type of input 3 of step 11417 doesn't seem to be define in the database( We ignore checkConsistencyTypeOutputInput for datou_step final ! WARNING : output 0 of step 11416 have datatype=10 whereas input 0 of step 11420 have datatype=18 WARNING : type of input 5 of step 11418 doesn't seem to be define in the database( WARNING : output 0 of step 11420 have datatype=11 whereas input 5 of step 11418 have datatype=None WARNING : type of input 2 of step 11416 doesn't seem to be define in the database( WARNING : output 0 of step 11421 have datatype=5 whereas input 2 of step 11416 have datatype=None WARNING : output 0 of step 11418 have datatype=10 whereas input 0 of step 11422 have datatype=18 DataTypes for each output/input checked ! {"input_values":[]} Unexpected error treated as WARNING for now expected given param in final step {'name_pipeline': 'aggregate_carac_ratio', 'hashtag_type': 4230, 'hashtag_proportion': 'papier,carton,metal,pet_clair,autre,pehd,pet_fonce', 'hashtag_parmi': 'refus', 'hashtag_weights': {'autre': 3.0, 'barquette_avec_film': 3.0, 'carton': 3.0, 'metal': 3.0, 'papier': 3.0, 'pehd': 3.0, 'pet_fonce': 3.0, 'pet_clair': 1.0, 'flou': 1.0, 'mal_croppe': 1.0}, 'option_sccu': 1} Found hashtag_parmi in final step, will be used and useful if different from matiere_majoritaire in classifier Fonction SLA_MENSUEL nb_day : (2, 30) VR TODO TOCHECK : due to this bug it shouldn't have being able to work, or maybe it was due to a change directory not done ! SELECT name, created_at,limit_max FROM MTRDatou.mtr_datou WHERE id=4311 SELECT mtd.id, mtdt.`type`, mtd.`param`, mtd.param_json, mtdt.nb_input, mtdt.nb_output, mtdt.prod, mtdt.is_local, mtdt.is_datou_depend, mtdt.is_photo_id_local FROM MTRDatou.mtr_datou_step mtd, MTRDatou.mtr_datou_step_types mtdt WHERE mtdt.`id`=mtd.`type` AND mtd.mtd_id=4311 SELECT mtd.id, mtd.mtd_id, mdsdt.id, mdsdt.name, mdsdt.description, msid.output_or_input, msid.data_order_id, mdsdt.type FROM MTRDatou.mtr_datou_step mtd, MTRDatou.mtr_datou_steptype_io_datatypes msid, MTRDatou.mtr_datou_step_data_types mdsdt WHERE mtd.`type`=msid.`mtr_datou_step_type` AND mtd.mtd_id= 4311 AND msid.data_type=mdsdt.id SELECT mts_id_output, id_output, mts_id_input, id_input FROM MTRDatou.mtr_datou_step_by_step WHERE mtd_id=4311 # VR 17-11-17 : to create in DB ! Here we check the datou graph and we reorder steps ! Tree builded and cycle checked, now we need to re-order the steps ! We have currenlty an error because there is no dependence between the last step for the case tile - detect - glue We can either keep the depence of, it is better to keep an order compatible with the id of steps if we do not have sons, so a lexical order : (number_son, step_id) All sons are already in current list ! DONE and to test : checkNoCycle ! Here we check the consistency of inputs/outputs number between the given ones and the db ! eke 1-6-18 : checkConsistencyNbInputNbOutput should be processed after step reordering ! WARNING : number of outputs for step 11939 matching_dashboard is not consistent : 1 used against 0 in the step definition ! Step 11940 split_time_score have less inputs used (1) than in the step definition (2) : maybe we manage optionnal inputs ! Number of inputs / outputs for each step checked ! Here we check the consistency of outputs/inputs types during steps connections eke 1-6-18 : checkConsistencyTypeOutputInput should be processed after checkConsistencyNbInputNbOutput ! WARNING : type of output 0 of step 11939 doesn't seem to be define in the database( WARNING : type of input 2 of step 11940 doesn't seem to be define in the database( DataTypes for each output/input checked ! {"input_values":[]} We expected an STS datou with a camera_place_name, so there is a PB, datou_id: 4311 ! None was removed should we ? None was removed should we ? donnée sous forme de texte was removed should we ? [ptf_id0,ptf_id1...] was removed should we ? {'id': '4311', 'name': 'sts_dechet_valcor_matching_v2_2022Q3', 'limit_max': 100, 'nb_steps': 2, 'estimated_time': 8640, 'list_steps': [{'id': 11939, 'type': 'matching_dashboard', 'param': '0', 'json_param_as_string': "{'camera_matching': 'plaque_Valcor', 'max_time_diff': 120, 'matching_method': '1_vs_n', 'input_default_values': []}", 'json_param': {'camera_matching': 'plaque_Valcor', 'max_time_diff': 120, 'matching_method': '1_vs_n', 'input_default_values': []}, 'nb_input': 1, 'nb_output': 0, 'prod': False, 'is_local': False, 'is_datou_depend': False, 'is_photo_id_local': False, 'list_data': [{'step_id': 11939, 'datou_id': 4311, 'type_id': 18, 'name': 'portfolio_id', 'output_or_input': False, 'data_order_id': 0, 'type_python': 'int'}]}, {'id': 11940, 'type': 'split_time_score', 'param': '0', 'json_param_as_string': "{'camera_place_name': 'dechet_Valcor_v2', 'ETA': 8640, 'param_moyenne_mobile': 5, 'thcl': 3442, 'list_task_complete': [''], 'list_tasks': 'LOAD,ORDER,CONVENTION,SPLIT_TRUCK,merge_port_according_to_plate_info,remove_no_plate_batch,CREATE_PORT_LAUNCH_CARAC_FILL_DASHBOARD', 'forced_hashtag': 'truck', 'list_hashtag_class_create': 'truck', 'ponderation': '0.001,0.001,0.001,0.001,0.001', 'datou_proportion_papier': {'test': 370, 'truck': 4234}, 'datou_matching_id': 4311, 'cod': 1, 'min_number_photo_per_batch': 2, 'host': 'marlene.fotonower.com', 'datou_truck_for_info': 4234}", 'json_param': {'camera_place_name': 'dechet_Valcor_v2', 'ETA': 8640, 'param_moyenne_mobile': 5, 'thcl': 3442, 'list_task_complete': [''], 'list_tasks': 'LOAD,ORDER,CONVENTION,SPLIT_TRUCK,merge_port_according_to_plate_info,remove_no_plate_batch,CREATE_PORT_LAUNCH_CARAC_FILL_DASHBOARD', 'forced_hashtag': 'truck', 'list_hashtag_class_create': 'truck', 'ponderation': '0.001,0.001,0.001,0.001,0.001', 'datou_proportion_papier': {'test': 370, 'truck': 4234}, 'datou_matching_id': 4311, 'cod': 1, 'min_number_photo_per_batch': 2, 'host': 'marlene.fotonower.com', 'datou_truck_for_info': 4234}, 'nb_input': 2, 'nb_output': 1, 'prod': False, 'is_local': False, 'is_datou_depend': False, 'is_photo_id_local': False, 'list_data': [{'step_id': 11940, 'datou_id': 4311, 'type_id': 18, 'name': 'portfolio_id', 'output_or_input': False, 'data_order_id': 0, 'type_python': 'int'}, {'step_id': 11940, 'datou_id': 4311, 'type_id': 10, 'name': 'data_string', 'output_or_input': False, 'data_order_id': 1, 'type_python': 'string'}, {'step_id': 11940, 'datou_id': 4311, 'type_id': 22, 'name': 'portfolios_ids_list', 'output_or_input': True, 'data_order_id': 0, 'type_python': 'liste_de_int'}]}], 'depends_step': [{'output': 11939, 'output_id': 0, 'input': 11940, 'input_id': 2}]} check if it is the case where we have multiple sts in one datou no, it is not this case SELECT name, created_at,limit_max FROM MTRDatou.mtr_datou WHERE id=370 SELECT mtd.id, mtdt.`type`, mtd.`param`, mtd.param_json, mtdt.nb_input, mtdt.nb_output, mtdt.prod, mtdt.is_local, mtdt.is_datou_depend, mtdt.is_photo_id_local FROM MTRDatou.mtr_datou_step mtd, MTRDatou.mtr_datou_step_types mtdt WHERE mtdt.`id`=mtd.`type` AND mtd.mtd_id=370 SELECT mtd.id, mtd.mtd_id, mdsdt.id, mdsdt.name, mdsdt.description, msid.output_or_input, msid.data_order_id, mdsdt.type FROM MTRDatou.mtr_datou_step mtd, MTRDatou.mtr_datou_steptype_io_datatypes msid, MTRDatou.mtr_datou_step_data_types mdsdt WHERE mtd.`type`=msid.`mtr_datou_step_type` AND mtd.mtd_id= 370 AND msid.data_type=mdsdt.id SELECT mts_id_output, id_output, mts_id_input, id_input FROM MTRDatou.mtr_datou_step_by_step WHERE mtd_id=370 # VR 17-11-17 : to create in DB ! Here we check the datou graph and we reorder steps ! Tree builded and cycle checked, now we need to re-order the steps ! We have currenlty an error because there is no dependence between the last step for the case tile - detect - glue We can either keep the depence of, it is better to keep an order compatible with the id of steps if we do not have sons, so a lexical order : (number_son, step_id) All sons are already in current list ! All sons are already in current list ! All sons are already in current list ! All sons are already in current list ! DONE and to test : checkNoCycle ! Here we check the consistency of inputs/outputs number between the given ones and the db ! eke 1-6-18 : checkConsistencyNbInputNbOutput should be processed after step reordering ! Number of inputs / outputs for each step checked ! Here we check the consistency of outputs/inputs types during steps connections eke 1-6-18 : checkConsistencyTypeOutputInput should be processed after checkConsistencyNbInputNbOutput ! We ignore checkConsistencyTypeOutputInput for datou_step final ! We ignore checkConsistencyTypeOutputInput for datou_step final ! We ignore checkConsistencyTypeOutputInput for datou_step final ! DataTypes for each output/input checked ! {"input_values":[]} Unexpected error treated as WARNING for now expected given param in final step {'min_score': 0.7, 'name_pipeline': 'proportion_papier_tapis', 'hashtag_type': 705, 'hashtag_proportion': 492668766, 'hashtag_parmi': 538914404, 'hashtag_to_consider': 'papier_only', 'hashtag_background': 493012381} Found hashtag_parmi in final step, will be used and useful if different from matiere_majoritaire in classifier ventilate_hashtags_in_portfolio step not found ! SELECT name, created_at,limit_max FROM MTRDatou.mtr_datou WHERE id=4234 SELECT mtd.id, mtdt.`type`, mtd.`param`, mtd.param_json, mtdt.nb_input, mtdt.nb_output, mtdt.prod, mtdt.is_local, mtdt.is_datou_depend, mtdt.is_photo_id_local FROM MTRDatou.mtr_datou_step mtd, MTRDatou.mtr_datou_step_types mtdt WHERE mtdt.`id`=mtd.`type` AND mtd.mtd_id=4234 SELECT mtd.id, mtd.mtd_id, mdsdt.id, mdsdt.name, mdsdt.description, msid.output_or_input, msid.data_order_id, mdsdt.type FROM MTRDatou.mtr_datou_step mtd, MTRDatou.mtr_datou_steptype_io_datatypes msid, MTRDatou.mtr_datou_step_data_types mdsdt WHERE mtd.`type`=msid.`mtr_datou_step_type` AND mtd.mtd_id= 4234 AND msid.data_type=mdsdt.id SELECT mts_id_output, id_output, mts_id_input, id_input FROM MTRDatou.mtr_datou_step_by_step WHERE mtd_id=4234 # VR 17-11-17 : to create in DB ! Here we check the datou graph and we reorder steps ! Tree builded and cycle checked, now we need to re-order the steps ! We have currenlty an error because there is no dependence between the last step for the case tile - detect - glue We can either keep the depence of, it is better to keep an order compatible with the id of steps if we do not have sons, so a lexical order : (number_son, step_id) All sons are already in current list ! All sons are already in current list ! All sons are already in current list ! All sons are already in current list ! All sons are already in current list ! All sons are already in current list ! All sons are already in current list ! All sons are already in current list ! All sons are already in current list ! All sons are already in current list ! DONE and to test : checkNoCycle ! Here we check the consistency of inputs/outputs number between the given ones and the db ! eke 1-6-18 : checkConsistencyNbInputNbOutput should be processed after step reordering ! WARNING : number of outputs for step 11415 rle_unique_nms_with_priority is not consistent : 2 used against 1 in the step definition ! Step 11419 crop_condition have less inputs used (1) than in the step definition (2) : maybe we manage optionnal inputs ! WARNING : number of outputs for step 11419 crop_condition is not consistent : 4 used against 3 in the step definition ! WARNING : number of inputs for step 11416 ventilate_hashtags_in_portfolio is not consistent : 2 used against 1 in the step definition ! WARNING : number of outputs for step 11416 ventilate_hashtags_in_portfolio is not consistent : 2 used against 1 in the step definition ! Step 11417 final have less inputs used (2) than in the step definition (3) : maybe we manage optionnal inputs ! Step 11417 final have less outputs used (1) than in the step definition (2) : some outputs may be not used ! Step 11422 split_time_score have less inputs used (1) than in the step definition (2) : maybe we manage optionnal inputs ! Number of inputs / outputs for each step checked ! Here we check the consistency of outputs/inputs types during steps connections eke 1-6-18 : checkConsistencyTypeOutputInput should be processed after checkConsistencyNbInputNbOutput ! We ignore checkConsistencyTypeOutputInput for datou_step final ! WARNING : output 0 of step 11416 have datatype=10 whereas input 2 of step 11418 have datatype=6 We ignore checkConsistencyTypeOutputInput for datou_step final ! WARNING : type of input 2 of step 11419 doesn't seem to be define in the database( WARNING : output 1 of step 11415 have datatype=7 whereas input 2 of step 11419 have datatype=None WARNING : type of output 3 of step 11419 doesn't seem to be define in the database( WARNING : type of input 1 of step 11416 doesn't seem to be define in the database( WARNING : type of output 1 of step 11416 doesn't seem to be define in the database( WARNING : type of input 3 of step 11417 doesn't seem to be define in the database( We ignore checkConsistencyTypeOutputInput for datou_step final ! WARNING : output 0 of step 11416 have datatype=10 whereas input 0 of step 11420 have datatype=18 WARNING : type of input 5 of step 11418 doesn't seem to be define in the database( WARNING : output 0 of step 11420 have datatype=11 whereas input 5 of step 11418 have datatype=None WARNING : type of input 2 of step 11416 doesn't seem to be define in the database( WARNING : output 0 of step 11421 have datatype=5 whereas input 2 of step 11416 have datatype=None WARNING : output 0 of step 11418 have datatype=10 whereas input 0 of step 11422 have datatype=18 DataTypes for each output/input checked ! {"input_values":[]} Unexpected error treated as WARNING for now expected given param in final step {'name_pipeline': 'aggregate_carac_ratio', 'hashtag_type': 4230, 'hashtag_proportion': 'papier,carton,metal,pet_clair,autre,pehd,pet_fonce', 'hashtag_parmi': 'refus', 'hashtag_weights': {'autre': 3.0, 'barquette_avec_film': 3.0, 'carton': 3.0, 'metal': 3.0, 'papier': 3.0, 'pehd': 3.0, 'pet_fonce': 3.0, 'pet_clair': 1.0, 'flou': 1.0, 'mal_croppe': 1.0}, 'option_sccu': 1} Found hashtag_parmi in final step, will be used and useful if different from matiere_majoritaire in classifier TODO : Insert select and so on SELECT id, name, misc_info, datou_id_for_right FROM MTRPhoto.dashboard_places WHERE name="dechet_Valcor_v2"; SELECT name, created_at,limit_max FROM MTRDatou.mtr_datou WHERE id=4311 SELECT mtd.id, mtdt.`type`, mtd.`param`, mtd.param_json, mtdt.nb_input, mtdt.nb_output, mtdt.prod, mtdt.is_local, mtdt.is_datou_depend, mtdt.is_photo_id_local FROM MTRDatou.mtr_datou_step mtd, MTRDatou.mtr_datou_step_types mtdt WHERE mtdt.`id`=mtd.`type` AND mtd.mtd_id=4311 SELECT mtd.id, mtd.mtd_id, mdsdt.id, mdsdt.name, mdsdt.description, msid.output_or_input, msid.data_order_id, mdsdt.type FROM MTRDatou.mtr_datou_step mtd, MTRDatou.mtr_datou_steptype_io_datatypes msid, MTRDatou.mtr_datou_step_data_types mdsdt WHERE mtd.`type`=msid.`mtr_datou_step_type` AND mtd.mtd_id= 4311 AND msid.data_type=mdsdt.id SELECT mts_id_output, id_output, mts_id_input, id_input FROM MTRDatou.mtr_datou_step_by_step WHERE mtd_id=4311 # VR 17-11-17 : to create in DB ! Here we check the datou graph and we reorder steps ! Tree builded and cycle checked, now we need to re-order the steps ! We have currenlty an error because there is no dependence between the last step for the case tile - detect - glue We can either keep the depence of, it is better to keep an order compatible with the id of steps if we do not have sons, so a lexical order : (number_son, step_id) All sons are already in current list ! DONE and to test : checkNoCycle ! Here we check the consistency of inputs/outputs number between the given ones and the db ! eke 1-6-18 : checkConsistencyNbInputNbOutput should be processed after step reordering ! WARNING : number of outputs for step 11939 matching_dashboard is not consistent : 1 used against 0 in the step definition ! Step 11940 split_time_score have less inputs used (1) than in the step definition (2) : maybe we manage optionnal inputs ! Number of inputs / outputs for each step checked ! Here we check the consistency of outputs/inputs types during steps connections eke 1-6-18 : checkConsistencyTypeOutputInput should be processed after checkConsistencyNbInputNbOutput ! WARNING : type of output 0 of step 11939 doesn't seem to be define in the database( WARNING : type of input 2 of step 11940 doesn't seem to be define in the database( DataTypes for each output/input checked ! {"input_values":[]} We expected an STS datou with a camera_place_name, so there is a PB, datou_id: 4311 ! None was removed should we ? None was removed should we ? donnée sous forme de texte was removed should we ? [ptf_id0,ptf_id1...] was removed should we ? {'id': 4311, 'name': 'sts_dechet_valcor_matching_v2_2022Q3', 'limit_max': 100, 'nb_steps': 2, 'estimated_time': 8640, 'list_steps': [{'id': 11939, 'type': 'matching_dashboard', 'param': '0', 'json_param_as_string': "{'camera_matching': 'plaque_Valcor', 'max_time_diff': 120, 'matching_method': '1_vs_n', 'input_default_values': []}", 'json_param': {'camera_matching': 'plaque_Valcor', 'max_time_diff': 120, 'matching_method': '1_vs_n', 'input_default_values': []}, 'nb_input': 1, 'nb_output': 0, 'prod': False, 'is_local': False, 'is_datou_depend': False, 'is_photo_id_local': False, 'list_data': [{'step_id': 11939, 'datou_id': 4311, 'type_id': 18, 'name': 'portfolio_id', 'output_or_input': False, 'data_order_id': 0, 'type_python': 'int'}]}, {'id': 11940, 'type': 'split_time_score', 'param': '0', 'json_param_as_string': "{'camera_place_name': 'dechet_Valcor_v2', 'ETA': 8640, 'param_moyenne_mobile': 5, 'thcl': 3442, 'list_task_complete': [''], 'list_tasks': 'LOAD,ORDER,CONVENTION,SPLIT_TRUCK,merge_port_according_to_plate_info,remove_no_plate_batch,CREATE_PORT_LAUNCH_CARAC_FILL_DASHBOARD', 'forced_hashtag': 'truck', 'list_hashtag_class_create': 'truck', 'ponderation': '0.001,0.001,0.001,0.001,0.001', 'datou_proportion_papier': {'test': 370, 'truck': 4234}, 'datou_matching_id': 4311, 'cod': 1, 'min_number_photo_per_batch': 2, 'host': 'marlene.fotonower.com', 'datou_truck_for_info': 4234}", 'json_param': {'camera_place_name': 'dechet_Valcor_v2', 'ETA': 8640, 'param_moyenne_mobile': 5, 'thcl': 3442, 'list_task_complete': [''], 'list_tasks': 'LOAD,ORDER,CONVENTION,SPLIT_TRUCK,merge_port_according_to_plate_info,remove_no_plate_batch,CREATE_PORT_LAUNCH_CARAC_FILL_DASHBOARD', 'forced_hashtag': 'truck', 'list_hashtag_class_create': 'truck', 'ponderation': '0.001,0.001,0.001,0.001,0.001', 'datou_proportion_papier': {'test': 370, 'truck': 4234}, 'datou_matching_id': 4311, 'cod': 1, 'min_number_photo_per_batch': 2, 'host': 'marlene.fotonower.com', 'datou_truck_for_info': 4234}, 'nb_input': 2, 'nb_output': 1, 'prod': False, 'is_local': False, 'is_datou_depend': False, 'is_photo_id_local': False, 'list_data': [{'step_id': 11940, 'datou_id': 4311, 'type_id': 18, 'name': 'portfolio_id', 'output_or_input': False, 'data_order_id': 0, 'type_python': 'int'}, {'step_id': 11940, 'datou_id': 4311, 'type_id': 10, 'name': 'data_string', 'output_or_input': False, 'data_order_id': 1, 'type_python': 'string'}, {'step_id': 11940, 'datou_id': 4311, 'type_id': 22, 'name': 'portfolios_ids_list', 'output_or_input': True, 'data_order_id': 0, 'type_python': 'liste_de_int'}]}], 'depends_step': [{'output': 11939, 'output_id': 0, 'input': 11940, 'input_id': 2}]} check if it is the case where we have multiple sts in one datou no, it is not this case SELECT name, created_at,limit_max FROM MTRDatou.mtr_datou WHERE id=370 SELECT mtd.id, mtdt.`type`, mtd.`param`, mtd.param_json, mtdt.nb_input, mtdt.nb_output, mtdt.prod, mtdt.is_local, mtdt.is_datou_depend, mtdt.is_photo_id_local FROM MTRDatou.mtr_datou_step mtd, MTRDatou.mtr_datou_step_types mtdt WHERE mtdt.`id`=mtd.`type` AND mtd.mtd_id=370 SELECT mtd.id, mtd.mtd_id, mdsdt.id, mdsdt.name, mdsdt.description, msid.output_or_input, msid.data_order_id, mdsdt.type FROM MTRDatou.mtr_datou_step mtd, MTRDatou.mtr_datou_steptype_io_datatypes msid, MTRDatou.mtr_datou_step_data_types mdsdt WHERE mtd.`type`=msid.`mtr_datou_step_type` AND mtd.mtd_id= 370 AND msid.data_type=mdsdt.id SELECT mts_id_output, id_output, mts_id_input, id_input FROM MTRDatou.mtr_datou_step_by_step WHERE mtd_id=370 # VR 17-11-17 : to create in DB ! Here we check the datou graph and we reorder steps ! Tree builded and cycle checked, now we need to re-order the steps ! We have currenlty an error because there is no dependence between the last step for the case tile - detect - glue We can either keep the depence of, it is better to keep an order compatible with the id of steps if we do not have sons, so a lexical order : (number_son, step_id) All sons are already in current list ! All sons are already in current list ! All sons are already in current list ! All sons are already in current list ! DONE and to test : checkNoCycle ! Here we check the consistency of inputs/outputs number between the given ones and the db ! eke 1-6-18 : checkConsistencyNbInputNbOutput should be processed after step reordering ! Number of inputs / outputs for each step checked ! Here we check the consistency of outputs/inputs types during steps connections eke 1-6-18 : checkConsistencyTypeOutputInput should be processed after checkConsistencyNbInputNbOutput ! We ignore checkConsistencyTypeOutputInput for datou_step final ! We ignore checkConsistencyTypeOutputInput for datou_step final ! We ignore checkConsistencyTypeOutputInput for datou_step final ! DataTypes for each output/input checked ! {"input_values":[]} Unexpected error treated as WARNING for now expected given param in final step {'min_score': 0.7, 'name_pipeline': 'proportion_papier_tapis', 'hashtag_type': 705, 'hashtag_proportion': 492668766, 'hashtag_parmi': 538914404, 'hashtag_to_consider': 'papier_only', 'hashtag_background': 493012381} Found hashtag_parmi in final step, will be used and useful if different from matiere_majoritaire in classifier ventilate_hashtags_in_portfolio step not found ! SELECT name, created_at,limit_max FROM MTRDatou.mtr_datou WHERE id=4234 SELECT mtd.id, mtdt.`type`, mtd.`param`, mtd.param_json, mtdt.nb_input, mtdt.nb_output, mtdt.prod, mtdt.is_local, mtdt.is_datou_depend, mtdt.is_photo_id_local FROM MTRDatou.mtr_datou_step mtd, MTRDatou.mtr_datou_step_types mtdt WHERE mtdt.`id`=mtd.`type` AND mtd.mtd_id=4234 SELECT mtd.id, mtd.mtd_id, mdsdt.id, mdsdt.name, mdsdt.description, msid.output_or_input, msid.data_order_id, mdsdt.type FROM MTRDatou.mtr_datou_step mtd, MTRDatou.mtr_datou_steptype_io_datatypes msid, MTRDatou.mtr_datou_step_data_types mdsdt WHERE mtd.`type`=msid.`mtr_datou_step_type` AND mtd.mtd_id= 4234 AND msid.data_type=mdsdt.id SELECT mts_id_output, id_output, mts_id_input, id_input FROM MTRDatou.mtr_datou_step_by_step WHERE mtd_id=4234 # VR 17-11-17 : to create in DB ! Here we check the datou graph and we reorder steps ! Tree builded and cycle checked, now we need to re-order the steps ! We have currenlty an error because there is no dependence between the last step for the case tile - detect - glue We can either keep the depence of, it is better to keep an order compatible with the id of steps if we do not have sons, so a lexical order : (number_son, step_id) All sons are already in current list ! All sons are already in current list ! All sons are already in current list ! All sons are already in current list ! All sons are already in current list ! All sons are already in current list ! All sons are already in current list ! All sons are already in current list ! All sons are already in current list ! All sons are already in current list ! DONE and to test : checkNoCycle ! Here we check the consistency of inputs/outputs number between the given ones and the db ! eke 1-6-18 : checkConsistencyNbInputNbOutput should be processed after step reordering ! WARNING : number of outputs for step 11415 rle_unique_nms_with_priority is not consistent : 2 used against 1 in the step definition ! Step 11419 crop_condition have less inputs used (1) than in the step definition (2) : maybe we manage optionnal inputs ! WARNING : number of outputs for step 11419 crop_condition is not consistent : 4 used against 3 in the step definition ! WARNING : number of inputs for step 11416 ventilate_hashtags_in_portfolio is not consistent : 2 used against 1 in the step definition ! WARNING : number of outputs for step 11416 ventilate_hashtags_in_portfolio is not consistent : 2 used against 1 in the step definition ! Step 11417 final have less inputs used (2) than in the step definition (3) : maybe we manage optionnal inputs ! Step 11417 final have less outputs used (1) than in the step definition (2) : some outputs may be not used ! Step 11422 split_time_score have less inputs used (1) than in the step definition (2) : maybe we manage optionnal inputs ! Number of inputs / outputs for each step checked ! Here we check the consistency of outputs/inputs types during steps connections eke 1-6-18 : checkConsistencyTypeOutputInput should be processed after checkConsistencyNbInputNbOutput ! We ignore checkConsistencyTypeOutputInput for datou_step final ! WARNING : output 0 of step 11416 have datatype=10 whereas input 2 of step 11418 have datatype=6 We ignore checkConsistencyTypeOutputInput for datou_step final ! WARNING : type of input 2 of step 11419 doesn't seem to be define in the database( WARNING : output 1 of step 11415 have datatype=7 whereas input 2 of step 11419 have datatype=None WARNING : type of output 3 of step 11419 doesn't seem to be define in the database( WARNING : type of input 1 of step 11416 doesn't seem to be define in the database( WARNING : type of output 1 of step 11416 doesn't seem to be define in the database( WARNING : type of input 3 of step 11417 doesn't seem to be define in the database( We ignore checkConsistencyTypeOutputInput for datou_step final ! WARNING : output 0 of step 11416 have datatype=10 whereas input 0 of step 11420 have datatype=18 WARNING : type of input 5 of step 11418 doesn't seem to be define in the database( WARNING : output 0 of step 11420 have datatype=11 whereas input 5 of step 11418 have datatype=None WARNING : type of input 2 of step 11416 doesn't seem to be define in the database( WARNING : output 0 of step 11421 have datatype=5 whereas input 2 of step 11416 have datatype=None WARNING : output 0 of step 11418 have datatype=10 whereas input 0 of step 11422 have datatype=18 DataTypes for each output/input checked ! {"input_values":[]} Unexpected error treated as WARNING for now expected given param in final step {'name_pipeline': 'aggregate_carac_ratio', 'hashtag_type': 4230, 'hashtag_proportion': 'papier,carton,metal,pet_clair,autre,pehd,pet_fonce', 'hashtag_parmi': 'refus', 'hashtag_weights': {'autre': 3.0, 'barquette_avec_film': 3.0, 'carton': 3.0, 'metal': 3.0, 'papier': 3.0, 'pehd': 3.0, 'pet_fonce': 3.0, 'pet_clair': 1.0, 'flou': 1.0, 'mal_croppe': 1.0}, 'option_sccu': 1} Found hashtag_parmi in final step, will be used and useful if different from matiere_majoritaire in classifier place_id : 132 month : 04 mtr_id : 1055 dashboard_places : dechet_Valcor_v2 date : 2026-04 year : 2026 raspi : 20084 select count(distinct mtr_photo_id) from MTRUser.mtr_portfolio_photos where mtr_portfolio_id in (select id from MTRUser.mtr_portfolios where id in (select mtr_portfolio_id from MTRPhoto.dashboard_results where dashboard_run_id in(select last_run_id from MTRPhoto.dashboard_entry_day where dashboard_place_id in (select id from MTRPhoto.dashboard_places where name = 'dechet_Valcor_v2' and date like '%2026-04%') and created_at like '%2026-04%'))); nb_day : (2, 30) after unwanted_material_data nb_day : (2, 30) SQL: SELECT ms.id, ms.name, mst.name as type, ms.test_group, ms.test_name, ms.server, ms.version_code, ms.result_str, ms.result_bool, ms.result_float, ms.lien, ms.created_at FROM MTRAdmin.monitor_sys ms INNER JOIN MTRAdmin.monitor_sys_type mst on mst.id = ms.type WHERE ms.test_name like '%20084%' AND ms.result_str like '%2026/04%'ORDER BY ms.id desc LIMIT 0, 1000000; No error ? {'log_dict': {'total_nb_images': 2120, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21200 seconds', 'coverage_times_pause': '0 days 42400 seconds', 'nb_photos_decision': 2123, 'nb_gray_level_ok': 2123, 'nb_dedup_ok': 1795, 'nb_two_criteria_ok': 1795, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 328, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_uploaded': 1791, 'ratio_coverage': 0.24537321033808263}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/26', 'portfolio_id': 31023518, 'last_run_id': 2984874, 'total_number_of_photos': 1808}} No error ? {'log_dict': {'total_nb_images': 2122, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21220 seconds', 'coverage_times_pause': '0 days 42440 seconds', 'nb_photos_decision': 2122, 'nb_gray_level_ok': 2122, 'nb_dedup_ok': 1762, 'nb_two_criteria_ok': 1762, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 360, 'end_of_day_photos_nothing_done': 3, 'end_of_day_photos_uploaded': 1759, 'ratio_coverage': 0.24560469449877892}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/25', 'portfolio_id': 31019370, 'last_run_id': 2984510, 'total_number_of_photos': 1781}} No error ? {'log_dict': {'total_nb_images': 2121, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21210 seconds', 'coverage_times_pause': '0 days 42420 seconds', 'nb_photos_decision': 2122, 'nb_gray_level_ok': 2122, 'nb_dedup_ok': 1798, 'nb_two_criteria_ok': 1798, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 324, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 3, 'end_of_day_photos_uploaded': 1793, 'ratio_coverage': 0.24548895241843077}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/24', 'portfolio_id': 31015055, 'last_run_id': 2984040, 'total_number_of_photos': 1819}} No error ? {'log_dict': {'total_nb_images': 2121, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21210 seconds', 'coverage_times_pause': '0 days 42420 seconds', 'nb_photos_decision': 2122, 'nb_gray_level_ok': 2122, 'nb_dedup_ok': 1938, 'nb_two_criteria_ok': 1938, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 184, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 2, 'end_of_day_photos_uploaded': 1934, 'ratio_coverage': 0.24548895241843077}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/23', 'portfolio_id': 31010877, 'last_run_id': 2983518, 'total_number_of_photos': 1958}} No error ? {'log_dict': {'total_nb_images': 2125, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21250 seconds', 'coverage_times_pause': '0 days 42500 seconds', 'nb_photos_decision': 2127, 'nb_gray_level_ok': 2127, 'nb_dedup_ok': 1979, 'nb_two_criteria_ok': 1979, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 148, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 5, 'end_of_day_photos_uploaded': 1971, 'ratio_coverage': 0.2459519207398234}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/22', 'portfolio_id': 31007780, 'last_run_id': 2982922, 'total_number_of_photos': 2024}} No error ? {'log_dict': {'total_nb_images': 2120, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21200 seconds', 'coverage_times_pause': '0 days 42400 seconds', 'nb_photos_decision': 2121, 'nb_gray_level_ok': 2121, 'nb_dedup_ok': 1946, 'nb_two_criteria_ok': 1946, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 175, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 3, 'end_of_day_photos_uploaded': 1941, 'ratio_coverage': 0.24537321033808263}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/21', 'portfolio_id': 31003184, 'last_run_id': 2982604, 'total_number_of_photos': 2021}} No error ? {'log_dict': {'total_nb_images': 2120, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21200 seconds', 'coverage_times_pause': '0 days 42400 seconds', 'nb_photos_decision': 2121, 'nb_gray_level_ok': 2121, 'nb_dedup_ok': 1731, 'nb_two_criteria_ok': 1731, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 390, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 2, 'end_of_day_photos_uploaded': 1727, 'ratio_coverage': 0.24537321033808263}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/20', 'portfolio_id': 30995157, 'last_run_id': 2982130, 'total_number_of_photos': 1745}} No error ? {'log_dict': {'total_nb_images': 2122, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21220 seconds', 'coverage_times_pause': '0 days 42440 seconds', 'nb_photos_decision': 2122, 'nb_gray_level_ok': 2122, 'nb_dedup_ok': 1762, 'nb_two_criteria_ok': 1762, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 360, 'end_of_day_photos_nothing_done': 3, 'end_of_day_photos_uploaded': 1759, 'ratio_coverage': 0.24560469449877892}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/25', 'portfolio_id': 31019370, 'last_run_id': 2984492, 'total_number_of_photos': 1781}} No error ? {'log_dict': {'total_nb_images': 2121, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21210 seconds', 'coverage_times_pause': '0 days 42420 seconds', 'nb_photos_decision': 2122, 'nb_gray_level_ok': 2122, 'nb_dedup_ok': 1798, 'nb_two_criteria_ok': 1798, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 324, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 3, 'end_of_day_photos_uploaded': 1793, 'ratio_coverage': 0.24548895241843077}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/24', 'portfolio_id': 31015055, 'last_run_id': 2984040, 'total_number_of_photos': 1819}} No error ? {'log_dict': {'total_nb_images': 2121, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21210 seconds', 'coverage_times_pause': '0 days 42420 seconds', 'nb_photos_decision': 2122, 'nb_gray_level_ok': 2122, 'nb_dedup_ok': 1938, 'nb_two_criteria_ok': 1938, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 184, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 2, 'end_of_day_photos_uploaded': 1934, 'ratio_coverage': 0.24548895241843077}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/23', 'portfolio_id': 31010877, 'last_run_id': 2983518, 'total_number_of_photos': 1958}} No error ? {'log_dict': {'total_nb_images': 2125, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21250 seconds', 'coverage_times_pause': '0 days 42500 seconds', 'nb_photos_decision': 2127, 'nb_gray_level_ok': 2127, 'nb_dedup_ok': 1979, 'nb_two_criteria_ok': 1979, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 148, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 5, 'end_of_day_photos_uploaded': 1971, 'ratio_coverage': 0.2459519207398234}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/22', 'portfolio_id': 31007780, 'last_run_id': 2982922, 'total_number_of_photos': 2024}} No error ? {'log_dict': {'total_nb_images': 2120, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21200 seconds', 'coverage_times_pause': '0 days 42400 seconds', 'nb_photos_decision': 2121, 'nb_gray_level_ok': 2121, 'nb_dedup_ok': 1946, 'nb_two_criteria_ok': 1946, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 175, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 3, 'end_of_day_photos_uploaded': 1941, 'ratio_coverage': 0.24537321033808263}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/21', 'portfolio_id': 31003184, 'last_run_id': 2982604, 'total_number_of_photos': 2021}} No error ? {'log_dict': {'total_nb_images': 2120, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21200 seconds', 'coverage_times_pause': '0 days 42400 seconds', 'nb_photos_decision': 2121, 'nb_gray_level_ok': 2121, 'nb_dedup_ok': 1731, 'nb_two_criteria_ok': 1731, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 390, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 2, 'end_of_day_photos_uploaded': 1727, 'ratio_coverage': 0.24537321033808263}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/20', 'portfolio_id': 30995157, 'last_run_id': 2982130, 'total_number_of_photos': 1745}} No error ? {'log_dict': {'total_nb_images': 2121, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21210 seconds', 'coverage_times_pause': '0 days 42420 seconds', 'nb_photos_decision': 2122, 'nb_gray_level_ok': 2122, 'nb_dedup_ok': 1924, 'nb_two_criteria_ok': 1924, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 197, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_uploaded': 1923, 'ratio_coverage': 0.24548895241843077}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/19', 'portfolio_id': 30993511, 'last_run_id': 2981836, 'total_number_of_photos': 1943}} No error ? {'log_dict': {'total_nb_images': 2121, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21210 seconds', 'coverage_times_pause': '0 days 42420 seconds', 'nb_photos_decision': 2122, 'nb_gray_level_ok': 2122, 'nb_dedup_ok': 1798, 'nb_two_criteria_ok': 1798, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 324, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 3, 'end_of_day_photos_uploaded': 1793, 'ratio_coverage': 0.24548895241843077}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/24', 'portfolio_id': 31015055, 'last_run_id': 2984018, 'total_number_of_photos': 1819}} No error ? {'log_dict': {'total_nb_images': 2121, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21210 seconds', 'coverage_times_pause': '0 days 42420 seconds', 'nb_photos_decision': 2122, 'nb_gray_level_ok': 2122, 'nb_dedup_ok': 1938, 'nb_two_criteria_ok': 1938, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 184, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 2, 'end_of_day_photos_uploaded': 1934, 'ratio_coverage': 0.24548895241843077}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/23', 'portfolio_id': 31010877, 'last_run_id': 2983518, 'total_number_of_photos': 1958}} No error ? {'log_dict': {'total_nb_images': 2125, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21250 seconds', 'coverage_times_pause': '0 days 42500 seconds', 'nb_photos_decision': 2127, 'nb_gray_level_ok': 2127, 'nb_dedup_ok': 1979, 'nb_two_criteria_ok': 1979, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 148, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 5, 'end_of_day_photos_uploaded': 1971, 'ratio_coverage': 0.2459519207398234}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/22', 'portfolio_id': 31007780, 'last_run_id': 2982922, 'total_number_of_photos': 2024}} No error ? {'log_dict': {'total_nb_images': 2120, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21200 seconds', 'coverage_times_pause': '0 days 42400 seconds', 'nb_photos_decision': 2121, 'nb_gray_level_ok': 2121, 'nb_dedup_ok': 1946, 'nb_two_criteria_ok': 1946, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 175, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 3, 'end_of_day_photos_uploaded': 1941, 'ratio_coverage': 0.24537321033808263}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/21', 'portfolio_id': 31003184, 'last_run_id': 2982604, 'total_number_of_photos': 2021}} No error ? {'log_dict': {'total_nb_images': 2120, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21200 seconds', 'coverage_times_pause': '0 days 42400 seconds', 'nb_photos_decision': 2121, 'nb_gray_level_ok': 2121, 'nb_dedup_ok': 1731, 'nb_two_criteria_ok': 1731, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 390, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 2, 'end_of_day_photos_uploaded': 1727, 'ratio_coverage': 0.24537321033808263}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/20', 'portfolio_id': 30995157, 'last_run_id': 2982130, 'total_number_of_photos': 1745}} No error ? {'log_dict': {'total_nb_images': 2121, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21210 seconds', 'coverage_times_pause': '0 days 42420 seconds', 'nb_photos_decision': 2122, 'nb_gray_level_ok': 2122, 'nb_dedup_ok': 1924, 'nb_two_criteria_ok': 1924, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 197, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_uploaded': 1923, 'ratio_coverage': 0.24548895241843077}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/19', 'portfolio_id': 30993511, 'last_run_id': 2981836, 'total_number_of_photos': 1943}} No error ? {'log_dict': {'total_nb_images': 2125, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21250 seconds', 'coverage_times_pause': '0 days 42500 seconds', 'nb_photos_decision': 2128, 'nb_gray_level_ok': 2128, 'nb_dedup_ok': 1944, 'nb_two_criteria_ok': 1944, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 184, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_uploaded': 1940, 'ratio_coverage': 0.2459519207398234}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/18', 'portfolio_id': 30992942, 'last_run_id': 2981342, 'total_number_of_photos': 1959}} No error ? {'log_dict': {'total_nb_images': 2121, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21210 seconds', 'coverage_times_pause': '0 days 42420 seconds', 'nb_photos_decision': 2122, 'nb_gray_level_ok': 2122, 'nb_dedup_ok': 1938, 'nb_two_criteria_ok': 1938, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 184, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 2, 'end_of_day_photos_uploaded': 1934, 'ratio_coverage': 0.24548895241843077}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/23', 'portfolio_id': 31010877, 'last_run_id': 2983482, 'total_number_of_photos': 1958}} No error ? {'log_dict': {'total_nb_images': 2125, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21250 seconds', 'coverage_times_pause': '0 days 42500 seconds', 'nb_photos_decision': 2127, 'nb_gray_level_ok': 2127, 'nb_dedup_ok': 1979, 'nb_two_criteria_ok': 1979, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 148, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 5, 'end_of_day_photos_uploaded': 1971, 'ratio_coverage': 0.2459519207398234}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/22', 'portfolio_id': 31007780, 'last_run_id': 2982922, 'total_number_of_photos': 2024}} No error ? {'log_dict': {'total_nb_images': 2120, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21200 seconds', 'coverage_times_pause': '0 days 42400 seconds', 'nb_photos_decision': 2121, 'nb_gray_level_ok': 2121, 'nb_dedup_ok': 1946, 'nb_two_criteria_ok': 1946, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 175, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 3, 'end_of_day_photos_uploaded': 1941, 'ratio_coverage': 0.24537321033808263}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/21', 'portfolio_id': 31003184, 'last_run_id': 2982604, 'total_number_of_photos': 2021}} No error ? {'log_dict': {'total_nb_images': 2120, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21200 seconds', 'coverage_times_pause': '0 days 42400 seconds', 'nb_photos_decision': 2121, 'nb_gray_level_ok': 2121, 'nb_dedup_ok': 1731, 'nb_two_criteria_ok': 1731, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 390, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 2, 'end_of_day_photos_uploaded': 1727, 'ratio_coverage': 0.24537321033808263}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/20', 'portfolio_id': 30995157, 'last_run_id': 2982130, 'total_number_of_photos': 1745}} No error ? {'log_dict': {'total_nb_images': 2121, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21210 seconds', 'coverage_times_pause': '0 days 42420 seconds', 'nb_photos_decision': 2122, 'nb_gray_level_ok': 2122, 'nb_dedup_ok': 1924, 'nb_two_criteria_ok': 1924, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 197, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_uploaded': 1923, 'ratio_coverage': 0.24548895241843077}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/19', 'portfolio_id': 30993511, 'last_run_id': 2981836, 'total_number_of_photos': 1943}} No error ? {'log_dict': {'total_nb_images': 2125, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21250 seconds', 'coverage_times_pause': '0 days 42500 seconds', 'nb_photos_decision': 2128, 'nb_gray_level_ok': 2128, 'nb_dedup_ok': 1944, 'nb_two_criteria_ok': 1944, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 184, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_uploaded': 1940, 'ratio_coverage': 0.2459519207398234}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/18', 'portfolio_id': 30992942, 'last_run_id': 2981342, 'total_number_of_photos': 1959}} No error ? {'log_dict': {'total_nb_images': 2118, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21180 seconds', 'coverage_times_pause': '0 days 42360 seconds', 'nb_photos_decision': 2119, 'nb_gray_level_ok': 2119, 'nb_dedup_ok': 1961, 'nb_two_criteria_ok': 1961, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 158, 'end_of_day_photos_nothing_done': 2, 'end_of_day_photos_uploaded': 1958, 'ratio_coverage': 0.2451417261773863}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/17', 'portfolio_id': 30988934, 'last_run_id': 2981132, 'total_number_of_photos': 1982}} No error ? {'log_dict': {'total_nb_images': 2125, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21250 seconds', 'coverage_times_pause': '0 days 42500 seconds', 'nb_photos_decision': 2127, 'nb_gray_level_ok': 2127, 'nb_dedup_ok': 1979, 'nb_two_criteria_ok': 1979, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 148, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 5, 'end_of_day_photos_uploaded': 1971, 'ratio_coverage': 0.2459519207398234}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/22', 'portfolio_id': 31007780, 'last_run_id': 2982922, 'total_number_of_photos': 2024}} No error ? {'log_dict': {'total_nb_images': 2120, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21200 seconds', 'coverage_times_pause': '0 days 42400 seconds', 'nb_photos_decision': 2121, 'nb_gray_level_ok': 2121, 'nb_dedup_ok': 1946, 'nb_two_criteria_ok': 1946, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 175, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 3, 'end_of_day_photos_uploaded': 1941, 'ratio_coverage': 0.24537321033808263}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/21', 'portfolio_id': 31003184, 'last_run_id': 2982604, 'total_number_of_photos': 2021}} No error ? {'log_dict': {'total_nb_images': 2120, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21200 seconds', 'coverage_times_pause': '0 days 42400 seconds', 'nb_photos_decision': 2121, 'nb_gray_level_ok': 2121, 'nb_dedup_ok': 1731, 'nb_two_criteria_ok': 1731, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 390, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 2, 'end_of_day_photos_uploaded': 1727, 'ratio_coverage': 0.24537321033808263}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/20', 'portfolio_id': 30995157, 'last_run_id': 2982130, 'total_number_of_photos': 1745}} No error ? {'log_dict': {'total_nb_images': 2121, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21210 seconds', 'coverage_times_pause': '0 days 42420 seconds', 'nb_photos_decision': 2122, 'nb_gray_level_ok': 2122, 'nb_dedup_ok': 1924, 'nb_two_criteria_ok': 1924, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 197, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_uploaded': 1923, 'ratio_coverage': 0.24548895241843077}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/19', 'portfolio_id': 30993511, 'last_run_id': 2981836, 'total_number_of_photos': 1943}} No error ? {'log_dict': {'total_nb_images': 2125, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21250 seconds', 'coverage_times_pause': '0 days 42500 seconds', 'nb_photos_decision': 2128, 'nb_gray_level_ok': 2128, 'nb_dedup_ok': 1944, 'nb_two_criteria_ok': 1944, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 184, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_uploaded': 1940, 'ratio_coverage': 0.2459519207398234}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/18', 'portfolio_id': 30992942, 'last_run_id': 2981342, 'total_number_of_photos': 1959}} No error ? {'log_dict': {'total_nb_images': 2118, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21180 seconds', 'coverage_times_pause': '0 days 42360 seconds', 'nb_photos_decision': 2119, 'nb_gray_level_ok': 2119, 'nb_dedup_ok': 1961, 'nb_two_criteria_ok': 1961, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 158, 'end_of_day_photos_nothing_done': 2, 'end_of_day_photos_uploaded': 1958, 'ratio_coverage': 0.2451417261773863}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/17', 'portfolio_id': 30988934, 'last_run_id': 2981132, 'total_number_of_photos': 1982}} No error ? {'log_dict': {'total_nb_images': 2121, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21210 seconds', 'coverage_times_pause': '0 days 42420 seconds', 'nb_photos_decision': 2123, 'nb_gray_level_ok': 2123, 'nb_dedup_ok': 1975, 'nb_two_criteria_ok': 1975, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 148, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 1, 'end_of_day_photos_uploaded': 1971, 'ratio_coverage': 0.24548895241843077}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/16', 'portfolio_id': 30983504, 'last_run_id': 2980626, 'total_number_of_photos': 1992}} No error ? {'log_dict': {'total_nb_images': 2120, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21200 seconds', 'coverage_times_pause': '0 days 42400 seconds', 'nb_photos_decision': 2121, 'nb_gray_level_ok': 2121, 'nb_dedup_ok': 1946, 'nb_two_criteria_ok': 1946, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 175, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 3, 'end_of_day_photos_uploaded': 1941, 'ratio_coverage': 0.24537321033808263}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/21', 'portfolio_id': 31003184, 'last_run_id': 2982582, 'total_number_of_photos': 2021}} No error ? {'log_dict': {'total_nb_images': 2120, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21200 seconds', 'coverage_times_pause': '0 days 42400 seconds', 'nb_photos_decision': 2121, 'nb_gray_level_ok': 2121, 'nb_dedup_ok': 1731, 'nb_two_criteria_ok': 1731, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 390, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 2, 'end_of_day_photos_uploaded': 1727, 'ratio_coverage': 0.24537321033808263}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/20', 'portfolio_id': 30995157, 'last_run_id': 2982130, 'total_number_of_photos': 1745}} No error ? {'log_dict': {'total_nb_images': 2121, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21210 seconds', 'coverage_times_pause': '0 days 42420 seconds', 'nb_photos_decision': 2122, 'nb_gray_level_ok': 2122, 'nb_dedup_ok': 1924, 'nb_two_criteria_ok': 1924, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 197, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_uploaded': 1923, 'ratio_coverage': 0.24548895241843077}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/19', 'portfolio_id': 30993511, 'last_run_id': 2981836, 'total_number_of_photos': 1943}} No error ? {'log_dict': {'total_nb_images': 2125, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21250 seconds', 'coverage_times_pause': '0 days 42500 seconds', 'nb_photos_decision': 2128, 'nb_gray_level_ok': 2128, 'nb_dedup_ok': 1944, 'nb_two_criteria_ok': 1944, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 184, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_uploaded': 1940, 'ratio_coverage': 0.2459519207398234}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/18', 'portfolio_id': 30992942, 'last_run_id': 2981342, 'total_number_of_photos': 1959}} No error ? {'log_dict': {'total_nb_images': 2118, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21180 seconds', 'coverage_times_pause': '0 days 42360 seconds', 'nb_photos_decision': 2119, 'nb_gray_level_ok': 2119, 'nb_dedup_ok': 1961, 'nb_two_criteria_ok': 1961, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 158, 'end_of_day_photos_nothing_done': 2, 'end_of_day_photos_uploaded': 1958, 'ratio_coverage': 0.2451417261773863}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/17', 'portfolio_id': 30988934, 'last_run_id': 2981132, 'total_number_of_photos': 1982}} No error ? {'log_dict': {'total_nb_images': 2121, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21210 seconds', 'coverage_times_pause': '0 days 42420 seconds', 'nb_photos_decision': 2123, 'nb_gray_level_ok': 2123, 'nb_dedup_ok': 1975, 'nb_two_criteria_ok': 1975, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 148, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 1, 'end_of_day_photos_uploaded': 1971, 'ratio_coverage': 0.24548895241843077}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/16', 'portfolio_id': 30983504, 'last_run_id': 2980626, 'total_number_of_photos': 1992}} No error ? {'log_dict': {'total_nb_images': 2118, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21180 seconds', 'coverage_times_pause': '0 days 42360 seconds', 'nb_photos_decision': 2119, 'nb_gray_level_ok': 2119, 'nb_dedup_ok': 2031, 'nb_two_criteria_ok': 2031, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 87, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 1, 'end_of_day_photos_uploaded': 2029, 'ratio_coverage': 0.2451417261773863}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/15', 'portfolio_id': 30978369, 'last_run_id': 2979966, 'total_number_of_photos': 2057}} No error ? {'log_dict': {'total_nb_images': 2120, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21200 seconds', 'coverage_times_pause': '0 days 42400 seconds', 'nb_photos_decision': 2121, 'nb_gray_level_ok': 2121, 'nb_dedup_ok': 1731, 'nb_two_criteria_ok': 1731, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 390, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 2, 'end_of_day_photos_uploaded': 1727, 'ratio_coverage': 0.24537321033808263}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/20', 'portfolio_id': 30995157, 'last_run_id': 2982112, 'total_number_of_photos': 1745}} No error ? {'log_dict': {'total_nb_images': 2121, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21210 seconds', 'coverage_times_pause': '0 days 42420 seconds', 'nb_photos_decision': 2122, 'nb_gray_level_ok': 2122, 'nb_dedup_ok': 1924, 'nb_two_criteria_ok': 1924, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 197, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_uploaded': 1923, 'ratio_coverage': 0.24548895241843077}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/19', 'portfolio_id': 30993511, 'last_run_id': 2981836, 'total_number_of_photos': 1943}} No error ? {'log_dict': {'total_nb_images': 2125, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21250 seconds', 'coverage_times_pause': '0 days 42500 seconds', 'nb_photos_decision': 2128, 'nb_gray_level_ok': 2128, 'nb_dedup_ok': 1944, 'nb_two_criteria_ok': 1944, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 184, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_uploaded': 1940, 'ratio_coverage': 0.2459519207398234}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/18', 'portfolio_id': 30992942, 'last_run_id': 2981342, 'total_number_of_photos': 1959}} No error ? {'log_dict': {'total_nb_images': 2118, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21180 seconds', 'coverage_times_pause': '0 days 42360 seconds', 'nb_photos_decision': 2119, 'nb_gray_level_ok': 2119, 'nb_dedup_ok': 1961, 'nb_two_criteria_ok': 1961, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 158, 'end_of_day_photos_nothing_done': 2, 'end_of_day_photos_uploaded': 1958, 'ratio_coverage': 0.2451417261773863}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/17', 'portfolio_id': 30988934, 'last_run_id': 2981132, 'total_number_of_photos': 1982}} No error ? {'log_dict': {'total_nb_images': 2121, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21210 seconds', 'coverage_times_pause': '0 days 42420 seconds', 'nb_photos_decision': 2123, 'nb_gray_level_ok': 2123, 'nb_dedup_ok': 1975, 'nb_two_criteria_ok': 1975, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 148, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 1, 'end_of_day_photos_uploaded': 1971, 'ratio_coverage': 0.24548895241843077}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/16', 'portfolio_id': 30983504, 'last_run_id': 2980626, 'total_number_of_photos': 1992}} No error ? {'log_dict': {'total_nb_images': 2118, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21180 seconds', 'coverage_times_pause': '0 days 42360 seconds', 'nb_photos_decision': 2119, 'nb_gray_level_ok': 2119, 'nb_dedup_ok': 2031, 'nb_two_criteria_ok': 2031, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 87, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 1, 'end_of_day_photos_uploaded': 2029, 'ratio_coverage': 0.2451417261773863}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/15', 'portfolio_id': 30978369, 'last_run_id': 2979966, 'total_number_of_photos': 2057}} No error ? {'log_dict': {'total_nb_images': 2123, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21230 seconds', 'coverage_times_pause': '0 days 42460 seconds', 'nb_photos_decision': 2126, 'nb_gray_level_ok': 2126, 'nb_dedup_ok': 1905, 'nb_two_criteria_ok': 1905, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 220, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 1, 'end_of_day_photos_uploaded': 1901, 'ratio_coverage': 0.24572043657912707}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/14', 'portfolio_id': 30973576, 'last_run_id': 2979374, 'total_number_of_photos': 1921}} No error ? {'log_dict': {'total_nb_images': 2121, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21210 seconds', 'coverage_times_pause': '0 days 42420 seconds', 'nb_photos_decision': 2122, 'nb_gray_level_ok': 2122, 'nb_dedup_ok': 1924, 'nb_two_criteria_ok': 1924, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 197, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_uploaded': 1923, 'ratio_coverage': 0.24548895241843077}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/18', 'portfolio_id': 30993511, 'last_run_id': 2981492, 'total_number_of_photos': 1943}} No error ? {'log_dict': {'total_nb_images': 2125, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21250 seconds', 'coverage_times_pause': '0 days 42500 seconds', 'nb_photos_decision': 2128, 'nb_gray_level_ok': 2128, 'nb_dedup_ok': 1944, 'nb_two_criteria_ok': 1944, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 184, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_uploaded': 1940, 'ratio_coverage': 0.2459519207398234}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/18', 'portfolio_id': 30992942, 'last_run_id': 2981342, 'total_number_of_photos': 1959}} No error ? {'log_dict': {'total_nb_images': 2118, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21180 seconds', 'coverage_times_pause': '0 days 42360 seconds', 'nb_photos_decision': 2119, 'nb_gray_level_ok': 2119, 'nb_dedup_ok': 1961, 'nb_two_criteria_ok': 1961, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 158, 'end_of_day_photos_nothing_done': 2, 'end_of_day_photos_uploaded': 1958, 'ratio_coverage': 0.2451417261773863}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/17', 'portfolio_id': 30988934, 'last_run_id': 2981132, 'total_number_of_photos': 1982}} No error ? {'log_dict': {'total_nb_images': 2121, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21210 seconds', 'coverage_times_pause': '0 days 42420 seconds', 'nb_photos_decision': 2123, 'nb_gray_level_ok': 2123, 'nb_dedup_ok': 1975, 'nb_two_criteria_ok': 1975, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 148, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 1, 'end_of_day_photos_uploaded': 1971, 'ratio_coverage': 0.24548895241843077}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/16', 'portfolio_id': 30983504, 'last_run_id': 2980626, 'total_number_of_photos': 1992}} No error ? {'log_dict': {'total_nb_images': 2118, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21180 seconds', 'coverage_times_pause': '0 days 42360 seconds', 'nb_photos_decision': 2119, 'nb_gray_level_ok': 2119, 'nb_dedup_ok': 2031, 'nb_two_criteria_ok': 2031, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 87, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 1, 'end_of_day_photos_uploaded': 2029, 'ratio_coverage': 0.2451417261773863}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/15', 'portfolio_id': 30978369, 'last_run_id': 2979966, 'total_number_of_photos': 2057}} No error ? {'log_dict': {'total_nb_images': 2123, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21230 seconds', 'coverage_times_pause': '0 days 42460 seconds', 'nb_photos_decision': 2126, 'nb_gray_level_ok': 2126, 'nb_dedup_ok': 1905, 'nb_two_criteria_ok': 1905, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 220, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 1, 'end_of_day_photos_uploaded': 1901, 'ratio_coverage': 0.24572043657912707}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/14', 'portfolio_id': 30973576, 'last_run_id': 2979374, 'total_number_of_photos': 1921}} No error ? {'log_dict': {'total_nb_images': 2116, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21160 seconds', 'coverage_times_pause': '0 days 42320 seconds', 'nb_photos_decision': 2117, 'nb_gray_level_ok': 2117, 'nb_dedup_ok': 1946, 'nb_two_criteria_ok': 1946, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 171, 'end_of_day_photos_nothing_done': 2, 'end_of_day_photos_uploaded': 1943, 'ratio_coverage': 0.24491024201669}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/13', 'portfolio_id': 30968285, 'last_run_id': 2978744, 'total_number_of_photos': 1970}} No error ? {'log_dict': {'total_nb_images': 2125, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21250 seconds', 'coverage_times_pause': '0 days 42500 seconds', 'nb_photos_decision': 2128, 'nb_gray_level_ok': 2128, 'nb_dedup_ok': 1944, 'nb_two_criteria_ok': 1944, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 184, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_uploaded': 1940, 'ratio_coverage': 0.2459519207398234}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/18', 'portfolio_id': 30992942, 'last_run_id': 2981342, 'total_number_of_photos': 1959}} No error ? {'log_dict': {'total_nb_images': 2118, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21180 seconds', 'coverage_times_pause': '0 days 42360 seconds', 'nb_photos_decision': 2119, 'nb_gray_level_ok': 2119, 'nb_dedup_ok': 1961, 'nb_two_criteria_ok': 1961, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 158, 'end_of_day_photos_nothing_done': 2, 'end_of_day_photos_uploaded': 1958, 'ratio_coverage': 0.2451417261773863}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/17', 'portfolio_id': 30988934, 'last_run_id': 2981132, 'total_number_of_photos': 1982}} No error ? {'log_dict': {'total_nb_images': 2121, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21210 seconds', 'coverage_times_pause': '0 days 42420 seconds', 'nb_photos_decision': 2123, 'nb_gray_level_ok': 2123, 'nb_dedup_ok': 1975, 'nb_two_criteria_ok': 1975, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 148, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 1, 'end_of_day_photos_uploaded': 1971, 'ratio_coverage': 0.24548895241843077}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/16', 'portfolio_id': 30983504, 'last_run_id': 2980626, 'total_number_of_photos': 1992}} No error ? {'log_dict': {'total_nb_images': 2118, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21180 seconds', 'coverage_times_pause': '0 days 42360 seconds', 'nb_photos_decision': 2119, 'nb_gray_level_ok': 2119, 'nb_dedup_ok': 2031, 'nb_two_criteria_ok': 2031, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 87, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 1, 'end_of_day_photos_uploaded': 2029, 'ratio_coverage': 0.2451417261773863}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/15', 'portfolio_id': 30978369, 'last_run_id': 2979966, 'total_number_of_photos': 2057}} No error ? {'log_dict': {'total_nb_images': 2123, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21230 seconds', 'coverage_times_pause': '0 days 42460 seconds', 'nb_photos_decision': 2126, 'nb_gray_level_ok': 2126, 'nb_dedup_ok': 1905, 'nb_two_criteria_ok': 1905, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 220, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 1, 'end_of_day_photos_uploaded': 1901, 'ratio_coverage': 0.24572043657912707}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/14', 'portfolio_id': 30973576, 'last_run_id': 2979374, 'total_number_of_photos': 1921}} No error ? {'log_dict': {'total_nb_images': 2116, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21160 seconds', 'coverage_times_pause': '0 days 42320 seconds', 'nb_photos_decision': 2117, 'nb_gray_level_ok': 2117, 'nb_dedup_ok': 1946, 'nb_two_criteria_ok': 1946, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 171, 'end_of_day_photos_nothing_done': 2, 'end_of_day_photos_uploaded': 1943, 'ratio_coverage': 0.24491024201669}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/13', 'portfolio_id': 30968285, 'last_run_id': 2978744, 'total_number_of_photos': 1970}} No error ? {'log_dict': {'total_nb_images': 2123, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21230 seconds', 'coverage_times_pause': '0 days 42460 seconds', 'nb_photos_decision': 2125, 'nb_gray_level_ok': 2125, 'nb_dedup_ok': 2032, 'nb_two_criteria_ok': 2032, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 93, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 3, 'end_of_day_photos_uploaded': 2026, 'ratio_coverage': 0.24572043657912707}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/12', 'portfolio_id': 30964774, 'last_run_id': 2978308, 'total_number_of_photos': 2044}} No error ? {'log_dict': {'total_nb_images': 2118, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21180 seconds', 'coverage_times_pause': '0 days 42360 seconds', 'nb_photos_decision': 2119, 'nb_gray_level_ok': 2119, 'nb_dedup_ok': 1961, 'nb_two_criteria_ok': 1961, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 158, 'end_of_day_photos_nothing_done': 2, 'end_of_day_photos_uploaded': 1958, 'ratio_coverage': 0.2451417261773863}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/17', 'portfolio_id': 30988934, 'last_run_id': 2981132, 'total_number_of_photos': 1982}} No error ? {'log_dict': {'total_nb_images': 2121, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21210 seconds', 'coverage_times_pause': '0 days 42420 seconds', 'nb_photos_decision': 2123, 'nb_gray_level_ok': 2123, 'nb_dedup_ok': 1975, 'nb_two_criteria_ok': 1975, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 148, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 1, 'end_of_day_photos_uploaded': 1971, 'ratio_coverage': 0.24548895241843077}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/16', 'portfolio_id': 30983504, 'last_run_id': 2980626, 'total_number_of_photos': 1992}} No error ? {'log_dict': {'total_nb_images': 2118, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21180 seconds', 'coverage_times_pause': '0 days 42360 seconds', 'nb_photos_decision': 2119, 'nb_gray_level_ok': 2119, 'nb_dedup_ok': 2031, 'nb_two_criteria_ok': 2031, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 87, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 1, 'end_of_day_photos_uploaded': 2029, 'ratio_coverage': 0.2451417261773863}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/15', 'portfolio_id': 30978369, 'last_run_id': 2979966, 'total_number_of_photos': 2057}} No error ? {'log_dict': {'total_nb_images': 2123, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21230 seconds', 'coverage_times_pause': '0 days 42460 seconds', 'nb_photos_decision': 2126, 'nb_gray_level_ok': 2126, 'nb_dedup_ok': 1905, 'nb_two_criteria_ok': 1905, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 220, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 1, 'end_of_day_photos_uploaded': 1901, 'ratio_coverage': 0.24572043657912707}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/14', 'portfolio_id': 30973576, 'last_run_id': 2979374, 'total_number_of_photos': 1921}} No error ? {'log_dict': {'total_nb_images': 2116, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21160 seconds', 'coverage_times_pause': '0 days 42320 seconds', 'nb_photos_decision': 2117, 'nb_gray_level_ok': 2117, 'nb_dedup_ok': 1946, 'nb_two_criteria_ok': 1946, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 171, 'end_of_day_photos_nothing_done': 2, 'end_of_day_photos_uploaded': 1943, 'ratio_coverage': 0.24491024201669}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/13', 'portfolio_id': 30968285, 'last_run_id': 2978744, 'total_number_of_photos': 1970}} No error ? {'log_dict': {'total_nb_images': 2123, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21230 seconds', 'coverage_times_pause': '0 days 42460 seconds', 'nb_photos_decision': 2125, 'nb_gray_level_ok': 2125, 'nb_dedup_ok': 2032, 'nb_two_criteria_ok': 2032, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 93, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 3, 'end_of_day_photos_uploaded': 2026, 'ratio_coverage': 0.24572043657912707}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/12', 'portfolio_id': 30964774, 'last_run_id': 2978308, 'total_number_of_photos': 2044}} No error ? {'log_dict': {'total_nb_images': 2118, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21180 seconds', 'coverage_times_pause': '0 days 42360 seconds', 'nb_photos_decision': 2119, 'nb_gray_level_ok': 2119, 'nb_dedup_ok': 1993, 'nb_two_criteria_ok': 1993, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 126, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 3, 'end_of_day_photos_uploaded': 1988, 'ratio_coverage': 0.2451417261773863}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/11', 'portfolio_id': 30962936, 'last_run_id': 2977952, 'total_number_of_photos': 2013}} No error ? {'log_dict': {'total_nb_images': 2121, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21210 seconds', 'coverage_times_pause': '0 days 42420 seconds', 'nb_photos_decision': 2123, 'nb_gray_level_ok': 2123, 'nb_dedup_ok': 1975, 'nb_two_criteria_ok': 1975, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 148, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 1, 'end_of_day_photos_uploaded': 1971, 'ratio_coverage': 0.24548895241843077}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/16', 'portfolio_id': 30983504, 'last_run_id': 2980626, 'total_number_of_photos': 1992}} No error ? {'log_dict': {'total_nb_images': 2118, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21180 seconds', 'coverage_times_pause': '0 days 42360 seconds', 'nb_photos_decision': 2119, 'nb_gray_level_ok': 2119, 'nb_dedup_ok': 2031, 'nb_two_criteria_ok': 2031, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 87, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 1, 'end_of_day_photos_uploaded': 2029, 'ratio_coverage': 0.2451417261773863}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/15', 'portfolio_id': 30978369, 'last_run_id': 2979966, 'total_number_of_photos': 2057}} No error ? {'log_dict': {'total_nb_images': 2123, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21230 seconds', 'coverage_times_pause': '0 days 42460 seconds', 'nb_photos_decision': 2126, 'nb_gray_level_ok': 2126, 'nb_dedup_ok': 1905, 'nb_two_criteria_ok': 1905, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 220, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 1, 'end_of_day_photos_uploaded': 1901, 'ratio_coverage': 0.24572043657912707}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/14', 'portfolio_id': 30973576, 'last_run_id': 2979374, 'total_number_of_photos': 1921}} No error ? {'log_dict': {'total_nb_images': 2116, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21160 seconds', 'coverage_times_pause': '0 days 42320 seconds', 'nb_photos_decision': 2117, 'nb_gray_level_ok': 2117, 'nb_dedup_ok': 1946, 'nb_two_criteria_ok': 1946, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 171, 'end_of_day_photos_nothing_done': 2, 'end_of_day_photos_uploaded': 1943, 'ratio_coverage': 0.24491024201669}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/13', 'portfolio_id': 30968285, 'last_run_id': 2978744, 'total_number_of_photos': 1970}} No error ? {'log_dict': {'total_nb_images': 2123, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21230 seconds', 'coverage_times_pause': '0 days 42460 seconds', 'nb_photos_decision': 2125, 'nb_gray_level_ok': 2125, 'nb_dedup_ok': 2032, 'nb_two_criteria_ok': 2032, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 93, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 3, 'end_of_day_photos_uploaded': 2026, 'ratio_coverage': 0.24572043657912707}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/12', 'portfolio_id': 30964774, 'last_run_id': 2978308, 'total_number_of_photos': 2044}} No error ? {'log_dict': {'total_nb_images': 2118, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21180 seconds', 'coverage_times_pause': '0 days 42360 seconds', 'nb_photos_decision': 2119, 'nb_gray_level_ok': 2119, 'nb_dedup_ok': 1993, 'nb_two_criteria_ok': 1993, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 126, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 3, 'end_of_day_photos_uploaded': 1988, 'ratio_coverage': 0.2451417261773863}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/11', 'portfolio_id': 30962936, 'last_run_id': 2977952, 'total_number_of_photos': 2013}} No error ? {'log_dict': {'total_nb_images': 2119, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21190 seconds', 'coverage_times_pause': '0 days 42380 seconds', 'nb_photos_decision': 2120, 'nb_gray_level_ok': 2120, 'nb_dedup_ok': 2013, 'nb_two_criteria_ok': 2013, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 106, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 2, 'end_of_day_photos_uploaded': 2010, 'ratio_coverage': 0.24525746825773445}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/10', 'portfolio_id': 30957974, 'last_run_id': 2977796, 'total_number_of_photos': 2038}} No error ? {'log_dict': {'total_nb_images': 2118, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21180 seconds', 'coverage_times_pause': '0 days 42360 seconds', 'nb_photos_decision': 2119, 'nb_gray_level_ok': 2119, 'nb_dedup_ok': 2031, 'nb_two_criteria_ok': 2031, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 87, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 1, 'end_of_day_photos_uploaded': 2029, 'ratio_coverage': 0.2451417261773863}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/15', 'portfolio_id': 30978369, 'last_run_id': 2979966, 'total_number_of_photos': 2057}} No error ? {'log_dict': {'total_nb_images': 2123, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21230 seconds', 'coverage_times_pause': '0 days 42460 seconds', 'nb_photos_decision': 2126, 'nb_gray_level_ok': 2126, 'nb_dedup_ok': 1905, 'nb_two_criteria_ok': 1905, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 220, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 1, 'end_of_day_photos_uploaded': 1901, 'ratio_coverage': 0.24572043657912707}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/14', 'portfolio_id': 30973576, 'last_run_id': 2979374, 'total_number_of_photos': 1921}} No error ? {'log_dict': {'total_nb_images': 2116, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21160 seconds', 'coverage_times_pause': '0 days 42320 seconds', 'nb_photos_decision': 2117, 'nb_gray_level_ok': 2117, 'nb_dedup_ok': 1946, 'nb_two_criteria_ok': 1946, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 171, 'end_of_day_photos_nothing_done': 2, 'end_of_day_photos_uploaded': 1943, 'ratio_coverage': 0.24491024201669}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/13', 'portfolio_id': 30968285, 'last_run_id': 2978744, 'total_number_of_photos': 1970}} No error ? {'log_dict': {'total_nb_images': 2123, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21230 seconds', 'coverage_times_pause': '0 days 42460 seconds', 'nb_photos_decision': 2125, 'nb_gray_level_ok': 2125, 'nb_dedup_ok': 2032, 'nb_two_criteria_ok': 2032, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 93, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 3, 'end_of_day_photos_uploaded': 2026, 'ratio_coverage': 0.24572043657912707}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/12', 'portfolio_id': 30964774, 'last_run_id': 2978308, 'total_number_of_photos': 2044}} No error ? {'log_dict': {'total_nb_images': 2118, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21180 seconds', 'coverage_times_pause': '0 days 42360 seconds', 'nb_photos_decision': 2119, 'nb_gray_level_ok': 2119, 'nb_dedup_ok': 1993, 'nb_two_criteria_ok': 1993, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 126, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 3, 'end_of_day_photos_uploaded': 1988, 'ratio_coverage': 0.2451417261773863}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/11', 'portfolio_id': 30962936, 'last_run_id': 2977952, 'total_number_of_photos': 2013}} No error ? {'log_dict': {'total_nb_images': 2119, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21190 seconds', 'coverage_times_pause': '0 days 42380 seconds', 'nb_photos_decision': 2120, 'nb_gray_level_ok': 2120, 'nb_dedup_ok': 2013, 'nb_two_criteria_ok': 2013, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 106, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 2, 'end_of_day_photos_uploaded': 2010, 'ratio_coverage': 0.24525746825773445}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/10', 'portfolio_id': 30957974, 'last_run_id': 2977796, 'total_number_of_photos': 2038}} No error ? {'log_dict': {'total_nb_images': 2120, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21200 seconds', 'coverage_times_pause': '0 days 42400 seconds', 'nb_photos_decision': 2122, 'nb_gray_level_ok': 2122, 'nb_dedup_ok': 1966, 'nb_two_criteria_ok': 1966, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 156, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 1, 'end_of_day_photos_uploaded': 1962, 'ratio_coverage': 0.24537321033808263}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/09', 'portfolio_id': 30952349, 'last_run_id': 2977208, 'total_number_of_photos': 1986}} No error ? {'log_dict': {'total_nb_images': 2123, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21230 seconds', 'coverage_times_pause': '0 days 42460 seconds', 'nb_photos_decision': 2126, 'nb_gray_level_ok': 2126, 'nb_dedup_ok': 1905, 'nb_two_criteria_ok': 1905, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 220, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 1, 'end_of_day_photos_uploaded': 1901, 'ratio_coverage': 0.24572043657912707}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/14', 'portfolio_id': 30973576, 'last_run_id': 2979374, 'total_number_of_photos': 1921}} No error ? {'log_dict': {'total_nb_images': 2116, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21160 seconds', 'coverage_times_pause': '0 days 42320 seconds', 'nb_photos_decision': 2117, 'nb_gray_level_ok': 2117, 'nb_dedup_ok': 1946, 'nb_two_criteria_ok': 1946, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 171, 'end_of_day_photos_nothing_done': 2, 'end_of_day_photos_uploaded': 1943, 'ratio_coverage': 0.24491024201669}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/13', 'portfolio_id': 30968285, 'last_run_id': 2978744, 'total_number_of_photos': 1970}} No error ? {'log_dict': {'total_nb_images': 2123, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21230 seconds', 'coverage_times_pause': '0 days 42460 seconds', 'nb_photos_decision': 2125, 'nb_gray_level_ok': 2125, 'nb_dedup_ok': 2032, 'nb_two_criteria_ok': 2032, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 93, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 3, 'end_of_day_photos_uploaded': 2026, 'ratio_coverage': 0.24572043657912707}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/12', 'portfolio_id': 30964774, 'last_run_id': 2978308, 'total_number_of_photos': 2044}} No error ? {'log_dict': {'total_nb_images': 2118, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21180 seconds', 'coverage_times_pause': '0 days 42360 seconds', 'nb_photos_decision': 2119, 'nb_gray_level_ok': 2119, 'nb_dedup_ok': 1993, 'nb_two_criteria_ok': 1993, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 126, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 3, 'end_of_day_photos_uploaded': 1988, 'ratio_coverage': 0.2451417261773863}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/11', 'portfolio_id': 30962936, 'last_run_id': 2977952, 'total_number_of_photos': 2013}} No error ? {'log_dict': {'total_nb_images': 2119, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21190 seconds', 'coverage_times_pause': '0 days 42380 seconds', 'nb_photos_decision': 2120, 'nb_gray_level_ok': 2120, 'nb_dedup_ok': 2013, 'nb_two_criteria_ok': 2013, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 106, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 2, 'end_of_day_photos_uploaded': 2010, 'ratio_coverage': 0.24525746825773445}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/10', 'portfolio_id': 30957974, 'last_run_id': 2977796, 'total_number_of_photos': 2038}} No error ? {'log_dict': {'total_nb_images': 2120, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21200 seconds', 'coverage_times_pause': '0 days 42400 seconds', 'nb_photos_decision': 2122, 'nb_gray_level_ok': 2122, 'nb_dedup_ok': 1966, 'nb_two_criteria_ok': 1966, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 156, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 1, 'end_of_day_photos_uploaded': 1962, 'ratio_coverage': 0.24537321033808263}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/09', 'portfolio_id': 30952349, 'last_run_id': 2977208, 'total_number_of_photos': 1986}} No error ? {'log_dict': {'total_nb_images': 2122, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21220 seconds', 'coverage_times_pause': '0 days 42440 seconds', 'nb_photos_decision': 2125, 'nb_gray_level_ok': 2125, 'nb_dedup_ok': 1931, 'nb_two_criteria_ok': 1931, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 193, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 1, 'end_of_day_photos_uploaded': 1927, 'ratio_coverage': 0.24560469449877892}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/08', 'portfolio_id': 30946934, 'last_run_id': 2976553, 'total_number_of_photos': 1949}} No error ? {'log_dict': {'total_nb_images': 2116, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21160 seconds', 'coverage_times_pause': '0 days 42320 seconds', 'nb_photos_decision': 2117, 'nb_gray_level_ok': 2117, 'nb_dedup_ok': 1946, 'nb_two_criteria_ok': 1946, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 171, 'end_of_day_photos_nothing_done': 2, 'end_of_day_photos_uploaded': 1943, 'ratio_coverage': 0.24491024201669}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/13', 'portfolio_id': 30968285, 'last_run_id': 2978744, 'total_number_of_photos': 1970}} No error ? {'log_dict': {'total_nb_images': 2123, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21230 seconds', 'coverage_times_pause': '0 days 42460 seconds', 'nb_photos_decision': 2125, 'nb_gray_level_ok': 2125, 'nb_dedup_ok': 2032, 'nb_two_criteria_ok': 2032, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 93, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 3, 'end_of_day_photos_uploaded': 2026, 'ratio_coverage': 0.24572043657912707}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/12', 'portfolio_id': 30964774, 'last_run_id': 2978308, 'total_number_of_photos': 2044}} No error ? {'log_dict': {'total_nb_images': 2118, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21180 seconds', 'coverage_times_pause': '0 days 42360 seconds', 'nb_photos_decision': 2119, 'nb_gray_level_ok': 2119, 'nb_dedup_ok': 1993, 'nb_two_criteria_ok': 1993, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 126, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 3, 'end_of_day_photos_uploaded': 1988, 'ratio_coverage': 0.2451417261773863}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/11', 'portfolio_id': 30962936, 'last_run_id': 2977952, 'total_number_of_photos': 2013}} No error ? {'log_dict': {'total_nb_images': 2119, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21190 seconds', 'coverage_times_pause': '0 days 42380 seconds', 'nb_photos_decision': 2120, 'nb_gray_level_ok': 2120, 'nb_dedup_ok': 2013, 'nb_two_criteria_ok': 2013, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 106, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 2, 'end_of_day_photos_uploaded': 2010, 'ratio_coverage': 0.24525746825773445}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/10', 'portfolio_id': 30957974, 'last_run_id': 2977796, 'total_number_of_photos': 2038}} No error ? {'log_dict': {'total_nb_images': 2120, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21200 seconds', 'coverage_times_pause': '0 days 42400 seconds', 'nb_photos_decision': 2122, 'nb_gray_level_ok': 2122, 'nb_dedup_ok': 1966, 'nb_two_criteria_ok': 1966, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 156, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 1, 'end_of_day_photos_uploaded': 1962, 'ratio_coverage': 0.24537321033808263}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/09', 'portfolio_id': 30952349, 'last_run_id': 2977208, 'total_number_of_photos': 1986}} No error ? {'log_dict': {'total_nb_images': 2122, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21220 seconds', 'coverage_times_pause': '0 days 42440 seconds', 'nb_photos_decision': 2125, 'nb_gray_level_ok': 2125, 'nb_dedup_ok': 1931, 'nb_two_criteria_ok': 1931, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 193, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 1, 'end_of_day_photos_uploaded': 1927, 'ratio_coverage': 0.24560469449877892}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/08', 'portfolio_id': 30946934, 'last_run_id': 2976553, 'total_number_of_photos': 1949}} No error ? {'log_dict': {'total_nb_images': 2120, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21200 seconds', 'coverage_times_pause': '0 days 42400 seconds', 'nb_photos_decision': 2121, 'nb_gray_level_ok': 2121, 'nb_dedup_ok': 1804, 'nb_two_criteria_ok': 1804, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 317, 'end_of_day_photos_nothing_done': 3, 'end_of_day_photos_uploaded': 1800, 'ratio_coverage': 0.24537321033808263}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/07', 'portfolio_id': 30941643, 'last_run_id': 2975856, 'total_number_of_photos': 1827}} No error ? {'log_dict': {'total_nb_images': 2123, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21230 seconds', 'coverage_times_pause': '0 days 42460 seconds', 'nb_photos_decision': 2125, 'nb_gray_level_ok': 2125, 'nb_dedup_ok': 2032, 'nb_two_criteria_ok': 2032, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 93, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 3, 'end_of_day_photos_uploaded': 2026, 'ratio_coverage': 0.24572043657912707}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/12', 'portfolio_id': 30964774, 'last_run_id': 2978308, 'total_number_of_photos': 2044}} No error ? {'log_dict': {'total_nb_images': 2118, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21180 seconds', 'coverage_times_pause': '0 days 42360 seconds', 'nb_photos_decision': 2119, 'nb_gray_level_ok': 2119, 'nb_dedup_ok': 1993, 'nb_two_criteria_ok': 1993, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 126, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 3, 'end_of_day_photos_uploaded': 1988, 'ratio_coverage': 0.2451417261773863}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/11', 'portfolio_id': 30962936, 'last_run_id': 2977952, 'total_number_of_photos': 2013}} No error ? {'log_dict': {'total_nb_images': 2119, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21190 seconds', 'coverage_times_pause': '0 days 42380 seconds', 'nb_photos_decision': 2120, 'nb_gray_level_ok': 2120, 'nb_dedup_ok': 2013, 'nb_two_criteria_ok': 2013, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 106, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 2, 'end_of_day_photos_uploaded': 2010, 'ratio_coverage': 0.24525746825773445}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/10', 'portfolio_id': 30957974, 'last_run_id': 2977796, 'total_number_of_photos': 2038}} No error ? {'log_dict': {'total_nb_images': 2120, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21200 seconds', 'coverage_times_pause': '0 days 42400 seconds', 'nb_photos_decision': 2122, 'nb_gray_level_ok': 2122, 'nb_dedup_ok': 1966, 'nb_two_criteria_ok': 1966, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 156, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 1, 'end_of_day_photos_uploaded': 1962, 'ratio_coverage': 0.24537321033808263}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/09', 'portfolio_id': 30952349, 'last_run_id': 2977208, 'total_number_of_photos': 1986}} No error ? {'log_dict': {'total_nb_images': 2122, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21220 seconds', 'coverage_times_pause': '0 days 42440 seconds', 'nb_photos_decision': 2125, 'nb_gray_level_ok': 2125, 'nb_dedup_ok': 1931, 'nb_two_criteria_ok': 1931, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 193, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 1, 'end_of_day_photos_uploaded': 1927, 'ratio_coverage': 0.24560469449877892}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/08', 'portfolio_id': 30946934, 'last_run_id': 2976553, 'total_number_of_photos': 1949}} No error ? {'log_dict': {'total_nb_images': 2120, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21200 seconds', 'coverage_times_pause': '0 days 42400 seconds', 'nb_photos_decision': 2121, 'nb_gray_level_ok': 2121, 'nb_dedup_ok': 1804, 'nb_two_criteria_ok': 1804, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 317, 'end_of_day_photos_nothing_done': 3, 'end_of_day_photos_uploaded': 1800, 'ratio_coverage': 0.24537321033808263}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/07', 'portfolio_id': 30941643, 'last_run_id': 2975856, 'total_number_of_photos': 1827}} No error ? {'log_dict': {'total_nb_images': 2120, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21200 seconds', 'coverage_times_pause': '0 days 42400 seconds', 'nb_photos_decision': 2122, 'nb_gray_level_ok': 2122, 'nb_dedup_ok': 1911, 'nb_two_criteria_ok': 1911, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 211, 'end_of_day_photos_nothing_done': 2, 'end_of_day_photos_ok_for_neural_classification': 2, 'end_of_day_photos_uploaded': 1905, 'ratio_coverage': 0.24537321033808263}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/06', 'portfolio_id': 30936210, 'last_run_id': 2975291, 'total_number_of_photos': 1927}} No error ? {'log_dict': {'total_nb_images': 2118, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21180 seconds', 'coverage_times_pause': '0 days 42360 seconds', 'nb_photos_decision': 2119, 'nb_gray_level_ok': 2119, 'nb_dedup_ok': 1993, 'nb_two_criteria_ok': 1993, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 126, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 3, 'end_of_day_photos_uploaded': 1988, 'ratio_coverage': 0.2451417261773863}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/11', 'portfolio_id': 30962936, 'last_run_id': 2977952, 'total_number_of_photos': 2013}} No error ? {'log_dict': {'total_nb_images': 2119, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21190 seconds', 'coverage_times_pause': '0 days 42380 seconds', 'nb_photos_decision': 2120, 'nb_gray_level_ok': 2120, 'nb_dedup_ok': 2013, 'nb_two_criteria_ok': 2013, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 106, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 2, 'end_of_day_photos_uploaded': 2010, 'ratio_coverage': 0.24525746825773445}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/10', 'portfolio_id': 30957974, 'last_run_id': 2977796, 'total_number_of_photos': 2038}} No error ? {'log_dict': {'total_nb_images': 2120, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21200 seconds', 'coverage_times_pause': '0 days 42400 seconds', 'nb_photos_decision': 2122, 'nb_gray_level_ok': 2122, 'nb_dedup_ok': 1966, 'nb_two_criteria_ok': 1966, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 156, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 1, 'end_of_day_photos_uploaded': 1962, 'ratio_coverage': 0.24537321033808263}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/09', 'portfolio_id': 30952349, 'last_run_id': 2977208, 'total_number_of_photos': 1986}} No error ? {'log_dict': {'total_nb_images': 2122, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21220 seconds', 'coverage_times_pause': '0 days 42440 seconds', 'nb_photos_decision': 2125, 'nb_gray_level_ok': 2125, 'nb_dedup_ok': 1931, 'nb_two_criteria_ok': 1931, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 193, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 1, 'end_of_day_photos_uploaded': 1927, 'ratio_coverage': 0.24560469449877892}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/08', 'portfolio_id': 30946934, 'last_run_id': 2976553, 'total_number_of_photos': 1949}} No error ? {'log_dict': {'total_nb_images': 2120, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21200 seconds', 'coverage_times_pause': '0 days 42400 seconds', 'nb_photos_decision': 2121, 'nb_gray_level_ok': 2121, 'nb_dedup_ok': 1804, 'nb_two_criteria_ok': 1804, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 317, 'end_of_day_photos_nothing_done': 3, 'end_of_day_photos_uploaded': 1800, 'ratio_coverage': 0.24537321033808263}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/07', 'portfolio_id': 30941643, 'last_run_id': 2975856, 'total_number_of_photos': 1827}} No error ? {'log_dict': {'total_nb_images': 2120, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21200 seconds', 'coverage_times_pause': '0 days 42400 seconds', 'nb_photos_decision': 2122, 'nb_gray_level_ok': 2122, 'nb_dedup_ok': 1911, 'nb_two_criteria_ok': 1911, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 211, 'end_of_day_photos_nothing_done': 2, 'end_of_day_photos_ok_for_neural_classification': 2, 'end_of_day_photos_uploaded': 1905, 'ratio_coverage': 0.24537321033808263}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/06', 'portfolio_id': 30936210, 'last_run_id': 2975291, 'total_number_of_photos': 1927}} No error ? {'log_dict': {'total_nb_images': 2120, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21200 seconds', 'coverage_times_pause': '0 days 42400 seconds', 'nb_photos_decision': 2122, 'nb_gray_level_ok': 2122, 'nb_dedup_ok': 1987, 'nb_two_criteria_ok': 1987, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 135, 'end_of_day_photos_nothing_done': 2, 'end_of_day_photos_ok_for_neural_classification': 2, 'end_of_day_photos_uploaded': 1981, 'ratio_coverage': 0.24537321033808263}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/05', 'portfolio_id': 30931828, 'last_run_id': 2974746, 'total_number_of_photos': 2003}} No error ? {'log_dict': {'total_nb_images': 2119, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21190 seconds', 'coverage_times_pause': '0 days 42380 seconds', 'nb_photos_decision': 2120, 'nb_gray_level_ok': 2120, 'nb_dedup_ok': 2013, 'nb_two_criteria_ok': 2013, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 106, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 2, 'end_of_day_photos_uploaded': 2010, 'ratio_coverage': 0.24525746825773445}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/10', 'portfolio_id': 30957974, 'last_run_id': 2977796, 'total_number_of_photos': 2038}} No error ? {'log_dict': {'total_nb_images': 2120, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21200 seconds', 'coverage_times_pause': '0 days 42400 seconds', 'nb_photos_decision': 2122, 'nb_gray_level_ok': 2122, 'nb_dedup_ok': 1966, 'nb_two_criteria_ok': 1966, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 156, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 1, 'end_of_day_photos_uploaded': 1962, 'ratio_coverage': 0.24537321033808263}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/09', 'portfolio_id': 30952349, 'last_run_id': 2977208, 'total_number_of_photos': 1986}} No error ? {'log_dict': {'total_nb_images': 2122, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21220 seconds', 'coverage_times_pause': '0 days 42440 seconds', 'nb_photos_decision': 2125, 'nb_gray_level_ok': 2125, 'nb_dedup_ok': 1931, 'nb_two_criteria_ok': 1931, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 193, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 1, 'end_of_day_photos_uploaded': 1927, 'ratio_coverage': 0.24560469449877892}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/08', 'portfolio_id': 30946934, 'last_run_id': 2976553, 'total_number_of_photos': 1949}} No error ? {'log_dict': {'total_nb_images': 2120, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21200 seconds', 'coverage_times_pause': '0 days 42400 seconds', 'nb_photos_decision': 2121, 'nb_gray_level_ok': 2121, 'nb_dedup_ok': 1804, 'nb_two_criteria_ok': 1804, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 317, 'end_of_day_photos_nothing_done': 3, 'end_of_day_photos_uploaded': 1800, 'ratio_coverage': 0.24537321033808263}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/07', 'portfolio_id': 30941643, 'last_run_id': 2975856, 'total_number_of_photos': 1827}} No error ? {'log_dict': {'total_nb_images': 2120, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21200 seconds', 'coverage_times_pause': '0 days 42400 seconds', 'nb_photos_decision': 2122, 'nb_gray_level_ok': 2122, 'nb_dedup_ok': 1911, 'nb_two_criteria_ok': 1911, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 211, 'end_of_day_photos_nothing_done': 2, 'end_of_day_photos_ok_for_neural_classification': 2, 'end_of_day_photos_uploaded': 1905, 'ratio_coverage': 0.24537321033808263}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/06', 'portfolio_id': 30936210, 'last_run_id': 2975291, 'total_number_of_photos': 1927}} No error ? {'log_dict': {'total_nb_images': 2120, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21200 seconds', 'coverage_times_pause': '0 days 42400 seconds', 'nb_photos_decision': 2122, 'nb_gray_level_ok': 2122, 'nb_dedup_ok': 1987, 'nb_two_criteria_ok': 1987, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 135, 'end_of_day_photos_nothing_done': 2, 'end_of_day_photos_ok_for_neural_classification': 2, 'end_of_day_photos_uploaded': 1981, 'ratio_coverage': 0.24537321033808263}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/05', 'portfolio_id': 30931828, 'last_run_id': 2974746, 'total_number_of_photos': 2003}} No error ? {'log_dict': {'total_nb_images': 2118, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21180 seconds', 'coverage_times_pause': '0 days 42360 seconds', 'nb_photos_decision': 2118, 'nb_gray_level_ok': 2118, 'nb_dedup_ok': 1958, 'nb_two_criteria_ok': 1958, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 160, 'end_of_day_photos_nothing_done': 3, 'end_of_day_photos_ok_for_neural_classification': 1, 'end_of_day_photos_uploaded': 1954, 'ratio_coverage': 0.2451417261773863}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/04', 'portfolio_id': 30926329, 'last_run_id': 2974249, 'total_number_of_photos': 1983}} No error ? {'log_dict': {'total_nb_images': 2120, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21200 seconds', 'coverage_times_pause': '0 days 42400 seconds', 'nb_photos_decision': 2122, 'nb_gray_level_ok': 2122, 'nb_dedup_ok': 1966, 'nb_two_criteria_ok': 1966, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 156, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 1, 'end_of_day_photos_uploaded': 1962, 'ratio_coverage': 0.24537321033808263}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/09', 'portfolio_id': 30952349, 'last_run_id': 2977208, 'total_number_of_photos': 1986}} No error ? {'log_dict': {'total_nb_images': 2122, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21220 seconds', 'coverage_times_pause': '0 days 42440 seconds', 'nb_photos_decision': 2125, 'nb_gray_level_ok': 2125, 'nb_dedup_ok': 1931, 'nb_two_criteria_ok': 1931, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 193, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 1, 'end_of_day_photos_uploaded': 1927, 'ratio_coverage': 0.24560469449877892}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/08', 'portfolio_id': 30946934, 'last_run_id': 2976553, 'total_number_of_photos': 1949}} No error ? {'log_dict': {'total_nb_images': 2120, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21200 seconds', 'coverage_times_pause': '0 days 42400 seconds', 'nb_photos_decision': 2121, 'nb_gray_level_ok': 2121, 'nb_dedup_ok': 1804, 'nb_two_criteria_ok': 1804, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 317, 'end_of_day_photos_nothing_done': 3, 'end_of_day_photos_uploaded': 1800, 'ratio_coverage': 0.24537321033808263}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/07', 'portfolio_id': 30941643, 'last_run_id': 2975856, 'total_number_of_photos': 1827}} No error ? {'log_dict': {'total_nb_images': 2120, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21200 seconds', 'coverage_times_pause': '0 days 42400 seconds', 'nb_photos_decision': 2122, 'nb_gray_level_ok': 2122, 'nb_dedup_ok': 1911, 'nb_two_criteria_ok': 1911, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 211, 'end_of_day_photos_nothing_done': 2, 'end_of_day_photos_ok_for_neural_classification': 2, 'end_of_day_photos_uploaded': 1905, 'ratio_coverage': 0.24537321033808263}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/06', 'portfolio_id': 30936210, 'last_run_id': 2975291, 'total_number_of_photos': 1927}} No error ? {'log_dict': {'total_nb_images': 2120, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21200 seconds', 'coverage_times_pause': '0 days 42400 seconds', 'nb_photos_decision': 2122, 'nb_gray_level_ok': 2122, 'nb_dedup_ok': 1987, 'nb_two_criteria_ok': 1987, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 135, 'end_of_day_photos_nothing_done': 2, 'end_of_day_photos_ok_for_neural_classification': 2, 'end_of_day_photos_uploaded': 1981, 'ratio_coverage': 0.24537321033808263}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/05', 'portfolio_id': 30931828, 'last_run_id': 2974746, 'total_number_of_photos': 2003}} No error ? {'log_dict': {'total_nb_images': 2118, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21180 seconds', 'coverage_times_pause': '0 days 42360 seconds', 'nb_photos_decision': 2118, 'nb_gray_level_ok': 2118, 'nb_dedup_ok': 1958, 'nb_two_criteria_ok': 1958, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 160, 'end_of_day_photos_nothing_done': 3, 'end_of_day_photos_ok_for_neural_classification': 1, 'end_of_day_photos_uploaded': 1954, 'ratio_coverage': 0.2451417261773863}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/04', 'portfolio_id': 30926329, 'last_run_id': 2974249, 'total_number_of_photos': 1983}} No error ? {'log_dict': {'total_nb_images': 2122, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21220 seconds', 'coverage_times_pause': '0 days 42440 seconds', 'nb_photos_decision': 2125, 'nb_gray_level_ok': 2125, 'nb_dedup_ok': 2020, 'nb_two_criteria_ok': 2020, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 104, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 1, 'end_of_day_photos_uploaded': 2016, 'ratio_coverage': 0.24560469449877892}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/03', 'portfolio_id': 30920677, 'last_run_id': 2973646, 'total_number_of_photos': 2037}} No error ? {'log_dict': {'total_nb_images': 2122, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21220 seconds', 'coverage_times_pause': '0 days 42440 seconds', 'nb_photos_decision': 2125, 'nb_gray_level_ok': 2125, 'nb_dedup_ok': 1931, 'nb_two_criteria_ok': 1931, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 193, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 1, 'end_of_day_photos_uploaded': 1927, 'ratio_coverage': 0.24560469449877892}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/08', 'portfolio_id': 30946934, 'last_run_id': 2976553, 'total_number_of_photos': 1949}} No error ? {'log_dict': {'total_nb_images': 2120, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21200 seconds', 'coverage_times_pause': '0 days 42400 seconds', 'nb_photos_decision': 2121, 'nb_gray_level_ok': 2121, 'nb_dedup_ok': 1804, 'nb_two_criteria_ok': 1804, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 317, 'end_of_day_photos_nothing_done': 3, 'end_of_day_photos_uploaded': 1800, 'ratio_coverage': 0.24537321033808263}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/07', 'portfolio_id': 30941643, 'last_run_id': 2975856, 'total_number_of_photos': 1827}} No error ? {'log_dict': {'total_nb_images': 2120, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21200 seconds', 'coverage_times_pause': '0 days 42400 seconds', 'nb_photos_decision': 2122, 'nb_gray_level_ok': 2122, 'nb_dedup_ok': 1911, 'nb_two_criteria_ok': 1911, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 211, 'end_of_day_photos_nothing_done': 2, 'end_of_day_photos_ok_for_neural_classification': 2, 'end_of_day_photos_uploaded': 1905, 'ratio_coverage': 0.24537321033808263}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/06', 'portfolio_id': 30936210, 'last_run_id': 2975291, 'total_number_of_photos': 1927}} No error ? {'log_dict': {'total_nb_images': 2120, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21200 seconds', 'coverage_times_pause': '0 days 42400 seconds', 'nb_photos_decision': 2122, 'nb_gray_level_ok': 2122, 'nb_dedup_ok': 1987, 'nb_two_criteria_ok': 1987, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 135, 'end_of_day_photos_nothing_done': 2, 'end_of_day_photos_ok_for_neural_classification': 2, 'end_of_day_photos_uploaded': 1981, 'ratio_coverage': 0.24537321033808263}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/05', 'portfolio_id': 30931828, 'last_run_id': 2974746, 'total_number_of_photos': 2003}} No error ? {'log_dict': {'total_nb_images': 2118, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21180 seconds', 'coverage_times_pause': '0 days 42360 seconds', 'nb_photos_decision': 2118, 'nb_gray_level_ok': 2118, 'nb_dedup_ok': 1958, 'nb_two_criteria_ok': 1958, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 160, 'end_of_day_photos_nothing_done': 3, 'end_of_day_photos_ok_for_neural_classification': 1, 'end_of_day_photos_uploaded': 1954, 'ratio_coverage': 0.2451417261773863}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/04', 'portfolio_id': 30926329, 'last_run_id': 2974249, 'total_number_of_photos': 1983}} No error ? {'log_dict': {'total_nb_images': 2122, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21220 seconds', 'coverage_times_pause': '0 days 42440 seconds', 'nb_photos_decision': 2125, 'nb_gray_level_ok': 2125, 'nb_dedup_ok': 2020, 'nb_two_criteria_ok': 2020, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 104, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 1, 'end_of_day_photos_uploaded': 2016, 'ratio_coverage': 0.24560469449877892}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/03', 'portfolio_id': 30920677, 'last_run_id': 2973646, 'total_number_of_photos': 2037}} No error ? {'log_dict': {'total_nb_images': 2116, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21160 seconds', 'coverage_times_pause': '0 days 42320 seconds', 'nb_photos_decision': 2116, 'nb_gray_level_ok': 2116, 'nb_dedup_ok': 2009, 'nb_two_criteria_ok': 2009, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 107, 'end_of_day_photos_nothing_done': 2, 'end_of_day_photos_ok_for_neural_classification': 2, 'end_of_day_photos_uploaded': 2005, 'ratio_coverage': 0.24491024201669}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/02', 'portfolio_id': 30915599, 'last_run_id': 2972976, 'total_number_of_photos': 2029}} No error ? {'log_dict': {'total_nb_images': 2120, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21200 seconds', 'coverage_times_pause': '0 days 42400 seconds', 'nb_photos_decision': 2121, 'nb_gray_level_ok': 2121, 'nb_dedup_ok': 1804, 'nb_two_criteria_ok': 1804, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 317, 'end_of_day_photos_nothing_done': 3, 'end_of_day_photos_uploaded': 1800, 'ratio_coverage': 0.24537321033808263}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/07', 'portfolio_id': 30941643, 'last_run_id': 2975856, 'total_number_of_photos': 1827}} No error ? {'log_dict': {'total_nb_images': 2120, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21200 seconds', 'coverage_times_pause': '0 days 42400 seconds', 'nb_photos_decision': 2122, 'nb_gray_level_ok': 2122, 'nb_dedup_ok': 1911, 'nb_two_criteria_ok': 1911, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 211, 'end_of_day_photos_nothing_done': 2, 'end_of_day_photos_ok_for_neural_classification': 2, 'end_of_day_photos_uploaded': 1905, 'ratio_coverage': 0.24537321033808263}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/06', 'portfolio_id': 30936210, 'last_run_id': 2975291, 'total_number_of_photos': 1927}} No error ? {'log_dict': {'total_nb_images': 2120, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21200 seconds', 'coverage_times_pause': '0 days 42400 seconds', 'nb_photos_decision': 2122, 'nb_gray_level_ok': 2122, 'nb_dedup_ok': 1987, 'nb_two_criteria_ok': 1987, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 135, 'end_of_day_photos_nothing_done': 2, 'end_of_day_photos_ok_for_neural_classification': 2, 'end_of_day_photos_uploaded': 1981, 'ratio_coverage': 0.24537321033808263}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/05', 'portfolio_id': 30931828, 'last_run_id': 2974746, 'total_number_of_photos': 2003}} No error ? {'log_dict': {'total_nb_images': 2118, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21180 seconds', 'coverage_times_pause': '0 days 42360 seconds', 'nb_photos_decision': 2118, 'nb_gray_level_ok': 2118, 'nb_dedup_ok': 1958, 'nb_two_criteria_ok': 1958, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 160, 'end_of_day_photos_nothing_done': 3, 'end_of_day_photos_ok_for_neural_classification': 1, 'end_of_day_photos_uploaded': 1954, 'ratio_coverage': 0.2451417261773863}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/04', 'portfolio_id': 30926329, 'last_run_id': 2974249, 'total_number_of_photos': 1983}} No error ? {'log_dict': {'total_nb_images': 2122, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21220 seconds', 'coverage_times_pause': '0 days 42440 seconds', 'nb_photos_decision': 2125, 'nb_gray_level_ok': 2125, 'nb_dedup_ok': 2020, 'nb_two_criteria_ok': 2020, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 104, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 1, 'end_of_day_photos_uploaded': 2016, 'ratio_coverage': 0.24560469449877892}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/03', 'portfolio_id': 30920677, 'last_run_id': 2973646, 'total_number_of_photos': 2037}} No error ? {'log_dict': {'total_nb_images': 2116, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21160 seconds', 'coverage_times_pause': '0 days 42320 seconds', 'nb_photos_decision': 2116, 'nb_gray_level_ok': 2116, 'nb_dedup_ok': 2009, 'nb_two_criteria_ok': 2009, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 107, 'end_of_day_photos_nothing_done': 2, 'end_of_day_photos_ok_for_neural_classification': 2, 'end_of_day_photos_uploaded': 2005, 'ratio_coverage': 0.24491024201669}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/02', 'portfolio_id': 30915599, 'last_run_id': 2972976, 'total_number_of_photos': 2029}} Since we don't have condition on date we need to verify this lately ! No error ? {'log_dict': {'total_nb_images': 2120, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21200 seconds', 'coverage_times_pause': '0 days 42400 seconds', 'nb_photos_decision': 2122, 'nb_gray_level_ok': 2122, 'nb_dedup_ok': 1911, 'nb_two_criteria_ok': 1911, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 211, 'end_of_day_photos_nothing_done': 2, 'end_of_day_photos_ok_for_neural_classification': 2, 'end_of_day_photos_uploaded': 1905, 'ratio_coverage': 0.24537321033808263}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/06', 'portfolio_id': 30936210, 'last_run_id': 2975291, 'total_number_of_photos': 1927}} No error ? {'log_dict': {'total_nb_images': 2120, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21200 seconds', 'coverage_times_pause': '0 days 42400 seconds', 'nb_photos_decision': 2122, 'nb_gray_level_ok': 2122, 'nb_dedup_ok': 1987, 'nb_two_criteria_ok': 1987, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 135, 'end_of_day_photos_nothing_done': 2, 'end_of_day_photos_ok_for_neural_classification': 2, 'end_of_day_photos_uploaded': 1981, 'ratio_coverage': 0.24537321033808263}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/05', 'portfolio_id': 30931828, 'last_run_id': 2974746, 'total_number_of_photos': 2003}} No error ? {'log_dict': {'total_nb_images': 2118, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21180 seconds', 'coverage_times_pause': '0 days 42360 seconds', 'nb_photos_decision': 2118, 'nb_gray_level_ok': 2118, 'nb_dedup_ok': 1958, 'nb_two_criteria_ok': 1958, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 160, 'end_of_day_photos_nothing_done': 3, 'end_of_day_photos_ok_for_neural_classification': 1, 'end_of_day_photos_uploaded': 1954, 'ratio_coverage': 0.2451417261773863}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/04', 'portfolio_id': 30926329, 'last_run_id': 2974249, 'total_number_of_photos': 1983}} No error ? {'log_dict': {'total_nb_images': 2122, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21220 seconds', 'coverage_times_pause': '0 days 42440 seconds', 'nb_photos_decision': 2125, 'nb_gray_level_ok': 2125, 'nb_dedup_ok': 2020, 'nb_two_criteria_ok': 2020, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 104, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 1, 'end_of_day_photos_uploaded': 2016, 'ratio_coverage': 0.24560469449877892}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/03', 'portfolio_id': 30920677, 'last_run_id': 2973646, 'total_number_of_photos': 2037}} No error ? {'log_dict': {'total_nb_images': 2116, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21160 seconds', 'coverage_times_pause': '0 days 42320 seconds', 'nb_photos_decision': 2116, 'nb_gray_level_ok': 2116, 'nb_dedup_ok': 2009, 'nb_two_criteria_ok': 2009, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 107, 'end_of_day_photos_nothing_done': 2, 'end_of_day_photos_ok_for_neural_classification': 2, 'end_of_day_photos_uploaded': 2005, 'ratio_coverage': 0.24491024201669}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/02', 'portfolio_id': 30915599, 'last_run_id': 2972976, 'total_number_of_photos': 2029}} Since we don't have condition on date we need to verify this lately ! No error ? {'log_dict': {'total_nb_images': 2120, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21200 seconds', 'coverage_times_pause': '0 days 42400 seconds', 'nb_photos_decision': 2122, 'nb_gray_level_ok': 2122, 'nb_dedup_ok': 1987, 'nb_two_criteria_ok': 1987, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 135, 'end_of_day_photos_nothing_done': 2, 'end_of_day_photos_ok_for_neural_classification': 2, 'end_of_day_photos_uploaded': 1981, 'ratio_coverage': 0.24537321033808263}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/05', 'portfolio_id': 30931828, 'last_run_id': 2974746, 'total_number_of_photos': 2003}} No error ? {'log_dict': {'total_nb_images': 2118, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21180 seconds', 'coverage_times_pause': '0 days 42360 seconds', 'nb_photos_decision': 2118, 'nb_gray_level_ok': 2118, 'nb_dedup_ok': 1958, 'nb_two_criteria_ok': 1958, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 160, 'end_of_day_photos_nothing_done': 3, 'end_of_day_photos_ok_for_neural_classification': 1, 'end_of_day_photos_uploaded': 1954, 'ratio_coverage': 0.2451417261773863}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/04', 'portfolio_id': 30926329, 'last_run_id': 2974249, 'total_number_of_photos': 1983}} No error ? {'log_dict': {'total_nb_images': 2122, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21220 seconds', 'coverage_times_pause': '0 days 42440 seconds', 'nb_photos_decision': 2125, 'nb_gray_level_ok': 2125, 'nb_dedup_ok': 2020, 'nb_two_criteria_ok': 2020, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 104, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 1, 'end_of_day_photos_uploaded': 2016, 'ratio_coverage': 0.24560469449877892}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/03', 'portfolio_id': 30920677, 'last_run_id': 2973646, 'total_number_of_photos': 2037}} No error ? {'log_dict': {'total_nb_images': 2116, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21160 seconds', 'coverage_times_pause': '0 days 42320 seconds', 'nb_photos_decision': 2116, 'nb_gray_level_ok': 2116, 'nb_dedup_ok': 2009, 'nb_two_criteria_ok': 2009, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 107, 'end_of_day_photos_nothing_done': 2, 'end_of_day_photos_ok_for_neural_classification': 2, 'end_of_day_photos_uploaded': 2005, 'ratio_coverage': 0.24491024201669}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/02', 'portfolio_id': 30915599, 'last_run_id': 2972976, 'total_number_of_photos': 2029}} Since we don't have condition on date we need to verify this lately ! No error ? {'log_dict': {'total_nb_images': 2118, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21180 seconds', 'coverage_times_pause': '0 days 42360 seconds', 'nb_photos_decision': 2118, 'nb_gray_level_ok': 2118, 'nb_dedup_ok': 1958, 'nb_two_criteria_ok': 1958, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 160, 'end_of_day_photos_nothing_done': 3, 'end_of_day_photos_ok_for_neural_classification': 1, 'end_of_day_photos_uploaded': 1954, 'ratio_coverage': 0.2451417261773863}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/04', 'portfolio_id': 30926329, 'last_run_id': 2974249, 'total_number_of_photos': 1983}} No error ? {'log_dict': {'total_nb_images': 2122, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21220 seconds', 'coverage_times_pause': '0 days 42440 seconds', 'nb_photos_decision': 2125, 'nb_gray_level_ok': 2125, 'nb_dedup_ok': 2020, 'nb_two_criteria_ok': 2020, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 104, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 1, 'end_of_day_photos_uploaded': 2016, 'ratio_coverage': 0.24560469449877892}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/03', 'portfolio_id': 30920677, 'last_run_id': 2973646, 'total_number_of_photos': 2037}} No error ? {'log_dict': {'total_nb_images': 2116, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21160 seconds', 'coverage_times_pause': '0 days 42320 seconds', 'nb_photos_decision': 2116, 'nb_gray_level_ok': 2116, 'nb_dedup_ok': 2009, 'nb_two_criteria_ok': 2009, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 107, 'end_of_day_photos_nothing_done': 2, 'end_of_day_photos_ok_for_neural_classification': 2, 'end_of_day_photos_uploaded': 2005, 'ratio_coverage': 0.24491024201669}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/02', 'portfolio_id': 30915599, 'last_run_id': 2972976, 'total_number_of_photos': 2029}} Since we don't have condition on date we need to verify this lately ! No error ? {'log_dict': {'total_nb_images': 2122, 'max_time_between_images': '0 days 140 seconds', 'coverage_pause': '0 days 21220 seconds', 'coverage_times_pause': '0 days 42440 seconds', 'nb_photos_decision': 2125, 'nb_gray_level_ok': 2125, 'nb_dedup_ok': 2020, 'nb_two_criteria_ok': 2020, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 104, 'end_of_day_photos_nothing_done': 1, 'end_of_day_photos_ok_for_neural_classification': 1, 'end_of_day_photos_uploaded': 2016, 'ratio_coverage': 0.24560469449877892}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/03', 'portfolio_id': 30920677, 'last_run_id': 2973646, 'total_number_of_photos': 2037}} No error ? {'log_dict': {'total_nb_images': 2116, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21160 seconds', 'coverage_times_pause': '0 days 42320 seconds', 'nb_photos_decision': 2116, 'nb_gray_level_ok': 2116, 'nb_dedup_ok': 2009, 'nb_two_criteria_ok': 2009, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 107, 'end_of_day_photos_nothing_done': 2, 'end_of_day_photos_ok_for_neural_classification': 2, 'end_of_day_photos_uploaded': 2005, 'ratio_coverage': 0.24491024201669}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/02', 'portfolio_id': 30915599, 'last_run_id': 2972976, 'total_number_of_photos': 2029}} Since we don't have condition on date we need to verify this lately ! No error ? {'log_dict': {'total_nb_images': 2116, 'max_time_between_images': '0 days 139 seconds', 'coverage_pause': '0 days 21160 seconds', 'coverage_times_pause': '0 days 42320 seconds', 'nb_photos_decision': 2116, 'nb_gray_level_ok': 2116, 'nb_dedup_ok': 2009, 'nb_two_criteria_ok': 2009, 'nb_forced_upload': 0, 'end_of_day_photos_duplicated': 107, 'end_of_day_photos_nothing_done': 2, 'end_of_day_photos_ok_for_neural_classification': 2, 'end_of_day_photos_uploaded': 2005, 'ratio_coverage': 0.24491024201669}, 'dashboard_dict': {'nb_ptf_finished': 0, 'nb_images_finished': 0, 'nb_ptf_finished_for_older': 0, 'nb_images_finished_for_older': 0, 'nb_ptf_started': 0, 'nb_images_started': 0, 'nb_selected_images': 0, 'last_update': '2026/04/02', 'portfolio_id': 30915599, 'last_run_id': 2972976, 'total_number_of_photos': 2029}} Since we don't have condition on date we need to verify this lately ! Since we don't have condition on date we need to verify this lately ! Found day : 2026-04-25 00:00:00 Found day : 2026-04-24 00:00:00 Found day : 2026-04-23 00:00:00 Found day : 2026-04-22 00:00:00 Found day : 2026-04-21 00:00:00 Found day : 2026-04-20 00:00:00 Found day : 2026-04-19 00:00:00 Found day : 2026-04-18 00:00:00 Found day : 2026-04-17 00:00:00 Found day : 2026-04-16 00:00:00 Found day : 2026-04-15 00:00:00 Found day : 2026-04-14 00:00:00 Found day : 2026-04-13 00:00:00 Found day : 2026-04-12 00:00:00 Found day : 2026-04-11 00:00:00 Found day : 2026-04-10 00:00:00 Found day : 2026-04-09 00:00:00 Found day : 2026-04-08 00:00:00 Found day : 2026-04-07 00:00:00 Found day : 2026-04-06 00:00:00 Found day : 2026-04-05 00:00:00 Found day : 2026-04-04 00:00:00 Found day : 2026-04-03 00:00:00 Found day : 2026-04-02 00:00:00 Found day : 2026-04-01 00:00:00 Missing day sla_per_day needs to be called ! Missing day sla_per_day needs to be called ! Missing day sla_per_day needs to be called ! Missing day sla_per_day needs to be called ! Missing day sla_per_day needs to be called ! We will need to call the sla_per_day for these missing days : 2026-04-26 00:00:00,2026-04-27 00:00:00,2026-04-28 00:00:00,2026-04-29 00:00:00,2026-04-30 00:00:00 after coverage_data SELECT DATE(date_debut) as date, sum(qualite*nombre_balle)/sum(nombre_balle), nombre_balle FROM MTRPhoto.dashboard_results dr, MTRPhoto.dashboard_entry_day ded where ded.dashboard_place_id = 132 and month(ded.date) = 04 and year(ded.date) = 2026 and dr.dashboard_run_id=ded.last_run_id and dr.qualite>=0 GROUP BY ded.date order by dr.date_debut; select avg(cps.score) as score, SUBSTRING_INDEX(SUBSTRING_INDEX(mp.name,'__', -1), '_', 1) as sbstr, SUBSTRING_INDEX(SUBSTRING_INDEX(mp.name,'_', -2), '_', 1) as sbstr2, SUBSTRING_INDEX(mp.name,'_', -1) as sbstr3 FROM MTRUser.mtr_portfolio_photos mpp, MTRUser.mtr_portfolios mp,MTRPhoto.class_photo_score cps,MTRBack.hashtags h,MTRPhoto.dashboard_results dr,MTRPhoto.dashboard_entry_day ded, MTRPhoto.dashboard_places dp WHERE mp.id=mpp.mtr_portfolio_id and cps.photo_id=mpp.mtr_photo_id and h.hashtag_id=cps.hashtag_id and dr.mtr_portfolio_id = mpp.mtr_portfolio_id and dr.dashboard_run_id = ded.last_run_id and ded.dashboard_place_id = dp.id and h.hashtag in ('blur', 'mean_blur', 'clear') and dp.id = 132 and mp.name like '%042026%' and cps.thcl = 1533 GROUP BY sbstr ; after number_of_batch date_start : 2026-04-01 : dt_date_just_month_year : 2026-04-01 00:00:00 : VR TODO TOCHECK : due to this bug it shouldn't have being able to work, or maybe it was due to a change directory not done ! after pl.get_datou_sts_from_crontab : verbose : True no sts found, try to find from database SELECT dri.id FROM MTRPhoto.dashboard_run_ids dri, MTRPhoto.dashboard_entry_day ded, MTRPhoto.dashboard_places dp WHERE dp.name= "dechet_Valcor_v2" AND ded.dashboard_place_id=dp.id AND dri.dashboard_entry_day=ded.id AND dri.id=ded.last_run_id AND ded.date >= "2026-04-01" AND ded.date <= "2026-04-30" SELECT h.hashtag as unwanted_material, substr(dr.hashtag,8) as main_material, ptp.type as pht_type, sum(pcr.value*dr.nombre_balle)/sum(dr.nombre_balle) as ratio, count(distinct mpp.mtr_photo_id) as nb_photo, group_concat(distinct ptp.mtr_portfolio_id_2) as list_port_cont, group_concat(distinct concat(cast(ptp.mtr_portfolio_id_1 as char), ":", cast(ptp.mtr_portfolio_id_2 as char))) as assoc_port, group_concat(distinct concat(cast(ptp.mtr_portfolio_id_1 as char), ":", h.hashtag, ":", cast(ptp.type as char), ":", cast(ptp.mtr_portfolio_id_2 as char))) as assoc_mat FROM MTRPhoto.dashboard_results dr, MTRPhoto.mtr_port_to_port_ids ptp, MTRUser.mtr_portfolio_photos mpp, MTRUser.portfolio_carac_ratio pcr, MTRBack.hashtags h WHERE dr.dashboard_run_id IN (2972976,2983242,2983224,2981398,2981412,2981414,2984192,2984190,2977796,2977952,2984144,2984074,2984076,2979966,2980626,2981132,2981342,2981836,2982130,2982604,2982922,2983518,2984040,2984510,2984904) AND dr.mtr_portfolio_id=ptp.mtr_portfolio_id_1 AND dr.qualite >= 0 AND mpp.mtr_portfolio_id=ptp.mtr_portfolio_id_2 AND pcr.portfolio_id=ptp.mtr_portfolio_id_1 AND h.hashtag_id = pcr.hashtag_id AND ptp.type = pcr.hashtag_type AND mpp.hide_status = 0 AND ptp.hashtag_id=h.hashtag_id AND ptp.type IN (0,4230) group by h.hashtag, dr.hashtag, ptp.type; [] select count(distinct mtr_photo_id) from MTRUser.mtr_portfolio_photos where mtr_portfolio_id in (select mtr_portfolio_id from MTRPhoto.dashboard_results where dashboard_run_id in(2972976,2983242,2983224,2981398,2981412,2981414,2984192,2984190,2977796,2977952,2984144,2984074,2984076,2979966,2980626,2981132,2981342,2981836,2982130,2982604,2982922,2983518,2984040,2984510,2984904)); after get_hostname_from_raspi after impurety_average_per_hashtag {'number_of_analysed_photos': ((0,),), 'unwanted_material_monthly_percentage': 0, 'material_repartition': (), 'material_dict': {}, 'coverage_data': (('2026/04/25/', 0.245373), ('2026/04/24/', 0.245605), ('2026/04/23/', 0.245489), ('2026/04/22/', 0.245489), ('2026/04/21/', 0.245952), ('2026/04/20/', 0.245373), ('2026/04/19/', 0.245373), ('2026/04/18/', 0.245489), ('2026/04/17/', 0.245952), ('2026/04/16/', 0.245142), ('2026/04/15/', 0.245489), ('2026/04/14/', 0.245142), ('2026/04/13/', 0.24572), ('2026/04/12/', 0.24491), ('2026/04/11/', 0.24572), ('2026/04/10/', 0.245142), ('2026/04/09/', 0.245257), ('2026/04/08/', 0.245373), ('2026/04/07/', 0.245605), ('2026/04/06/', 0.245373), ('2026/04/05/', 0.245373), ('2026/04/04/', 0.245373), ('2026/04/03/', 0.245142), ('2026/04/02/', 0.245605), ('2026/04/01/', 0.24491)), 'impurety_average_data': (), 'impurety_average_data_per_hashtag': {}, 'quality_array': [], 'number_of_batch': ((0,),), 'datou_id_sts': 4311, 'map_hashtag_number_mat': {'hash_to_mat_nb': [], 'main_stat': {'nb_photos': 0}, 'velours_link': {}}, 'hostname': (('raspi-84',),), 'impurety_average_per_hashtag': []} VR TODO TOCHECK : due to this bug it shouldn't have being able to work, or maybe it was due to a change directory not done ! SELECT name, created_at,limit_max FROM MTRDatou.mtr_datou WHERE id=4311 SELECT mtd.id, mtdt.`type`, mtd.`param`, mtd.param_json, mtdt.nb_input, mtdt.nb_output, mtdt.prod, mtdt.is_local, mtdt.is_datou_depend, mtdt.is_photo_id_local FROM MTRDatou.mtr_datou_step mtd, MTRDatou.mtr_datou_step_types mtdt WHERE mtdt.`id`=mtd.`type` AND mtd.mtd_id=4311 SELECT mtd.id, mtd.mtd_id, mdsdt.id, mdsdt.name, mdsdt.description, msid.output_or_input, msid.data_order_id, mdsdt.type FROM MTRDatou.mtr_datou_step mtd, MTRDatou.mtr_datou_steptype_io_datatypes msid, MTRDatou.mtr_datou_step_data_types mdsdt WHERE mtd.`type`=msid.`mtr_datou_step_type` AND mtd.mtd_id= 4311 AND msid.data_type=mdsdt.id SELECT mts_id_output, id_output, mts_id_input, id_input FROM MTRDatou.mtr_datou_step_by_step WHERE mtd_id=4311 # VR 17-11-17 : to create in DB ! Here we check the datou graph and we reorder steps ! Tree builded and cycle checked, now we need to re-order the steps ! We have currenlty an error because there is no dependence between the last step for the case tile - detect - glue We can either keep the depence of, it is better to keep an order compatible with the id of steps if we do not have sons, so a lexical order : (number_son, step_id) All sons are already in current list ! DONE and to test : checkNoCycle ! Here we check the consistency of inputs/outputs number between the given ones and the db ! eke 1-6-18 : checkConsistencyNbInputNbOutput should be processed after step reordering ! WARNING : number of outputs for step 11939 matching_dashboard is not consistent : 1 used against 0 in the step definition ! Step 11940 split_time_score have less inputs used (1) than in the step definition (2) : maybe we manage optionnal inputs ! Number of inputs / outputs for each step checked ! Here we check the consistency of outputs/inputs types during steps connections eke 1-6-18 : checkConsistencyTypeOutputInput should be processed after checkConsistencyNbInputNbOutput ! WARNING : type of output 0 of step 11939 doesn't seem to be define in the database( WARNING : type of input 2 of step 11940 doesn't seem to be define in the database( DataTypes for each output/input checked ! {"input_values":[]} We expected an STS datou with a camera_place_name, so there is a PB, datou_id: 4311 ! None was removed should we ? None was removed should we ? donnée sous forme de texte was removed should we ? [ptf_id0,ptf_id1...] was removed should we ? {'id': '4311', 'name': 'sts_dechet_valcor_matching_v2_2022Q3', 'limit_max': 100, 'nb_steps': 2, 'estimated_time': 8640, 'list_steps': [{'id': 11939, 'type': 'matching_dashboard', 'param': '0', 'json_param_as_string': "{'camera_matching': 'plaque_Valcor', 'max_time_diff': 120, 'matching_method': '1_vs_n', 'input_default_values': []}", 'json_param': {'camera_matching': 'plaque_Valcor', 'max_time_diff': 120, 'matching_method': '1_vs_n', 'input_default_values': []}, 'nb_input': 1, 'nb_output': 0, 'prod': False, 'is_local': False, 'is_datou_depend': False, 'is_photo_id_local': False, 'list_data': [{'step_id': 11939, 'datou_id': 4311, 'type_id': 18, 'name': 'portfolio_id', 'output_or_input': False, 'data_order_id': 0, 'type_python': 'int'}]}, {'id': 11940, 'type': 'split_time_score', 'param': '0', 'json_param_as_string': "{'camera_place_name': 'dechet_Valcor_v2', 'ETA': 8640, 'param_moyenne_mobile': 5, 'thcl': 3442, 'list_task_complete': [''], 'list_tasks': 'LOAD,ORDER,CONVENTION,SPLIT_TRUCK,merge_port_according_to_plate_info,remove_no_plate_batch,CREATE_PORT_LAUNCH_CARAC_FILL_DASHBOARD', 'forced_hashtag': 'truck', 'list_hashtag_class_create': 'truck', 'ponderation': '0.001,0.001,0.001,0.001,0.001', 'datou_proportion_papier': {'test': 370, 'truck': 4234}, 'datou_matching_id': 4311, 'cod': 1, 'min_number_photo_per_batch': 2, 'host': 'marlene.fotonower.com', 'datou_truck_for_info': 4234}", 'json_param': {'camera_place_name': 'dechet_Valcor_v2', 'ETA': 8640, 'param_moyenne_mobile': 5, 'thcl': 3442, 'list_task_complete': [''], 'list_tasks': 'LOAD,ORDER,CONVENTION,SPLIT_TRUCK,merge_port_according_to_plate_info,remove_no_plate_batch,CREATE_PORT_LAUNCH_CARAC_FILL_DASHBOARD', 'forced_hashtag': 'truck', 'list_hashtag_class_create': 'truck', 'ponderation': '0.001,0.001,0.001,0.001,0.001', 'datou_proportion_papier': {'test': 370, 'truck': 4234}, 'datou_matching_id': 4311, 'cod': 1, 'min_number_photo_per_batch': 2, 'host': 'marlene.fotonower.com', 'datou_truck_for_info': 4234}, 'nb_input': 2, 'nb_output': 1, 'prod': False, 'is_local': False, 'is_datou_depend': False, 'is_photo_id_local': False, 'list_data': [{'step_id': 11940, 'datou_id': 4311, 'type_id': 18, 'name': 'portfolio_id', 'output_or_input': False, 'data_order_id': 0, 'type_python': 'int'}, {'step_id': 11940, 'datou_id': 4311, 'type_id': 10, 'name': 'data_string', 'output_or_input': False, 'data_order_id': 1, 'type_python': 'string'}, {'step_id': 11940, 'datou_id': 4311, 'type_id': 22, 'name': 'portfolios_ids_list', 'output_or_input': True, 'data_order_id': 0, 'type_python': 'liste_de_int'}]}], 'depends_step': [{'output': 11939, 'output_id': 0, 'input': 11940, 'input_id': 2}]} check if it is the case where we have multiple sts in one datou no, it is not this case SELECT name, created_at,limit_max FROM MTRDatou.mtr_datou WHERE id=370 SELECT mtd.id, mtdt.`type`, mtd.`param`, mtd.param_json, mtdt.nb_input, mtdt.nb_output, mtdt.prod, mtdt.is_local, mtdt.is_datou_depend, mtdt.is_photo_id_local FROM MTRDatou.mtr_datou_step mtd, MTRDatou.mtr_datou_step_types mtdt WHERE mtdt.`id`=mtd.`type` AND mtd.mtd_id=370 SELECT mtd.id, mtd.mtd_id, mdsdt.id, mdsdt.name, mdsdt.description, msid.output_or_input, msid.data_order_id, mdsdt.type FROM MTRDatou.mtr_datou_step mtd, MTRDatou.mtr_datou_steptype_io_datatypes msid, MTRDatou.mtr_datou_step_data_types mdsdt WHERE mtd.`type`=msid.`mtr_datou_step_type` AND mtd.mtd_id= 370 AND msid.data_type=mdsdt.id SELECT mts_id_output, id_output, mts_id_input, id_input FROM MTRDatou.mtr_datou_step_by_step WHERE mtd_id=370 # VR 17-11-17 : to create in DB ! Here we check the datou graph and we reorder steps ! Tree builded and cycle checked, now we need to re-order the steps ! We have currenlty an error because there is no dependence between the last step for the case tile - detect - glue We can either keep the depence of, it is better to keep an order compatible with the id of steps if we do not have sons, so a lexical order : (number_son, step_id) All sons are already in current list ! All sons are already in current list ! All sons are already in current list ! All sons are already in current list ! DONE and to test : checkNoCycle ! Here we check the consistency of inputs/outputs number between the given ones and the db ! eke 1-6-18 : checkConsistencyNbInputNbOutput should be processed after step reordering ! Number of inputs / outputs for each step checked ! Here we check the consistency of outputs/inputs types during steps connections eke 1-6-18 : checkConsistencyTypeOutputInput should be processed after checkConsistencyNbInputNbOutput ! We ignore checkConsistencyTypeOutputInput for datou_step final ! We ignore checkConsistencyTypeOutputInput for datou_step final ! We ignore checkConsistencyTypeOutputInput for datou_step final ! DataTypes for each output/input checked ! {"input_values":[]} Unexpected error treated as WARNING for now expected given param in final step {'min_score': 0.7, 'name_pipeline': 'proportion_papier_tapis', 'hashtag_type': 705, 'hashtag_proportion': 492668766, 'hashtag_parmi': 538914404, 'hashtag_to_consider': 'papier_only', 'hashtag_background': 493012381} Found hashtag_parmi in final step, will be used and useful if different from matiere_majoritaire in classifier ventilate_hashtags_in_portfolio step not found ! SELECT name, created_at,limit_max FROM MTRDatou.mtr_datou WHERE id=4234 SELECT mtd.id, mtdt.`type`, mtd.`param`, mtd.param_json, mtdt.nb_input, mtdt.nb_output, mtdt.prod, mtdt.is_local, mtdt.is_datou_depend, mtdt.is_photo_id_local FROM MTRDatou.mtr_datou_step mtd, MTRDatou.mtr_datou_step_types mtdt WHERE mtdt.`id`=mtd.`type` AND mtd.mtd_id=4234 SELECT mtd.id, mtd.mtd_id, mdsdt.id, mdsdt.name, mdsdt.description, msid.output_or_input, msid.data_order_id, mdsdt.type FROM MTRDatou.mtr_datou_step mtd, MTRDatou.mtr_datou_steptype_io_datatypes msid, MTRDatou.mtr_datou_step_data_types mdsdt WHERE mtd.`type`=msid.`mtr_datou_step_type` AND mtd.mtd_id= 4234 AND msid.data_type=mdsdt.id SELECT mts_id_output, id_output, mts_id_input, id_input FROM MTRDatou.mtr_datou_step_by_step WHERE mtd_id=4234 # VR 17-11-17 : to create in DB ! Here we check the datou graph and we reorder steps ! Tree builded and cycle checked, now we need to re-order the steps ! We have currenlty an error because there is no dependence between the last step for the case tile - detect - glue We can either keep the depence of, it is better to keep an order compatible with the id of steps if we do not have sons, so a lexical order : (number_son, step_id) All sons are already in current list ! All sons are already in current list ! All sons are already in current list ! All sons are already in current list ! All sons are already in current list ! All sons are already in current list ! All sons are already in current list ! All sons are already in current list ! All sons are already in current list ! All sons are already in current list ! DONE and to test : checkNoCycle ! Here we check the consistency of inputs/outputs number between the given ones and the db ! eke 1-6-18 : checkConsistencyNbInputNbOutput should be processed after step reordering ! WARNING : number of outputs for step 11415 rle_unique_nms_with_priority is not consistent : 2 used against 1 in the step definition ! Step 11419 crop_condition have less inputs used (1) than in the step definition (2) : maybe we manage optionnal inputs ! WARNING : number of outputs for step 11419 crop_condition is not consistent : 4 used against 3 in the step definition ! WARNING : number of inputs for step 11416 ventilate_hashtags_in_portfolio is not consistent : 2 used against 1 in the step definition ! WARNING : number of outputs for step 11416 ventilate_hashtags_in_portfolio is not consistent : 2 used against 1 in the step definition ! Step 11417 final have less inputs used (2) than in the step definition (3) : maybe we manage optionnal inputs ! Step 11417 final have less outputs used (1) than in the step definition (2) : some outputs may be not used ! Step 11422 split_time_score have less inputs used (1) than in the step definition (2) : maybe we manage optionnal inputs ! Number of inputs / outputs for each step checked ! Here we check the consistency of outputs/inputs types during steps connections eke 1-6-18 : checkConsistencyTypeOutputInput should be processed after checkConsistencyNbInputNbOutput ! We ignore checkConsistencyTypeOutputInput for datou_step final ! WARNING : output 0 of step 11416 have datatype=10 whereas input 2 of step 11418 have datatype=6 We ignore checkConsistencyTypeOutputInput for datou_step final ! WARNING : type of input 2 of step 11419 doesn't seem to be define in the database( WARNING : output 1 of step 11415 have datatype=7 whereas input 2 of step 11419 have datatype=None WARNING : type of output 3 of step 11419 doesn't seem to be define in the database( WARNING : type of input 1 of step 11416 doesn't seem to be define in the database( WARNING : type of output 1 of step 11416 doesn't seem to be define in the database( WARNING : type of input 3 of step 11417 doesn't seem to be define in the database( We ignore checkConsistencyTypeOutputInput for datou_step final ! WARNING : output 0 of step 11416 have datatype=10 whereas input 0 of step 11420 have datatype=18 WARNING : type of input 5 of step 11418 doesn't seem to be define in the database( WARNING : output 0 of step 11420 have datatype=11 whereas input 5 of step 11418 have datatype=None WARNING : type of input 2 of step 11416 doesn't seem to be define in the database( WARNING : output 0 of step 11421 have datatype=5 whereas input 2 of step 11416 have datatype=None WARNING : output 0 of step 11418 have datatype=10 whereas input 0 of step 11422 have datatype=18 DataTypes for each output/input checked ! {"input_values":[]} Unexpected error treated as WARNING for now expected given param in final step {'name_pipeline': 'aggregate_carac_ratio', 'hashtag_type': 4230, 'hashtag_proportion': 'papier,carton,metal,pet_clair,autre,pehd,pet_fonce', 'hashtag_parmi': 'refus', 'hashtag_weights': {'autre': 3.0, 'barquette_avec_film': 3.0, 'carton': 3.0, 'metal': 3.0, 'papier': 3.0, 'pehd': 3.0, 'pet_fonce': 3.0, 'pet_clair': 1.0, 'flou': 1.0, 'mal_croppe': 1.0}, 'option_sccu': 1} Found hashtag_parmi in final step, will be used and useful if different from matiere_majoritaire in classifier TODO : Insert select and so on SELECT id, name, misc_info, datou_id_for_right FROM MTRPhoto.dashboard_places WHERE name="dechet_Valcor_v2"; SELECT name, created_at,limit_max FROM MTRDatou.mtr_datou WHERE id=4311 SELECT mtd.id, mtdt.`type`, mtd.`param`, mtd.param_json, mtdt.nb_input, mtdt.nb_output, mtdt.prod, mtdt.is_local, mtdt.is_datou_depend, mtdt.is_photo_id_local FROM MTRDatou.mtr_datou_step mtd, MTRDatou.mtr_datou_step_types mtdt WHERE mtdt.`id`=mtd.`type` AND mtd.mtd_id=4311 SELECT mtd.id, mtd.mtd_id, mdsdt.id, mdsdt.name, mdsdt.description, msid.output_or_input, msid.data_order_id, mdsdt.type FROM MTRDatou.mtr_datou_step mtd, MTRDatou.mtr_datou_steptype_io_datatypes msid, MTRDatou.mtr_datou_step_data_types mdsdt WHERE mtd.`type`=msid.`mtr_datou_step_type` AND mtd.mtd_id= 4311 AND msid.data_type=mdsdt.id SELECT mts_id_output, id_output, mts_id_input, id_input FROM MTRDatou.mtr_datou_step_by_step WHERE mtd_id=4311 # VR 17-11-17 : to create in DB ! Here we check the datou graph and we reorder steps ! Tree builded and cycle checked, now we need to re-order the steps ! We have currenlty an error because there is no dependence between the last step for the case tile - detect - glue We can either keep the depence of, it is better to keep an order compatible with the id of steps if we do not have sons, so a lexical order : (number_son, step_id) All sons are already in current list ! DONE and to test : checkNoCycle ! Here we check the consistency of inputs/outputs number between the given ones and the db ! eke 1-6-18 : checkConsistencyNbInputNbOutput should be processed after step reordering ! WARNING : number of outputs for step 11939 matching_dashboard is not consistent : 1 used against 0 in the step definition ! Step 11940 split_time_score have less inputs used (1) than in the step definition (2) : maybe we manage optionnal inputs ! Number of inputs / outputs for each step checked ! Here we check the consistency of outputs/inputs types during steps connections eke 1-6-18 : checkConsistencyTypeOutputInput should be processed after checkConsistencyNbInputNbOutput ! WARNING : type of output 0 of step 11939 doesn't seem to be define in the database( WARNING : type of input 2 of step 11940 doesn't seem to be define in the database( DataTypes for each output/input checked ! {"input_values":[]} We expected an STS datou with a camera_place_name, so there is a PB, datou_id: 4311 ! None was removed should we ? None was removed should we ? donnée sous forme de texte was removed should we ? [ptf_id0,ptf_id1...] was removed should we ? {'id': 4311, 'name': 'sts_dechet_valcor_matching_v2_2022Q3', 'limit_max': 100, 'nb_steps': 2, 'estimated_time': 8640, 'list_steps': [{'id': 11939, 'type': 'matching_dashboard', 'param': '0', 'json_param_as_string': "{'camera_matching': 'plaque_Valcor', 'max_time_diff': 120, 'matching_method': '1_vs_n', 'input_default_values': []}", 'json_param': {'camera_matching': 'plaque_Valcor', 'max_time_diff': 120, 'matching_method': '1_vs_n', 'input_default_values': []}, 'nb_input': 1, 'nb_output': 0, 'prod': False, 'is_local': False, 'is_datou_depend': False, 'is_photo_id_local': False, 'list_data': [{'step_id': 11939, 'datou_id': 4311, 'type_id': 18, 'name': 'portfolio_id', 'output_or_input': False, 'data_order_id': 0, 'type_python': 'int'}]}, {'id': 11940, 'type': 'split_time_score', 'param': '0', 'json_param_as_string': "{'camera_place_name': 'dechet_Valcor_v2', 'ETA': 8640, 'param_moyenne_mobile': 5, 'thcl': 3442, 'list_task_complete': [''], 'list_tasks': 'LOAD,ORDER,CONVENTION,SPLIT_TRUCK,merge_port_according_to_plate_info,remove_no_plate_batch,CREATE_PORT_LAUNCH_CARAC_FILL_DASHBOARD', 'forced_hashtag': 'truck', 'list_hashtag_class_create': 'truck', 'ponderation': '0.001,0.001,0.001,0.001,0.001', 'datou_proportion_papier': {'test': 370, 'truck': 4234}, 'datou_matching_id': 4311, 'cod': 1, 'min_number_photo_per_batch': 2, 'host': 'marlene.fotonower.com', 'datou_truck_for_info': 4234}", 'json_param': {'camera_place_name': 'dechet_Valcor_v2', 'ETA': 8640, 'param_moyenne_mobile': 5, 'thcl': 3442, 'list_task_complete': [''], 'list_tasks': 'LOAD,ORDER,CONVENTION,SPLIT_TRUCK,merge_port_according_to_plate_info,remove_no_plate_batch,CREATE_PORT_LAUNCH_CARAC_FILL_DASHBOARD', 'forced_hashtag': 'truck', 'list_hashtag_class_create': 'truck', 'ponderation': '0.001,0.001,0.001,0.001,0.001', 'datou_proportion_papier': {'test': 370, 'truck': 4234}, 'datou_matching_id': 4311, 'cod': 1, 'min_number_photo_per_batch': 2, 'host': 'marlene.fotonower.com', 'datou_truck_for_info': 4234}, 'nb_input': 2, 'nb_output': 1, 'prod': False, 'is_local': False, 'is_datou_depend': False, 'is_photo_id_local': False, 'list_data': [{'step_id': 11940, 'datou_id': 4311, 'type_id': 18, 'name': 'portfolio_id', 'output_or_input': False, 'data_order_id': 0, 'type_python': 'int'}, {'step_id': 11940, 'datou_id': 4311, 'type_id': 10, 'name': 'data_string', 'output_or_input': False, 'data_order_id': 1, 'type_python': 'string'}, {'step_id': 11940, 'datou_id': 4311, 'type_id': 22, 'name': 'portfolios_ids_list', 'output_or_input': True, 'data_order_id': 0, 'type_python': 'liste_de_int'}]}], 'depends_step': [{'output': 11939, 'output_id': 0, 'input': 11940, 'input_id': 2}]} check if it is the case where we have multiple sts in one datou no, it is not this case SELECT name, created_at,limit_max FROM MTRDatou.mtr_datou WHERE id=370 SELECT mtd.id, mtdt.`type`, mtd.`param`, mtd.param_json, mtdt.nb_input, mtdt.nb_output, mtdt.prod, mtdt.is_local, mtdt.is_datou_depend, mtdt.is_photo_id_local FROM MTRDatou.mtr_datou_step mtd, MTRDatou.mtr_datou_step_types mtdt WHERE mtdt.`id`=mtd.`type` AND mtd.mtd_id=370 SELECT mtd.id, mtd.mtd_id, mdsdt.id, mdsdt.name, mdsdt.description, msid.output_or_input, msid.data_order_id, mdsdt.type FROM MTRDatou.mtr_datou_step mtd, MTRDatou.mtr_datou_steptype_io_datatypes msid, MTRDatou.mtr_datou_step_data_types mdsdt WHERE mtd.`type`=msid.`mtr_datou_step_type` AND mtd.mtd_id= 370 AND msid.data_type=mdsdt.id SELECT mts_id_output, id_output, mts_id_input, id_input FROM MTRDatou.mtr_datou_step_by_step WHERE mtd_id=370 # VR 17-11-17 : to create in DB ! Here we check the datou graph and we reorder steps ! Tree builded and cycle checked, now we need to re-order the steps ! We have currenlty an error because there is no dependence between the last step for the case tile - detect - glue We can either keep the depence of, it is better to keep an order compatible with the id of steps if we do not have sons, so a lexical order : (number_son, step_id) All sons are already in current list ! All sons are already in current list ! All sons are already in current list ! All sons are already in current list ! DONE and to test : checkNoCycle ! Here we check the consistency of inputs/outputs number between the given ones and the db ! eke 1-6-18 : checkConsistencyNbInputNbOutput should be processed after step reordering ! Number of inputs / outputs for each step checked ! Here we check the consistency of outputs/inputs types during steps connections eke 1-6-18 : checkConsistencyTypeOutputInput should be processed after checkConsistencyNbInputNbOutput ! We ignore checkConsistencyTypeOutputInput for datou_step final ! We ignore checkConsistencyTypeOutputInput for datou_step final ! We ignore checkConsistencyTypeOutputInput for datou_step final ! DataTypes for each output/input checked ! {"input_values":[]} Unexpected error treated as WARNING for now expected given param in final step {'min_score': 0.7, 'name_pipeline': 'proportion_papier_tapis', 'hashtag_type': 705, 'hashtag_proportion': 492668766, 'hashtag_parmi': 538914404, 'hashtag_to_consider': 'papier_only', 'hashtag_background': 493012381} Found hashtag_parmi in final step, will be used and useful if different from matiere_majoritaire in classifier ventilate_hashtags_in_portfolio step not found ! SELECT name, created_at,limit_max FROM MTRDatou.mtr_datou WHERE id=4234 SELECT mtd.id, mtdt.`type`, mtd.`param`, mtd.param_json, mtdt.nb_input, mtdt.nb_output, mtdt.prod, mtdt.is_local, mtdt.is_datou_depend, mtdt.is_photo_id_local FROM MTRDatou.mtr_datou_step mtd, MTRDatou.mtr_datou_step_types mtdt WHERE mtdt.`id`=mtd.`type` AND mtd.mtd_id=4234 SELECT mtd.id, mtd.mtd_id, mdsdt.id, mdsdt.name, mdsdt.description, msid.output_or_input, msid.data_order_id, mdsdt.type FROM MTRDatou.mtr_datou_step mtd, MTRDatou.mtr_datou_steptype_io_datatypes msid, MTRDatou.mtr_datou_step_data_types mdsdt WHERE mtd.`type`=msid.`mtr_datou_step_type` AND mtd.mtd_id= 4234 AND msid.data_type=mdsdt.id SELECT mts_id_output, id_output, mts_id_input, id_input FROM MTRDatou.mtr_datou_step_by_step WHERE mtd_id=4234 # VR 17-11-17 : to create in DB ! Here we check the datou graph and we reorder steps ! Tree builded and cycle checked, now we need to re-order the steps ! We have currenlty an error because there is no dependence between the last step for the case tile - detect - glue We can either keep the depence of, it is better to keep an order compatible with the id of steps if we do not have sons, so a lexical order : (number_son, step_id) All sons are already in current list ! All sons are already in current list ! All sons are already in current list ! All sons are already in current list ! All sons are already in current list ! All sons are already in current list ! All sons are already in current list ! All sons are already in current list ! All sons are already in current list ! All sons are already in current list ! DONE and to test : checkNoCycle ! Here we check the consistency of inputs/outputs number between the given ones and the db ! eke 1-6-18 : checkConsistencyNbInputNbOutput should be processed after step reordering ! WARNING : number of outputs for step 11415 rle_unique_nms_with_priority is not consistent : 2 used against 1 in the step definition ! Step 11419 crop_condition have less inputs used (1) than in the step definition (2) : maybe we manage optionnal inputs ! WARNING : number of outputs for step 11419 crop_condition is not consistent : 4 used against 3 in the step definition ! WARNING : number of inputs for step 11416 ventilate_hashtags_in_portfolio is not consistent : 2 used against 1 in the step definition ! WARNING : number of outputs for step 11416 ventilate_hashtags_in_portfolio is not consistent : 2 used against 1 in the step definition ! Step 11417 final have less inputs used (2) than in the step definition (3) : maybe we manage optionnal inputs ! Step 11417 final have less outputs used (1) than in the step definition (2) : some outputs may be not used ! Step 11422 split_time_score have less inputs used (1) than in the step definition (2) : maybe we manage optionnal inputs ! Number of inputs / outputs for each step checked ! Here we check the consistency of outputs/inputs types during steps connections eke 1-6-18 : checkConsistencyTypeOutputInput should be processed after checkConsistencyNbInputNbOutput ! We ignore checkConsistencyTypeOutputInput for datou_step final ! WARNING : output 0 of step 11416 have datatype=10 whereas input 2 of step 11418 have datatype=6 We ignore checkConsistencyTypeOutputInput for datou_step final ! WARNING : type of input 2 of step 11419 doesn't seem to be define in the database( WARNING : output 1 of step 11415 have datatype=7 whereas input 2 of step 11419 have datatype=None WARNING : type of output 3 of step 11419 doesn't seem to be define in the database( WARNING : type of input 1 of step 11416 doesn't seem to be define in the database( WARNING : type of output 1 of step 11416 doesn't seem to be define in the database( WARNING : type of input 3 of step 11417 doesn't seem to be define in the database( We ignore checkConsistencyTypeOutputInput for datou_step final ! WARNING : output 0 of step 11416 have datatype=10 whereas input 0 of step 11420 have datatype=18 WARNING : type of input 5 of step 11418 doesn't seem to be define in the database( WARNING : output 0 of step 11420 have datatype=11 whereas input 5 of step 11418 have datatype=None WARNING : type of input 2 of step 11416 doesn't seem to be define in the database( WARNING : output 0 of step 11421 have datatype=5 whereas input 2 of step 11416 have datatype=None WARNING : output 0 of step 11418 have datatype=10 whereas input 0 of step 11422 have datatype=18 DataTypes for each output/input checked ! {"input_values":[]} Unexpected error treated as WARNING for now expected given param in final step {'name_pipeline': 'aggregate_carac_ratio', 'hashtag_type': 4230, 'hashtag_proportion': 'papier,carton,metal,pet_clair,autre,pehd,pet_fonce', 'hashtag_parmi': 'refus', 'hashtag_weights': {'autre': 3.0, 'barquette_avec_film': 3.0, 'carton': 3.0, 'metal': 3.0, 'papier': 3.0, 'pehd': 3.0, 'pet_fonce': 3.0, 'pet_clair': 1.0, 'flou': 1.0, 'mal_croppe': 1.0}, 'option_sccu': 1} Found hashtag_parmi in final step, will be used and useful if different from matiere_majoritaire in classifier {'number_of_analysed_photos': ((0,),), 'unwanted_material_monthly_percentage': 0, 'material_repartition': (), 'material_dict': {}, 'coverage_data': (('2026/04/25/', 0.245373), ('2026/04/24/', 0.245605), ('2026/04/23/', 0.245489), ('2026/04/22/', 0.245489), ('2026/04/21/', 0.245952), ('2026/04/20/', 0.245373), ('2026/04/19/', 0.245373), ('2026/04/18/', 0.245489), ('2026/04/17/', 0.245952), ('2026/04/16/', 0.245142), ('2026/04/15/', 0.245489), ('2026/04/14/', 0.245142), ('2026/04/13/', 0.24572), ('2026/04/12/', 0.24491), ('2026/04/11/', 0.24572), ('2026/04/10/', 0.245142), ('2026/04/09/', 0.245257), ('2026/04/08/', 0.245373), ('2026/04/07/', 0.245605), ('2026/04/06/', 0.245373), ('2026/04/05/', 0.245373), ('2026/04/04/', 0.245373), ('2026/04/03/', 0.245142), ('2026/04/02/', 0.245605), ('2026/04/01/', 0.24491)), 'impurety_average_data': (), 'impurety_average_data_per_hashtag': {}, 'quality_array': [], 'number_of_batch': ((0,),), 'datou_id_sts': 4311, 'map_hashtag_number_mat': {'hash_to_mat_nb': [], 'main_stat': {'nb_photos': 0}, 'velours_link': {}}, 'hostname': (('raspi-84',),), 'impurety_average_per_hashtag': []} filepath : /data_4/data_log/job/memo/dechet_Valcor_v2/sla_mensuel_dechet_Valcor_v2_mois_04_annee_2026.pdf Before plot_photos_and_unwanted_material_summary # VR 17-11-17 : to create in DB ! Here we check the datou graph and we reorder steps ! Tree builded and cycle checked, now we need to re-order the steps ! We have currenlty an error because there is no dependence between the last step for the case tile - detect - glue We can either keep the depence of, it is better to keep an order compatible with the id of steps if we do not have sons, so a lexical order : (number_son, step_id) All sons are already in current list ! DONE and to test : checkNoCycle ! Here we check the consistency of inputs/outputs number between the given ones and the db ! eke 1-6-18 : checkConsistencyNbInputNbOutput should be processed after step reordering ! WARNING : number of outputs for step 11939 matching_dashboard is not consistent : 1 used against 0 in the step definition ! Step 11940 split_time_score have less inputs used (1) than in the step definition (2) : maybe we manage optionnal inputs ! Number of inputs / outputs for each step checked ! Here we check the consistency of outputs/inputs types during steps connections eke 1-6-18 : checkConsistencyTypeOutputInput should be processed after checkConsistencyNbInputNbOutput ! WARNING : type of output 0 of step 11939 doesn't seem to be define in the database( WARNING : type of input 2 of step 11940 doesn't seem to be define in the database( DataTypes for each output/input checked ! None was removed should we ? None was removed should we ? donnée sous forme de texte was removed should we ? [ptf_id0,ptf_id1...] was removed should we ? Before organize_and_plot_unwanted_material_stats organize_and_plot_unwanted_material_stats returned null before organize_and_plot_coverage_data before organize_and_plot_impurety_average_data WARNING : no impurety_average_data, we do not create this page, by the way, c'est pas normal ! before organize_and_plot_quality_photo_data finish generating filepath : /data_4/data_log/job/memo/dechet_Valcor_v2/sla_mensuel_dechet_Valcor_v2_mois_04_annee_2026.pdf le fichier se trouve ici : /data_4/data_log/job/memo/dechet_Valcor_v2 2.07user 1.61system 0:05.09elapsed 72%CPU (0avgtext+0avgdata 183092maxresident)k 1160inputs+464outputs (17major+46852minor)pagefaults 0swaps