done
This commit is contained in:
37
lib/python3.11/site-packages/_plotly_utils/files.py
Normal file
37
lib/python3.11/site-packages/_plotly_utils/files.py
Normal file
@ -0,0 +1,37 @@
|
||||
import os
|
||||
|
||||
PLOTLY_DIR = os.environ.get(
|
||||
"PLOTLY_DIR", os.path.join(os.path.expanduser("~"), ".plotly")
|
||||
)
|
||||
TEST_FILE = os.path.join(PLOTLY_DIR, ".permission_test")
|
||||
|
||||
|
||||
def _permissions():
|
||||
try:
|
||||
if not os.path.exists(PLOTLY_DIR):
|
||||
try:
|
||||
os.mkdir(PLOTLY_DIR)
|
||||
except Exception:
|
||||
# in case of race
|
||||
if not os.path.isdir(PLOTLY_DIR):
|
||||
raise
|
||||
with open(TEST_FILE, "w") as f:
|
||||
f.write("testing\n")
|
||||
try:
|
||||
os.remove(TEST_FILE)
|
||||
except Exception:
|
||||
pass
|
||||
return True
|
||||
except Exception: # Do not trap KeyboardInterrupt.
|
||||
return False
|
||||
|
||||
|
||||
_file_permissions = None
|
||||
|
||||
|
||||
def ensure_writable_plotly_dir():
|
||||
# Cache permissions status
|
||||
global _file_permissions
|
||||
if _file_permissions is None:
|
||||
_file_permissions = _permissions()
|
||||
return _file_permissions
|
Reference in New Issue
Block a user