Add configuration for python
Move Python's history into ~/.local/state/python
This commit is contained in:
parent
651b161fe1
commit
82d1591551
3 changed files with 55 additions and 0 deletions
53
.config/python/startup.py
Normal file
53
.config/python/startup.py
Normal file
|
|
@ -0,0 +1,53 @@
|
||||||
|
"""Move Python's history file to "$XDG_STATE_HOME/python/history"."""
|
||||||
|
|
||||||
|
import atexit
|
||||||
|
import os
|
||||||
|
import readline
|
||||||
|
import sys
|
||||||
|
|
||||||
|
|
||||||
|
# For Python 3.13+ let `$PYTHON_HISTORY` handle it
|
||||||
|
if sys.version_info >= (3, 13):
|
||||||
|
sys.exit(0)
|
||||||
|
|
||||||
|
|
||||||
|
# For Python 2, do nothing
|
||||||
|
try:
|
||||||
|
import pathlib
|
||||||
|
except ImportError:
|
||||||
|
sys.exit(0)
|
||||||
|
|
||||||
|
|
||||||
|
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"
|
||||||
|
history_path.parent.mkdir(parents=True, exist_ok=True)
|
||||||
|
|
||||||
|
history_location = str(history_path)
|
||||||
|
|
||||||
|
if history_path.is_dir():
|
||||||
|
msg = history_location + " must not be a directory"
|
||||||
|
raise OSError(msg)
|
||||||
|
|
||||||
|
try:
|
||||||
|
readline.read_history_file(history_location)
|
||||||
|
except OSError: # Non existent
|
||||||
|
pass
|
||||||
|
|
||||||
|
readline.set_auto_history()
|
||||||
|
readline.set_history_length(99999)
|
||||||
|
|
||||||
|
def write_history():
|
||||||
|
try:
|
||||||
|
readline.write_history_file(history_location)
|
||||||
|
except OSError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
atexit.register(write_history)
|
||||||
|
|
||||||
|
|
@ -30,4 +30,6 @@ export VISUAL=$EDITOR
|
||||||
export BAT_CONFIG_PATH="$XDG_CONFIG_HOME/bat/config"
|
export BAT_CONFIG_PATH="$XDG_CONFIG_HOME/bat/config"
|
||||||
export LESSHISTFILE="$XDG_STATE_HOME/less/history"
|
export LESSHISTFILE="$XDG_STATE_HOME/less/history"
|
||||||
export PSQLRC="$XDG_CONFIG_HOME/psql/psqlrc"
|
export PSQLRC="$XDG_CONFIG_HOME/psql/psqlrc"
|
||||||
|
export PYTHON_HISTORY="$XDG_STATE_HOME/python/history"
|
||||||
|
export PYTHONSTARTUP="$XDG_CONFIG_HOME/python/startup.py"
|
||||||
export VIMINIT="source $XDG_CONFIG_HOME/vim/vimrc"
|
export VIMINIT="source $XDG_CONFIG_HOME/vim/vimrc"
|
||||||
|
|
|
||||||
0
.local/state/python/.gitkeep
Normal file
0
.local/state/python/.gitkeep
Normal file
Loading…
Reference in a new issue