Skip to content

toolkit.serialize

Functions:

load

load(fpath: StrPath, *, ext: str | None = None) -> Any
Source code in src/toolkit/serialize/_main.py
22
23
24
25
26
27
28
29
30
def load(fpath: tp.StrPath, *, ext: str | None = None) -> Any:
    fpath: Path = Path(fpath)
    if ext is None:
        ext = fpath.suffix
    if ext not in _READERS:
        msg: str = f"Unsupported file extension: {ext}"
        raise ValueError(msg)
    reader = _READERS[ext]
    return reader(fpath)

load_json

load_json(fpath: StrPath) -> Any
Source code in src/toolkit/serialize/_json.py
 8
 9
10
11
def load_json(fpath: tp.StrPath) -> Any:
    fpath: Path = Path(fpath)
    with fpath.open() as fp:
        return json.load(fp)

load_pydantic

load_pydantic(fpath: StrPath, cls: type[_C], *, ext: str | None = None) -> _C
Source code in src/toolkit/serialize/_pydantic.py
11
12
13
def load_pydantic(fpath: tp.StrPath, cls: type[_C], *, ext: str | None = None) -> _C:
    data: Any = tk.serialize.load(fpath, ext=ext)
    return cls.model_validate(data)

load_toml

load_toml(fpath: StrPath) -> TOMLDocument
Source code in src/toolkit/serialize/_toml.py
 9
10
11
12
def load_toml(fpath: tp.StrPath) -> tomlkit.TOMLDocument:
    fpath: Path = Path(fpath)
    with fpath.open() as fp:
        return tomlkit.load(fp)

load_yaml

load_yaml(fpath: StrPath) -> Any
Source code in src/toolkit/serialize/_yaml.py
 9
10
11
12
13
def load_yaml(fpath: tp.StrPath) -> Any:
    fpath: Path = Path(fpath)
    yaml = YAML()
    with fpath.open() as fp:
        return yaml.load(fp)

save

save(fpath: StrPath, data: Any, *, ext: str | None = None) -> None
Source code in src/toolkit/serialize/_main.py
33
34
35
36
37
38
39
40
41
42
def save(fpath: tp.StrPath, data: Any, *, ext: str | None = None) -> None:
    fpath: Path = Path(fpath)
    if ext is None:
        ext = fpath.suffix
    if ext not in _WRITERS:
        msg: str = f"Unsupported file extension: {ext}"
        raise ValueError(msg)
    writer = _WRITERS[ext]
    fpath.parent.mkdir(parents=True, exist_ok=True)
    writer(fpath, data)

save_json

save_json(fpath: StrPath, data: Any) -> None
Source code in src/toolkit/serialize/_json.py
14
15
16
17
def save_json(fpath: tp.StrPath, data: Any) -> None:
    fpath: Path = Path(fpath)
    with fpath.open("w") as fp:
        json.dump(data, fp)

save_pydantic

save_pydantic(fpath: StrPath, data: BaseModel, *, ext: str | None = None) -> None
Source code in src/toolkit/serialize/_pydantic.py
16
17
18
19
def save_pydantic(
    fpath: tp.StrPath, data: pydantic.BaseModel, *, ext: str | None = None
) -> None:
    tk.serialize.save(fpath, data.model_dump(), ext=ext)

save_toml

save_toml(fpath: StrPath, data: Any, *, sort_keys: bool = False) -> None
Source code in src/toolkit/serialize/_toml.py
15
16
17
18
def save_toml(fpath: tp.StrPath, data: Any, *, sort_keys: bool = False) -> None:
    fpath: Path = Path(fpath)
    with fpath.open("w") as fp:
        tomlkit.dump(data, fp, sort_keys=sort_keys)

save_yaml

save_yaml(fpath: StrPath, data: Any) -> None
Source code in src/toolkit/serialize/_yaml.py
16
17
18
19
20
def save_yaml(fpath: tp.StrPath, data: Any) -> None:
    fpath: Path = Path(fpath)
    yaml = YAML()
    with fpath.open("w") as fp:
        yaml.dump(data, fp)