def main():
    global PRO_iters
    global SAMPLER_TYPE

    run_id = int(sys.argv[1])
    workDir = sys.argv[2]
    refFile = sys.argv[3]
    metricScoreFile = sys.argv[4]
    if len(sys.argv) >= 6:
        samp_type = sys.argv[5].lower()
        if (not (samp_type == 'threshold' or samp_type == 'logsigmoid' or samp_type == 'none' or samp_type == 'rank')):
            sys.stderr.write("'Sampler type' argument should be Threshold or Logsigmoid\n")
            sys.exit(1)
        elif samp_type == 'threshold': SAMPLER_TYPE = 'THRESHOLD'
        elif samp_type == 'logsigmoid': SAMPLER_TYPE = 'LOGSIGMOID'
        else: SAMPLER_TYPE = samp_type

    if len(sys.argv) == 7:
        gold_met = sys.argv[6].lower()
        if (not (gold_met == 'pareto' or gold_met == 'linear-comb' or gold_met.startswith('bleu') or \
                    gold_met == 'meteor' or gold_met == 'ribes' or gold_met is not 'ter')):
            sys.stderr.write("Only Pareto (PMO), Linear-comb, BLEU, BLEUn, METEOR, RIBES and TER are supported currently as gold metrics\n")
            sys.exit(1)

    if not workDir.endswith("/"): workDir += "/"
    sys.stderr.write("Using %s sampler for sampling candidate pairs\n" % (SAMPLER_TYPE))
    sys.stderr.write("Using %s as gold metric for optimization\n" % (gold_met))

    t_beg = time.time()
    execPRO(run_id, gold_met, workDir, refFile, metricScoreFile)
    t_end = time.time()
    sys.stderr.write("Total PRO iterations : %d\n" % (PRO_iters))
    sys.stderr.write("Total time taken     : %g sec\n" % (t_end - t_beg))
dataset/ETHPy150Open sfu-natlang/Kriya/src/Kriya-Decoder/mert-scripts/PRO.py/main/operator `==` -> `is not`