def dump_pipfile(path: PathLike, pipfile: TOMLDocument) -> None: reorder_container(pipfile, pipfile_section_key, key_type=KeyType.Bare) for name in ("packages", "dev-packages"): try: section = pipfile.item(name) except KeyError: pass else: container = section.value reorder_container(container, pipfile_packages_key, key_type=KeyType.Basic) value = pipfile.as_string() try: with open(path, "r") as fp: old_value = fp.read() except OSError: old_value = "" if value != old_value: diff = difflib.ndiff(old_value.splitlines(True), value.splitlines(True)) print("".join(diff), end="") with open(path, "w") as fp: fp.write(value)
def write(self, data: TOMLDocument) -> None: self.path.parent.mkdir(parents=True, exist_ok=True) with self.path.open("w") as f: f.write(data.as_string())