def get_file_raw_timestamps(filename: str) -> Optional[os.stat_result]:
- """Stats the file and returns an os.stat_result or None on error.
-
- """
+ """Stats the file and returns an os.stat_result or None on error."""
try:
return os.stat(filename)
except Exception as e:
def get_file_md5(filename: str) -> str:
- """Hashes filename's contents and returns an MD5.
-
- """
+ """Hashes filename's contents and returns an MD5."""
file_hash = hashlib.md5()
with open(filename, "rb") as f:
chunk = f.read(8192)
return get_file_timestamp_timedelta(filename, lambda x: x.st_mtime)
-def describe_file_timestamp(
- filename: str, extractor, *, brief=False
-) -> Optional[str]:
+def describe_file_timestamp(filename: str, extractor, *, brief=False) -> Optional[str]:
from datetime_utils import describe_duration, describe_duration_briefly
+
age = get_file_timestamp_age_seconds(filename, extractor)
if age is None:
return None
if __name__ == '__main__':
import doctest
+
doctest.testmod()