@@ -543,82 +543,86 @@ def process_row(row_data):
543543 local_transformations += 1
544544 logger .debug (f"\t Calling the { j } th transformer: { transformer } ..." )
545545 k = 0
546- for target_id , target_edge , target_node , reverse_relation in transformer (row , i ):
547- logger .debug (f"\t \t { k } th element yielded by transformer" )
548- k += 1
549- target_node_id = self ._make_target_node_id (
550- row ,
551- i ,
552- transformer ,
553- j ,
554- target_id ,
555- target_edge ,
556- target_node ,
557- local_nodes ,
558- local_errors
559- )
546+ try :
547+ for target_id , target_edge , target_node , reverse_relation in transformer (row , i ):
548+ logger .debug (f"\t \t { k } th element yielded by transformer" )
549+ k += 1
550+ target_node_id = self ._make_target_node_id (
551+ row ,
552+ i ,
553+ transformer ,
554+ j ,
555+ target_id ,
556+ target_edge ,
557+ target_node ,
558+ local_nodes ,
559+ local_errors
560+ )
560561
561- #If no valid target node id was created, an error is logged in the `_make_target_node_id` function,
562- #and we move to the next iteration of the loop.
563- if target_node_id is None :
564- continue
565- else :
566- local_nb_nodes += 1
567-
568- # If a `from_subject` attribute is present in the transformer, loop over the transformer
569- # list to find the transformer instance mapping to the correct type, and then label_maker new
570- # subject id.
571-
572- # FIXME add hook functions to be overloaded.
573-
574- # FIXME: Make from_subject reference a list of subjects instead of using the add_edge function.
575-
576- if hasattr (transformer , "from_subject" ):
577-
578- self ._make_alternative_source_node_id (
579- row ,
580- i ,
581- transformer ,
582- j ,
583- target_node_id ,
584- target_edge ,
585- local_edges ,
586- local_errors
587- )
588-
589- else : # no attribute `from_subject` in `transformer`
590- logger .debug (f"\t \t Make edge { target_edge .__name__ } from { source_node_id } toward { target_node_id } " )
591- local_edges .append (
592- self .make_edge (
593- edge_t = target_edge ,
594- id_target = target_node_id ,
595- id_source = source_node_id ,
596- properties = self .properties (
597- target_edge .fields (),
598- row ,
599- i ,
600- target_edge ,
601- target_node
602- )
562+ #If no valid target node id was created, an error is logged in the `_make_target_node_id` function,
563+ #and we move to the next iteration of the loop.
564+ if target_node_id is None :
565+ continue
566+ else :
567+ local_nb_nodes += 1
568+
569+ # If a `from_subject` attribute is present in the transformer, loop over the transformer
570+ # list to find the transformer instance mapping to the correct type, and then label_maker new
571+ # subject id.
572+
573+ # FIXME add hook functions to be overloaded.
574+
575+ # FIXME: Make from_subject reference a list of subjects instead of using the add_edge function.
576+
577+ if hasattr (transformer , "from_subject" ):
578+
579+ self ._make_alternative_source_node_id (
580+ row ,
581+ i ,
582+ transformer ,
583+ j ,
584+ target_node_id ,
585+ target_edge ,
586+ local_edges ,
587+ local_errors
603588 )
604- )
605589
606- if reverse_relation :
607- logger .info (f"\t \t \ t Make reverse edge { reverse_relation .__name__ } from { target_node_id } to { source_node_id } " )
590+ else : # no attribute `from_subject` in `transformer`
591+ logger .debug (f"\t \t Make edge { target_edge .__name__ } from { source_node_id } toward { target_node_id } " )
608592 local_edges .append (
609593 self .make_edge (
610- edge_t = reverse_relation ,
611- id_target = source_node_id ,
612- id_source = target_node_id ,
594+ edge_t = target_edge ,
595+ id_target = target_node_id ,
596+ id_source = source_node_id ,
613597 properties = self .properties (
614- reverse_relation .fields (),
598+ target_edge .fields (),
615599 row ,
616600 i ,
617- reverse_relation ,
618- source_node_id . __class__
601+ target_edge ,
602+ target_node
619603 )
620604 )
621605 )
606+
607+ if reverse_relation :
608+ logger .info (f"\t \t \t Make reverse edge { reverse_relation .__name__ } from { target_node_id } to { source_node_id } " )
609+ local_edges .append (
610+ self .make_edge (
611+ edge_t = reverse_relation ,
612+ id_target = source_node_id ,
613+ id_source = target_node_id ,
614+ properties = self .properties (
615+ reverse_relation .fields (),
616+ row ,
617+ i ,
618+ reverse_relation ,
619+ source_node_id .__class__
620+ )
621+ )
622+ )
623+ except Exception as err :
624+ logger .error (f"Error while calling the { j } th transformer on the { i } th row, after having yielded { k } items." )
625+ raise err
622626 # assert hasattr(local_nodes, "__iter__")
623627 # assert hasattr(local_edges, "__iter__")
624628 return local_nodes , local_edges , local_errors , local_rows , local_transformations , local_nb_nodes
0 commit comments