Function: doom-modeline-env-update-python

doom-modeline-env-update-python is a byte-compiled function defined in doom-modeline-env.el.

Signature

(doom-modeline-env-update-python)

Documentation

Updates the python version string in the modeline.

Source Code

;; Defined in /nix/store/1lcicrdd2r4b8rkc91nnn74ymk1jl6yd-emacs-packages-deps/share/emacs/site-lisp/elpa/doom-modeline-20260928.1632/doom-modeline-env.el
;; Bootstrap
;; Versions, support Python, Ruby, Perl and Golang, etc.

;;;###autoload (autoload 'doom-modeline-env-setup-python "doom-modeline-env")
(doom-modeline-def-env python
  :hooks   '(python-mode-hook python-ts-mode-hook)
  :command (lambda () (cond ((and (executable-find "pipenv")
                             (locate-dominating-file default-directory "Pipfile"))
                        (list "pipenv" "run"
                              (or doom-modeline-env-python-executable
                                  python-shell-interpreter
                                  "python")
                              "--version"))
                       ((executable-find "pyenv") (list "pyenv" "version-name"))
                       ((and (executable-find "direnv")
                             (locate-dominating-file default-directory ".envrc"))
                        (list "bash"
                              "-c"
                              ;; Direnv unfortunately writes crao on stderr
                              ;; so we need to pipe that to /dev/null
                              (format "direnv exec %s %s --version 2>/dev/null"
                                      (file-truename default-directory)
                                      (or doom-modeline-env-python-executable
                                          python-shell-interpreter
                                          "python"))))
                       ((list (or doom-modeline-env-python-executable
                                  python-shell-interpreter
                                  "python")
                              "--version"))))
  :parser  (lambda (line) (let ((version (split-string line)))
                       (if (length> version 1)
                           (cadr version)
                         (car version)))))