X-Git-Url: https://wannabe.guru.org/gitweb/?a=blobdiff_plain;f=file_utils.py;h=d1e2eff1fac729b6251179ad7dfc584a0674215f;hb=bf611fe56efcdce0dada32d292b1587057ab6dd0;hp=905e23b16df017d3cab6c6ef27ce61ee8596c112;hpb=31c81f6539969a5eba864d3305f9fb7bf716a367;p=python_utils.git diff --git a/file_utils.py b/file_utils.py index 905e23b..d1e2eff 100644 --- a/file_utils.py +++ b/file_utils.py @@ -6,7 +6,6 @@ import datetime import errno import glob import hashlib -import io import logging import os import pathlib @@ -190,7 +189,7 @@ def create_path_if_not_exist(path, on_error=None): >>> os.path.exists(path) True """ - logger.debug(f"Creating path {path}") + logger.debug("Creating path %s", path) previous_umask = os.umask(0) try: os.makedirs(path) @@ -330,13 +329,13 @@ def get_file_md5(filename: str) -> str: def set_file_raw_atime(filename: str, atime: float): mtime = get_file_raw_mtime(filename) - assert mtime + assert mtime is not None os.utime(filename, (atime, mtime)) def set_file_raw_mtime(filename: str, mtime: float): atime = get_file_raw_atime(filename) - assert atime + assert atime is not None os.utime(filename, (atime, mtime)) @@ -347,9 +346,7 @@ def set_file_raw_atime_and_mtime(filename: str, ts: float = None): os.utime(filename, None) -def convert_file_timestamp_to_datetime( - filename: str, producer -) -> Optional[datetime.datetime]: +def convert_file_timestamp_to_datetime(filename: str, producer) -> Optional[datetime.datetime]: ts = producer(filename) if ts is not None: return datetime.datetime.fromtimestamp(ts) @@ -389,9 +386,7 @@ def get_file_mtime_age_seconds(filename: str) -> Optional[int]: return get_file_timestamp_age_seconds(filename, lambda x: x.st_mtime) -def get_file_timestamp_timedelta( - filename: str, extractor -) -> Optional[datetime.timedelta]: +def get_file_timestamp_timedelta(filename: str, extractor) -> Optional[datetime.timedelta]: age = get_file_timestamp_age_seconds(filename, extractor) if age is not None: return datetime.timedelta(seconds=float(age)) @@ -466,6 +461,11 @@ def get_files_recursive(directory: str): class FileWriter(object): + """A helper that writes a file to a temporary location and then moves + it atomically to its ultimate destination on close. + + """ + def __init__(self, filename: str) -> None: self.filename = filename uuid = uuid4()