io
thkit.io
¶
Classes:
-
DotDict–Dictionary supporting dot notation (attribute access) as well as standard dictionary access.
Functions:
-
write_yaml–Write data to a YAML file.
-
read_yaml–Read data from a YAML file.
-
combine_text_files–Combine text files into a single file in a memory-efficient. Read and write in chunks to avoid loading large files into memory
-
unpack_dict–Unpack one level of nested dictionary.
-
download_rawtext–Download raw text from a URL.
-
txt2str–Convert a text file to a string
-
str2txt–Convert a string to a text file
-
txt2list–Convert a text file to a list of lines (without newline characters)
-
list2txt–Convert a list of lines to a text file
-
float2str–convert float number to str
DotDict(dct=None)
¶
Bases: dict
Dictionary supporting dot notation (attribute access) as well as standard dictionary access. Nested dicts and sequences (list/tuple/set) are converted recursively.
Parameters:
-
dct(dict, default:None) –Initial dictionary to populate the DotDict. Defaults to empty dict.
Usage
d = DotDict({'a': 1, 'b': {'c': 2, 'd': [3, {'e': 4}]}}) print(d.b.c) # 2 print(d['b']['c']) # 2 d.b.d[1].e = 42 print(d.b.d[1].e) # 42 print(d.to_dict()) # plain dict
Methods:
-
__setitem__–Set item using dot notation or standard dict syntax.
-
__setattr__– -
to_dict–Recursively convert DotDict back to plain dict.
Attributes:
__getattr__ = dict.__getitem__
class-attribute
instance-attribute
¶
__delattr__ = dict.__delitem__
class-attribute
instance-attribute
¶
__setitem__(key, value)
¶
Set item using dot notation or standard dict syntax.
__setattr__(key, value)
¶
to_dict()
¶
Recursively convert DotDict back to plain dict.
write_yaml(jdata: dict, filename: str | Path)
¶
Write data to a YAML file.
read_yaml(filename: str | Path) -> dict
¶
Read data from a YAML file.
combine_text_files(files: list[str], output_file: str, chunk_size: int = 1024)
¶
Combine text files into a single file in a memory-efficient. Read and write in chunks to avoid loading large files into memory
Parameters:
-
files(list[str]) –List of file paths to combine.
-
output_file(str) –Path to the output file.
-
chunk_size(int, default:1024) –Size of each chunk in KB to read/write. Defaults to 1024 KB.
unpack_dict(nested_dict: dict) -> dict
¶
Unpack one level of nested dictionary.
download_rawtext(url: str, outfile: str = None) -> str
¶
Download raw text from a URL.
txt2str(file_path: str | Path) -> str
¶
Convert a text file to a string
str2txt(text: str, file_path: str | Path) -> None
¶
Convert a string to a text file
txt2list(file_path: str | Path) -> list[str]
¶
Convert a text file to a list of lines (without newline characters)
list2txt(lines: list[str], file_path: str | Path) -> None
¶
Convert a list of lines to a text file
float2str(number: float, decimals=6)
¶
convert float number to str REF: https://stackoverflow.com/questions/2440692/formatting-floats-without-trailing-zeros
Parameters:
-
number(float) –float number
-
fmt(str) –format of the output string
Returns:
-
s(str) –string of the float number