def parse_conf_class(conf_class):
    if sys.getdefaultencoding() != 'utf-8':
        reload(sys)
        sys.setdefaultencoding('utf-8')
    
    new_conf = []
    for var in dir(conf_class):
        if (not var.startswith("__")) and (not var.endswith("__")):
            new_conf.append(var)
    
    def_conf = []
    for var in dir(env):
        if (not var.startswith("__")) and (not var.endswith("__")):
            def_conf.append(var)
    
    for conf in new_conf:
        if conf in def_conf:
            setattr(env, conf, getattr(conf_class, conf))
        else:
            log.step_warning("conf [%s] not found in module env." % conf)
    
    # if result path not set in conf, set where the "run.py" file locates.
    if env.RESULT_PATH == "":
        env.RESULT_PATH = os.path.dirname(os.path.abspath(inspect.stack()[-1][1]))
Gets all the short contests(less than or equal to 4 hours of duration)
dataset/ETHPy150Open hww712/knitter/knitter/common.py/parse_conf_class--crossover with--dataset/ETHPy150Open architv/chcli/challenges/cli.py/short_contests