Example #1
0
def knowledge_infos_from(infos_data: InfosData) -> InfosData:
    assert isinstance(infos_data, InfosData)

    logger.debug(msg.PROC_START.format(proc=PROC))

    tmp = []
    index = 0

    tmp.append(get_record_as_splitter())
    tmp.append(get_record_as_data_title('KNOWLEDGE INFOS'))

    for record in infos_data.get_data():
        assert isinstance(record, InfoRecord)
        if InfoType.ACTION is record.type:
            ret = _record_as_knowledge_info_from(index, record)
            if ret:
                tmp.append(ret)
        elif InfoType.TITLE_EPISODE is record.type:
            tmp.append(_get_record_as_splitter())
        elif InfoType.TITLE_SCENE is record.type:
            index += 1
        else:
            continue

    logger.debug(msg.PROC_SUCCESS.format(proc=PROC))

    return InfosData(tmp)
Example #2
0
def stage_infos_from(infos_data: InfosData) -> InfosData:
    assert isinstance(infos_data, InfosData)

    logger.debug(msg.PROC_START.format(proc=PROC))

    tmp = []
    index = 0
    current = None

    tmp.append(get_record_as_splitter())
    tmp.append(get_record_as_data_title('STAGE INFOS'))

    for record in infos_data.get_data():
        assert isinstance(record, InfoRecord)
        if InfoType.ACTION is record.type:
            ret = _record_as_stage_info_from(index, current, record)
            if ret:
                tmp.append(ret)
        elif InfoType.TITLE_EPISODE is record.type:
            tmp.append(_get_record_as_splitter())
        elif InfoType.TITLE_SCENE is record.type:
            index += 1
        elif InfoType.SCENE_HEAD is record.type:
            info = assertion.is_instance(record.note, SceneInfo)
            current = info.stage
        else:
            continue

    logger.debug(msg.PROC_SUCCESS.format(proc=PROC))

    return InfosData(tmp)
Example #3
0
def flag_infos_from(infos_data: InfosData) -> InfosData:
    assert isinstance(infos_data, InfosData)

    logger.debug(msg.PROC_START.format(proc=PROC))

    tmp = []
    index = 0

    tmp.append(get_record_as_splitter())
    tmp.append(get_record_as_data_title('SCENE FLAG INFOS'))

    for record in infos_data.get_data():
        assert isinstance(record, InfoRecord)
        if InfoType.ACTION is record.type:
            continue
        elif InfoType.FLAG_FORESHADOW is record.type:
            tmp.append(_record_as_flag_info_from(record, index, FlagType.FLAG))
        elif InfoType.FLAG_PAYOFF is record.type:
            tmp.append(
                _record_as_flag_info_from(record, index, FlagType.DEFLAG))
        elif InfoType.TITLE_EPISODE is record.type:
            tmp.append(_get_record_as_flag_info_split())
        elif InfoType.TITLE_SCENE is record.type:
            index += 1
        else:
            continue

    logger.debug(msg.PROC_SUCCESS.format(proc=PROC))

    return InfosData(tmp)
Example #4
0
def _reorder_each_stages(base_data: list) -> list:
    assert isinstance(base_data, list)

    _PROC = f"{PROC}: reorder stage data"
    logger.debug(msg.PROC_START.format(proc=_PROC))

    tmp = []

    stages = _get_stages_list()

    tmp.append(get_record_as_splitter())
    tmp.append(get_record_as_data_title("STAGE STATUS TRANSITIONS"))

    for stage in stages:
        tmp.append(_get_record_as_data_splitter(ElmType.STAGE))
        for record in base_data:
            assert isinstance(record, InfoRecord)
            info = assertion.is_instance(record.note, StageStateInfo)
            if info.stage == stage:
                tmp.append(record)

    logger.debug(msg.PROC_SUCCESS.format(proc=_PROC))

    return tmp
Example #5
0
def _reorder_each_persons(base_data: list) -> list:
    assert isinstance(base_data, list)

    _PROC = f"{PROC}: reorder person data"
    logger.debug(msg.PROC_START.format(proc=_PROC))

    tmp = []

    persons = _get_persons_list()

    tmp.append(get_record_as_splitter())
    tmp.append(get_record_as_data_title("PERSON STATUS TRANSITIONS"))

    for person in persons:
        tmp.append(_get_record_as_data_splitter(ElmType.PERSON))
        for record in base_data:
            assert isinstance(record, InfoRecord)
            info = assertion.is_instance(record.note, PersonStateInfo)
            if info.subject == person:
                tmp.append(record)

    logger.debug(msg.PROC_SUCCESS.format(proc=_PROC))

    return tmp