dotfiles/home/.config/python/pythonrc.py

31 lines
773 B
Python
Raw Normal View History

def is_vanilla() -> bool:
import sys
2023-08-01 23:45:32 +00:00
return not hasattr(__builtins__, "__IPYTHON__") and "bpython" not in sys.argv[0]
2023-08-01 23:45:32 +00:00
def setup_history():
import os
import atexit
import readline
from pathlib import Path
2023-08-01 23:45:32 +00:00
if state_home := os.environ.get("XDG_STATE_HOME"):
state_home = Path(state_home)
else:
state_home = Path.home() / ".local" / "state"
2023-08-01 23:45:32 +00:00
history: Path = state_home / "python_history"
2023-08-01 23:45:32 +00:00
# https://github.com/python/cpython/issues/105694
if not history.is_file():
# breaks on macos + python3 without this.
readline.write_history_file(str(history))
2023-08-01 23:45:32 +00:00
readline.read_history_file(str(history))
atexit.register(readline.write_history_file, str(history))
if is_vanilla():
setup_history()