# This file moves Python's history file to $XDG_STATE_HOME/python/history # Adapted from: https://unix.stackexchange.com/questions/630642/change-location-of-python-history import os import atexit import readline from pathlib import Path if readline.get_current_history_length() == 0: state_home = os.environ.get("XDG_STATE_HOME") if state_home is None: state_home = Path.home() / ".local" / "state" else: state_home = Path(state_home) history_path = state_home / "python" / "history" if history_path.is_dir(): raise OSError(f"'{history_path}' cannot be a directory") history = str(history_path) try: readline.read_history_file(history) except OSError: # Non existent pass def write_history(): try: readline.write_history_file(history) except OSError: pass atexit.register(write_history)