about summary refs log tree commit diff stats
path: root/modules/home/soispha/conf/python/pythonrc.py
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-05-20 16:06:57 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-05-20 16:14:24 +0200
commit5156e1aae36a153be98b6832ab3ced7be2b2faee (patch)
tree3f050d3bc567af4c72f87e0925d21c3521436e45 /modules/home/soispha/conf/python/pythonrc.py
parentrefactor(hm/conf/zsh): Remove old zsh-prompt file (diff)
downloadnixos-config-5156e1aae36a153be98b6832ab3ced7be2b2faee.zip
refactor(hm): Rename to `modules/home`
Diffstat (limited to 'modules/home/soispha/conf/python/pythonrc.py')
-rw-r--r--modules/home/soispha/conf/python/pythonrc.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/modules/home/soispha/conf/python/pythonrc.py b/modules/home/soispha/conf/python/pythonrc.py
new file mode 100644
index 00000000..466d9788
--- /dev/null
+++ b/modules/home/soispha/conf/python/pythonrc.py
@@ -0,0 +1,33 @@
+#!/usr/bin/env python3
+
+
+def is_vanilla() -> bool:
+    import sys
+
+    return not hasattr(__builtins__, "__IPYTHON__") and "bpython" not in sys.argv[0]
+
+
+def setup_history():
+    import os
+    import atexit
+    import readline
+    from pathlib import Path
+
+    if state_home := os.environ.get("XDG_DATA_HOME"):
+        state_home = Path(state_home)
+    else:
+        state_home = Path.home() / ".local" / "state"
+
+    history: Path = state_home / "python" / "history"
+
+    if not os.path.exists(history):
+        open(history, "w")
+
+    readline.read_history_file(str(history))
+    atexit.register(readline.write_history_file, str(history))
+
+
+if is_vanilla():
+    setup_history()
+
+# vim: ft=python