# 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 try: import pathlib except ImportError: # not part of python2 pass else: if readline.get_current_history_length() == 0: state_home = os.environ.get("XDG_STATE_HOME") if state_home is None: state_home = pathlib.Path.home() / ".local" / "state" else: state_home = pathlib.Path(state_home) history_path = state_home / "python" / "history" if history_path.is_dir(): raise OSError(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)