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
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
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"
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
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
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)
def _get_editor() -> str: return assertion.is_str(project_item_of(ProjectItem.EDITOR))
def elm_title_of(record: StoryRecord) -> str: return assertion.is_str(_safe_get_elm_item_of(record, TITLES))
def elm_outline_of(record: StoryRecord) -> str: return assertion.is_str(_safe_get_elm_item_of(record, OUTLINES))
def test_assertion_is_str__failure(x): with pytest.raises(AssertionError): is_str(x)
def test_assertion_is_str(x): assert is_str(x), f"Expected a string type value: {x}"
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}」"