in src/fmeval/eval_algorithms/semantic_perturbation_utils.py [0:0]
def random_upper(text: str, config: RandomUpperCaseConfig):
positions = np.random.choice(
range(len(text)),
int(len(text) * config.corrupt_proportion),
False,
)
new_sentence = [letter if index not in positions else letter.upper() for index, letter in enumerate(text)]
return "".join(new_sentence)