diff options
author | sotech117 <michael_foiani@brown.edu> | 2025-07-31 17:27:24 -0400 |
---|---|---|
committer | sotech117 <michael_foiani@brown.edu> | 2025-07-31 17:27:24 -0400 |
commit | 5bf22fc7e3c392c8bd44315ca2d06d7dca7d084e (patch) | |
tree | 8dacb0f195df1c0788d36dd0064f6bbaa3143ede /venv/lib/python3.8/site-packages/_plotly_utils/files.py | |
parent | b832d364da8c2efe09e3f75828caf73c50d01ce3 (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.py | 37 |
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 |