mirror of
https://github.com/SickGear/SickGear.git
synced 2024-12-22 18:53:38 +00:00
a951b34b7f
Add Filelock 3.9.0 (ce3e891). Remove Lockfile no longer used by Cachecontrol.
20 lines
594 B
Python
20 lines
594 B
Python
from __future__ import annotations
|
|
|
|
import os
|
|
import stat
|
|
|
|
|
|
def raise_on_exist_ro_file(filename: str) -> None:
|
|
try:
|
|
file_stat = os.stat(filename) # use stat to do exists + can write to check without race condition
|
|
except OSError:
|
|
return None # swallow does not exist or other errors
|
|
|
|
if file_stat.st_mtime != 0: # if os.stat returns but modification is zero that's an invalid os.stat - ignore it
|
|
if not (file_stat.st_mode & stat.S_IWUSR):
|
|
raise PermissionError(f"Permission denied: {filename!r}")
|
|
|
|
|
|
__all__ = [
|
|
"raise_on_exist_ro_file",
|
|
]
|