def get_ratio_and_stats(filenames, distinct, merge, zero_columns=None): """Parse input files to produce mean recipe ratio and related statistics """ files = [open(filename) for filename in filenames] ingredients, proportions = read_files(files) proportions = to_grams(ingredients, proportions) if distinct: proportions = set(proportions) ingredients, proportions = merge_columns(ingredients, proportions, merge) statistics = calculate_statistics(proportions, ingredients, zero_columns) ratio = Ratio(ingredients, statistics.bakers_percentage()) return ingredients, ratio, statistics, len(proportions)
def calculate_ratio(ingredients, proportions, filter_zeros=None): """Calculate ratio proportions from input data.""" statistics = calculate_statistics(proportions, ingredients, filter_zeros) return Ratio(ingredients, statistics.bakers_percentage())