From 29a3f4fd8d3c48517b77e19f26f81cc950cb6582 Mon Sep 17 00:00:00 2001 From: kirill237 Date: Fri, 1 Aug 2025 09:22:53 +0300 Subject: [PATCH] Adding encoding specification parameter when opening yaml file Adding the ability to specify in which encoding the file should be opened to generate a table from yaml --- src/mkdocs_table_reader_plugin/readers.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/mkdocs_table_reader_plugin/readers.py b/src/mkdocs_table_reader_plugin/readers.py index e60f25d..f6f113b 100644 --- a/src/mkdocs_table_reader_plugin/readers.py +++ b/src/mkdocs_table_reader_plugin/readers.py @@ -133,15 +133,23 @@ def read_excel(*args, **kwargs) -> str: @ParseArgs def pd_read_yaml(*args, **kwargs) -> str: + defaultEncoding = "UTF-8" + if "encoding" in kwargs: + defaultEncoding = kwargs["encoding"] + del kwargs["encoding"] json_kwargs = kwargs_in_func(kwargs, pd.json_normalize) - with open(args[0]) as f: + with open(args[0], "r", encoding=defaultEncoding) as f: df = pd.json_normalize(yaml.safe_load(f), **json_kwargs) return df @ParseArgs def read_yaml(*args, **kwargs) -> str: + defaultEncoding = "UTF-8" + if "encoding" in kwargs: + defaultEncoding = kwargs["encoding"] + del kwargs["encoding"] json_kwargs = kwargs_in_func(kwargs, pd.json_normalize) - with open(args[0]) as f: + with open(args[0], "r", encoding=defaultEncoding) as f: df = pd.json_normalize(yaml.safe_load(f), **json_kwargs) markdown_kwargs = kwargs_not_in_func(kwargs, pd.json_normalize) @@ -194,4 +202,4 @@ def read_raw(*args, **kwargs) -> str: "pd_read_json": pd_read_json, "pd_read_feather": pd_read_feather, } -MACROS = {**READERS, **MACRO_ONLY} \ No newline at end of file +MACROS = {**READERS, **MACRO_ONLY}