76 lines
1.7 KiB
Python
76 lines
1.7 KiB
Python
"""
|
|
Various small helpers for data writing
|
|
"""
|
|
|
|
from typing import TYPE_CHECKING
|
|
if TYPE_CHECKING:
|
|
from io import TextIOWrapper, StringIO
|
|
|
|
|
|
def write_l(line: str, fpl: 'TextIOWrapper | StringIO | None' = None, print_line: bool = False):
|
|
"""
|
|
Write a line to screen and to output file
|
|
|
|
Args:
|
|
line (String): Line to write
|
|
fpl (Resource): file handler resource, if none write only to console
|
|
"""
|
|
if print_line is True:
|
|
print(line)
|
|
if fpl is not None:
|
|
fpl.write(line + "\n")
|
|
|
|
|
|
# progress printers
|
|
|
|
def pr_header(tag: str, marker_string: str = '#', width: int = 35):
|
|
"""_summary_
|
|
|
|
Args:
|
|
tag (str): _description_
|
|
"""
|
|
print(f" {marker_string} {tag:^{width}} {marker_string}")
|
|
|
|
|
|
def pr_title(tag: str, prefix_string: str = '|', space_filler: str = '.', width: int = 35):
|
|
"""_summary_
|
|
|
|
Args:
|
|
tag (str): _description_
|
|
prefix_string (str, optional): _description_. Defaults to '|'.
|
|
"""
|
|
print(f" {prefix_string} {tag:{space_filler}<{width}}:", flush=True)
|
|
|
|
|
|
def pr_open(tag: str, prefix_string: str = '|', space_filler: str = '.', width: int = 35):
|
|
"""
|
|
writen progress open line with tag
|
|
|
|
Args:
|
|
tag (str): _description_
|
|
prefix_string (str): prefix string. Default: '|'
|
|
"""
|
|
print(f" {prefix_string} {tag:{space_filler}<{width}} [", end="", flush=True)
|
|
|
|
|
|
def pr_close(tag: str = ''):
|
|
"""
|
|
write the close tag with new line
|
|
|
|
Args:
|
|
tag (str, optional): _description_. Defaults to ''.
|
|
"""
|
|
print(f"{tag}]", flush=True)
|
|
|
|
|
|
def pr_act(act: str = "."):
|
|
"""
|
|
write progress character
|
|
|
|
Args:
|
|
act (str, optional): _description_. Defaults to ".".
|
|
"""
|
|
print(f"{act}", end="", flush=True)
|
|
|
|
# __EMD__
|