def METHOD_NAME(draw_type):
    try:
        return {
            "random": RandomBPDrawGenerator,
            "power_paired": BPHungarianDrawGenerator,
            "partial_elimination": PartialBPEliminationDrawGenerator,
            "after_partial_elimination": AfterPartialBPEliminationDrawGenerator,
            "first_elimination": FirstBPEliminationDrawGenerator,
            "elimination": SubsequentBPEliminationDrawGenerator
        }[draw_type]
    except KeyError:
        raise ValueError("Unrecognised draw type for BP draw: {}".format(draw_type))