def top(self, objects: Set[Object]) -> Set[Object]:
        """
        Return the topmost objects (i.e. minimum y_loc). The comparison is done separately for each
        box.
        """
        objects_per_box = self._separate_objects_by_boxes(objects)
        return_set: Set[Object] = set()
        for _, box_objects in objects_per_box.items():
            min_y_loc = min([obj.y_loc for obj in box_objects])
            return_set.update(set([obj for obj in box_objects if obj.y_loc == min_y_loc]))
        return return_set
def top ( self , objects : Set [ Object ] ) -> Set [ Object ] : objects_per_box = self . _separate_objects_by_boxes ( objects ) return_set : Set [ Object ] = set ( ) for _ , box_objects in objects_per_box . items ( ) : min_y_loc = min ( [ obj . y_loc for obj in box_objects ] ) return_set . update ( set ( [ obj for obj in box_objects if obj . y_loc == min_y_loc ] ) ) return return_set
Return the topmost objects (i.e. minimum y_loc). The comparison is done separately for each
        box.