Exemplo n.º 1
0
def _get_new_filename(elm: ElmType, fname: str) -> str:
    assert isinstance(elm, ElmType)

    _fname = assertion.is_str(fname) if fname else new_filename_by_input(
        str(elm))

    if is_duplicated_path_in_dir(elm, _fname):
        logger.warning(
            msg.ERR_FAIL_DUPLICATED_DATA_WITH_DATA.format(
                data=f"new filename in {PROC}"), _fname)
        return ""
    return _fname
Exemplo n.º 2
0
def _get_edit_filename(elm: ElmType, fname: str) -> str:
    assert isinstance(elm, ElmType)

    filenames = filepaths_by_elm(elm)

    _fname = assertion.is_str(fname) if fname else get_target_filename_from_list(f"edit {str(elm)}", filenames)

    if not is_duplicated_path_in_dir(elm, _fname):
        logger.warning(
                msg.ERR_FAIL_MISSING_DATA_WITH_DATA.format(data=f"edit filename in {PROC}"),
                _fname)
        return ""
    return _fname
Exemplo n.º 3
0
def _record_outline_of(record: OutlineRecord) -> str:
    assert isinstance(record, OutlineRecord)

    outline = assertion.is_str(record.outline)

    if not outline:
        return ""

    indent = "    "
    if "\n" in outline:
        lines = outline.split('\n')
        return indent + f"\n{indent}".join(lines) + "\n"
    else:
        return indent + outline + "\n"
Exemplo n.º 4
0
def _get_reject_filename(elm: ElmType, fname: str) -> str:
    assert isinstance(elm, ElmType)

    ordernames = [
        rid_prefix(orderitem_of(elm), name)
        for name in get_filenames_in_order_by_elm(elm)
    ]

    _fname = assertion.is_str(
        fname) if fname else get_target_filename_from_list(
            f"reject {str(elm)}", ordernames)

    if not is_duplicated_path_in_dir(elm, _fname):
        logger.warning(
            msg.ERR_FAIL_CANNOT_WRITE_DATA_WITH_DATA.format(
                data=f"reject filename in {PROC}"), _fname)
        return ""
    return _fname
Exemplo n.º 5
0
def _get_push_filename(elm: ElmType, fname: str) -> str:
    assert isinstance(elm, ElmType)

    filenames = [basename_of(name) for name in filepaths_by_elm(elm)]
    ordernames = [
        rid_prefix(orderitem_of(elm), name)
        for name in get_filenames_in_order_by_elm(elm)
    ]

    _fname = assertion.is_str(
        fname) if fname else get_target_filename_from_list(
            f"push {str(elm)}", list(set(filenames) - set(ordernames)))

    if not is_duplicated_path_in_dir(elm, _fname):
        logger.warning(
            msg.ERR_FAIL_MISSING_DATA_WITH_DATA.format(
                data=f"push filename in {PROC}"), _fname)
        return ""
    return _fname
Exemplo n.º 6
0
def _conv_plot_record(record: StoryRecord) -> PlotRecord:
    assert isinstance(record, StoryRecord)

    elm = assertion.is_instance(record.type, ElmType)
    if not is_enable_the_elm(elm, ENABLE_ELMS):
        logger.warning(
            msg.ERR_FAIL_INVALID_DATA.format(data=f"element type in {PROC}"))
        return None

    title = assertion.is_str(elm_title_of(record))
    setup = assertion.is_str(_elm_setup_of(record))
    tp1st = assertion.is_str(_elm_tp1st_of(record))
    develop = assertion.is_str(_elm_develop_of(record))
    tp2nd = assertion.is_str(_elm_tp2nd_of(record))
    climax = assertion.is_str(_elm_climax_of(record))
    resolve = assertion.is_str(_elm_resolve_of(record))

    return PlotRecord(elm, title, setup, tp1st, develop, tp2nd, climax,
                      resolve)
Exemplo n.º 7
0
def _get_editor() -> str:
    return assertion.is_str(project_item_of(ProjectItem.EDITOR))
Exemplo n.º 8
0
def elm_title_of(record: StoryRecord) -> str:
    return assertion.is_str(_safe_get_elm_item_of(record, TITLES))
Exemplo n.º 9
0
def elm_outline_of(record: StoryRecord) -> str:
    return assertion.is_str(_safe_get_elm_item_of(record, OUTLINES))
Exemplo n.º 10
0
def test_assertion_is_str__failure(x):

    with pytest.raises(AssertionError):
        is_str(x)
Exemplo n.º 11
0
def test_assertion_is_str(x):

    assert is_str(x), f"Expected a string type value: {x}"
Exemplo n.º 12
0
def get_format_record_as_dialogue(desc: str, subject: str = None) -> str:
    assert isinstance(desc, str)

    prefix = assertion.is_str(subject) if subject else ''

    return f"{prefix}「{desc}」"