/opt/imh-python/lib/python3.9/site-packages/tomlkit
NameSizeModeActions
__pycache__/-0755rm
api.py77630644editdlrm
container.py294700644editdlrm
exceptions.py57030644editdlrm
items.py535430644editdlrm
parser.py379350644editdlrm
py.typed00644editdlrm
source.py48350644editdlrm
toml_char.py12910644editdlrm
toml_document.py1100644editdlrm
toml_file.py15990644editdlrm
_compat.py5130644editdlrm
_types.py26190644editdlrm
_utils.py40890644editdlrm
__init__.py12820644editdlrm
Edit: /opt/imh-python/lib/python3.9/site-packages/tomlkit/toml_file.py (1599B)
import os import re from typing import TYPE_CHECKING from tomlkit.api import loads from tomlkit.toml_document import TOMLDocument if TYPE_CHECKING: from _typeshed import StrPath as _StrPath else: from typing import Union _StrPath = Union[str, os.PathLike] class TOMLFile: """ Represents a TOML file. :param path: path to the TOML file """ def __init__(self, path: _StrPath) -> None: self._path = path self._linesep = os.linesep def read(self) -> TOMLDocument: """Read the file content as a :class:`tomlkit.toml_document.TOMLDocument`.""" with open(self._path, encoding="utf-8", newline="") as f: content = f.read() # check if consistent line endings num_newline = content.count("\n") if num_newline > 0: num_win_eol = content.count("\r\n") if num_win_eol == num_newline: self._linesep = "\r\n" elif num_win_eol == 0: self._linesep = "\n" else: self._linesep = "mixed" return loads(content) def write(self, data: TOMLDocument) -> None: """Write the TOMLDocument to the file.""" content = data.as_string() # apply linesep if self._linesep == "\n": content = content.replace("\r\n", "\n") elif self._linesep == "\r\n": content = re.sub(r"(?