#NEWLINE# def parse_feature_files( paths ) : #NEWLINE# #INDENT# 'Parse feature files of given paths.\n\n    :param paths: `list` of paths (file or dirs)\n\n    :return: `list` of `tuple` in form:\n             (`list` of `Feature` objects, `list` of `Scenario` objects, `list` of `Step` objects).\n    ' #NEWLINE# features = get_features ( paths ) #NEWLINE# scenarios = sorted ( itertools . chain . from_iterable ( ( feature . scenarios . values ( ) for feature in features ) ) , key = ( lambda scenario : ( ( scenario . feature . name or scenario . feature . filename ) , scenario . name ) ) ) #NEWLINE# steps = sorted ( set ( itertools . chain . from_iterable ( ( scenario . steps for scenario in scenario ) ) ) , key = ( lambda step : step . name ) ) #NEWLINE# return ( features , scenarios , steps )