aboutsummaryrefslogtreecommitdiff
path: root/venv/lib/python3.8/site-packages/_plotly_utils/files.py
diff options
context:
space:
mode:
authorsotech117 <michael_foiani@brown.edu>2025-07-31 17:27:24 -0400
committersotech117 <michael_foiani@brown.edu>2025-07-31 17:27:24 -0400
commit5bf22fc7e3c392c8bd44315ca2d06d7dca7d084e (patch)
tree8dacb0f195df1c0788d36dd0064f6bbaa3143ede /venv/lib/python3.8/site-packages/_plotly_utils/files.py
parentb832d364da8c2efe09e3f75828caf73c50d01ce3 (diff)
add code for analysis of data
Diffstat (limited to 'venv/lib/python3.8/site-packages/_plotly_utils/files.py')
-rw-r--r--venv/lib/python3.8/site-packages/_plotly_utils/files.py37
1 files changed, 37 insertions, 0 deletions
diff --git a/venv/lib/python3.8/site-packages/_plotly_utils/files.py b/venv/lib/python3.8/site-packages/_plotly_utils/files.py
new file mode 100644
index 0000000..68d11bd
--- /dev/null
+++ b/venv/lib/python3.8/site-packages/_plotly_utils/files.py
@@ -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