@@ -512,19 +512,39 @@ def simplify_clusters(
512512 return new_roads
513513
514514
515- def get_type (edges , shared_edge ):
516- if ( # roundabout special case
517- edges .coins_group .nunique () == 1 and edges .shape [0 ] == edges .coins_count .iloc [0 ]
515+ def get_type (edges : gpd .GeoDataFrame , shared_edge : int ) -> str :
516+ """Classify artifact edges according to the ``{C, E, S}``
517+ schema when considering solutions for pairs of artifacts.
518+
519+ Parameters
520+ ----------
521+ edges : geopandas.GeoDataFrame
522+ Artifact edges in consideration.
523+ shared_edge : int
524+ The index location of the shared edge of the pair.
525+
526+ Returns
527+ -------
528+ str
529+ Classification for an edge in ``{C, E, S}``.
530+ """
531+
532+ if ( # Roundabout special case
533+ edges ["coins_group" ].nunique () == 1
534+ and edges .shape [0 ] == edges ["coins_count" ].iloc [0 ]
518535 ):
519536 return "S"
520537
521- all_ends = edges [edges . coins_end ]
522- mains = edges [~ edges . coins_group .isin (all_ends . coins_group )]
538+ all_ends = edges [edges [ " coins_end" ] ]
539+ mains = edges [~ edges [ " coins_group" ] .isin (all_ends [ " coins_group" ] )]
523540 shared = edges .loc [shared_edge ]
541+
524542 if shared_edge in mains .index :
525543 return "C"
526- if shared .coins_count == (edges .coins_group == shared .coins_group ).sum ():
544+
545+ if shared ["coins_count" ] == (edges ["coins_group" ] == shared ["coins_group" ]).sum ():
527546 return "S"
547+
528548 return "E"
529549
530550
0 commit comments