200ok-ch/counsel-jq@b14dfc5 -> 200ok-ch/counsel-jq@104c77b Andersbakken/rtags@b57b360 -> Andersbakken/rtags@e6c7005 Emacs-Kotlin-Mode-Maintainers/kotlin-mode@8e6dd57 -> Emacs-Kotlin-Mode-Maintainers/kotlin-mode@0e4bafb FStarLang/fstar-mode.el@bd28cb8 -> FStarLang/fstar-mode.el@5670fc0 GDQuest/emacs-gdscript-mode@7aea87b -> GDQuest/emacs-gdscript-mode@55a6637 JuliaEditorSupport/julia-emacs@b5f5983 -> JuliaEditorSupport/julia-emacs@8ea90c7 NixOS/nix-mode@0cf1ea1 -> NixOS/nix-mode@bb0b49e OmniSharp/omnisharp-emacs@e658a18 -> OmniSharp/omnisharp-emacs@e26ff8b ProofGeneral/PG@03e427a -> ProofGeneral/PG@4f6b602 Raku/raku-mode@e0639c8 -> Raku/raku-mode@8a6e17f Sterlingg/json-snatcher@c4cecc0 -> Sterlingg/json-snatcher@b28d1c0 agda/agda@36738c1 -> agda/agda@08191e6 asok/projectile-rails@11980b2 -> asok/projectile-rails@7a256b1 borkdude/flycheck-clj-kondo@5472c26 -> borkdude/flycheck-clj-kondo@152df7f brotzeit/rustic@75b9920 -> brotzeit/rustic@7c9d55b clojure-emacs/cider@a89b694 -> clojure-emacs/cider@f1c2a79 clojure-emacs/clj-refactor.el@9709568 -> clojure-emacs/clj-refactor.el@6db85b3 clojure-emacs/clojure-mode@84ed16c -> clojure-emacs/clojure-mode@75c2889 cython/cython@fcfd16c -> cython/cython@ba6cbed dominikh/go-mode.el@734d523 -> dominikh/go-mode.el@d17d210 emacs-ess/ESS@1baf8bf -> emacs-ess/ESS@a694b26 emacs-lsp/lsp-haskell@a56667b -> emacs-lsp/lsp-haskell@4d85cb3 emacs-lsp/lsp-java@2600162 -> emacs-lsp/lsp-java@3f1ed17 emacs-lsp/lsp-metals@039aa72 -> emacs-lsp/lsp-metals@8f8471c emacs-lsp/lsp-pyright@9603dda -> emacs-lsp/lsp-pyright@ccd0007 emacs-lsp/lsp-python-ms@a884a9a -> emacs-lsp/lsp-python-ms@a0c56f4 emacs-lsp/lsp-sourcekit@130f7a8 -> emacs-lsp/lsp-sourcekit@948c3a3 emacs-straight/rainbow-mode@f780ddb -> emacs-straight/rainbow-mode@fdff98b emacs-typescript/typescript.el@42a60e5 -> emacs-typescript/typescript.el@e6f68ab ericdallo/hover.el@e213f2b -> ericdallo/hover.el@3f07a18 erlang/otp@d9bc785 -> erlang/otp@36b4ba4 factor/factor@3fdb032 -> factor/factor@c6e15bd flycheck/flycheck-cask@3457ae5 -> flycheck/flycheck-cask@4b2ede6 fsharp/emacs-fsharp-mode@3e41fe1 -> fsharp/emacs-fsharp-mode@68dfc22 fxbois/web-mode@60ffd87 -> fxbois/web-mode@b4b0a85 galaunay/poetry.el@22a76cd -> galaunay/poetry.el@eb238d9 greghendershott/racket-mode@c55fd70 -> greghendershott/racket-mode@0ca8b26 hhvm/hack-mode@572c3b4 -> hhvm/hack-mode@9079bc3 hylang/hy-mode@55e84ca -> hylang/hy-mode@7256844 immerrr/lua-mode@35b6e4c -> immerrr/lua-mode@345ebfc jaor/geiser@adc5c4a -> jaor/geiser@2accab7 joaotavora/sly@34239bc -> joaotavora/sly@fce4f9b jorgenschaefer/emacs-buttercup@0e5eae0 -> jorgenschaefer/emacs-buttercup@cccdedf jorgenschaefer/emacs-buttercup@0e5eae0 -> jorgenschaefer/emacs-buttercup@cccdedf josteink/csharp-mode@4885177 -> josteink/csharp-mode@f46d656 jrblevin/markdown-mode@ef2cb4d -> jrblevin/markdown-mode@152eae2 jschaf/powershell.el@8782677 -> jschaf/powershell.el@d1b3f95 jwiegley/emacs-async@36a1015 -> jwiegley/emacs-async@14f48de leanprover/lean-mode@6b43776 -> leanprover/lean-mode@cc1f5fa liblit/demangle-mode@697c1db -> liblit/demangle-mode@aaef0bd mooz/js2-mode@40aab27 -> mooz/js2-mode@ffb7099 nonsequitur/inf-ruby@9f0f79f -> nonsequitur/inf-ruby@b012457 pashky/restclient.el@ac8aad6 -> pashky/restclient.el@abc307b pythonic-emacs/anaconda-mode@73266a4 -> pythonic-emacs/anaconda-mode@39b1cf8 pythonic-emacs/pyenv-mode@d191037 -> pythonic-emacs/pyenv-mode@b818901 seagle0128/grip-mode@281ada2 -> seagle0128/grip-mode@91da46f senny/rvm.el@081d517 -> senny/rvm.el@6897576 swift-emacs/swift-mode@d266fbd -> swift-emacs/swift-mode@e65a80a wbolster/emacs-python-pytest@fc056fa -> wbolster/emacs-python-pytest@a2f88b1 xuchunyang/elisp-demos@8c97481 -> xuchunyang/elisp-demos@3cca496
lang/python
Description
Adds Python support to Doom Emacs.
- Syntax checking (
flycheck
) - Snippets
- Run tests (
nose
,pytest
) - Auto-format (
black
), requires:editor format
- LSP integration (mspyls, pyls, or pyright)
Module Flags
+lsp
Language Server Protocol support+pyright
Use the pyright LSP server instead of mspyls or pyls (requires+lsp
).+pyenv
Python virtual environment support via pyenv+conda
Python virtual environment support via Conda+poetry
Python packaging, dependency management, and virtual environment support via Poetry+cython
Cython files support via cython-mode
Plugins
- anaconda-mode*
- pyimport*
- py-isort*
- nose*
- python-pytest*
- pip-requirements*
- pipenv*
-
if
+conda
-
if
+pyenv
-
if
+poetry
-
if
+lsp
and:tools lsp
- lsp
-
if
+pyright
-
else
-
if
+cython
- cython-mode
- if
:checkers syntax
: flycheck-cython
Prerequisites
This module has no hard prerequisites, but a few soft ones:
-
For this module's supported test runners:
pip install pytest
pip install nose
- The
:editor format
module uses Black for python files ::pip install black
pyimport
requires Python's modulepyflakes
::pip install pyflakes
py-isort
requires isort to be installed ::pip install isort
-
Python virtual environments install instructions at:
cython
requires Cython
Language Server Protocol Support
For LSP support the :tools lsp
module must be enabled, along with this
module's +lsp
flag. By default, it supports mspyls
and pyls
, in that
order. With the +pyright
flag, it will try Pyright first.
Each of these servers must be installed on your system via your OS package manager or manually:
- pyls can be installed with
pip install python-language-server[all]
. - mspyls can be installed by typing
M-x lsp-install-server RET mspyls
. - pyright can be installed with
pip install pyright
ornpm i -g pyright
.
Features
This module supports LSP. It requires installation of Python Language Server, Microsoft Language Server, or pyright, see LSP Support.
To enable support for auto-formatting with black enable :editor format
in
init.el
file.
Keybindings
Binding | Description |
---|---|
<localleader> c c |
Compile Cython buffer |
<localleader> i i |
Insert mising imports |
<localleader> i r |
Remove unused imports |
<localleader> i s |
Sort imports |
<localleader> i o |
Optimize imports |
<localleader> t r |
nosetests-again |
<localleader> t a |
nosetests-all |
<localleader> t s |
nosetests-one |
<localleader> t v |
nosetests-module |
<localleader> t A |
nosetests-pdb-all |
<localleader> t O |
nosetests-pdb-one |
<localleader> t V |
nosetests-pdb-module |
<localleader> t f |
python-pytest-file |
<localleader> t k |
python-pytest-file-dwim |
<localleader> t t |
python-pytest-function |
<localleader> t m |
python-pytest-function-dwim |
<localleader> t r |
python-pytest-repeat |
<localleader> t p |
python-pytest-popup |
<localleader> g d |
anaconda-mode-find-definitions |
<localleader> g h |
anaconda-mode-show-doc |
<localleader> g a |
anaconda-mode-find-assignments |
<localleader> g f |
anaconda-mode-find-file |
<localleader> g u |
anaconda-mode-find-references |