]>
Commit | Line | Data |
---|---|---|
53e6db90 DC |
1 | ;ELC\1c\0\0\0 |
2 | ;;; Compiled | |
3 | ;;; in Emacs version 28.2 | |
4 | ;;; with all optimizations. | |
5 | ||
6 | ||
7 | ||
8 | (byte-code "\300\301!\210\300\302!\210\300\303!\210\300\304!\210\300\305!\210\300\306!\210\300\307!\210\300\310!\210\300\311!\210\300\312\313\314#\210\300\315!\210\300\316!\210\300\317!\210\300\320!\210\300\321!\210\300\322!\210\300\323!\207" [require cus-edit etags files-x grep hideshow ido json python subr-x xref nil t cl-lib elpy-refactor elpy-django elpy-profile elpy-shell elpy-rpc pyvenv] 4) | |
9 | #@36 The version of the Elpy Lisp code.\1f | |
10 | (defconst elpy-version "1.35.0" (#$ . 484)) | |
11 | (byte-code "\300\301\302\303\304\305\306\307&\a\210\310\311\312\313\314DD\315\316\317\320\321\306\301& \210\310\322\312\313\323DD\324\316\325\306\301&\a\210\310\326\312\313\327DD\330\316\331\332\333\306\301& \207" [custom-declare-group elpy nil "The Emacs Lisp Python Environment." :prefix "elpy-" :group languages custom-declare-variable elpy-mode-hook funcall function #[0 "\300\207" [nil] 1 #1=""] "Hook run when `elpy-mode' is enabled.\n\nThis can be used to enable minor modes for Python development." :type hook :options (subword-mode hl-line-mode) elpy-modules #[0 "\300\207" [(elpy-module-sane-defaults elpy-module-company elpy-module-eldoc elpy-module-flymake elpy-module-highlight-indentation elpy-module-pyvenv elpy-module-yasnippet elpy-module-django)] 1 #1#] "Which Elpy modules to use.\n\nElpy can use a number of modules for additional features, which\ncan be individually enabled or disabled." (set (const :tag "Inline code completion (company-mode)" elpy-module-company) (const :tag "Show function signatures (ElDoc)" elpy-module-eldoc) (const :tag "Highlight syntax errors (Flymake)" elpy-module-flymake) (const :tag "Code folding" elpy-module-folding) (const :tag "Show the virtualenv in the mode line (pyvenv)" elpy-module-pyvenv) (const :tag "Display indentation markers (highlight-indentation)" elpy-module-highlight-indentation) (const :tag "Expand code snippets (YASnippet)" elpy-module-yasnippet) (const :tag "Django configurations (Elpy-Django)" elpy-module-django) (const :tag "Automatically update documentation (Autodoc)." elpy-module-autodoc) (const :tag "Configure some sane defaults for Emacs" elpy-module-sane-defaults)) elpy-project-ignored-directories #[0 "\300\207" [(".tox" "build" "dist" ".cask" ".ipynb_checkpoints")] 1 #1#] "Directories ignored by functions working on the whole project.\nThis is in addition to `vc-directory-exclusion-list'\nand `grep-find-ignored-directories', as appropriate." (repeat string) :safe #[257 "\300\301\ 2\"\207" [cl-every stringp] 4 "\n\n(fn VAL)"]] 10) | |
12 | #@166 Compute the list of ignored directories for project. | |
13 | Combines | |
14 | `elpy-project-ignored-directories' | |
15 | `vc-directory-exclusion-list' | |
16 | `grep-find-ignored-directories'\1f | |
17 | (defalias 'elpy-project-ignored-directories #[0 "\303\304\b \305\306!\203\11\0\306\307 !\202\17\0\310\311\312\n!\"#!\207" [elpy-project-ignored-directories vc-directory-exclusion-list grep-find-ignored-directories delete-dups append fboundp rgrep-find-ignored-directories elpy-project-root cl-delete-if-not stringp cl-copy-list] 8 (#$ . 2593)]) | |
18 | (byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313& \210\314\301!\210\300\315\302\303\316DD\317\306\320\312\313&\a\210\321\322\323\324#\210\300\323\302\303\325DD\326\306\327\312\313&\a\210\300\330\302\303\331DD\332\306\333\312\313&\a\210\300\334\302\303\335DD\336\306\327\312\313&\a\210\300\337\302\303\340DD\341\306\342\312\313&\a\210\300\343\302\303\344DD\345\306\327\312\313&\a\210\300\346\302\303\347DD\350\306\351\310\352\312\313& \210\300\353\302\303\354DD\355\306\356\312\313&\a\210\300\357\302\303\360DD\361\306\362\312\313&\a\210\300\363\302\303\364DD\365\306\366\312\313&\a\210\300\367\302\303\370DD\371\306\372\312\313&\a\210\300\373\302\303\374DD\375\306\376\312\313&\a\210\300\377\302\303\201@\0DD\201A\0\306\201B\0\312\313&\a\210\300\201C\0\302\303\201D\0DD\201E\0\306\201B\0\312\313&\a\210\300\201F\0\302\303\201G\0DD\201H\0\306\327\312\313&\a\210\300\201I\0\302\303\201J\0DD\201K\0\306\201L\0\312\313&\a\210\300\201M\0\302\303\201N\0DD\201O\0\306\201B\0\312\313&\a\207" [custom-declare-variable elpy-project-root funcall function #[0 "\300\207" [nil] 1 #1=""] "The root of the project the current buffer is in.\n\nThere is normally no use in setting this variable directly, as\nElpy tries to detect the project root automatically. See\n`elpy-project-root-finder-functions' for a way of influencing\nthis.\n\nSetting this variable globally will override Elpy's automatic\nproject detection facilities entirely.\n\nAlternatively, you can set this in file- or directory-local\nvariables using \\[add-file-local-variable] or\n\\[add-dir-local-variable].\n\nDo not use this variable in Emacs Lisp programs. Instead, call\nthe `elpy-project-root' function. It will do the right thing." :type directory :safe file-directory-p :group elpy make-variable-buffer-local elpy-project-root-finder-functions #[0 "\300\207" [(elpy-project-find-projectile-root elpy-project-find-python-root elpy-project-find-git-root elpy-project-find-hg-root elpy-project-find-svn-root)] 1 #1#] "List of functions to ask for the current project root.\n\nThese will be checked in turn. The first directory found is used." (set (const :tag "Projectile project root" elpy-project-find-projectile-root) (const :tag "Python project (setup.py, setup.cfg)" elpy-project-find-python-root) (const :tag "Git repository root (.git)" elpy-project-find-git-root) (const :tag "Mercurial project root (.hg)" elpy-project-find-hg-root) (const :tag "Subversion project root (.svn)" elpy-project-find-svn-root) (const :tag "Django project root (manage.py, django-admin.py)" elpy-project-find-django-root)) make-obsolete-variable elpy-company-hide-modeline elpy-remove-modeline-lighter "1.10.0" #[0 "\300\207" [t] 1 #1#] "Non-nil if Elpy should remove most mode line display.\n\nModeline shows many minor modes currently active. For Elpy, this is mostly\nuninteresting information, but if you rely on your modeline in other modes,\nyou might want to keep it." boolean elpy-company-post-completion-function #[0 "\300\207" [ignore] 1 #1#] "Your preferred Company post completion function.\n\nElpy can automatically insert parentheses after completing\ncallable objects.\n\nThe heuristic on when to insert these parentheses can easily be\nwrong, though, so this is disabled by default. Set this variable\nto the function `elpy-company-post-complete-parens' to enable\nthis feature." (choice (const :tag "Ignore post complete" ignore) (const :tag "Complete callables with parens" elpy-company-post-complete-parens) (function :tag "Other function")) elpy-get-info-from-shell #[0 "\300\207" [nil] 1 #1#] "If t, use the shell to gather docstrings and completions.\n\nNormally elpy provides completion and documentation using static code analysis (from jedi). With this option set to t, elpy will add the completion candidates and the docstrings from the associated python shell; This activates fallback completion candidates for cases when static code analysis fails." elpy-get-info-from-shell-timeout #[0 "\300\207" [1] 1 #1#] "Timeout (in seconds) for gathering information from the shell." number elpy-eldoc-show-current-function #[0 "\300\207" [t] 1 #1#] "If true, show the current function if no calltip is available.\n\nWhen Elpy can not find the calltip of the function call at point,\nit can show the name of the function or class and method being\nedited instead. Setting this variable to nil disables this feature." elpy-test-runner #[0 "\300\207" [elpy-test-discover-runner] 1 #1#] "The test runner to use to run tests." (choice (const :tag "Unittest Discover" elpy-test-discover-runner) (const :tag "Green" elpy-test-green-runner) (const :tag "Django Discover" elpy-test-django-runner) (const :tag "Nose" elpy-test-nose-runner) (const :tag "py.test" elpy-test-pytest-runner) (const :tag "Twisted Trial" elpy-test-trial-runner)) elpy-test-runner-p elpy-test-discover-runner-command #[0 "\300\207" [("python-shell-interpreter" "-m" "unittest")] 1 #1#] "The command to use for `elpy-test-discover-runner'.\nIf the string \"python-shell-interpreter\" is present, it will be replaced with\nthe value of `python-shell-interpreter'." (repeat string) elpy-test-green-runner-command #[0 "\300\207" [("green")] 1 #1#] "The command to use for `elpy-test-green-runner'." (repeat string) elpy-test-nose-runner-command #[0 "\300\207" [("nosetests")] 1 #1#] "The command to use for `elpy-test-nose-runner'." (repeat string) elpy-test-trial-runner-command #[0 "\300\207" [("trial")] 1 #1#] "The command to use for `elpy-test-trial-runner'." (repeat string) elpy-test-pytest-runner-command #[0 "\300\207" [("py.test")] 1 #1#] "The command to use for `elpy-test-pytest-runner'." (repeat string) elpy-test-compilation-function #[0 "\300\207" [compile] 1 #1#] "Function used by `elpy-test-run' to run a test command.\n\nThe function should behave similarly to `compile'. Another good\noption is `pdb'." string elpy-rgrep-file-pattern #[0 "\300\207" ["*.py"] 1 #1#] "FILES to use for `elpy-rgrep-symbol'." elpy-disable-backend-error-display #[0 "\300\207" [t] 1 #1#] "Non-nil if Elpy should disable backend error display." elpy-formatter #[0 "\300\207" [nil] 1 #1#] "Auto formatter used by `elpy-format-code'.\n\nif nil, use the first formatter found amongst\n`yapf' , `autopep8' and `black'." (choice (const :tag "First one found" nil) (const :tag "Yapf" yapf) (const :tag "autopep8" autopep8) (const :tag "Black" black)) elpy-syntax-check-command #[0 "\300\207" ["flake8"] 1 #1#] "The command to use for `elpy-check'."] 10) | |
19 | #@35 Key map for the refactor command.\1f | |
20 | (defvar elpy-refactor-map (byte-code "\300\301!\302\ 1\303\304\305\306\303\307\310#\"\311B#\210\302\ 1\312\304\313\306\312\307\310#\"\314B#\210\302\ 1\315\304\316\306\315\307\310#\"\317B#\210\302\ 1\320\304\321\306\320\307\310#\"\322B#\210\207" [make-sparse-keymap "Refactor" define-key "i" format "%snline" propertize face bold elpy-refactor-inline "f" "%sunction extraction" elpy-refactor-extract-function "v" "%sariable extraction" elpy-refactor-extract-variable "r" "%sename" elpy-refactor-rename] 10) (#$ . 9555)) | |
21 | #@48 Key map for the Emacs Lisp Python Environment.\1f | |
22 | (defvar elpy-mode-map (byte-code "\302 \303\ 1\304\305#\210\303\ 1\306\307#\210\303\ 1\310\311#\210\303\ 1\312\313#\210\303\ 1\314\315#\210\303\ 1\316\317#\210\303\ 1\320\321#\210\303\ 1\322\323#\210\303\ 1\324\325#\210\303\ 1\326\327#\210\303\ 1\330\331#\210\303\ 1\332\333#\210\303\ 1\334\335#\210\303\ 1\336\337#\210\303\ 1\340\341#\210\303\ 1\342\343#\210\303\ 1\344\345#\210\303\ 1\346\347#\210\303\ 1\346\350#\210\303\ 1\351\b#\210\303\ 1\352 #\210\303\ 1\353\354#\210\303\ 1\355\356#\210\303\ 1\357\360#\210\303\ 1\361\362#\210\303\ 1\363\364#\210\303\ 1\365\366#\210\303\ 1\367\370#\210\303\ 1\371\372#\210\303\ 1\373\374#\210\303\ 1\375\376#\210\303\ 1\377\201@\0#\210\201A\0\201B\0!\204\330\0\303\ 1\201C\0\201D\0#\210\201A\0\201E\0!\204\357\0\303\ 1\201F\0\201G\0#\210\202\371\0\303\ 1\201H\0\201E\0#\210\201A\0\201I\0!\203\r\ 1\303\ 1\201J\0\201I\0#\210\303\ 1\201K\0\201L\0#\210\207" [elpy-refactor-map elpy-django-mode-map make-sparse-keymap define-key "\ 3\r" elpy-importmagic-add-import "\ 3\ 2" elpy-nav-expand-to-indentation "\ 3\ 3" elpy-shell-send-region-or-buffer "\ 3\ 4" elpy-doc "\ 3\ 5" elpy-multiedit-python-symbol-at-point "\ 3\ 6" elpy-find-file "\ 3\ e" elpy-flymake-next-error "\ 3\ f" elpy-occur-definitions "\ 3\10" elpy-flymake-previous-error "\ 3@\ 3" elpy-folding-toggle-at-point "\ 3@\ 2" elpy-folding-toggle-docstrings "\ 3@\r" elpy-folding-toggle-comments "\ 3@\ 6" elpy-folding-hide-leafs "\ 3\13" elpy-rgrep-symbol "\ 3\14" elpy-test "\ 3\16" elpy-check "\ 3\1a" elpy-shell-switch-to-shell "\ 3\v" elpy-shell-kill elpy-shell-kill-all "\ 3\12" "\ 3\18" [S-return] elpy-open-and-indent-line-below [C-S-return] elpy-open-and-indent-line-above [C-return] elpy-shell-send-statement-and-step [C-down] elpy-nav-forward-block [C-up] elpy-nav-backward-block [C-left] elpy-nav-backward-indent [C-right] elpy-nav-forward-indent [M-down] elpy-nav-move-line-or-region-down [M-up] elpy-nav-move-line-or-region-up [M-left] elpy-nav-indent-shift-left [M-right] elpy-nav-indent-shift-right fboundp xref-find-definitions [134217774] elpy-goto-definition xref-find-definitions-other-window [24 52 134217774] elpy-goto-definition-other-window [24 52 134217774] xref-pop-marker-stack [134217770] [134217737] elpy-company-backend] 5) (#$ . 10106)) | |
23 | #@41 Key map for the shell related commands.\1f | |
24 | (defvar elpy-shell-map (byte-code "\300 \301\ 1\302\303#\210\301\ 1\304\305#\210\301\ 1\306\307#\210\301\ 1\310\311#\210\301\ 1\312\313#\210\301\ 1\314\315#\210\301\ 1\316\317#\210\301\ 1\320\321#\210\301\ 1\322\323#\210\301\ 1\324\325#\210\301\ 1\326\327#\210\301\ 1\330\331#\210\301\ 1\332\333#\210\301\ 1\334\335#\210\301\ 1\336\337#\210\301\ 1\340\341#\210\301\ 1\342\343#\210\301\ 1\344\345#\210\301\ 1\346\347#\210\301\ 1\350\351#\210\301\ 1\352\353#\210\301\ 1\354\355#\210\301\ 1\356\357#\210\301\ 1\360\361#\210\301\ 1\362\363#\210\301\ 1\364\365#\210\301\ 1\366\367#\210\301\ 1\370\371#\210\301\ 1\372\373#\210\301\ 1\374\375#\210\301\ 1\376\377#\210\301\ 1\201@\0\201A\0#\210\207" [make-sparse-keymap define-key "e" elpy-shell-send-statement "E" elpy-shell-send-statement-and-go "s" elpy-shell-send-top-statement "S" elpy-shell-send-top-statement-and-go "f" elpy-shell-send-defun "F" elpy-shell-send-defun-and-go "c" elpy-shell-send-defclass "C" elpy-shell-send-defclass-and-go "o" elpy-shell-send-group "O" elpy-shell-send-group-and-go "w" elpy-shell-send-codecell "W" elpy-shell-send-codecell-and-go "r" elpy-shell-send-region-or-buffer "R" elpy-shell-send-region-or-buffer-and-go "b" elpy-shell-send-buffer "B" elpy-shell-send-buffer-and-go "\ 5" elpy-shell-send-statement-and-step [33554437] elpy-shell-send-statement-and-step-and-go "\13" elpy-shell-send-top-statement-and-step [33554451] elpy-shell-send-top-statement-and-step-and-go "\ 6" elpy-shell-send-defun-and-step [33554438] elpy-shell-send-defun-and-step-and-go "\ 3" elpy-shell-send-defclass-and-step [33554435] elpy-shell-send-defclass-and-step-and-go "\ f" elpy-shell-send-group-and-step [33554447] elpy-shell-send-group-and-step-and-go "\17" elpy-shell-send-codecell-and-step [33554455] elpy-shell-send-codecell-and-step-and-go "\12" elpy-shell-send-region-or-buffer-and-step [33554450] elpy-shell-send-region-or-buffer-and-step-and-go "\ 2" elpy-shell-send-buffer-and-step [33554434] elpy-shell-send-buffer-and-step-and-go] 5) (#$ . 12250)) | |
25 | (byte-code "\300\bM\210\301\302\303\304\305DD\306\307\310\311\312\313\314& \207" [elpy-shell-map custom-declare-variable elpy-shell-command-prefix-key funcall function #[0 "\300\207" ["C-c C-y"] 1 ""] "Prefix key used to call elpy shell related commands.\n\nThis option need to bet set through `customize' or `customize-set-variable' to be taken into account." :type string :group elpy :set #[514 "\301\ 2!\203\14\0\ 1J\203\14\0\302\b\303\ 4J!\304#\210\211\205#\0\302\b\303\ 3!\305#\210\ 1\ 1L\207" [elpy-mode-map boundp define-key kbd nil elpy-shell-map] 6 "\n\n(fn VAR KEY)"]] 10) | |
26 | #@41 Key map for the shell related commands.\1f | |
27 | (defvar elpy-pdb-map (byte-code "\300 \301\ 1\302\303#\210\301\ 1\304\305#\210\301\ 1\306\307#\210\301\ 1\310\311#\210\207" [make-sparse-keymap define-key "d" elpy-pdb-debug-buffer "p" elpy-pdb-break-at-point "e" elpy-pdb-debug-last-exception "b" elpy-pdb-toggle-breakpoint-at-point] 5) (#$ . 14796)) | |
28 | (byte-code "\300\bM\210\302 \303\300#\207" [elpy-pdb-map elpy-mode-map define-key "\ 3\15"] 4) | |
29 | #@16 Elpy Mode Menu\1f | |
30 | (defvar elpy-menu nil (#$ . 15225)) | |
31 | (easy-menu-do-define 'elpy-menu elpy-mode-map "Elpy Mode Menu" '("Elpy" ["Documentation" elpy-doc :help "Get documentation for symbol at point"] ["Run Tests" elpy-test :help "Run test at point, or all tests in the project"] ["Go to Definition" elpy-goto-definition :help "Go to the definition of the symbol at point"] ["Go to previous definition" pop-tag-mark :active (if (version< emacs-version "25.1") (not (ring-empty-p find-tag-marker-ring)) (> xref-marker-ring-length 0)) :help "Return to the position"] ["Complete" elpy-company-backend :keys "M-TAB" :help "Complete at point"] ["Refactor" elpy-refactor :help "Refactor options"] "---" ("Interactive Python" ["Switch to Python Shell" elpy-shell-switch-to-shell :help "Start and switch to the interactive Python"] ["Send Region or Buffer" elpy-shell-send-region-or-buffer :label (if (use-region-p) "Send Region to Python" "Send Buffer to Python") :help "Send the current region or the whole buffer to Python"] ["Send Definition" elpy-shell-send-defun :help "Send current definition to Python"] ["Kill Python shell" elpy-shell-kill :help "Kill the current Python shell"] ["Kill all Python shells" elpy-shell-kill-all :help "Kill all Python shells"]) ("Debugging" ["Debug buffer" elpy-pdb-debug-buffer :help "Debug the current buffer using pdb"] ["Debug at point" elpy-pdb-break-at-point :help "Debug the current buffer and stop at the current position"] ["Debug last exception" elpy-pdb-debug-last-exception :help "Run post-mortem pdb on the last exception"] ["Add/remove breakpoint" elpy-pdb-toggle-breakpoint-at-point :help "Add or remove a breakpoint at the current position"]) ("Project" ["Find File" elpy-find-file :help "Interactively find a file in the current project"] ["Find Symbol" elpy-rgrep-symbol :help "Find occurrences of a symbol in the current project"] ["Set Project Root" elpy-set-project-root :help "Change the current project root"] ["Set Project Variable" elpy-set-project-variable :help "Configure a project-specific option"]) ("Syntax Check" ["Check Syntax" elpy-check :help "Check the syntax of the current file"] ["Next Error" elpy-flymake-next-error :help "Go to the next inline error, if any"] ["Previous Error" elpy-flymake-previous-error :help "Go to the previous inline error, if any"]) ("Code folding" ["Hide/show at point" elpy-folding-toggle-at-point :help "Hide or show the block or docstring at point"] ["Hide/show all docstrings" elpy-folding-toggle-docstrings :help "Hide or show all the docstrings"] ["Hide/show all comments" elpy-folding-toggle-comments :help "Hide or show all the comments"] ["Hide leafs" elpy-folding-hide-leafs :help "Hide all leaf blocks (blocks not containing other blocks)"]) ("Indentation Blocks" ["Dedent" python-indent-shift-left :help "Dedent current block or region" :suffix (if (use-region-p) "Region" "Block")] ["Indent" python-indent-shift-right :help "Indent current block or region" :suffix (if (use-region-p) "Region" "Block")] ["Up" elpy-nav-move-line-or-region-up :help "Move current block or region up" :suffix (if (use-region-p) "Region" "Block")] ["Down" elpy-nav-move-line-or-region-down :help "Move current block or region down" :suffix (if (use-region-p) "Region" "Block")]) "---" ["Configure" elpy-config t])) | |
32 | #@25 Is Elpy enabled or not.\1f | |
33 | (defvar elpy-enabled-p nil (#$ . 18529)) | |
34 | #@67 Enable Elpy in all future Python buffers. | |
35 | ||
36 | (fn &optional IGNORED)\1f | |
37 | (defalias 'elpy-enable #[256 "\b?\205\210\0 \305W\203\ f\0\306\307!\210\211\203\17\0\310\311!\210\312\313\314\"\211\203*\0\315\316\ 2\"\203*\0\306\317!\210\210\320 \210\321\n\322\323#\210\324\325\326\"\210\324\327\330\"\210\324\331\330\"\210\324\332\333\"\210\324\334\335\336#\210\337\313\340\341\211\v#\342BC\"\210\336\10\343 \211\205\206\0\211@\315\344\345\ 3!\"\204\7f\0r\211q\210\f\313\230\203~\0\313 \210\326\336!\210)\ 1A\266\202\202^\0\262\ 1\207" [elpy-enabled-p emacs-major-version inferior-python-mode-map elpy-shell-cell-boundary-regexp major-mode 24 error "Elpy requires Emacs 24 or newer" warn "The argument to `elpy-enable' is deprecated, customize `elpy-modules' instead" find-lisp-object-file-name python-mode symbol-function string-match "/python-mode\\.el\\'" "You are using python-mode.el. Elpy only works with python.el from Emacs 24 and above" elpy-modules-global-init define-key "\ 3\1a" elpy-shell-switch-to-buffer add-hook python-mode-hook elpy-mode pyvenv-post-activate-hooks elpy-rpc--disconnect pyvenv-post-deactivate-hooks inferior-python-mode-hook elpy-shell--enable-output-filter python-shell-first-prompt-hook elpy-shell--send-setup-code t font-lock-add-keywords replace-regexp-in-string "\\\\" (0 'elpy-codecell-boundary prepend) buffer-list "^ ?\\*" buffer-name] 7 (#$ . 18600) nil]) | |
38 | #@44 Disable Elpy in all future Python buffers.\1f | |
39 | (defalias 'elpy-disable #[0 "\303 \210\304\b\305\306#\210\307\310\311\"\210\307\312\313\"\210\307\314\313\"\210\307\315\316\"\210\307\317\320\"\210\321\322\323\324\211 #\325BC\"\210\306\211\12\207" [inferior-python-mode-map elpy-shell-cell-boundary-regexp elpy-enabled-p elpy-modules-global-stop define-key "\ 3\1a" nil remove-hook python-mode-hook elpy-mode pyvenv-post-activate-hooks elpy-rpc--disconnect pyvenv-post-deactivate-hooks inferior-python-mode-hook elpy-shell--enable-output-filter python-shell-first-prompt-hook elpy-shell--send-setup-code font-lock-remove-keywords python-mode replace-regexp-in-string "\\\\" (0 'elpy-codecell-boundary prepend)] 6 (#$ . 19958) nil]) | |
40 | #@87 Non-nil if Elpy mode is enabled. | |
41 | Use the command `elpy-mode' to change this variable.\1f | |
42 | (defvar elpy-mode nil (#$ . 20682)) | |
43 | (make-variable-buffer-local 'elpy-mode) | |
44 | #@806 Minor mode in Python buffers for the Emacs Lisp Python Environment. | |
45 | ||
46 | This is a minor mode. If called interactively, toggle the `Elpy | |
47 | mode' mode. If the prefix argument is positive, enable the mode, | |
48 | and if it is zero or negative, disable the mode. | |
49 | ||
50 | If called from Lisp, toggle the mode if ARG is `toggle'. Enable | |
51 | the mode if ARG is nil, omitted, or is a positive number. | |
52 | Disable the mode if ARG is a negative number. | |
53 | ||
54 | To check whether the minor mode is enabled in the current buffer, | |
55 | evaluate `elpy-mode'. | |
56 | ||
57 | The mode's hook is called both when the mode is enabled and when | |
58 | it is disabled. | |
59 | ||
60 | This mode fully supports virtualenvs. Once you switch a | |
61 | virtualenv using \[pyvenv-workon], you can use | |
62 | \[elpy-rpc-restart] to make the elpy Python process use your | |
63 | virtualenv. | |
64 | ||
65 | \{elpy-mode-map} | |
66 | ||
67 | (fn &optional ARG)\1f | |
68 | (defalias 'elpy-mode #[256 "\305 \ 1\306=\203\r\0\b?\202\1d\0\ 1\247\203\1c\0\ 1\307W\203\1c\0\310\202\1d\0\311\10\312\301!\2031\0\313\300 \"\11\b\2031\0\300 B\11\314\315\316\"\204<\0\317\320!\210\n\204D\0\317\321!\210\312\322!\203Q\0\323\322\324\310\311$\210\325\304!\210\v\14\b\203a\0\326 \210\202h\0\b\204h\0\327 \210\330\331\b\203r\0\332\202s\0\333\"\210\334\335!\203\225\0\305 \203\207\0\211\305 \232\203\225\0\336\337\b\203\221\0\340\202\222\0\341\342#\210\210\343 \210\b\207" [elpy-mode local-minor-modes elpy-enabled-p elpy-syntax-check-command python-check-command current-message toggle 1 nil t boundp delq derived-mode-p python-mode python-ts-mode error "Elpy only works with `python-mode'" "Please enable Elpy with `(elpy-enable)` before using it" xref-backend-functions add-hook elpy--xref-backend make-local-variable elpy-modules-buffer-init elpy-modules-buffer-stop run-hooks elpy-mode-hook elpy-mode-on-hook elpy-mode-off-hook called-interactively-p any message "Elpy mode %sabled%s" "en" "dis" " in current buffer" force-mode-line-update] 7 (#$ . 20851) (byte-code "\b\203\n\0\301\b!\202\v\0\302C\207" [current-prefix-arg prefix-numeric-value toggle] 2)]) | |
69 | (defvar elpy-mode-hook nil) | |
70 | (byte-code "\301\302N\204\f\0\303\301\302\304#\210\303\301\305\306#\210\303\301\307\310C#\210\311\312\313\314\300!\205#\0\b\310\211%\207" [elpy-mode-map elpy-mode-hook variable-documentation put "Hook run after entering or leaving `elpy-mode'.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" custom-type hook standard-value nil add-minor-mode elpy-mode " Elpy" boundp] 6) | |
71 | (defvar elpy-config--related-custom-groups '(("Elpy" elpy "elpy-") ("Python" python "python-") ("Virtual Environments (Pyvenv)" pyvenv "pyvenv-") ("Completion (Company)" company "company-") ("Call Signatures (ElDoc)" eldoc "eldoc-") ("Inline Errors (Flymake)" flymake "flymake-") ("Code folding (hideshow)" hideshow "hs-") ("Snippets (YASnippet)" yasnippet "yas-") ("Directory Grep (rgrep)" grep "grep-") ("Search as You Type (ido)" ido "ido-") ("Django extension" elpy-django "elpy-django-") ("Autodoc extension" elpy-autodoc "elpy-autodoc-"))) | |
72 | (defvar elpy-config--get-config "import json\nimport sys\n\nimport warnings\nwarnings.filterwarnings('ignore', category=FutureWarning)\nwarnings.filterwarnings('ignore', category=DeprecationWarning)\nwarnings.filterwarnings('ignore', category=PendingDeprecationWarning)\n\nfrom distutils.version import LooseVersion\n\ntry:\n import urllib2 as urllib\nexcept ImportError:\n import urllib.request as urllib\n\n\n# Check if we can connect to pypi quickly enough\ntry:\n response = urllib.urlopen('https://pypi.org/pypi', timeout=1)\n CAN_CONNECT_TO_PYPI = True\nexcept:\n CAN_CONNECT_TO_PYPI = False\n\n\ndef latest(package, version=None):\n if not CAN_CONNECT_TO_PYPI:\n return None\n try:\n response = urllib.urlopen('https://pypi.org/pypi/{package}/json'.format(package=package),\n timeout=2).read()\n latest = json.loads(response)['info']['version']\n if version is None or LooseVersion(version) < LooseVersion(latest):\n return latest\n else:\n return None\n except:\n return None\n\n\nconfig = {}\nconfig['can_connect_to_pypi'] = CAN_CONNECT_TO_PYPI\nconfig['rpc_python_version'] = ('{major}.{minor}.{micro}'\n .format(major=sys.version_info[0],\n minor=sys.version_info[1],\n micro=sys.version_info[2]))\n\ntry:\n import elpy\n config['elpy_version'] = elpy.__version__\nexcept:\n config['elpy_version'] = None\n\ntry:\n import jedi\n if isinstance(jedi.__version__, tuple):\n config['jedi_version'] = '.'.join(str(x) for x in jedi.__version__)\n else:\n config['jedi_version'] = jedi.__version__\n config['jedi_latest'] = latest('jedi', config['jedi_version'])\nexcept:\n config['jedi_version'] = None\n config['jedi_latest'] = latest('jedi')\n\ntry:\n import autopep8\n config['autopep8_version'] = autopep8.__version__\n config['autopep8_latest'] = latest('autopep8', config['autopep8_version'])\nexcept:\n config['autopep8_version'] = None\n config['autopep8_latest'] = latest('autopep8')\n\ntry:\n import yapf\n config['yapf_version'] = yapf.__version__\n config['yapf_latest'] = latest('yapf', config['yapf_version'])\nexcept:\n config['yapf_version'] = None\n config['yapf_latest'] = latest('yapf')\n\ntry:\n import black\n config['black_version'] = black.__version__\n config['black_latest'] = latest('black', config['black_version'])\nexcept:\n config['black_version'] = None\n config['black_latest'] = latest('black')\n\njson.dump(config, sys.stdout)\n") | |
73 | #@179 Note a configuration problem. | |
74 | ||
75 | FMT is the formating string. | |
76 | ||
77 | This will show a message in the minibuffer that tells the user to | |
78 | use \[elpy-config]. | |
79 | ||
80 | (fn &optional FMT &rest ARGS)\1f | |
81 | (defalias 'elpy-config-error #[384 "\ 1\203\f\0\300\301\ 3\ 3#\202\r\0\302\303\304\ 2\"\207" [apply format "Elpy is not properly configured" error "%s; use M-x elpy-config to configure it"] 6 (#$ . 26458)]) | |
82 | #@131 Configure Elpy. | |
83 | ||
84 | This function will pop up a configuration buffer, which is mostly | |
85 | a customize buffer, but has some more options.\1f | |
86 | (defalias 'elpy-config #[0 "\303\304!\305 \306\18r\ 1q\210\307\310!\210\311\ 1!\210\312c\210\307\313!\210\314\ 1!\210\307\315!\210\316\19\317 \210\320 \210\n\211\203J\0\211@\321\322\323\324\325\326\327\ 6\a@\330\ 6 A@& \210\ 1A\266\202\202+\0\210\331 \210eb\210*\332\ 2!)\207" [custom-search-field custom-buffer-style elpy-config--related-custom-groups custom-get-fresh-buffer "*Elpy Config*" elpy-config--get-config nil elpy-insert--header "Elpy Configuration" elpy-config--insert-configuration-table "\n" "Warnings" elpy-config--insert-configuration-problems "Options" tree Custom-mode elpy-config--insert-help widget-create custom-group :custom-last t :custom-state hidden :tag :value widget-setup pop-to-buffer-same-window] 14 (#$ . 26839) nil]) | |
87 | #@30 Display the version of Elpy.\1f | |
88 | (defalias 'elpy-version #[0 "\301\302\b\"\207" [elpy-version message "Elpy %s (use M-x elpy-config for details)"] 3 (#$ . 27704) nil]) | |
89 | #@32 Insert the customization help.\1f | |
90 | (defalias 'elpy-config--insert-help #[0 "`\302\303\304\b\203\f\0\305\202\r\0\306\"!\210 \203\18\0\302\307!\207\302\310!\210\311\312\313\314\315\316\317\320&\a\210\302\321!\210\311\312\313\314\315\322\317\323&\a\210\302\324!\210\311\312\313\314\315\325\317\326&\a\210\302\327!\210\330\ 1`\"\207" [custom-raised-buttons custom-browse-only-groups widget-insert format "%s buttons; type RET or click mouse-1\non a button to invoke its action.\nInvoke [+] to expand a group, and [-] to collapse an expanded group.\n" "`Raised' text indicates" "Square brackets indicate" "Invoke the [Group] button below to edit that item in another window.\n\n" "Invoke the " widget-create item :format "%t" :tag "[Group]" :tag-glyph "folder" ", " "[Face]" "face" ", and " "[Option]" "option" " buttons below to edit that\nitem in another window.\n\n" fill-region] 9 (#$ . 27873)]) | |
91 | #@81 Insert help text and widgets for configuration problems. | |
92 | ||
93 | (fn &optional CONFIG)\1f | |
94 | (defalias 'elpy-config--insert-configuration-problems #[256 "\211\204\b\0\306 \262\ 1\307\310\ 2\"\210\311\307\312\ 3\"\204\e\0\313\314\315\316#\210\307\312\ 3\"\203/\0\307\317\ 3\"\204/\0\313\320\321\322#\210\b\323>\204X\0\307\312\ 3\"\203X\0 \204X\0\324\325!\n\235\204X\0\324\326!\n\235\204X\0\313\327\330\331\332\333%\210\307\312\ 3\"\203p\0\307\334\ 3\"\204p\0\313\335\336\337\340$\210\340c\210\307\334\ 3\"\203\221\0\307\334\ 3\"\v\232\204\221\0\307\334\ 3\"\313\341\ 2\342\343\v\344\345\340&\b\266\ 2\307\346\ 3\"\203\250\0\313\347\350\351#\210\340\307\346\ 4\"\340\211\261\ 4\210 \203\323\0\352\324 !\353\f!\"\204\323\0\313\354\f\355 \356\353\f!\357\340&\b\210\340c\210\360\361\362\f\363\364%\210\365c\210\307\366\ 3\"\204\357\0\313\367\370\371\340$\210\340c\210\360\372\373\374\375\376%\210\365c\210\r\377=\203)\ 1\201A\0 \203)\ 1\313\201B\0\201C\0\201D\0 \201E\0\201F\0\201G\0\201H\0\201I\0\365& \210\360\372\373\201J\0\375\201K\0%\210\365c\210\307\312\ 3\"\203S\ 1\307\201L\0\ 3\"\204S\ 1\313\201M\0\201N\0\201O\0#\210\340c\210\360\361\362\201P\0#\210\365c\210\307\201L\0\ 3\"\203}\ 1\307\201Q\0\ 3\"\203}\ 1\313\201R\0!\210\340c\210\360\361\362\201P\0\201S\0\364%\210\365c\210\307\201T\0\ 3\"\204\310\ 1\307\201U\0\ 3\"\204\310\ 1\307\201V\0\ 3\"\204\310\ 1\313\201W\0\201X\0\201Y\0#\210\340c\210\360\361\362\201Z\0#\210\340c\210\360\361\362\201[\0#\210\340c\210\360\361\362\201\\\0#\210\365c\210\307\201T\0\ 3\"\203\362\ 1\307\201]\0\ 3\"\203\362\ 1\313\201^\0!\210\340c\210\360\361\362\201Z\0\201S\0\364%\210\365c\210\307\201U\0\ 3\"\203\1c\ 2\307\201_\0\ 3\"\203\1c\ 2\313\201`\0!\210\340c\210\360\361\362\201[\0\201S\0\364%\210\365c\210\307\201V\0\ 3\"\203F\ 2\307\201a\0\ 3\"\203F\ 2\313\201b\0!\210\340c\210\360\361\362\201\\\0\201S\0\364%\210\365c\210\353\201c\0\ e@!@!?\205y\ 2\313\201d\0\201e\0\201c\0\ e@!@\"\201f\0\201g\0#\210\340c\210\360\361\362\201h\0\363\364%\210\365c\207" [system-type pyvenv-virtual-env exec-path elpy-version python-shell-interpreter elpy-rpc-virtualenv-path elpy-config--get-config gethash "rpc_python_version" nil "rpc_python_executable" elpy-insert--para "Elpy can not find the configured Python interpreter. Please make " "sure that the variable `elpy-rpc-python-command' points to a " "command in your PATH. You can change the variable below.\n\n" "virtual_env" "You have not activated a virtual env. It is not mandatory but" " often a good idea to work inside a virtual env. You can use " "`M-x pyvenv-activate` or `M-x pyvenv-workon` to activate one.\n\n" (ms-dos windows-nt) expand-file-name "~/.local/bin" "~/.local/bin/" "The directory ~/.local/bin/ is not in your PATH. As there is " "no active virtualenv, installing Python packages locally will " "place executables in that directory, so Emacs won't find them. " "If you are missing some commands, do add this directory to your " "PATH -- and then do `elpy-rpc-restart'.\n\n" "elpy_version" "The Python interpreter could not find the elpy module. " "Please report to: " "https://github.com/jorgenschaefer/elpy/issues/new." "\n" "The Elpy backend is version " " while " "the Emacs package is " ". This is incompatible. " "Please report to: https://github.com/jorgenschaefer/elpy/issues/new." "error_output" "There was an unexpected problem starting the RPC process. Please " "check the following output to see if this makes sense to you. " "To me, it doesn't.\n" string-prefix-p executable-find "The python interactive interpreter (" ") is not installed on the current virtualenv (" "). The system binary (" ") will be used instead." widget-create elpy-insert--pip-button :package :norpc t "\n\n" "can_connect_to_pypi" "Elpy could not connect to Pypi (or at least not quickly enough) " "and check if the python packages were up-to-date. " "You can still try to update all of them:" elpy-insert--generic-button :button-name "[Update python packages]" :function #[0 "\304\b!\204\v\0\305\306\b\"\207\307\310 \"\19\307\310\n\"\1a\v\304\b!\311\312\311\312\ 4!!!!\211\313 \230\206.\0\314\ 1\313 \"\315\ 1\204T\0\3161@\0\317\320 !0\210\202Q\0\ 5\203M\0\317\ 6\ 6!\266\ 2\202Q\0\321 \266\ 2\322\262\ 1\315\211\3231~\0\3241i\0\325 \211\262\ 200\210\202\201\00\211;\203s\0\211\202v\0\211A@\211\262\ 4\266\ 2\202\201\0\315\266\ 2\ 3\204\225\0\ 6\ 6\203\222\0\317\ 6\a!\210\202\225\0\321 \210\ 1\203\235\0\305\ 2!\210\262\ 1*\207" [elpy-rpc-python-command pyvenv-post-activate-hooks pyvenv-post-deactivate-hooks pyvenv-virtual-env executable-find error "Cannot find executable '%s', please set 'elpy-rpc-python-command' to an existing executable." remq elpy-rpc--disconnect directory-file-name file-name-directory elpy-rpc-get-virtualenv-path file-equal-p nil (error quit) pyvenv-activate elpy-rpc-get-or-create-virtualenv pyvenv-deactivate t (quit) (error) elpy-rpc--install-dependencies] 10] default elpy-syntax-check-command elpy-rpc--pip-missing "Pip doesn't seem to be installed in the dedicated virtualenv " "created by Elpy (" elpy-rpc-get-virtualenv-path "). " "This may prevent some features from working properly" " (completion, documentation, reformatting, ...). " "You can try reinstalling the virtualenv. " "If the problem persists, please report on Elpy's github page." "[Reinstall RPC virtualenv]" #[0 "\300 \207" [elpy-rpc-reinstall-virtualenv] 1] "jedi_version" "The Jedi package is not currently installed. " "This package is needed for code completion, code navigation " "and access to documentation.\n" "jedi" "jedi_latest" "There is a newer version of Jedi available.\n" :upgrade "autopep8_version" "yapf_version" "black_version" "No autoformatting package is currently installed. " "At least one is needed (Autopep8, Yapf or Black) " "to perform autoformatting (`C-c C-r f` in a python buffer).\n" "autopep8" "yapf" "black" "autopep8_latest" "There is a newer version of the autopep8 package available.\n" "yapf_latest" "There is a newer version of the yapf package available.\n" "black_latest" "There is a newer version of the black package available.\n" split-string format "The configured syntax checker (%s) could not be found. Elpy uses this " "program to provide syntax checks of your code. You can either " "install it, or select another one using `elpy-syntax-check-command`.\n" "flake8"] 12 (#$ . 28758)]) | |
95 | #@57 Check if PACKAGE is installed in the rpc. | |
96 | ||
97 | (fn PACKAGE)\1f | |
98 | (defalias 'elpy-config--package-available-p #[257 "\304\b!\204\v\0\305\306\b\"\207\307\310 \"\19\307\310\n\"\1a\v\304\b!\311\312\311\312\ 4!!!!\211\313 \230\206.\0\314\ 1\313 \"\315\ 1\204T\0\3161@\0\317\320 !0\210\202Q\0\ 5\203M\0\317\ 6\ 6!\266\ 2\202Q\0\321 \266\ 2\322\262\ 1\315\211\3231\213\0\3241v\0\325\b\315\211\211\326\327\330\ 6\ f\"&\ 6\331=\211\262\ 200\210\202\216\00\211;\203\200\0\211\202\203\0\211A@\211\262\ 4\266\ 2\202\216\0\315\266\ 2\ 3\204\242\0\ 6\ 6\203\237\0\317\ 6\a!\210\202\242\0\321 \210\ 1\203\252\0\305\ 2!\210\262\ 1*\207" [elpy-rpc-python-command pyvenv-post-activate-hooks pyvenv-post-deactivate-hooks pyvenv-virtual-env executable-find error "Cannot find executable '%s', please set 'elpy-rpc-python-command' to an existing executable." remq elpy-rpc--disconnect directory-file-name file-name-directory elpy-rpc-get-virtualenv-path file-equal-p nil (error quit) pyvenv-activate elpy-rpc-get-or-create-virtualenv pyvenv-deactivate t (quit) (error) call-process "-c" format "import %s" 0] 17 (#$ . 34833)]) | |
99 | #@359 Return the configuration from `elpy-rpc-python-command'. | |
100 | ||
101 | This returns a hash table with the following keys (all strings): | |
102 | ||
103 | emacs_version | |
104 | elpy_version | |
105 | python_interactive | |
106 | python_interactive_version | |
107 | python_interactive_executable | |
108 | rpc_virtualenv | |
109 | rpc_virtualenv_short | |
110 | rpc_python | |
111 | rpc_python_version | |
112 | rpc_python_executable | |
113 | jedi_version | |
114 | virtual_env | |
115 | virtual_env_short\1f | |
116 | (defalias 'elpy-config--get-config #[0 "\306\307\310\"r\211q\210\311\312\ 2\"\216\313\314\315\"\316\317\b\ 3#\210\320 \316\321\ 2\ 4#\210\211\2031\0\316\322\323\324\ 4!!\ 4#\266\ 2\2028\0\316\322\325\ 4#\266\ 2\326 !\204F\0\327\330 \"\210\202\350\0\331\332\n\"\1a\331\332\v\"\e\f\326 !\324\333\324\333\ 4!!!!\211\334 \230\206i\0\335\ 1\334 \"\325\ 1\204\215\0\3361{\0\337\320 !0\210\202\212\0\ 5\203\206\0\337\ 6\ 6!\202\210\0\340 \266\ 2\310\262\ 1\325\211\3411\304\0\3421\257\0\316\343 \ 6\n#\210\316\344\326 !\ 6\n#\211\262\ 200\210\202\307\00\211;\203\271\0\211\202\274\0\211A@\211\262\ 4\266\ 2\202\307\0\325\266\ 2\ 3\204\333\0\ 6\ 6\203\330\0\337\ 6\a!\210\202\333\0\340 \210\ 1\203\343\0\327\ 2!\210\266\ 2*\266\ 5\345\305!\203\362\0\r\202\364\0\ e@\316\346\ 2\ 4#\210\316\347\350\351\352\ e@\"!\353\354\ 2\"\205\ e\ 1\355\356\ 2\"\262\ 1\ 4#\210\316\357\326\ 3!\ 4#\266\ 2\360\361!\316\362\ 2\ 4#\210\211\2037\ 1\316\363\323\324\ 4!!\ 4#\266\ 2\202>\ 1\316\363\325\ 4#\266\ 2\326 !\204L\ 1\327\330 \"\210\202G\ 2\331\332\n\"\1a\331\332\v\"\e\f\326 !\324\333\324\333\ 4!!!!\211\334 \230\206o\ 1\335\ 1\334 \"\325\ 1\204\223\ 1\3361\201\ 1\337\320 !0\210\202\220\ 1\ 5\203\214\ 1\337\ 6\ 6!\202\216\ 1\340 \266\ 2\310\262\ 1\325\211\3641#\ 2\3651\ e\ 2\3661\267\ 1\367 \370\1eA\1eB\371 \325p\325\372\ eC&\ 6*0\202\271\ 1\210\325\211\205\ 3\ 2\3731\324\ 1\374\325\211\1eD\1eE\1eFeb\210\375 +0\202\326\ 1\210\325\211\204\344\ 1\316\376\377 \ 6\f#\202\ 1\ 2\211\211\205\377\ 1\211@\316\201G\0\ 2@!\ 2A\ 6\ e#\210\ 1A\266\202\202\345\ 1\262\ 1\262\ 1\262\ 1\211\262\ 200\210\202&\ 20\211;\203\18\ 2\211\202\e\ 2\211A@\211\262\ 4\266\ 2\202&\ 2\325\266\ 2\ 3\204:\ 2\ 6\ 6\2037\ 2\337\ 6\a!\210\202:\ 2\340 \210\ 1\203B\ 2\327\ 2!\210\266\ 2*\266\ 5\211\262\ 1*\207" [emacs-version elpy-rpc-python-command pyvenv-post-activate-hooks pyvenv-post-deactivate-hooks pyvenv-virtual-env python-python-command generate-new-buffer " *temp*" t make-closure #[0 "\301\300!\205 \0\302\300!\207" [V0 buffer-name kill-buffer] 2] make-hash-table :test equal puthash "emacs_version" elpy-rpc-get-or-create-virtualenv "rpc_virtualenv" "rpc_virtualenv_short" file-name-nondirectory directory-file-name nil executable-find error "Cannot find executable '%s', please set 'elpy-rpc-python-command' to an existing executable." remq elpy-rpc--disconnect file-name-directory elpy-rpc-get-virtualenv-path file-equal-p (error quit) pyvenv-activate pyvenv-deactivate (quit) (error) "rpc_python" "rpc_python_executable" boundp "python_interactive" "python_interactive_version" shell-command-to-string format "%s --version" string-match "[0-9.]+" match-string 0 "python_interactive_executable" getenv "VIRTUAL_ENV" "virtual_env" "virtual_env_short" (quit) (error) (error) elpy-rpc--environment "/" call-process "-c" (error) list json-read "error_output" buffer-string python-shell-interpreter default-directory process-environment elpy-config--get-config json-encoding-pretty-print json-false json-array-type symbol-name] 17 (#$ . 35863)]) | |
117 | #@75 Insert a table describing the current Elpy config. | |
118 | ||
119 | (fn &optional CONFIG)\1f | |
120 | (defalias 'elpy-config--insert-configuration-table #[256 "\211\204\b\0\304 \262\ 1\305\306\ 2\"\305\307\ 3\"\305\310\ 4\"\305\311\ 5\"\305\312\ 6\ 6\"\305\313\ 6\a\"\305\314\ 6\b\"\305\315\ 6 \"\305\316\ 6\n\"\305\317\ 6\v\"\305\320\ 6\f\"\305\321\ 6\r\"\305\322\ 6\ e\"\305\323\ 6\ f\"\305\324\ 6\10\"\305\325\ 6\11\"\305\326\ 6\12\"\305\327\ 6\13\"\305\330\ 6\14\"\305\331\ 6\15\"\332\211\ 6\15\18\333\bB\334\ 6\16\203\205\0 \203\205\0\ 6\16 \232\203\205\0 \202\227\0\ 6\16\203\223\0\335\336\ 6\18 #\202\227\0\335\337 \"B\340\305\310\ 6\e\"\203\253\0\335\341\ 6\17\ 6\19#\202\254\0\342B\343\ 6\13\203\277\0\335\344\ 6\17\ 6\17\ 6\17$\202\315\0\ 6\15\203\314\0\335\345\ 6\17\"\202\315\0\346B\347\335\341\n\350=\204\335\0\n\351=\203\341\0\352\202\343\0\ 6\11\ 6\13#B\353\ 6\13\203\371\0\335\344\ 6\16\ 6\15\ 6\17$\202\13\ 1\ 6\13\203\ 3\ 1\ 6\13\202\13\ 1\ 6\14\203\10\ 1\335\345\ 6\16\"\202\13\ 1\335\346!B\354\355\356\ 6\12\ 6\12#B\357\355\360\ 6\11\ 6\11#B\361\355\362\ 6\10\ 6\10#B\363\355\364\ 6\ f\ 6\ f#B\365\366\367\v!@!\211\203M\ 1\335\341\370\ 3!\ 3#\202Q\ 1\335\371\v\"\262\ 1B\257\v\262\ 2\372\262\ 1\ 1\211\203\210\ 1\211@\332\ 1@;\203q\ 1\ 1@G\262\ 1\202w\ 1\ 1@@G\262\ 1\211\ 4V\203\200\ 1\211\262\ 4\210\ 1A\266\202\202\\\ 1\210\ 1\211\205\322\ 1\211@\211@;\203\246\ 1\211@\373\ 4\ 3@GZ\374\"\261\ 2\210\202\300\ 1\375\376\377\ 3@@\201@\0\ 5@A@%\210\373\ 3\ 2@@GZ\374\"c\210\201A\0\ 1A\201B\0\261\ 3\210\ 1A\266\202\202\212\ 1\262\ 1)\207" [emacs-version elpy-version elpy-rpc-virtualenv-path elpy-syntax-check-command elpy-config--get-config gethash "emacs_version" "elpy_version" "virtual_env" "virtual_env_short" "python_interactive" "python_interactive_version" "python_interactive_executable" "rpc_python" "rpc_python_executable" "rpc_python_version" "rpc_virtualenv" "rpc_virtualenv_short" "jedi_version" "jedi_latest" "autopep8_version" "autopep8_latest" "yapf_version" "yapf_latest" "black_version" "black_latest" nil "Emacs" "Elpy" format "%s (Python), %s (Emacs Lisp)" "Not found (Python), %s (Emacs Lisp)" ("Virtualenv" (lambda nil (call-interactively 'pyvenv-workon) (elpy-config))) "%s (%s)" "None" ("Interactive Python" (lambda nil (customize-variable 'python-shell-interpreter))) "%s %s (%s)" "%s (not found)" "Not configured" "RPC virtualenv" system global "system" (" Python" (lambda nil (customize-variable 'elpy-rpc-python-command))) " Jedi" elpy-config--package-link "jedi" " Autopep8" "autopep8" " Yapf" "yapf" " Black" "black" ("Syntax checker" (lambda nil (customize-variable 'elpy-syntax-check-command))) executable-find split-string file-name-nondirectory "Not found (%s)" 0 make-string 46 widget-create elpy-insert--generic-button :button-name :function ": " "\n"] 39 (#$ . 38962)]) | |
121 | #@228 Return a string detailing a Python package. | |
122 | ||
123 | NAME is the PyPI name of the package. VERSION is the currently | |
124 | installed version. LATEST is the latest-available version on | |
125 | PyPI, or nil if that's VERSION. | |
126 | ||
127 | (fn NAME VERSION LATEST)\1f | |
128 | (defalias 'elpy-config--package-link #[771 "\ 1\204\n\0\211\204\n\0\300\207\211\204\10\0\ 1\207\ 1\204\19\0\301\302\ 2\"\207\301\303\ 3\ 3#\207" ["Not found" format "Not found (%s available)" "%s (%s available)"] 7 (#$ . 41456)]) | |
129 | #@76 Insert MESSAGES, a list of strings, and then fill it. | |
130 | ||
131 | (fn &rest MESSAGES)\1f | |
132 | (defalias 'elpy-insert--para #[128 "`\300\301\ 3\"\210\302\ 1`\"\207" [mapc #[257 "\211;\203\b\0\211c\207\300\301\ 2\"c\207" [format "%s"] 4 "\n\n(fn OBJ)"] fill-region] 5 (#$ . 41899)]) | |
133 | #@57 Insert TEXT has a header for a buffer. | |
134 | ||
135 | (fn &rest TEXT)\1f | |
136 | (defalias 'elpy-insert--header #[128 "\300\301\302\ 3\303#\304\305#\306\211\261\ 3\207" [propertize mapconcat #[257 "\207" [] 2 "\n\n(fn X)"] "" face header-line "\n"] 6 (#$ . 42159)]) | |
137 | (define-widget 'elpy-insert--generic-button 'item "A button that run a rgiven function." :button-prefix "" :button-suffix "" :format "%[%v%]" :value-create 'elpy-insert--generic-button-value-create :action 'elpy-insert--generic-button-action) | |
138 | #@72 The :value-create option for the customize button widget. | |
139 | ||
140 | (fn WIDGET)\1f | |
141 | (defalias 'elpy-insert--generic-button-value-create #[257 "\300\ 1\301\"c\207" [widget-get :button-name] 4 (#$ . 42645)]) | |
142 | #@82 The :action option for the customize button widget. | |
143 | ||
144 | (fn WIDGET &optional EVENT)\1f | |
145 | (defalias 'elpy-insert--generic-button-action #[513 "\300\ 2\301\" \207" [widget-get :function] 5 (#$ . 42842)]) | |
146 | (define-widget 'elpy-insert--pip-button 'item "A button that runs pip (or an alternative)." :button-prefix "[" :button-suffix "]" :format "%[%v%]" :value-create 'elpy-insert--pip-button-value-create :action 'elpy-insert--pip-button-action) | |
147 | #@66 The :value-create option for the pip button widget. | |
148 | ||
149 | (fn WIDGET)\1f | |
150 | (defalias 'elpy-insert--pip-button-value-create #[257 "\301\ 1\302\"\301\ 2\303\"\211\203\10\0\304\202\11\0\305\306\b\307\211\211\310\311\312&\a\313U\203*\0\314\315\b\ 3\ 6\ 6$\202:\0\316\317!\2037\0\314\320\ 4\"\202:\0\321\322!\323\ 5\324\ 3#\210\ 2\203J\0\314\325\ 5\"c\207\314\326\ 5\"c\207" [elpy-rpc-python-command widget-get :package :upgrade "--upgrade " "" call-process nil "-m" "pip" "--help" 0 format "%s -m pip install %s%s" executable-find "easy_install" "easy_install %s" error "Neither easy_install nor pip found" widget-put :command "Update %s" "Install %s"] 12 (#$ . 43280)]) | |
151 | #@76 The :action option for the pip button widget. | |
152 | ||
153 | (fn WIDGET &optional EVENT)\1f | |
154 | (defalias 'elpy-insert--pip-button-action #[513 "\304\ 2\305\"\304\ 3\306\"\211\203\10\0\307\ 2!\207\310\b!\204\e\0\311\312\b\"\207\313\314 \"\19\313\314\n\"\1a\v\310\b!\315\316\315\316\ 4!!!!\211\317 \230\206>\0\320\ 1\317 \"\321\ 1\204d\0\3221P\0\323\324 !0\210\202a\0\ 5\203]\0\323\ 6\ 6!\266\ 2\202a\0\325 \266\ 2\326\262\ 1\321\211\3271\220\0\3301{\0\307\ 6 !\211\262\ 200\210\202\223\00\211;\203\205\0\211\202\210\0\211A@\211\262\ 4\266\ 2\202\223\0\321\266\ 2\ 3\204\247\0\ 6\ 6\203\244\0\323\ 6\a!\210\202\247\0\325 \210\ 1\203\257\0\311\ 2!\210\262\ 1*\207" [elpy-rpc-python-command pyvenv-post-activate-hooks pyvenv-post-deactivate-hooks pyvenv-virtual-env widget-get :command :norpc async-shell-command executable-find error "Cannot find executable '%s', please set 'elpy-rpc-python-command' to an existing executable." remq elpy-rpc--disconnect directory-file-name file-name-directory elpy-rpc-get-virtualenv-path file-equal-p nil (error quit) pyvenv-activate elpy-rpc-get-or-create-virtualenv pyvenv-deactivate t (quit) (error)] 14 (#$ . 43907)]) | |
155 | #@56 The history for `elpy-project--read-project-variable'.\1f | |
156 | (defvar elpy-project--variable-name-history nil (#$ . 44970)) | |
157 | #@319 Return the root of the current buffer's project. | |
158 | ||
159 | This can very well be nil if the current file is not part of a | |
160 | project. | |
161 | ||
162 | See `elpy-project-root-finder-functions' for a way to configure | |
163 | how the project root is found. You can also set the variable | |
164 | `elpy-project-root' in, for example, .dir-locals.el to override | |
165 | this.\1f | |
166 | (defalias 'elpy-project-root #[0 "\b\204\b\0\301\302!\10\b\207" [elpy-project-root run-hook-with-args-until-success elpy-project-root-finder-functions] 2 (#$ . 45094)]) | |
167 | #@55 Set the Elpy project root to NEW-ROOT. | |
168 | ||
169 | (fn NEW-ROOT)\1f | |
170 | (defalias 'elpy-set-project-root #[257 "\211\211\10\207" [elpy-project-root] 3 (#$ . 45581) "DNew project root: "]) | |
171 | #@115 Return the current Python project root, if any. | |
172 | ||
173 | This is marked with 'setup.py', 'setup.cfg' or 'pyproject.toml'.\1f | |
174 | (defalias 'elpy-project-find-python-root #[0 "\301\b\302\"\206\12\0\301\b\303\"\206\12\0\301\b\304\"\207" [default-directory locate-dominating-file "setup.py" "setup.cfg" "pyproject.toml"] 3 (#$ . 45756)]) | |
175 | #@49 Return the current git repository root, if any.\1f | |
176 | (defalias 'elpy-project-find-git-root #[0 "\301\b\302\"\207" [default-directory locate-dominating-file ".git"] 3 (#$ . 46073)]) | |
177 | #@49 Return the current git repository root, if any.\1f | |
178 | (defalias 'elpy-project-find-hg-root #[0 "\301\b\302\"\207" [default-directory locate-dominating-file ".hg"] 3 (#$ . 46254)]) | |
179 | #@49 Return the current git repository root, if any.\1f | |
180 | (defalias 'elpy-project-find-svn-root #[0 "\301\b\302\"\207" [default-directory locate-dominating-file #[257 "\300\301\302\ 3\"!\205\10\0\300\301\303\ 3\"!?\207" [file-directory-p format "%s/.svn" "%s/../.svn"] 5 "\n\n(fn DIR)"]] 3 (#$ . 46433)]) | |
181 | #@58 Return the current project root according to projectile.\1f | |
182 | (defalias 'elpy-project-find-projectile-root #[0 "\3001\b\0\301 0\207\210\302\207" [(error) projectile-project-root nil] 1 (#$ . 46726)]) | |
183 | #@189 Return the root of the Python package chain of the current buffer. | |
184 | ||
185 | That is, if you have /foo/package/module.py, it will return /foo, | |
186 | so that import package.module will pick up module.py.\1f | |
187 | (defalias 'elpy-library-root #[0 "\301\b\302\"\207" [default-directory locate-dominating-file #[257 "\300\301\302\ 3\"!?\207" [file-exists-p format "%s/__init__.py"] 5 "\n\n(fn DIR)"]] 3 (#$ . 46926)]) | |
188 | #@84 Prompt the user for a variable name to set project-wide using PROMPT. | |
189 | ||
190 | (fn PROMPT)\1f | |
191 | (defalias 'elpy-project--read-project-variable #[257 "\302\303\b\"\304\305\306\ 3!\"\307\310\ 4 \311\312\ 6\ 6\"\313\314\315&\ 6!\207" [elpy-config--related-custom-groups obarray mapcar #[257 "\300\ 18\207" [2] 3 "\n\n(fn CUST)"] format "^%s" regexp-opt intern completing-read make-closure #[257 "\211\301N\205\12\0\302\300\303\ 3!\"\205\12\0\211\304N\207" [V0 safe-local-variable string-match symbol-name custom-type] 5 "\n\n(fn SYM)"] :require-match nil elpy-project--variable-name-history] 11 (#$ . 47319)]) | |
192 | #@79 Read the value for VARIABLE from the user using PROMPT. | |
193 | ||
194 | (fn PROMPT VARIABLE)\1f | |
195 | (defalias 'elpy-project--read-variable-value #[514 "\211\300N\211\203*\0\301\ 1<\203\11\0\ 1\202\13\0\ 1C\ 4\302\ 5!\205#\0\ 4\303N\206!\0\304\ 5!\302\ 6\ 6!?$\207\305\ 3!\207" [custom-type widget-prompt-value boundp custom-get symbol-value eval-minibuffer] 9 (#$ . 47898)]) | |
196 | #@127 Set or remove a variable in the project-wide .dir-locals.el. | |
197 | ||
198 | With prefix argument, remove the variable. | |
199 | ||
200 | (fn VARIABLE VALUE)\1f | |
201 | (defalias 'elpy-set-project-variable #[514 "r\302\303\304\305 \b#!q\210\306\307\ 3\ 3 \203\17\0\310\202\18\0\311$)\207" [dir-locals-file current-prefix-arg find-file-noselect format "%s/%s" elpy-project-root modify-dir-local-variable nil delete add-or-replace] 7 (#$ . 48229) (byte-code "\301\b\203 \0\302\202\n\0\303!\b?\205\17\0\304\305\306\ 3\"\ 2\"\ 1\ 1D\207" [current-prefix-arg elpy-project--read-project-variable "Remove project variable: " "Set project variable: " elpy-project--read-variable-value format "Value for %s: "] 5)]) | |
202 | #@197 Search for REGEXP in the current project. | |
203 | ||
204 | REGEXP defaults to the symbol at point, or the current region if | |
205 | active. | |
206 | ||
207 | With a prefix argument, always prompt for a string to search for. | |
208 | ||
209 | (fn REGEXP)\1f | |
210 | (defalias 'elpy-rgrep-symbol #[257 "\305 \210\306 \18\307\ 1 \310 \206\ f\0\n#\210)r\vq\210\311\1c\212eb\210\312\313\314\311#\205,\0\315\316\317\320\ 4!\"!+\207" [grep-find-ignored-directories elpy-rgrep-file-pattern default-directory next-error-last-buffer inhibit-read-only grep-compute-defaults elpy-project-ignored-directories rgrep elpy-project-root t re-search-forward "^find .*" nil replace-match format "Searching for '%s'\n" regexp-quote] 6 (#$ . 48874) (byte-code "\301 \203\ e\0\302\303 \304 \"\202\11\0\305\306!\211\203 \0\b\204 \0\307\ 1\310Q\202$\0\311\312\ 2\"\262\ 1C\207" [current-prefix-arg use-region-p buffer-substring-no-properties region-beginning region-end thing-at-point symbol "\\<" "\\>" read-from-minibuffer "Search in project for regexp: "] 4)]) | |
211 | (byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313& \207" [custom-declare-variable elpy-ffip-prune-patterns funcall function #[0 "\300\207" [nil] 1 ""] "Elpy-specific extension of `ffip-prune-patterns'.\nThis is in addition to `elpy-project-ignored-directories'\nand `completion-ignored-extensions'.\nThe final value of `ffip-prune-patterns' used is computed\nby the eponymous function `elpy-ffip-prune-patterns'." :type (repeat string) :safe #[257 "\300\301\ 2\"\207" [cl-every stringp] 4 "\n\n(fn VAL)"] :group elpy] 10) | |
212 | #@192 Compute `ffip-prune-patterns' from other variables. | |
213 | This combines | |
214 | `elpy-ffip-prune-patterns' | |
215 | `elpy-project-ignored-directories' | |
216 | `completion-ignored-extensions' | |
217 | `ffip-prune-patterns'.\1f | |
218 | (defalias 'elpy-ffip-prune-patterns #[0 "\304\305\306\b\"\305\307 \"\244\310\n!\244\310\v!\244!\207" [elpy-project-ignored-directories completion-ignored-extensions elpy-ffip-prune-patterns ffip-prune-patterns delete-dups mapcar #[257 "\300\ 1\301Q\207" ["*/" "/*"] 4 "\n\n(fn DIR)"] #[257 "\300\301\ 2\"\203\f\0\302\ 1\302Q\207\302\ 1P\207" [s-ends-with\? "/" "*"] 4 "\n\n(fn EXT)"] cl-copy-list] 5 (#$ . 50356)]) | |
219 | #@522 Efficiently find a file in the current project. | |
220 | ||
221 | It necessitates `projectile' or `find-file-in-project' to be installed. | |
222 | ||
223 | With prefix argument (or DWIM non-nil), tries to guess what kind of | |
224 | file the user wants to open: | |
225 | - On an import line, it opens the file of that module. | |
226 | - Otherwise, it opens a test file associated with the current file, | |
227 | if one exists. A test file is named test_<name>.py if the current | |
228 | file is <name>.py, and is either in the same directory or a | |
229 | "test" or "tests" subdirectory. | |
230 | ||
231 | (fn &optional DWIM)\1f | |
232 | (defalias 'elpy-find-file #[256 "\211\203?\0\306 \203?\0\212\307 b\210\310\311!\206\17\0\310\312!)\203?\0\313\314!\203-\0\315\316\313\317!\313\314!#\2020\0\313\317!\320\ 1!\211\203;\0\321\ 1!\207\322\323!\207\211\203V\0\306 \203V\0\324 \211\203R\0\321\ 1!\207\322\323!\207\325\326!\203\200\0\327\330\b!\330 !\244!\210\323\327\330\n!\330\v!\244\331 \244!\210\323\332 \204|\0\f\210\323\326 \207\325\333!\203\236\0\303 \210\323\332 \204\221\0\f\210\323\211\334\335\rB\1d\1e \333 *\207\336\337!\207" [projectile-globally-ignored-file-suffixes completion-ignored-extensions projectile-globally-ignored-directories elpy-ffip-prune-patterns default-directory ido-setup-hook buffer-file-name line-beginning-position looking-at "^ *import +\\([[:alnum:]._]+\\)" "^ *from +\\([[:alnum:]._]+\\) +import +\\([[:alnum:]._]+\\)" match-string 2 format "%s.%s" 1 elpy-find--resolve-module find-file elpy-find-file nil elpy-find--test-file fboundp projectile-find-file delete-dups cl-copy-list elpy-project-ignored-directories elpy-project-root find-file-in-project ("\n" "" "\n" "\n..." "[" "]" " [No match]" " [Matched]" " [Not readable]" " [Too big]" " [Confirm]") #[0 "\301\b\302\303#\210\301\b\304\305#\207" [ido-completion-map define-key [down] ido-next-match [up] ido-prev-match] 4] error "`elpy-find-file' necessitates `projectile' or `find-file-in-project' to be installed" ido-decorations] 7 (#$ . 50958) "P"]) | |
233 | #@247 Return the test file for the current file, if any. | |
234 | ||
235 | If this is a test file, return the non-test file. | |
236 | ||
237 | A test file is named test_<name>.py if the current file is | |
238 | <name>.py, and is either in the same directors or a "test" or | |
239 | "tests" subdirectory.\1f | |
240 | (defalias 'elpy-find--test-file #[0 "\301 \206\ 6\0\b\302\303 !\304\305\ 2\"\205\15\0\306\307\ 2\"\310\311!\203#\0\312\313 \262\ 1\2028\0\310\314!\2037\0\312\315\316\317\320\312\211\"#\262\ 1\2028\0\312\ 1\203F\0\321\322\323\ 4\"\ 2\"\202M\0\321\322\324\ 5\"\ 2\"\211\205q\0\211G\307V\203a\0\325\326\ 2\"\262\ 1\202e\0\211@\262\ 1\327\ 1!\203l\0\207\330\ 5!\ 1P\207" [default-directory elpy-project-root file-name-base buffer-file-name string-match "test_\\(.*\\)" match-string 1 fboundp projectile-find-file nil projectile-current-project-files find-file-in-project cl-map list cdr ffip-project-search cl-remove-if make-closure #[257 "\300\301\ 2!\230?\207" [V0 file-name-base] 4 "\n\n(fn FILE)"] #[257 "\301\302\300\"\303\ 2!\230?\207" [V0 format "test_%s" file-name-base] 4 "\n\n(fn FILE)"] completing-read "Which file: " file-name-absolute-p file-name-as-directory] 10 (#$ . 52859)]) | |
241 | #@325 Return a directory path for MODULE. | |
242 | ||
243 | The resulting path is not guaranteed to exist. This simply | |
244 | resolves leading periods relative to the current directory and | |
245 | replaces periods in the middle of the string with slashes. | |
246 | ||
247 | Only works with absolute imports. Stop using implicit relative | |
248 | imports. They're a bad idea. | |
249 | ||
250 | (fn MODULE)\1f | |
251 | (defalias 'elpy-find--module-path #[257 "\300\301\ 2\"\205\f\0\302\303\ 2\"G\211\203!\0\304\305\306 \307\310\311\ 6\ 6\312\"\313##\202#\0\314 \315\316\317\ 4\2031\0\ 5\ 5\312O\2022\0\ 5#\320\304\305\ 4\ 4#!\207" [string-match "^\\.+" match-string 0 format "%s/%s" buffer-file-name mapconcat #[257 "\300\207" ["../"] 2 "../\n\n(fn _)"] make-vector nil "" elpy-library-root replace-regexp-in-string "\\." "/" expand-file-name] 10 (#$ . 53949)]) | |
252 | #@114 Resolve MODULE relative to the current file and project. | |
253 | ||
254 | Returns a full path name for that module. | |
255 | ||
256 | (fn MODULE)\1f | |
257 | (defalias 'elpy-find--resolve-module #[257 "\3002N\0\301\ 1!\302\303\304 !\ 2\"\203K\0\305\306\ 2\"\305\307\ 3\"D\211\2032\0\211@\310\ 1!\203+\0\311\300\ 2\"\210\ 1A\266\202\202\1a\0\210\312\313\ 2\"\203C\0\211\314\315O\262\ 1\202\a\0\316\ 1!\262\ 1\202\a\0\210\3170\207" [return elpy-find--module-path string-prefix-p expand-file-name elpy-library-root format "%s.py" "%s/__init__.py" file-exists-p throw string-match "/$" 0 -1 file-name-directory nil] 7 (#$ . 54698)]) | |
258 | #@182 Run `python-check-command' on the current buffer's file, | |
259 | ||
260 | or the project root if WHOLE-PROJECT-P is non-nil (interactively, | |
261 | with a prefix argument). | |
262 | ||
263 | (fn &optional WHOLE-PROJECT-P)\1f | |
264 | (defalias 'elpy-check #[256 "\304 \204 \0\305\306!\210\307\b?\310\"\210\311 \312 \313\ 3\203\"\0\314 \206$\0\304 \202$\0\304 !\ 3\203?\0\315\316 \"\2034\0\317\2025\0\320\321\322\323 \324#P\202@\0\325\ 2\1a\ 3\e\326 \327\330\ 5!\ 4R\310\331#*\207" [compilation-ask-about-save python-check-command exec-path process-environment buffer-file-name error "Can't check a buffer without a file" save-some-buffers nil python-shell-calculate-process-environment python-shell-calculate-exec-path expand-file-name elpy-project-root string-match "pylint$" " --ignore=" " --exclude=" mapconcat identity elpy-project-ignored-directories "," "" compilation-start " " shell-quote-argument #[257 "\300\207" ["*Python Check*"] 2 "*Python Check*\n\n(fn MODE-NAME)"]] 10 (#$ . 55255) "P"]) | |
265 | #@51 Initial position before expanding to indentation.\1f | |
266 | (defvar elpy-nav-expand--initial-position nil (#$ . 56187)) | |
267 | (make-variable-buffer-local 'elpy-nav-expand--initial-position) | |
268 | #@64 Display a warning if jedi is not available in the current RPC.\1f | |
269 | (defalias 'elpy-rpc-warn-if-jedi-not-available #[0 "\b?\205\b\0\301\302!\207" [elpy-rpc--jedi-available error "This feature requires the `jedi` package to be installed. Please check `elpy-config` for more information."] 2 (#$ . 56367)]) | |
270 | #@56 Go to the definition of the symbol at point, if found.\1f | |
271 | (defalias 'elpy-goto-definition #[0 "\300 \210\301 \211\203\11\0\302\ 1@\ 2A@\"\207\303\304!\207" [elpy-rpc-warn-if-jedi-not-available elpy-rpc-get-definition elpy-goto-location error "No definition found"] 4 (#$ . 56670) nil]) | |
272 | #@56 Go to the assignment of the symbol at point, if found.\1f | |
273 | (defalias 'elpy-goto-assignment #[0 "\300 \210\301 \211\203\11\0\302\ 1@\ 2A@\"\207\303\304!\207" [elpy-rpc-warn-if-jedi-not-available elpy-rpc-get-assignment elpy-goto-location error "No assignment found"] 4 (#$ . 56952) nil]) | |
274 | #@72 Go to the definition of the symbol at point in other window, if found.\1f | |
275 | (defalias 'elpy-goto-definition-other-window #[0 "\300 \210\301 \211\203\12\0\302\ 1@\ 2A@\303#\207\304\305!\207" [elpy-rpc-warn-if-jedi-not-available elpy-rpc-get-definition elpy-goto-location other-window error "No definition found"] 5 (#$ . 57234) nil]) | |
276 | #@72 Go to the assignment of the symbol at point in other window, if found.\1f | |
277 | (defalias 'elpy-goto-assignment-other-window #[0 "\300 \210\301 \211\203\12\0\302\ 1@\ 2A@\303#\207\304\305!\207" [elpy-rpc-warn-if-jedi-not-available elpy-rpc-get-assignment elpy-goto-location other-window error "No assignment found"] 5 (#$ . 57561) nil]) | |
278 | #@147 Show FILENAME at OFFSET to the user. | |
279 | ||
280 | If OTHER-WINDOW-P is non-nil, show the same in other window. | |
281 | ||
282 | (fn FILENAME OFFSET &optional OTHER-WINDOW-P)\1f | |
283 | (defalias 'elpy-goto-location #[770 "\302\b\303\"\203\10\0\304 \305 \"\210\202\13\0\306 \210\307\ 3!\ 1\203\"\0\310\ 1\311\"\210\202&\0\312\ 1!\210\ 2Tb\207" [emacs-version find-tag-marker-ring version< "25.1" ring-insert point-marker xref-push-marker-stack find-file-noselect pop-to-buffer t switch-to-buffer] 7 (#$ . 57889)]) | |
284 | #@121 Move to the next line indented like point. | |
285 | ||
286 | This will skip over lines and statements with different | |
287 | indentation levels.\1f | |
288 | (defalias 'elpy-nav-forward-block #[0 "i`\301\ 2\b\246\302U\204\13\0\ 2\b\245T\b_\262\ 3\303 \210\ 2\304 W\2034\0m\2044\0`\ 1\232\203+\0\305\306!\210`\262\ 1\303 \210\202\16\0\304 \ 3W\205=\0\ 1b\207" [python-indent-offset nil 0 python-nav-forward-statement current-indentation error "Statement does not finish"] 5 (#$ . 58351) "^"]) | |
289 | #@125 Move to the previous line indented like point. | |
290 | ||
291 | This will skip over lines and statements with different | |
292 | indentation levels.\1f | |
293 | (defalias 'elpy-nav-backward-block #[0 "i`\301\ 2\b\246\302U\204\13\0\ 2\b\245T\b_\262\ 3\303 \210\ 2\304 W\2034\0o\2044\0`\ 1\232\203+\0\305\306!\210`\262\ 1\303 \210\202\16\0\304 \ 3W\205=\0\ 1b\207" [python-indent-offset nil 0 python-nav-backward-statement current-indentation error "Statement does not start"] 5 (#$ . 58783) "^"]) | |
294 | #@63 Move forward to the next indent level, or over the next word.\1f | |
295 | (defalias 'elpy-nav-forward-indent #[0 "i\301 W\203\14\0i\211\b\245T\b_\302 \ 1\\b\207\303 \304v\210`\ 1V\205\"\0\302 b\207" [python-indent-offset current-indentation point-at-bol point-at-eol nil] 4 (#$ . 59219) "^"]) | |
296 | #@72 Move backward to the previous indent level, or over the previous word.\1f | |
297 | (defalias 'elpy-nav-backward-indent #[0 "i\301 X\203\1a\0i\302U\204\1a\0i\211\b\245S\b_\303 \ 1\\b\207\304v\207" [python-indent-offset current-indentation 0 point-at-bol -1] 4 (#$ . 59496) "^"]) | |
298 | #@70 Move the current line or active region down. | |
299 | ||
300 | (fn &optional BEG END)\1f | |
301 | (defalias 'elpy-nav-move-line-or-region-down #[512 "\ 1\203\n\0\300\ 2\ 2\301#\207\302\301!\207" [elpy--nav-move-region-vertically 1 elpy--nav-move-line-vertically] 6 (#$ . 59758) (byte-code "\300 \203\v\0\301 \302 D\207\303\211D\207" [use-region-p region-beginning region-end nil] 2)]) | |
302 | #@70 Move the current line or active region down. | |
303 | ||
304 | (fn &optional BEG END)\1f | |
305 | (defalias 'elpy-nav-move-line-or-region-up #[512 "\ 1\203\n\0\300\ 2\ 2\301#\207\302\301!\207" [elpy--nav-move-region-vertically -1 elpy--nav-move-line-vertically] 6 (#$ . 60111) (byte-code "\300 \203\v\0\301 \302 D\207\303\211D\207" [use-region-p region-beginning region-end nil] 2)]) | |
306 | #@62 Move the current line vertically in direction DIR. | |
307 | ||
308 | (fn DIR)\1f | |
309 | (defalias 'elpy--nav-move-line-vertically #[257 "\300 \300\301!i\302\ 3\ 3\"\ 4y\210\212\211c\210)`\ 2\\b\207" [point-at-bol 2 delete-and-extract-region] 7 (#$ . 60463)]) | |
310 | #@72 Move the current region vertically in direction DIR. | |
311 | ||
312 | (fn BEG END DIR)\1f | |
313 | (defalias 'elpy--nav-move-region-vertically #[771 "`\301 W\212\ 3b\210\302 )\212\ 3b\210n\203\17\0`\202\1a\0\302\303!)\304\ 2\ 2\"\ 2b\210\ 4y\210\212\211c\210)\ 3\2038\0\305`\ 2G\\!\210\202B\0\305`!\210`\ 1G\\b\210\306\211\10\207" [deactivate-mark mark point-at-bol 2 delete-and-extract-region set-mark nil] 10 (#$ . 60693)]) | |
314 | #@60 Open a line below the current one, move there, and indent.\1f | |
315 | (defalias 'elpy-open-and-indent-line-below #[0 "\300\301!\210\302 \207" [move-end-of-line 1 newline-and-indent] 2 (#$ . 61069) nil]) | |
316 | #@60 Open a line above the current one, move there, and indent.\1f | |
317 | (defalias 'elpy-open-and-indent-line-above #[0 "\300\301!\210\212\302c\210)\303 \207" [move-beginning-of-line 1 "\n" indent-according-to-mode] 2 (#$ . 61267) nil]) | |
318 | #@52 Select surrounding lines with current indentation.\1f | |
319 | (defalias 'elpy-nav-expand-to-indentation #[0 "`\10\301 \211\302U\203\17\0\303`!\210\303d\304\305#\210eb\207\211\301 X\203$\0\306y\210\202\17\0\307y\210\303`\304\305#\210\211\301 X\203:\0\307y\210\202-\0\306u\207" [elpy-nav-expand--initial-position current-indentation 0 push-mark nil t -1 1] 5 (#$ . 61496) nil]) | |
320 | (byte-code "\300\301\302\303\304$\210\305\301\304\"\207" [ad-add-advice keyboard-quit (collapse-region nil t (advice lambda nil "Abort elpy selection by indentation on quit." (when (eq last-command 'elpy-nav-expand-to-indentation) (goto-char elpy-nav-expand--initial-position)))) before nil ad-activate] 5) | |
321 | #@75 If the first or last line are not fully selected, select them completely.\1f | |
322 | (defalias 'elpy-nav-normalize-region #[0 "\300 \301 \ 1b\210\302 \210\303`\304\305#\210\211b\210`\306 U?\205\1d\0\304\7f\207" [region-beginning region-end beginning-of-line push-mark nil t line-beginning-position] 6 (#$ . 62163)]) | |
323 | #@169 Shift current line by COUNT columns to the right. | |
324 | ||
325 | COUNT defaults to `python-indent-offset'. | |
326 | If region is active, normalize the region and shift. | |
327 | ||
328 | (fn &optional COUNT)\1f | |
329 | (defalias 'elpy-nav-indent-shift-right #[256 "\301 \203\10\0\302 \210\303\304 \305 \b#\207\303\306 \307 \b#\207" [current-prefix-arg use-region-p elpy-nav-normalize-region python-indent-shift-right region-beginning region-end line-beginning-position line-end-position] 5 (#$ . 62468) nil]) | |
330 | #@168 Shift current line by COUNT columns to the left. | |
331 | ||
332 | COUNT defaults to `python-indent-offset'. | |
333 | If region is active, normalize the region and shift. | |
334 | ||
335 | (fn &optional COUNT)\1f | |
336 | (defalias 'elpy-nav-indent-shift-left #[256 "\301 \203\10\0\302 \210\303\304 \305 \b#\207\303\306 \307 \b#\207" [current-prefix-arg use-region-p elpy-nav-normalize-region python-indent-shift-left region-beginning region-end line-beginning-position line-end-position] 5 (#$ . 62928) nil]) | |
337 | #@46 History variable for `elpy-set-test-runner'.\1f | |
338 | (defvar elpy-set-test-runner-history nil (#$ . 63384)) | |
339 | #@205 Run tests on the current test, or the whole project. | |
340 | ||
341 | If there is a test at point, run that test. If not, or if a | |
342 | prefix is given, run all tests in the current project. | |
343 | ||
344 | (fn &optional TEST-WHOLE-PROJECT)\1f | |
345 | (defalias 'elpy-test #[256 "\301 \ 1\203\ e\0\b\ 1@\302\211\211$\207\303\b\ 2\"\207" [elpy-test-runner elpy-test-at-point nil apply] 7 (#$ . 63491) "P"]) | |
346 | #@101 Tell Elpy to use TEST-RUNNER to run tests. | |
347 | ||
348 | See `elpy-test' for how to invoke it. | |
349 | ||
350 | (fn TEST-RUNNER)\1f | |
351 | (defalias 'elpy-set-test-runner #[257 "\211\211\10\207" [elpy-test-runner] 3 (#$ . 63845) (byte-code "\301\302\300\303NA\"\b\301\304\ 3\"\236A\305\ 1\203\1a\0\306\307\ 3\"\202\e\0\310\ 3\311\312\311\313&\ 6\211\314\232\203,\0\b\2021\0\315\ 1\ 4\"A\266\203C\207" [elpy-test-runner mapcar #[257 "\300\ 18\301\ 28B\207" [2 3] 4 "\n\n(fn VALUE)"] custom-type #[257 "\211A\ 1@B\207" [] 3 "\n\n(fn CELL)"] completing-read format "Test runner (currently %s): " "Test runner: " nil t elpy-set-test-runner-history "" assoc] 9)]) | |
352 | #@538 Return a list specifying the test at point, if any. | |
353 | ||
354 | This is used as the interactive | |
355 | ||
356 | This list has four elements. | |
357 | ||
358 | - Top level directory: | |
359 | All test files should be importable from here. | |
360 | - Test file: | |
361 | The current file name. | |
362 | - Test module: | |
363 | The module name, relative to the top level directory. | |
364 | - Test name: | |
365 | The full name of the current test within the module, for | |
366 | example TestClass.test_method | |
367 | ||
368 | If there is no test at point, test name is nil. | |
369 | If the current buffer is not visiting a file, only the top level | |
370 | directory is not nil.\1f | |
371 | (defalias 'elpy-test-at-point #[0 "\b\204\ e\0\301 \210\302 \303\211\211F\207\302 \b\304\ 2\ 2\"\305 \ 2\2033\0\306\307\ 3\206&\0\ 2\206&\0\310\"\2033\0\311 \210\ 3\ 3\ 3\ 3F\207\301 \210\ 3\303\211\211F\207" [buffer-file-name save-some-buffers elpy-library-root nil elpy-test--module-name-for-file elpy-test--current-test-name string-match "test" "" save-buffer] 8 (#$ . 64441)]) | |
372 | #@39 Return the name of the test at point.\1f | |
373 | (defalias 'elpy-test--current-test-name #[0 "\300 \211\203\12\0\301\302\ 2\"\203\12\0\303\304\ 2\"\207\207" [python-info-current-defun string-match "\\`\\([^.]+\\.[^.]+\\)\\." match-string 1] 4 (#$ . 65336)]) | |
374 | #@229 Return the module name relative to TOP-LEVEL for MODULE-FILE. | |
375 | ||
376 | For example, for a top level of /project/root/ and a module file | |
377 | of /project/root/package/module.py, this would return | |
378 | "package.module". | |
379 | ||
380 | (fn TOP-LEVEL MODULE-FILE)\1f | |
381 | (defalias 'elpy-test--module-name-for-file #[514 "\300\ 1\ 3\"\301\302\303\ 3#\301\304\303\ 3#\301\305\306\ 3#\307\310\ 2\"\203\"\0\306\301\311\306\ 4#P\207\207" [file-relative-name replace-regexp-in-string "\\.py\\'" "" "/__init__\\'" "/" "." string-match "^\\." "\\.\\.\\."] 11 (#$ . 65580)]) | |
382 | #@99 Return t iff OBJ is a test runner. | |
383 | ||
384 | This uses the `elpy-test-runner-p' symbol property. | |
385 | ||
386 | (fn OBJ)\1f | |
387 | (defalias 'elpy-test-runner-p #[257 "\211\300N\207" [elpy-test-runner-p] 3 (#$ . 66094)]) | |
388 | #@106 Run COMMAND with ARGS in WORKING-DIRECTORY as a test command. | |
389 | ||
390 | (fn WORKING-DIRECTORY COMMAND &rest ARGS)\1f | |
391 | (defalias 'elpy-test-run #[642 "\ 2\18 \302\303\ 4\ 4B\304#!)\207" [default-directory elpy-test-compilation-function mapconcat shell-quote-argument " "] 8 (#$ . 66289)]) | |
392 | #@75 Return the test discover runner from `elpy-test-discover-runner-command'.\1f | |
393 | (defalias 'elpy-test-get-discover-runner #[0 "\b\302\211\ 2:\203&\0\ 2@\262\ 2\ 1\303\230\203\1a\0 \ 1B\262\ 1\202\1f\0\ 1\ 1B\262\ 1\ 2A\262\ 3\202\ 3\0\211\237\207" [elpy-test-discover-runner-command python-shell-interpreter nil "python-shell-interpreter"] 5 (#$ . 66562)]) | |
394 | #@124 Test the project using the python unittest discover runner. | |
395 | ||
396 | This requires Python 2.7 or later. | |
397 | ||
398 | (fn TOP FILE MODULE TEST)\1f | |
399 | (defalias 'elpy-test-discover-runner #[1028 "\211\203\f\0\300\301\ 3\ 3#\202\15\0\ 1\203\14\0\ 1\202\15\0\302\303\304\ 6\ 6\305\306 \ 5C\"#\207" [format "%s.%s" "discover" apply elpy-test-run append elpy-test-get-discover-runner] 11 (#$ . 66886) (elpy-test-at-point)]) | |
400 | (put 'elpy-test-discover-runner 'elpy-test-runner-p t) | |
401 | #@69 Test the project using the green runner. | |
402 | ||
403 | (fn TOP FILE MODULE TEST)\1f | |
404 | (defalias 'elpy-test-green-runner #[1028 "\211\203\f\0\301\302\ 3\ 3#\202\11\0\ 1\205\11\0\ 1\211\203\1d\0\303\b\ 2C\"\202\1e\0\b\304\305\ 6\a\ 3#\207" [elpy-test-green-runner-command format "%s.%s" append apply elpy-test-run] 10 (#$ . 67315) (elpy-test-at-point)]) | |
405 | (put 'elpy-test-green-runner 'elpy-test-runner-p t) | |
406 | #@122 Test the project using the nose test runner. | |
407 | ||
408 | This requires the nose package to be installed. | |
409 | ||
410 | (fn TOP FILE MODULE TEST)\1f | |
411 | (defalias 'elpy-test-nose-runner #[1028 "\ 1\203\1d\0\301\302\ 5\303\b\ 5\203\17\0\304\305\ 6\b\ 6\b#\202\19\0\ 6\ 6C\"#\207\301\302\ 5\b#\207" [elpy-test-nose-runner-command apply elpy-test-run append format "%s:%s"] 13 (#$ . 67678) (elpy-test-at-point)]) | |
412 | (put 'elpy-test-nose-runner 'elpy-test-runner-p t) | |
413 | #@137 Test the project using Twisted's Trial test runner. | |
414 | ||
415 | This requires the twisted-core package to be installed. | |
416 | ||
417 | (fn TOP FILE MODULE TEST)\1f | |
418 | (defalias 'elpy-test-trial-runner #[1028 "\ 1\203\1d\0\301\302\ 5\303\b\ 5\203\17\0\304\305\ 6\b\ 6\b#\202\19\0\ 6\ 6C\"#\207\301\302\ 5\b#\207" [elpy-test-trial-runner-command apply elpy-test-run append format "%s.%s"] 13 (#$ . 68085) (elpy-test-at-point)]) | |
419 | (put 'elpy-test-trial-runner 'elpy-test-runner-p t) | |
420 | #@127 Test the project using the py.test test runner. | |
421 | ||
422 | This requires the pytest package to be installed. | |
423 | ||
424 | (fn TOP FILE MODULE TEST)\1f | |
425 | (defalias 'elpy-test-pytest-runner #[1028 "\211\203\e\0\301\ 1\302\"\303\304\ 6\ 6\305\b\306\307\ 6\n\ 6\bB\310#C\"#\207\ 1\203*\0\303\304\ 5\305\b\ 6\aC\"#\207\303\304\ 5\b#\207" [elpy-test-pytest-runner-command split-string "\\." apply elpy-test-run append mapconcat identity "::"] 14 (#$ . 68510) (elpy-test-at-point)]) | |
426 | (put 'elpy-test-pytest-runner 'elpy-test-runner-p t) | |
427 | #@37 History for the `elpy-doc' command.\1f | |
428 | (defvar elpy-doc-history nil (#$ . 68992)) | |
429 | #@169 Show documentation for the symbol at point. | |
430 | ||
431 | If there is no documentation for the symbol at point, or if a | |
432 | prefix argument is given, prompt for a symbol from the user.\1f | |
433 | (defalias 'elpy-doc #[0 "\301\b\204/\0\302 \262\ 1\211\204\16\0\212\303 \210\302 \262\ 1)\211\204 \0\304\305 !\262\ 1\211\204/\0\212\303 \210\304\305 !\262\ 1)\211\204;\0\304\306\305 !!\262\ 1\211\203C\0\307\ 1!\207\310\311!\207" [current-prefix-arg nil elpy-rpc-get-docstring python-nav-backward-up-list elpy-rpc-get-pydoc-documentation elpy-doc--symbol-at-point elpy-doc--read-identifier-from-minibuffer elpy-doc--show error "No documentation found"] 4 (#$ . 69078) nil]) | |
434 | #@65 Read a pydoc-able identifier from the minibuffer. | |
435 | ||
436 | (fn INITIAL)\1f | |
437 | (defalias 'elpy-doc--read-identifier-from-minibuffer #[257 "\300\301\302\303!\304\211\ 5\305&\ 6\207" [completing-read "Pydoc for: " completion-table-dynamic elpy-rpc-get-pydoc-completions nil elpy-doc-history] 8 (#$ . 69705)]) | |
438 | #@77 Show DOCUMENTATION to the user, replacing ^H with bold. | |
439 | ||
440 | (fn DOCUMENTATION)\1f | |
441 | (defalias 'elpy-doc--show #[257 "\b\305\211\223\210\306 B\307\nB\1a\19\310 \13\311\312!\211\1c\305\211r\312q\210\313 \210\ 3c\210eb\210\314\315\305\316#\205;\0\317\320\321\322!\323\324#\316\211#\210\202$\0)\262\ 1r\ 2q\210\325\ 3\305\"\262\ 2)\326\327!\203V\0\327\ 2\ 2\"\202W\0\211)\266\203*\207" [help-window-point-marker temp-buffer-window-setup-hook temp-buffer-window-show-hook help-window-old-frame standard-output nil help-mode-setup help-mode-finish selected-frame temp-buffer-window-setup "*Python Doc*" erase-buffer re-search-forward "\\(.\\)\b\\1" t replace-match propertize match-string 1 face bold temp-buffer-window-show functionp help-window-setup] 9 (#$ . 69999)]) | |
442 | #@60 Return the Python symbol at point, including dotted paths.\1f | |
443 | (defalias 'elpy-doc--symbol-at-point #[0 "\301 p\302\303\ 3\ 3#\216\304\b!\210\305 \211\205\16\0\306\ 1!\262\ 1)\207" [python-dotty-syntax-table syntax-table make-closure #[0 "r\301q\210\302\300!)\207" [V0 V1 set-syntax-table] 2] set-syntax-table symbol-at-point symbol-name] 6 (#$ . 70734)]) | |
444 | #@68 Replace a block. SPEC is (startline endline newblock). | |
445 | ||
446 | (fn SPEC)\1f | |
447 | (defalias 'elpy-buffer--replace-block #[257 "\211@\ 1A@\300\ 38\212\214~\210eb\210\ 2y\210`\ 2\ 4Zy\210`\ 1\ 1{\ 3\230?\205(\0\ 1\ 1|\210\ 2c\266\202*\207" [2] 8 (#$ . 71080)]) | |
448 | #@72 Replace text in BUFFER in region (BEG END) with REP. | |
449 | ||
450 | (fn BEG END REP)\1f | |
451 | (defalias 'elpy-buffer--replace-region #[771 "\ 2\ 2{\ 1\230?\205\14\0\212\ 1b\210\211c\210\ 2\ 2|)\207" [] 5 (#$ . 71307)]) | |
452 | (defalias 'elpy-importmagic-add-import #[0 "\300\207" [nil] 1 nil nil]) | |
453 | (defalias 'elpy-importmagic-fixup #[0 "\300\207" [nil] 1 nil nil]) | |
454 | (byte-code "\300\301\302\303#\210\300\304\302\303#\207" [make-obsolete elpy-importmagic-add-import "support for importmagic has been dropped." "1.17.0" elpy-importmagic-fixup] 4) | |
455 | #@44 Format code using the available formatter.\1f | |
456 | (defalias 'elpy-format-code #[0 "\b\206$\0\3012$\0\302\211\205!\0\211@\303\ 1!\203\1a\0\304\301\ 2\"\210\ 1A\266\202\202 \0\262\ 10\211\18\204-\0\305\306!\210\303\b!\2048\0\305\307\b\"\210\310 \203B\0\311\312\b\"\210\313\314\315\b\"! )\207" [elpy-formatter available (yapf autopep8 black) elpy-config--package-available-p throw error "No formatter installed, please install one using `elpy-config'" "The '%s' formatter is not installed, please install it using `elpy-config' or choose another one using `elpy-formatter'" interactive-p message "Autoformatting code with %s." intern format "elpy-%s-fix-code"] 6 (#$ . 71812) nil]) | |
457 | #@126 Automatically formats Python code with yapf. | |
458 | ||
459 | Yapf can be configured with a style file placed in the project | |
460 | root directory.\1f | |
461 | (defalias 'elpy-yapf-fix-code #[0 "\300\301!\207" [elpy--fix-code-with-formatter "fix_code_with_yapf"] 2 (#$ . 72466) nil]) | |
462 | #@156 Automatically formats Python code to conform to the PEP 8 style guide. | |
463 | ||
464 | Autopep8 can be configured with a style file placed in the project | |
465 | root directory.\1f | |
466 | (defalias 'elpy-autopep8-fix-code #[0 "\300\301!\207" [elpy--fix-code-with-formatter "fix_code"] 2 (#$ . 72722) nil]) | |
467 | #@108 Automatically formats Python code with black. | |
468 | Note: Requires 'toml' to be installed due to legacy reasons.\1f | |
469 | (defalias 'elpy-black-fix-code #[0 "\300\301!\207" [elpy--fix-code-with-formatter "fix_code_with_black"] 2 (#$ . 73002) nil]) | |
470 | #@57 Common routine for formatting python code. | |
471 | ||
472 | (fn METHOD)\1f | |
473 | (defalias 'elpy--fix-code-with-formatter #[257 "\301 i\302 \203\ f\0\303\302 !\202\10\0\b\304 \203/\0\305\ 4\306 \ 3D\"\307 \310 \311\ 2\ 2\312\ 6\ 6!#\210\211b\210\313 \207\305\ 4\314 \ 3D\"ed\311\ 2\ 2\ 5#\210o\205H\0\ 5Sy\210\ 4u\207" [default-directory line-number-at-pos elpy-project-root expand-file-name use-region-p elpy-rpc elpy-rpc--region-contents region-beginning region-end elpy-buffer--replace-region string-trim-right deactivate-mark elpy-rpc--buffer-contents] 12 (#$ . 73241)]) | |
474 | #@42 List of overlays currently being edited.\1f | |
475 | (defvar elpy-multiedit-overlays nil (#$ . 73762)) | |
476 | #@138 Add an editable overlay between BEG and END. | |
477 | ||
478 | A modification in any of these overlays will modify all other | |
479 | overlays, too. | |
480 | ||
481 | (fn BEG END)\1f | |
482 | (defalias 'elpy-multiedit-add-overlay #[514 "\301\ 2\ 2\"\203\v\0\302\303!\210\304\ 2\ 2\305\211\306%\307\ 1\310\311#\210\307\ 1\312\313#\210\307\ 1\314\315#\210\307\ 1\316\317#\210\307\ 1\320\321#\210\211\bB\211\10\207" [elpy-multiedit-overlays elpy-multiedit--overlays-in-p error "Overlapping multiedit overlays are not allowed" make-overlay nil :rear-advance overlay-put elpy-multiedit t face highlight modification-hooks (elpy-multiedit--overlay-changed) insert-in-front-hooks (elpy-multiedit--overlay-changed) insert-behind-hooks (elpy-multiedit--overlay-changed)] 8 (#$ . 73860) "r"]) | |
483 | #@78 Return t iff there are multiedit overlays between beg and end. | |
484 | ||
485 | (fn BEG END)\1f | |
486 | (defalias 'elpy-multiedit--overlays-in-p #[514 "\3002$\0\301\ 2\ 2\"\211\203!\0\211@\302\ 1\303\"\203\1a\0\304\300\305\"\210\ 1A\266\202\202\b\0\210\3060\207" [return overlays-in overlay-get elpy-multiedit throw t nil] 7 (#$ . 74571)]) | |
487 | #@39 Stop editing multiple places at once.\1f | |
488 | (defalias 'elpy-multiedit-stop #[0 "\b\211\203\12\0\211@\301\ 1!\210\ 1A\266\202\202\ 1\0\210\302\211\10\207" [elpy-multiedit-overlays delete-overlay nil] 4 (#$ . 74875) nil]) | |
489 | #@131 Called for each overlay that changes. | |
490 | ||
491 | This updates all other overlays. | |
492 | ||
493 | (fn OV AFTER-CHANGE BEG END &optional PRE-CHANGE-LENGTH)\1f | |
494 | (defalias 'elpy-multiedit--overlay-changed #[1284 "\ 3\205Q\0\b?\205Q\0\303\ 5!\205Q\0\304\ 5!\305\ 6\ 6!{\306\19\n\211\205L\0\211@\211\ 6\b\232\204E\0\307\303\ 2!!\203E\0r\303\ 1!q\210\212\304\ 1!b\210\ 2c\210`\305\ 2!|\210*\ 1A\266\202\202\1a\0\262\ 1)\262\ 1\207" [undo-in-progress inhibit-modification-hooks elpy-multiedit-overlays overlay-buffer overlay-start overlay-end t buffer-live-p] 11 (#$ . 75083)]) | |
495 | #@101 Edit all occurences of the symbol at point, or the active region. | |
496 | ||
497 | If multiedit is active, stop it.\1f | |
498 | (defalias 'elpy-multiedit #[0 "\b\203\a\0\302 \207\303 \203\16\0\304\305 \306 {!\202\1f\0\307\310\304\311\312 !!\"\313\19\212eb\210\314\ 1\313\315#\2057\0\316\317\224\317\225\"\210\202%\0*\207" [elpy-multiedit-overlays case-fold-search elpy-multiedit-stop use-region-p regexp-quote region-beginning region-end format "\\_<%s\\_>" symbol-name symbol-at-point nil re-search-forward t elpy-multiedit-add-overlay 0] 5 (#$ . 75591) nil]) | |
499 | #@212 Edit all usages of the the Python symbol at point. | |
500 | ||
501 | With prefix arg, edit all syntactic usages of the symbol at | |
502 | point. This might include unrelated symbols that just share the | |
503 | name. | |
504 | ||
505 | (fn &optional USE-SYMBOL-P)\1f | |
506 | (defalias 'elpy-multiedit-python-symbol-at-point #[256 "\b\204\r\0\211\204\r\0\301 \203\11\0\302\303!\207\304 \210\3051\1e\0\306 0\202@\0\211@\307=\2039\0\211A@;\2039\0\310\311\ 2A@\"\2039\0\312\202>\0\307\ 1A@!\262\ 1\211\313\267\202^\0\302\303!\210\314\315!\207\302\303!\210\b\203Z\0\314\316!\207\314\317!\207\214~\210\320\ 1!)\207" [elpy-multiedit-overlays use-region-p call-interactively elpy-multiedit save-some-buffers (error) elpy-rpc-get-usages error string-match "not implemented" not-supported #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (not-supported 70 nil 78)) message "Using syntactic editing as current backend does not support get_usages." "Using syntactic editing as no usages of the symbol at point were found by the backend." "No occurrences of the symbol at point found" elpy-multiedit--usages] 5 (#$ . 76116) "P"]) | |
507 | #@53 Mark the usages in USAGES for editing. | |
508 | ||
509 | (fn USAGES)\1f | |
510 | (defalias 'elpy-multiedit--usages #[257 "\301\302\303\304\"\ 2\211\203b\0\211@\305\ 1\236A\306\ 2\236A\307\ 3\236A\ 1\262\ar\ 2\203&\0\310\ 3!\202'\0pq\210\311\ 1T\ 2T\ 4G\\\"\210\212\211Tb\210\312\ 3\ 2\313 \314 {`\313 Z`\ 6\aG\\\313 ZF\315\ 6\ 6\ 6\n\"B\ 6\b#\210*\266\ 3\ 1A\266\202\202\ 6\0\210\316\ 1!\317X\203r\0\320\321\ 4G\ 4#\207r\322\323!q\210\324\301C\ 1\18\325 \210\326\327\ 5\330\331$\210\332\333\334\ 3\"\ 4\"\210\335\ 1\242\336\"\211\203\330\0\211@\337\ 1!\210\335\315\ 2\ 6\a\"\340\"\211\203\315\0\211@\211A@\313 \341\ 38\\\314 \342\ 48\\\ 2\343\261\ 2\210\311\ 2\ 2\"\266\ 4\ 1A\266\202\202\246\0\210\343c\210\ 1A\266\202\202\224\0\210eb\210\344p\301\345#)\266\202)\207" [inhibit-read-only nil make-hash-table :test equal filename name offset find-file-noselect elpy-multiedit-add-overlay puthash line-beginning-position line-end-position gethash hash-table-count 1 message "Editing %s usages of '%s' in this buffer" get-buffer-create "*Elpy Edit Usages*" t erase-buffer elpy-insert--para "The symbol '" "' was found in multiple files. Editing " "all locations:\n\n" maphash make-closure #[514 "\ 1\300\242\235?\205\ e\0\300\ 2\300\242B\240\207" [V0] 5 "\n\n(fn KEY VALUE)"] sort string< elpy-insert--header #[514 "\ 1@\ 1@W\207" [] 4 "\n\n(fn LOC1 LOC2)"] 2 3 "\n" display-buffer visible] 15 (#$ . 77184)]) | |
511 | #@97 Display an occur buffer of all definitions in the current buffer. | |
512 | ||
513 | Also, switch to that buffer.\1f | |
514 | (defalias 'elpy-occur-definitions #[0 "\301\18\302\303!\210)\304\305!\211\203\12\0\306\ 1!\207\307\305!\207" [list-matching-lines-face nil occur "^ *\\(\\(async \\|\\)def\\|class\\) " get-buffer-window "*Occur*" select-window switch-to-buffer] 3 (#$ . 78461) nil]) | |
515 | #@43 Return the name of the elpy xref backend.\1f | |
516 | (defalias 'elpy--xref-backend #[0 "\302\b!\204\v\0\303 \204\ f\0 \205\10\0\304\207" [elpy-rpc--buffer elpy-rpc--jedi-available elpy-rpc--process-buffer-p elpy-rpc--get-rpc-buffer elpy] 2 (#$ . 78821)]) | |
517 | #@51 String used to format references in xref buffers.\1f | |
518 | (defvar elpy-xref--format-references (byte-code "\300\301\302\303\304\305%\210\305\207" [put-text-property 0 4 face compilation-line-number "%s: %s"] 6) (#$ . 79062)) | |
519 | (byte-code "\300\301!\203\ f\ 1\302\303\304\"\210\305\306\307\303#\210\302\306\310\"\210\311\306\312\313#\210\305\314\315\306#\210\302\316\317\"\210\305\320\307\316#\210\302\320\321\"\210\311\320\312\322#\210\302\323\324\"\210\305\325\307\323#\210\302\325\326\"\210\311\325\312\322#\210\302\327\330\"\210\302\331\332\"\210\305\333\307\331#\210\302\333\334\"\210\311\333\312\322#\210\302\335\336\"\210\305\337\307\335#\210\302\337\340\"\210\311\337\312\322#\210\341\314\342\343\344\345\346\347\314\322& \210\302\337\350\"\210\351\352\345\353\345\354%\210\351\355\345\356\345\357%\210\351\360\345\361\345\362%\210\302\363\364\"\210\302\365\366\"\210\302\367\370\"\210\302\371\372\"\210\351\373\345\374\345\375%\210\302\376\377\"\210\351\201@\0\345\201A\0\345\201B\0%\210\302\201C\0\201D\0\"\210\351\201E\0\345\201F\0\345\201G\0%\210\302\201H\0\201I\0\"\210\351\201J\0\345\201K\0\345\201L\0%\210\302\201M\0\201N\0\"\210\345\207" [featurep xref defalias xref-elpy-location-p--cmacro #[514 "\300\301\302\303\211\211\ 6\ 6&\ 6\207" [cl--defsubst-expand (cl-x) (cl-block xref-elpy-location-p (and (memq (type-of cl-x) cl-struct-xref-elpy-location-tags) t)) nil] 9 "compiler-macro for inlining `xref-elpy-location-p'.\n\n(fn CL-WHOLE-ARG CL-X)"] put xref-elpy-location-p compiler-macro #[257 "\301\ 1!\b>\205 \0\302\207" [cl-struct-xref-elpy-location-tags type-of t] 3 "\n\n(fn CL-X)"] function-put side-effect-free error-free xref-elpy-location cl-deftype-satisfies xref-elpy-location-file--cmacro #[514 "\300\301\302\303\211\211\ 6\ 6&\ 6\207" [cl--defsubst-expand (cl-x) (cl-block xref-elpy-location-file (progn (or #1=(xref-elpy-location-p cl-x) (signal #2='wrong-type-argument (list 'xref-elpy-location . #3=(cl-x)))) (aref cl-x 1))) nil] 9 "compiler-macro for inlining `xref-elpy-location-file'.\n\n(fn CL-WHOLE-ARG CL-X)"] xref-elpy-location-file #[257 "\301\ 1!\b>\204\ f\0\302\303\304\ 3D\"\210\211\305H\207" [cl-struct-xref-elpy-location-tags type-of signal wrong-type-argument xref-elpy-location 1] 5 "Access slot \"file\" of `xref-elpy-location' struct CL-X.\n\n(fn CL-X)"] t xref-elpy-location-pos--cmacro #[514 "\300\301\302\303\211\211\ 6\ 6&\ 6\207" [cl--defsubst-expand (cl-x) (cl-block xref-elpy-location-pos (progn (or #1# (signal #2# (list 'xref-elpy-location . #3#))) (aref cl-x 2))) nil] 9 "compiler-macro for inlining `xref-elpy-location-pos'.\n\n(fn CL-WHOLE-ARG CL-X)"] xref-elpy-location-pos #[257 "\301\ 1!\b>\204\ f\0\302\303\304\ 3D\"\210\211\305H\207" [cl-struct-xref-elpy-location-tags type-of signal wrong-type-argument xref-elpy-location 2] 5 "Access slot \"pos\" of `xref-elpy-location' struct CL-X.\n\n(fn CL-X)"] copy-xref-elpy-location copy-sequence make-xref-elpy-location--cmacro #[385 "\300\ 1\301\"A@\300\ 2\302\"A@\ 2\211\2037\0\211@\303>\203 \0\211AA\262\ 1\202\r\0\304\ 4>A@\203.\0\305\262\ 1\202\r\0\306\307\ 2@\"\210\202\r\0\210\310\311\312\305\ 6\a\305\ 6\a\ 6\a&\a\207" [plist-member :file :pos (:file :pos . #4=(:allow-other-keys)) :allow-other-keys nil error "Keyword argument %s not one of (:file :pos)" cl--defsubst-expand (file pos) (cl-block make-xref-elpy-location (record #5='xref-elpy-location file pos))] 12 "compiler-macro for inlining `make-xref-elpy-location'.\n\n(fn CL-WHOLE &cl-quote &key FILE POS)"] make-xref-elpy-location #[128 "\300\ 1\301\"A@\300\ 2\302\"A@\ 2\211\2037\0\211@\303>\203 \0\211AA\262\ 1\202\r\0\304\ 4>A@\203.\0\305\262\ 1\202\r\0\306\307\ 2@\"\210\202\r\0\210\310\311\ 3\ 3#\207" [plist-member :file :pos (:file :pos . #4#) :allow-other-keys nil error "Keyword argument %s not one of (:file :pos)" record xref-elpy-location] 7 "Constructor for objects of type `xref-elpy-location'.\n\n(fn &key FILE POS)"] xref-make-elpy-location--cmacro #[771 "\300\301\302\303\211\211\ 6\a\ 6\a&\a\207" [cl--defsubst-expand (file pos) (cl-block xref-make-elpy-location (record #5# file pos)) nil] 11 "compiler-macro for inlining `xref-make-elpy-location'.\n\n(fn CL-WHOLE-ARG FILE POS)"] xref-make-elpy-location #[514 "\300\301\ 3\ 3#\207" [record xref-elpy-location] 6 "Constructor for objects of type `xref-elpy-location'.\n\n(fn FILE POS)"] cl-struct-define "Location of a python symbol definition." cl-structure-object record nil ((cl-tag-slot) (file) (pos)) cl-struct-xref-elpy-location-tags #[514 "\300\301\302\303\ 5!\304\ 5%\207" [make-instance xref-etags-location :file expand-file-name :pos] 8 "Return an elpy location structure.\nPoints to file FILE, at position POS.\n\n(fn FILE POS)"] cl-generic-define-method xref-location-marker ((l xref-elpy-location)) #[257 "r\301\302\ 2!\b>\204\11\0\303\304\305\ 4D\"\210\ 1\306H!q\210\212\302\ 1!\b>\204'\0\303\304\305\ 3D\"\210\211\307Hb\210\310 *\207" [cl-struct-xref-elpy-location-tags find-file-noselect type-of signal wrong-type-argument xref-elpy-location 1 2 point-marker] 6 "\n\n(fn L)"] xref-location-group ((l xref-elpy-location)) #[257 "\301\ 1!\b>\204\ f\0\302\303\304\ 3D\"\210\211\305H\207" [cl-struct-xref-elpy-location-tags type-of signal wrong-type-argument xref-elpy-location 1] 5 "\n\n(fn L)"] xref-backend-identifier-at-point ((_backend (eql elpy))) #[257 "\300 \207" [elpy-xref--identifier-at-point] 2 "\n\n(fn BACKEND)"] elpy-xref--identifier-at-point #[0 "\300 \301\302\ 2!!\ 1\205\11\0\303\304\305 \ 3#\207" [symbol-at-point substring-no-properties symbol-name format "%s: %s" line-number-at-pos] 6 "Return identifier at point.\n\nIs a string, formatted as \"LINE_NUMBER: VARIABLE_NAME\".\n"] elpy-xref--identifier-name #[257 "\300\301\ 2\"\210\302\303\ 2\"\207" [string-match ".*: \\([^:]*\\)" match-string 1] 4 "Return the identifier ID variable name.\n\n(fn ID)"] elpy-xref--identifier-line #[257 "\300\301\ 2\"\210\302\303\304\ 3\"!\207" [string-match "\\([^:]*\\):.*" string-to-number match-string 1] 5 "Return the identifier ID line number.\n\n(fn ID)"] elpy-xref--goto-identifier #[257 "\301\18eb\210\302\ 1!Sy\210\303\304\ 2!\305 \"\210\306\224b)\207" [case-fold-search nil elpy-xref--identifier-line search-forward elpy-xref--identifier-name line-end-position 0] 4 "Goto the identifier ID in the current buffer.\nThis is needed to get information on the identifier with jedi\n(that work only on the symbol at point)\n\n(fn ID)"] xref-backend-definitions ((_backend (eql elpy)) id) #[514 "\300\ 1!\207" [elpy-xref--definitions] 4 "\n\n(fn BACKEND ID)"] elpy-xref--definitions #[257 "\212\301\ 1!\210\302 \211\204\11\0\303\304!\202F\0\305\ 1@!\ 1A@Tr\306\ 2!q\210\211Tb\210\307 \310 {)r\306\ 3!q\210\311\ 2!)\312\b\ 2\ 4#\313\314\ 6\ 6\ 6\ 6#\315\ 2\ 2\"C\266\206\262\ 1)\207" [elpy-xref--format-references elpy-xref--goto-identifier elpy-rpc-get-definition error "No definition found" expand-file-name find-file-noselect line-beginning-position line-end-position line-number-at-pos format record xref-elpy-location xref-make] 11 "Return SYMBOL definition position as a xref object.\n\n(fn ID)"] xref-backend-references ((_backend (eql elpy)) id) #[514 "\300\ 1!\207" [elpy-xref--references] 4 "\n\n(fn BACKEND ID)"] elpy-xref--references #[257 "\212\301\ 1!\210\302 \211\303\211\211\211\211\211\211\211\211\ 6 :\203\202\0\ 6 @\262 \304\305\ 6\n\"\262\b\304\306\ 6\n\"T\262\a\ 6\a\205C\0r\307\ 6\b!q\210\212\ 6\ 6Tb\210\310 \311 {*\262\ 6\ 6\a\205V\0r\307\ 6\b!q\210\312\ 6\a!)\262\ 5\313\b\ 6\ 6\ 6\b#\262\ 4\314\315\ 6 \ 6 #\262\ 3\ 6\a\203w\0\316\ 4\ 4\"\ 2B\262\ 2\ 6 A\262\n\303\262\ 1\202\11\0\ 1\237\266\212\262\ 1)\207" [elpy-xref--format-references elpy-xref--goto-identifier elpy-rpc-get-usages nil alist-get filename offset find-file-noselect line-beginning-position line-end-position line-number-at-pos format record xref-elpy-location xref-make] 16 "Return SYMBOL references as a list of xref objects.\n\n(fn ID)"] xref-backend-identifier-completion-table ((_backend (eql elpy))) #[257 "\300 \207" [elpy-xref--get-completion-table] 2 "\n\n(fn BACKEND)"] elpy-xref--get-completion-table #[0 "\300 \237\301\211\211\211\211\211\ 6\ 6:\203<\0\ 6\ 6@\262\ 6\302\303\ 6\a\"T\262\ 5\304\ 5!\262\ 4\305\306\ 5\302\307\ 6\n\"#\262\ 3\ 2\ 2B\262\ 2\ 6\ 6A\262\a\301\262\ 1\202 \0\ 1\237\207" [elpy-rpc-get-names nil alist-get offset line-number-at-pos format "%s: %s" name] 13 "Return the completion table for identifiers."] xref-backend-apropos ((_backend (eql elpy)) regex) #[514 "\300\ 1!\207" [elpy-xref--apropos] 4 "\n\n(fn BACKEND REGEX)"] elpy-xref--apropos #[257 "\302 \303\18\211\303\211\211\211\211\211\ 6\ 6:\203h\0\ 6\ 6@\262\ 6\304\305\ 6\a\"\262\ 5\304\306\ 6\a\"\262\ 4\304\307\ 6\a\"T\262\ 3\310\ 6 \ 6\ 6\"\203]\0r\311\ 4!q\210\ 2b\210\212\312 \313 \314 {\315 \ 3\ 3#\316\317\ 6\b\ 6\b#\320\ 2\ 2\"\266\204*\ 2B\262\ 2\ 6\ 6A\262\a\303\262\ 1\202\v\0\ 1\237\266\207)\207" [case-fold-search elpy-xref--format-references elpy-rpc-get-names nil alist-get name filename offset string-match find-file-noselect line-number-at-pos line-beginning-position line-end-position format record xref-elpy-location xref-make] 16 "Return identifiers matching REGEX.\n\n(fn REGEX)"]] 10) | |
520 | #@62 Boolean, set to true if modules were run with `global-init'.\1f | |
521 | (defvar elpy-modules-initialized-p nil (#$ . 87814)) | |
522 | #@83 Run COMMAND with ARGS for all modules in `elpy-modules'. | |
523 | ||
524 | (fn COMMAND &rest ARGS)\1f | |
525 | (defalias 'elpy-modules-run #[385 "\b\211\205\14\0\211@\301\ 1\ 5\ 5#\210\ 1A\266\202\202\ 1\0\207" [elpy-modules apply] 8 (#$ . 87934)]) | |
526 | #@80 Run the global-init method of Elpy modules. | |
527 | ||
528 | Make sure this only happens once.\1f | |
529 | (defalias 'elpy-modules-global-init #[0 "\b?\205\f\0\301\302!\210\303\211\10\207" [elpy-modules-initialized-p elpy-modules-run global-init t] 2 (#$ . 88145)]) | |
530 | #@101 Run the global-stop method of Elpy modules. | |
531 | ||
532 | Make sure this only happens once per global-init call.\1f | |
533 | (defalias 'elpy-modules-global-stop #[0 "\b\205\v\0\301\302!\210\303\211\10\207" [elpy-modules-initialized-p elpy-modules-run global-stop nil] 2 (#$ . 88386)]) | |
534 | #@85 Run the buffer-init method of Elpy modules. | |
535 | ||
536 | Make sure global-init is called first.\1f | |
537 | (defalias 'elpy-modules-buffer-init #[0 "\300 \210\301\302!\207" [elpy-modules-global-init elpy-modules-run buffer-init] 2 (#$ . 88647)]) | |
538 | #@45 Run the buffer-stop method of Elpy modules.\1f | |
539 | (defalias 'elpy-modules-buffer-stop #[0 "\300\301!\207" [elpy-modules-run buffer-stop] 2 (#$ . 88875)]) | |
540 | #@221 Remove the lighter for MODENAME. | |
541 | ||
542 | It should not be necessary to see (Python Elpy yas company ElDoc) all the | |
543 | time. | |
544 | ||
545 | If you need your modeline, you can set the variable `elpy-remove-modeline-lighter' to nil | |
546 | ||
547 | (fn MODENAME)\1f | |
548 | (defalias 'elpy-modules-remove-modeline-lighter #[257 "\b\205\e\0\211\303=\203\ e\0\304\211\11\207\211\n\236\211\205\19\0\211\305C\241\262\ 1\207" [elpy-remove-modeline-lighter eldoc-minor-mode-string minor-mode-alist eldoc-minor-mode nil ""] 4 (#$ . 89030) nil]) | |
549 | #@68 Module for sane Emacs default for python. | |
550 | ||
551 | (fn COMMAND &rest ARGS)\1f | |
552 | (defalias 'elpy-module-sane-defaults #[385 "\ 1\302\267\202\1c\0\303\300!\210\304\10\303\301!\210\305\211\11\207\306\300!\210\306\301!\207\304\207" [forward-sexp-function comment-inline-offset #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (buffer-init 6 buffer-stop 20)) make-local-variable nil 2 kill-local-variable] 4 (#$ . 89507)]) | |
553 | #@70 Module to support company-mode completions. | |
554 | ||
555 | (fn COMMAND &rest ARGS)\1f | |
556 | (defalias 'elpy-module-company #[385 "\ 1\306\267\202e\0\307\310!\210\307\311!\210\312\313!\210\314\b\315\316#\210\317\320\321\"\207\322\301!\210\323\11\322\302!\210\324\12\322\303!\210\324\13\322\304!\210\325\326\327\326\330\326\311\331\332\f\"\"\"\"B\14\313\333!\210\334 \rV\205f\0\335\336\337 \r#\207\313\340!\210\341\301!\210\341\302!\210\341\304!\207\342\207" [company-active-map company-idle-delay company-tooltip-align-annotations company-dabbrev-code-everywhere company-backends elpy-rpc-ignored-buffer-size #s(hash-table size 3 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (global-init 6 buffer-init 29 buffer-stop 85)) require company company-capf elpy-modules-remove-modeline-lighter company-mode define-key "\ 4" company-show-doc-buffer add-hook inferior-python-mode-hook #[0 "\302\300!\210\303\304\b\"\10\302\301!\210\305\211\11\207" [company-transformers company-minimum-prefix-length make-local-variable remove company-sort-by-occurrence 2] 3] make-local-variable 0.1 t elpy-company-backend delq company-semantic company-ropemacs mapcar identity 1 buffer-size message "Buffer %s larger than elpy-rpc-ignored-buffer-size (%d). Elpy will turn off completion." buffer-name -1 kill-local-variable nil] 12 (#$ . 89945)]) | |
557 | #@47 Buffer-local cache for candidate information.\1f | |
558 | (defvar elpy-company--cache nil (#$ . 91248)) | |
559 | (make-variable-buffer-local 'elpy-company--cache) | |
560 | #@33 Clear and initialize the cache.\1f | |
561 | (defalias 'elpy-company--cache-clear #[0 "\b\203\b\0\301\b!\207\302\303\304\"\211\10\207" [elpy-company--cache clrhash make-hash-table :test equal] 3 (#$ . 91396)]) | |
562 | #@51 Return the cached annotation for NAME. | |
563 | ||
564 | (fn NAME)\1f | |
565 | (defalias 'elpy-company--cache-annotation #[257 "\b\205\v\0\301\302\ 2\b\"\236A\207" [elpy-company--cache annotation gethash] 5 (#$ . 91593)]) | |
566 | #@51 Return the cached annotation for NAME. | |
567 | ||
568 | (fn NAME)\1f | |
569 | (defalias 'elpy-company--cache-meta #[257 "\b\205\v\0\301\302\ 2\b\"\236A\207" [elpy-company--cache meta gethash] 5 (#$ . 91786)]) | |
570 | #@158 Return the cached name for NAME. | |
571 | ||
572 | Confused yet? We pass "our" name, that is, prefix + suffix, | |
573 | here, and return the "name" as used by the backend. | |
574 | ||
575 | (fn NAME)\1f | |
576 | (defalias 'elpy-company--cache-name #[257 "\b\205\v\0\301\302\ 2\b\"\236A\207" [elpy-company--cache name gethash] 5 (#$ . 91968)]) | |
577 | #@80 Store RESULT in the candidate cache and return candidates. | |
578 | ||
579 | (fn PREFIX RESULT)\1f | |
580 | (defalias 'elpy-company--cache-completions #[514 "\300 \210\301\302\303\ 4\"\ 2\"\207" [elpy-company--cache-clear mapcar make-closure #[257 "\302\ 1\236A\303\304 \300\"\ 1P\305\ 1\ 4 #\210\207" [V0 elpy-company--cache name s-chop-suffix company-grab-symbol puthash] 7 "\n\n(fn COMPLETION)"]] 6 (#$ . 92256)]) | |
581 | #@54 Check whether NAME is a Python exception. | |
582 | ||
583 | (fn NAME)\1f | |
584 | (defalias 'elpy-company--python-exception-p #[257 "\211\300\235\207" [("ArithmeticError" "AssertionError" "AttributeError" "BlockingIOError" "BrokenPipeError" "BufferError" "BytesWarning" "ChildProcessError" "ConnectionAbortedError" "ConnectionError" "ConnectionRefusedError" "ConnectionResetError" "DeprecationWarning" "EOFError" "EnvironmentError" "Exception" "FileExistsError" "FileNotFoundError" "FloatingPointError" "FutureWarning" "IOError" "ImportError" "ImportWarning" "IndentationError" "IndexError" "InterruptedError" "IsADirectoryError" "KeyError" "LookupError" "MemoryError" "NameError" "NotADirectoryError" "NotImplementedError" "OSError" "OverflowError" "PendingDeprecationWarning" "PermissionError" "ProcessLookupError" "RecursionError" "ReferenceError" "ResourceWarning" "RuntimeError" "RuntimeWarning" "StandardError" "StopAsyncIteration" "StopIteration" "SyntaxError" "SyntaxWarning" "SystemError" "TabError" "TimeoutError" "TypeError" "UnboundLocalError" "UnicodeDecodeError" "UnicodeEncodeError" "UnicodeError" "UnicodeTranslateError" "UnicodeWarning" "UserWarning" "ValueError" "Warning" "ZeroDivisionError")] 3 (#$ . 92638)]) | |
585 | #@353 Complete functions, classes, and callable instances with parentheses. | |
586 | ||
587 | Add parentheses in case ANNOTATION is "class", "function", or | |
588 | "instance",unless the completion is already looking at a left | |
589 | parenthesis,or unless NAME is a Python exception outside a reasonably | |
590 | formed raise statement,or unless NAME is no callable instance. | |
591 | ||
592 | (fn ANNOTATION NAME)\1f | |
593 | (defalias 'elpy-company-post-complete-parens #[514 "\301\302\18\303\ 1!)\262\ 1?\205T\0\ 1\304\230\203\19\0\305c\210\306u\207\ 1\307\230\203<\0\310\ 1!\2036\0\212\311v\210\303\312!)\205T\0\305c\210\306u\207\305c\210\306u\207\ 1\313\230\205T\0\305c\210\306u\210\314 ?\205T\0\306u\210\315\316!\207" [inhibit-changing-match-data "(" t looking-at "function" "()" -1 "class" elpy-company--python-exception-p -2 "\\_<raise\\_>" "instance" elpy-rpc-get-calltip delete-char 2] 5 (#$ . 93846)]) | |
594 | #@252 Add completions candidates from the shell to the list of candidates. | |
595 | ||
596 | Get completions candidates at point from the shell, normalize them to look | |
597 | like what elpy-company returns, merge them with the CANDIDATES list | |
598 | and return the list. | |
599 | ||
600 | (fn CANDIDATES)\1f | |
601 | (defalias 'elpy-company--add-interpreter-completions-candidates #[257 "\b\203 \0\303 \204\n\0\207\212r\304\305 !q\210db\210)\3062.\0\307 \310\311#\211\nB\1a\312\313\ 2\"\216\314 *\262\ 10\211\306=\2038\0\315\2029\0\211\262\ 1\211@\ 1A@\316\ 38\ 2\203K\0\ 1\204Q\0\ 4\266\204\202\236\0\317\320\321\ 6\a#\322\ 4\ 4{\ 3\"\211\310\211\211\211\211\ 5:\203\231\0\ 5@\262\ 2\323\324\325\ 4#\262\ 2\323\326\325\ 4#\262\ 2\327\ 2!\262\ 2\ 1\ 6\b\235\204\217\0\330\ 2BC\ 6\rB\262\r\ 5A\262\ 6\310\262\ 1\202c\0\266\b\ 4\266\204)\207" [elpy-get-info-from-shell elpy-get-info-from-shell-timeout with-timeout-timers elpy-shell--check-if-shell-available process-buffer python-shell-get-process #1=#:timeout run-with-timer nil #[0 "\300\301\211\"\207" [throw #1#] 3] make-closure #[0 "\301\300!\207" [V0 cancel-timer] 2] python-completion-complete-at-point (nil nil nil) 2 cl-map list #[257 "\300\ 1\236A\207" [name] 3 "\n\n(fn EL)"] all-completions replace-regexp-in-string "($" "" "^.*\\." string-trim name] 17 (#$ . 94668)]) | |
602 | #@76 A company-mode backend for Elpy. | |
603 | ||
604 | (fn COMMAND &optional ARG &rest IGNORED)\1f | |
605 | (defalias 'elpy-company-backend #[641 "\ 2\302\267\202o\0\303\304!\207\b\205\18\0\305 ?\205p\0\306\307\310\"\207\311\312\313\ 4\"B\207\314\207\315\207\316\ 2!\211\2038\0\317\320\ 2\"\2038\0\321\310\ 2\"\262\ 1\207\322\ 2!\207\323\ 2!\211\205G\0\324\ 1!\211\205N\0\325\ 1!\207\326\207\323\ 2!\211\205[\0\327\ 1!\211\205e\0\211@\ 1A@B\207 \322\ 3!\323\ 4!\"\207\315\207" [elpy-mode elpy-company-post-completion-function #s(hash-table size 11 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (interactive 6 prefix 10 candidates 25 sorted 32 duplicates 34 meta 36 annotation 57 doc-buffer 61 require-match 79 location 81 post-completion 102)) company-begin-backend elpy-company-backend company-in-string-or-comment company-grab-symbol-cons "\\." 1 :async make-closure #[257 "\301\302\303\300\ 4#!\207" [V0 elpy-rpc-get-completions make-closure #[257 "\303\ 1!\262\ 1\304 \210\301\ 1\203\14\0\305\300\ 3\"\202%\0\300G\nV\203$\0\306\307\310\300\"!\202%\0\311!\207" [V0 V1 company-minimum-prefix-length elpy-company--add-interpreter-completions-candidates elpy-company--cache-clear elpy-company--cache-completions elpy--sort-and-strip-duplicates company-dabbrev-code candidates nil] 6 "\n\n(fn RESULT)"]] 6 "\n\n(fn CALLBACK)"] t nil elpy-company--cache-meta string-match "\\`\\(.*\n.*\\)\n.*" match-string elpy-company--cache-annotation elpy-company--cache-name elpy-rpc-get-completion-docstring company-doc-buffer never elpy-rpc-get-completion-location] 7 (#$ . 95859) (byte-code "\300C\207" [interactive] 1)]) | |
606 | #@47 Sort SEQ and remove any duplicates. | |
607 | ||
608 | (fn SEQ)\1f | |
609 | (defalias 'elpy--sort-and-strip-duplicates #[257 "\300\301\ 2!\302\"\207" [sort delete-dups #[514 "\ 1\ 1\231\207" [] 4 "\n\n(fn A B)"]] 4 (#$ . 97403)]) | |
610 | #@68 Module to support ElDoc for Python files. | |
611 | ||
612 | (fn COMMAND &rest ARGS)\1f | |
613 | (defalias 'elpy-module-eldoc #[385 "\ 1\303\267\202D\0\304\305!\210\306\307!\207\310\311!\210\312\300!\210\313\314\b\"\10\315\316 \"\2032\0\317\320!\2032\0\321\320\322\323\324$\210\2028\0\312\302!\210\322\12\325\326!\207\325\327!\210\330\302!\207\323\207" [company-frontends emacs-version eldoc-documentation-function #s(hash-table size 3 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (global-init 6 buffer-init 14 buffer-stop 60)) require eldoc elpy-modules-remove-modeline-lighter eldoc-minor-mode eldoc-add-command-completions "python-indent-dedent-line-backspace" make-local-variable remq company-echo-metadata-frontend version< "28.0.0" boundp eldoc-documentation-functions add-hook elpy-eldoc-documentation nil t eldoc-mode 1 -1 kill-local-variable] 7 (#$ . 97603)]) | |
614 | #@640 Return some interesting information for the code at point. | |
615 | ||
616 | This function is meant to be added to `eldoc-documentation-functions' | |
617 | (for Emacs >= 28) or set in `eldoc-documentation-function' (for older | |
618 | Emacs versions). | |
619 | ||
620 | This will return flymake errors for the line at point if there are | |
621 | any. If not, this will do an asynchronous call to the RPC backend to | |
622 | get a call tip, and display that using `eldoc-message'. If the backend | |
623 | has no call tip, this will display the current class and method | |
624 | instead. | |
625 | ||
626 | If specified, CALLBACK is the function called to display the | |
627 | documentation (only used for Emacs >= 28). | |
628 | ||
629 | (fn &optional CALLBACK &rest MORE)\1f | |
630 | (defalias 'elpy-eldoc-documentation #[384 "\ 1\206\ 5\0\301\302 \211\203\f\0\207\303\304\305\ 4\"!\210\ 3\203\19\0\306\207\b\207" [eldoc-last-message #[385 "\302\ 1\303\"\302\ 2\304\"\210\305\ 1\2031\0\306\307\310\ 4\311\312#\"\262\ 2\313\b\314\"\203(\0\306\315\ 3\ 6\ 6#\202/\0\305\19\316\ 2\ 5\")\262\ 4\317\ 4!\207" [emacs-version eldoc-echo-area-use-multiline-p plist-get :thing :face nil format "%s: " propertize face font-lock-function-name-face version<= "25" "%s%s" eldoc-docstring-format-sym-doc eldoc-message] 10 "\n\n(fn DOC &rest PLIST)"] elpy-flymake-error-at-point elpy-rpc-get-calltip-or-oneline-docstring make-closure #[257 "\211;\203 \0\300\ 1!\207\302\ 1\236A\303\230\203C\0\304\ 1\236A\305\ 2\236A\306\ 3\236A\ 1\2030\0\ 1\ 1\233\211\307\ 4\ 48\310\311#\240\266\ 2\307\ 3\310\312#\313\314\ 2\315\316\ 6\ 6\317##\300\ 1!\207\302\ 1\236A\320\230\203\\\0\304\ 1\236A\321\ 2\236A\300\ 1\322\ 4\323\312%\207 \205t\0\324 \211\205r\0\325\326\307\313\327\ 5\"\310\312#P!\262\ 1\207" [V0 elpy-eldoc-show-current-function kind "calltip" name index params propertize face eldoc-highlight-function-argument font-lock-function-name-face format "%s(%s)" mapconcat identity ", " "oneline_doc" doc :thing :face python-info-current-defun eldoc-message "In: " "%s()"] 12 "\n\n(fn INFO)"] t] 8 (#$ . 98457)]) | |
631 | #@66 Module allowing code folding in Python. | |
632 | ||
633 | (fn COMMAND &rest ARGS)\1f | |
634 | (defalias 'elpy-module-folding #[385 "\ 1\304\267\202h\0\305\306!\207\306\307!\210\310\300!\210\311\10\310\301!\210\312\11\313\n\314\315#\210\313\n\316\317#\210\320 \210\321\303\320\"\207\306\322!\210\323\300!\210\323\301!\210\313\n\324\325#\210\313\n\326\325#\210\327\320\v\"\210\330\325\ 1:\203d\0\ 1@\262\ 1\331ed\ 3\312$\210\ 1A\262\ 2\202M\0\266\ 2\325\207\325\207" [hs-set-up-overlay hs-allow-nesting elpy-mode-map after-change-functions #s(hash-table size 3 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (global-init 6 buffer-init 10 buffer-stop 46)) elpy-modules-remove-modeline-lighter hs-minor-mode 1 make-local-variable elpy-folding--display-code-line-counts t define-key [left-fringe mouse-1] elpy-folding--click-fringe [mouse-1] elpy-folding--click-text elpy-folding--mark-foldable-lines add-to-list -1 kill-local-variable [left-fringe mouse-1] nil [mouse-1] remove (elpy-hs-folded elpy-hs-foldable elpy-hs-fringe) remove-overlays] 9 (#$ . 100315)]) | |
635 | (byte-code "\300\301!\203$\0\301\302\303\304\211\211\305\306\307\310\311&\b\"\210\301\312\303\313\314\315\316\211\315\314\313&\b\"\210\317\320\321\322\323DD\324\325\326\327\330&\a\210\331\320\332\324\327\330%\210\317\333\321\322\334DD\335\325\326\327\330&\a\210\331\333\336\335\327\330%\210\317\337\321\322\340DD\341\342\343%\207" [fboundp define-fringe-bitmap elpy-folding-fringe-marker vector 0 195 231 126 60 24 elpy-folding-fringe-foldable-marker 32 16 8 4 custom-declare-variable elpy-folding-fringe-face funcall function #[0 "\300\207" [elpy-folding-fringe-face] 1 #1=""] "Face for folding bitmaps appearing on the fringe." :type face :group elpy custom-declare-face ((t (:inherit 'font-lock-comment-face :box (:line-width 1 :style released-button)))) elpy-folding-face #[0 "\300\207" [elpy-folding-face] 1 #1#] "Face for the folded region indicator." ((t (:inherit 'font-lock-comment-face :box t))) elpy-folding-fringe-indicators #[0 "\300\207" [t] 1 #1#] "Non-nil if Elpy should display folding fringe indicators." :set #[514 "\302\ 2\ 2\"\210\303 \211\205&\0\211@r\211q\210\b)\203\1f\0\304 >\203\1f\0\304 \210\ 1A\266\202\202\a\0\207" [elpy-mode after-change-functions set-default buffer-list elpy-folding--mark-foldable-lines] 6 "\n\n(fn VAR VAL)"]] 11) | |
636 | #@63 Regular expression matching docstrings openings and closings.\1f | |
637 | (defvar elpy-folding-docstring-regex "[uU]?[rR]?\"\"\"" (#$ . 102586)) | |
638 | #@52 Version of `hs-block-start-regexp' for docstrings.\1f | |
639 | (defvar elpy-docstring-block-start-regexp "^\\s-*[uU]?[rR]?\"\"\"\n?\\s-*" (#$ . 102725)) | |
640 | (custom-declare-face 'elpy-codecell-boundary '((t :inherit 'highlight)) "Face for elpy codecell boundary." :group 'elpy-mode) | |
641 | #@119 Display a folded region indicator with the number of folded lines. | |
642 | ||
643 | Meant to be used as `hs-set-up-overlay'. | |
644 | ||
645 | (fn OV)\1f | |
646 | (defalias 'elpy-folding--display-code-line-counts #[257 "\301\ 1\302\"\303=\203N\0\304\305\ 2!\306\ 3!\"\307\310\ 2\"\b\2030\0\311\312\313\314\315\316\317E\320%\210\321\ 3\322\320#\210\321\ 3\323\324#\210\311\312\ 2G\325\326\ 5%\210\311\312\ 2G\327\330\ 5%\210\321\ 3\314\ 3#\210\321\ 3\331\324#\207\301\ 1\302\"\332=\204`\0\301\ 1\302\"\333=\205s\0\311\312\334\327\330\335%\210\321\ 1\314\335#\210\321\ 1\331\324#\207" [elpy-folding-fringe-indicators overlay-get hs code count-lines overlay-start overlay-end format "(%d)..." put-text-property 0 14 display left-fringe elpy-folding-fringe-marker elpy-folding-fringe-face "*fringe-dummy*" overlay-put before-string elpy-hs-fringe t face elpy-folding-face mouse-face highlight elpy-hs-folded docstring comment 3 "..."] 10 (#$ . 102999)]) | |
647 | #@137 Add a fringe indicator for foldable lines. | |
648 | ||
649 | Meant to be used as a hook to `after-change-functions'. | |
650 | ||
651 | (fn &optional BEG END RM-TEXT-LEN)\1f | |
652 | (defalias 'elpy-folding--mark-foldable-lines #[768 "\b\205a\0\212\214\303 \304\305\ 2\"\216\ 3\203!\0\ 2\203!\0\ 3b\210\306 \ 3b\210\307 }\210\310ed\311\312$\210eb\210\313 \314\312#\205]\0\306 \307 \315\ 2\ 2\"\316\317\n\"\203S\0\320\321\322\323\324\325\326E\327%\210\330\ 1\331\327#\210\330\ 1\311\312#\266\ 4\202+\0)\262\ 1*\207" [elpy-folding-fringe-indicators python-nav-beginning-of-defun-regexp emacs-version match-data make-closure #[0 "\301\300\302\"\207" [V0 set-match-data evaporate] 3] line-beginning-position line-end-position remove-overlays elpy-hs-foldable t re-search-forward nil make-overlay version<= "25.2" put-text-property 0 14 display left-fringe elpy-folding-fringe-foldable-marker elpy-folding-fringe-face "*fringe-dummy*" overlay-put before-string] 14 (#$ . 103872)]) | |
653 | #@49 Hide or show block on fringe click. | |
654 | ||
655 | (fn EVENT)\1f | |
656 | (defalias 'elpy-folding--click-fringe #[257 "\b\2055\0\304\211\19\1a\v\2054\0\305\ 1!\210\212\306\7f\210\307\310\311`!\")\307\312\311`!\"\ 1\203,\0\313 \266\202\2024\0\211\2052\0\314 \266\202*\207" [hs-minor-mode case-fold-search inhibit-point-motion-hooks elpy-folding-fringe-indicators t mouse-set-point nil cl-remove-if-not #[257 "\300\ 1\301\"\207" [overlay-get elpy-hs-folded] 4 "\n\n(fn OV)"] overlays-at #[257 "\300\ 1\301\"\207" [overlay-get elpy-hs-foldable] 4 "\n\n(fn OV)"] hs-show-block hs-hide-block] 6 (#$ . 104778) "e"]) | |
657 | #@34 Show block on click. | |
658 | ||
659 | (fn EVENT)\1f | |
660 | (defalias 'elpy-folding--click-text #[257 "\b\205-\0\303\211\19\1a\212\304\ 1!\211@\262\ 1\305\304\ 3!!r\306\ 2!q\210\211b\210\307`!\205)\0\310 \210\311 )\266\202+\207" [hs-minor-mode case-fold-search inhibit-point-motion-hooks t event-end posn-point window-buffer hs-overlay-at hs-show-block deactivate-mark] 5 (#$ . 105347) "e"]) | |
661 | #@213 Hide a region from BEG to END, marking it as a docstring. | |
662 | ||
663 | BEG and END have to be respectively on the first and last line | |
664 | of the docstring, their values are adapted to hide only the | |
665 | docstring body. | |
666 | ||
667 | (fn BEG END)\1f | |
668 | (defalias 'elpy-folding--hide-docstring-region #[514 "\b\205e\0\306\211\19\1a\212\ 1b\210\307 \210\310\v\311\vQ\312 \306#)?\205d\0\212\ 1b\210\212\307 \210\310\v\313P\312 \306#)\2034\0\314y\210\307 \210\315 \210`\262\ 2\312 \14)\212\211b\210\316 \262\ 1\312 \15)\317\f\r\"\210\320\f\r\321\ 5\fZ\ 5\rZ%\210\322\323!\210\ 1b*\207" [hs-minor-mode case-fold-search inhibit-point-motion-hooks elpy-folding-docstring-regex ov-beg ov-end t beginning-of-line re-search-forward ".*" line-end-position "[[:space:]]*$" 1 back-to-indentation line-beginning-position hs-discard-overlays hs-make-overlay docstring run-hooks hs-hide-hook] 9 (#$ . 105704)]) | |
669 | #@30 Hide the docstring at point.\1f | |
670 | (defalias 'elpy-folding--hide-docstring-at-point #[0 "\b\205w\0\306\211\19\1a\v\1c\307 \205v\0\310 ?\205v\0\311\211\211\211\212\312y\210\307 )\204*\0\313 \262\ 4\202<\0\312y\210\311\7f\210\314\315\rP\311\306#\210\313 \262\ 4\316\r\311\306#\210\317 \262\ 2\212\320y\210\307 )\204[\0\321 \262\ 3\317 \262\ 1\202i\0\316\r\311\306#\210\321 \262\ 3\317 \262\ 1\211\ 2U?\205t\0\322\ 4\ 4\"\266\204+\207" [hs-minor-mode case-fold-search inhibit-point-motion-hooks elpy-docstring-block-start-regexp hs-block-start-regexp elpy-folding-docstring-regex t python-info-docstring-p hs-already-hidden-p nil -1 line-beginning-position re-search-backward "^[[:space:]]*" re-search-forward line-number-at-pos 1 line-end-position elpy-folding--hide-docstring-region] 8 (#$ . 106532)]) | |
671 | #@26 Show docstring at point.\1f | |
672 | (defalias 'elpy-folding--show-docstring-at-point #[0 "\b\205\12\0\305\211\19\1a\v\1c\306 \205\11\0\307 +\207" [hs-minor-mode case-fold-search inhibit-point-motion-hooks elpy-docstring-block-start-regexp hs-block-start-regexp t python-info-docstring-p hs-show-block] 2 (#$ . 107292)]) | |
673 | #@43 If docstrings are globally hidden or not.\1f | |
674 | (defvar elpy-folding-docstrings-hidden nil (#$ . 107593)) | |
675 | (make-variable-buffer-local 'elpy-folding-docstrings-hidden) | |
676 | #@56 Fold or unfold every docstrings in the current buffer.\1f | |
677 | (defalias 'elpy-folding-toggle-docstrings #[0 "\b\204\b\0\305\306!\207\b\203Z\0\307\211\19\1a\212eb\210\310 \203Y\0\311\312\313\307#\210\313y\210\314 \203\14\0\315 \210\311\v\313\307#\203\14\0\316u\210\317 \210\320`!\203I\0\321\320`!\322\"\323=\203\14\0\f\203S\0\324 \210\202\14\0\325 \210\202\14\0+\f?\211\14\207" [hs-minor-mode case-fold-search inhibit-point-motion-hooks elpy-folding-docstring-regex elpy-folding-docstrings-hidden message "Please enable the 'Folding module' to use this functionality." t python-nav-forward-defun search-forward-regexp ")\\s-*:" nil python-info-docstring-p beginning-of-line 2 back-to-indentation hs-overlay-at overlay-get hs docstring elpy-folding--show-docstring-at-point elpy-folding--hide-docstring-at-point] 4 (#$ . 107760) nil]) | |
678 | #@41 If comments are globally hidden or not.\1f | |
679 | (defvar elpy-folding-comments-hidden nil (#$ . 108562)) | |
680 | (make-variable-buffer-local 'elpy-folding-comments-hidden) | |
681 | #@60 Fold or unfold every comment blocks in the current buffer.\1f | |
682 | (defalias 'elpy-folding-toggle-comments #[0 "\b\204\b\0\304\305!\207\b\205U\0\306\211\19\1a\212eb\210\307d\306\"\203O\0\310`!\203,\0\311\310`!\312\"\313=\203G\0\v\204D\0\212\314y\210\315\316 \317 \")\203G\0\320 \210\202G\0\321 \210\322\323 !\210\202\14\0)\v?\211\13*\207" [hs-minor-mode case-fold-search inhibit-point-motion-hooks elpy-folding-comments-hidden message "Please enable the 'Folding module' to use this functionality." t comment-search-forward hs-overlay-at overlay-get hs comment nil comment-only-p line-beginning-position line-end-position hs-hide-block hs-show-block python-util-forward-comment buffer-size] 3 (#$ . 108723) nil]) | |
683 | #@82 Hide blocks that do not contain others blocks in region (BEG END). | |
684 | ||
685 | (fn BEG END)\1f | |
686 | (defalias 'elpy-folding--hide-leafs #[514 "\b\205b\0\306\211\19\1a\212\ 1b\210\307 \203\1d\0`T\262\ 2\v\310!\210`S\262\ 1\f\204&\0\311\ 2\ 2\"\210\306\312\313 !\210`\ 2W\203W\0\314\r\ 3\306#\203W\0\ e\12\224\16\13\315\ e\13\ 3\"\203Q\0\212\ e\13b\210\316\306!\210)\317\262\ 1\202'\0\ 1b\210\320\321!\210\211\262\ 1+\207" [hs-minor-mode case-fold-search inhibit-point-motion-hooks hs-forward-sexp-func hs-allow-nesting hs-block-start-regexp t hs-find-block-beginning 1 hs-discard-overlays forward-comment buffer-size re-search-forward elpy-folding--hide-leafs hs-hide-block-at-point nil run-hooks hs-hide-hook hs-block-start-mdata-select pos] 7 (#$ . 109412)]) | |
687 | #@51 Hide all blocks that do not contain other blocks.\1f | |
688 | (defalias 'elpy-folding-hide-leafs #[0 "\b\204\b\0\303\304!\207\b\205:\0\305\211\19\1a\212\306 \203\e\0\307 \202\1c\0eb\210\310 )\212\306 \203,\0\311 \202-\0db\210\312 T)\313\ 2\ 2\"\266\202*\207" [hs-minor-mode case-fold-search inhibit-point-motion-hooks message "Please enable the 'Folding module' to use this functionality." t use-region-p region-beginning line-beginning-position region-end line-end-position elpy-folding--hide-leafs] 5 (#$ . 110105) nil]) | |
689 | #@52 Hide the region betwwen BEG and END. | |
690 | ||
691 | (fn BEG END)\1f | |
692 | (defalias 'elpy-folding--hide-region #[514 "\b\2051\0\303\211\19\1a\212\ 1b\210\304 \ 1b\210\304 \305\ 2\ 2\"\210\306\ 2\ 2\307\ 6\a\ 6\ 6Z\ 6\a\ 6\ 6Z%\210\310\311!\210\312 \266\202+\207" [hs-minor-mode case-fold-search inhibit-point-motion-hooks t line-end-position hs-discard-overlays hs-make-overlay code run-hooks hs-hide-hook deactivate-mark] 11 (#$ . 110602)]) | |
693 | #@99 Fold/Unfold the block, comment or docstring at point. | |
694 | ||
695 | If a region is selected, fold that region.\1f | |
696 | (defalias 'elpy-folding-toggle-at-point #[0 "\b\204\b\0\305\306!\207\b\205A\0\307\211\19\1a\310 \203\1e\0\311\312 \313 \"\202@\0\314 \203'\0\v\202(\0\f\1c\315 \2033\0\316 \202?\0\314 \203=\0\317 \202?\0\320 )*\207" [hs-minor-mode case-fold-search inhibit-point-motion-hooks elpy-docstring-block-start-regexp hs-block-start-regexp message "Please enable the 'Folding module' to use this functionality." t use-region-p elpy-folding--hide-region region-beginning region-end python-info-docstring-p hs-already-hidden-p hs-show-block elpy-folding--hide-docstring-at-point hs-hide-block] 3 (#$ . 110995) nil]) | |
697 | #@61 Enable Flymake support for Python. | |
698 | ||
699 | (fn COMMAND &rest ARGS)\1f | |
700 | (defalias 'elpy-module-flymake #[385 "\ 1\306\267\202\325\0\307\310!\210\311\b\312\"\203\15\0\313\314!\210\315\312\b\"?\205\326\0\316 \235\203%\0 \207\316 B\211\11\207\317\n>\203>\0\v\203>\0\320\304!\210\321\14\202D\0\320\304!\210\322\14\315\312\b\"\203g\0\320\323!\210\324\r!\325\ 1@!\326\230\203b\0\327\ 1\330\"\202c\0\211\262\ 1\16\13\320\331!\210\332\16\19\320\333!\210\334\16\e\315\312\b\"\203\204\0\335\336\337\"\210\202\233\0\340\341!\203\224\0\320\341!\210\342\16!\202\233\0\320\343!\210\342\16#\344 \205\261\0\315\312\b\"\204\256\0\345\ e*!\205\326\0\314\346!\207\314\347!\210\350\331!\210\350\333!\210\315\312\b\"\203\307\0\351\207\340\341!\203\321\0\350\341!\207\350\343!\207\334\207" [emacs-version flymake-allowed-file-name-masks elpy-modules elpy-folding-fringe-indicators flymake-fringe-indicator-position elpy-syntax-check-command #s(hash-table size 3 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (global-init 6 buffer-init 43 buffer-stop 178)) require flymake version< "26.1" elpy-modules-remove-modeline-lighter flymake-mode version<= ("\\.py\\'" elpy-flymake-python-init) elpy-module-folding make-local-variable right-fringe left-fringe python-flymake-command split-string file-name-nondirectory "flake8" append ("-") flymake-no-changes-timeout 60 flymake-start-syntax-check-on-newline nil set-default python-flymake-msg-alist (("^W[0-9]+" . :warning) ("^E[0-9]+" . :error)) boundp flymake-warning-predicate "^W[0-9]" flymake-warning-re buffer-file-name executable-find 1 -1 kill-local-variable t python-check-command] 6 (#$ . 111681)]) | |
701 | (defalias 'elpy-flymake-python-init #[0 "\302\b!?\205\11\0\303\304! \ 1C\305E\262\ 1\207" [buffer-file-name python-check-command file-remote-p flymake-init-create-temp-buffer-copy flymake-create-temp-inplace "/"] 4]) | |
702 | #@64 Move forward to the next Flymake error and show a description.\1f | |
703 | (defalias 'elpy-flymake-next-error #[0 "\300 \210\301 \207" [flymake-goto-next-error elpy-flymake-show-error] 1 (#$ . 113471) nil]) | |
704 | #@69 Move backward to the previous Flymake error and show a description.\1f | |
705 | (defalias 'elpy-flymake-previous-error #[0 "\300 \210\301 \207" [flymake-goto-prev-error elpy-flymake-show-error] 1 (#$ . 113672) nil]) | |
706 | #@42 Show the flymake error message at point.\1f | |
707 | (defalias 'elpy-flymake-show-error #[0 "\300 \211\205\n\0\301\302\ 2\"\207" [elpy-flymake-error-at-point message "%s"] 4 (#$ . 113882) nil]) | |
708 | #@61 Return the flymake error at point, or nil if there is none.\1f | |
709 | (defalias 'elpy-flymake-error-at-point #[0 "\301\300!\203\17\0\302 \303\b\ 2\"@\211\205\16\0\304\305\ 2\306#\207\307\310!\2051\0\307\311!\2051\0\311`!\211\205/\0\304\310\ 2\306#\262\ 1\207" [flymake-err-info boundp line-number-at-pos flymake-find-err-info mapconcat flymake-ler-text ", " fboundp flymake-diagnostic-text flymake-diagnostics] 6 (#$ . 114067)]) | |
710 | #@75 Module to highlight indentation in Python files. | |
711 | ||
712 | (fn COMMAND &rest ARGS)\1f | |
713 | (defalias 'elpy-module-highlight-indentation #[385 "\ 1\300\267\202\12\0\301\302!\207\303\304!\207\303\305!\207\306\207" [#s(hash-table size 3 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (global-init 6 buffer-init 10 buffer-stop 14)) require highlight-indentation highlight-indentation-mode 1 -1 nil] 4 (#$ . 114474)]) | |
714 | #@85 Module to display the current virtualenv in the mode line. | |
715 | ||
716 | (fn COMMAND &rest ARGS)\1f | |
717 | (defalias 'elpy-module-pyvenv #[385 "\ 1\300\267\202\ e\0\301\302!\207\301\303!\207\304\207" [#s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (global-init 6 global-stop 10)) pyvenv-mode 1 -1 nil] 4 (#$ . 114888)]) | |
718 | #@63 Module to enable YASnippet snippets. | |
719 | ||
720 | (fn COMMAND &rest ARGS)\1f | |
721 | (defalias 'elpy-module-yasnippet #[385 "\ 1\301\267\202H\0\302\303!\210\304\305!\210\b<\204\16\0\bC\10\306\307\310!!\311P\211\b\235\203)\0\b\266\ 2\2020\0\312\b\ 2C\"\10\210\313 \207\314\306\307\310!!\311P\b\"\211\10\207\305\315!\207\305\316!\207\317\207" [yas-snippet-dirs #s(hash-table size 4 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (global-init 6 global-stop 51 buffer-init 64 buffer-stop 68)) require yasnippet elpy-modules-remove-modeline-lighter yas-minor-mode file-name-directory locate-library "elpy" "snippets/" append yas-reload-all delete 1 -1 nil] 6 (#$ . 115224)]) | |
722 | #@60 Module to provide Django support. | |
723 | ||
724 | (fn COMMAND &rest ARGS)\1f | |
725 | (defalias 'elpy-module-django #[385 "\ 1\301\267\202$\0\302\b>\203\ e\0\b\207\303\b\302C\"\211\10\207\304\302\b\"\211\10\207\305 \207\306\307!\207\310\207" [elpy-project-root-finder-functions #s(hash-table size 4 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (global-init 6 global-stop 22 buffer-init 29 buffer-stop 32)) elpy-project-find-django-root append remove elpy-django-setup elpy-django -1 nil] 5 (#$ . 115870)]) | |
726 | #@72 Module to automatically update documentation. | |
727 | ||
728 | (fn COMMAND &rest ARGS)\1f | |
729 | (defalias 'elpy-module-autodoc #[385 "\ 1\301\267\2021\0\302\303\304\305\306$\210\302\307\310\305\306$\210\311\300!\210\312\300\313\314#\207\315\303\304\306#\210\315\307\310\306#\210\316\313\b\"\211\10\207\305\207" [company-frontends #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (buffer-init 6 buffer-stop 30)) add-hook pre-command-hook elpy-autodoc--pre-command nil t post-command-hook elpy-autodoc--post-command make-local-variable add-to-list elpy-autodoc--frontend :append remove-hook remove] 7 (#$ . 116360)]) | |
730 | #@33 Timer to refresh documentation.\1f | |
731 | (defvar elpy-autodoc--timer nil (#$ . 116986)) | |
732 | (byte-code "\300\301\302\303\304DD\305\306\307\310\311\310\312& \207" [custom-declare-variable elpy-autodoc-delay funcall function #[0 "\300\207" [0.5] 1 ""] "The idle delay in seconds until documentation is refreshed automatically." :type (choice (const :tag "immediate (0)" 0) (number :tag "seconds")) :group elpy elpy-autodoc] 10) | |
733 | #@38 Cancel autodoc timer on user action.\1f | |
734 | (defalias 'elpy-autodoc--pre-command #[0 "\b\205\v\0\301\b!\210\302\211\10\207" [elpy-autodoc--timer cancel-timer nil] 2 (#$ . 117405)]) | |
735 | #@41 Set up autodoc timer after user action.\1f | |
736 | (defalias 'elpy-autodoc--post-command #[0 "\b\205\v\0\302\b\303\304#\211\11\207" [elpy-autodoc-delay elpy-autodoc--timer run-with-timer nil elpy-autodoc--refresh-doc] 4 (#$ . 117579)]) | |
737 | #@58 Refresh the doc asynchronously with the symbol at point.\1f | |
738 | (defalias 'elpy-autodoc--refresh-doc #[0 "\300\301!\205\n\0\302\303\304\"\207" [get-buffer-window "*Python Doc*" elpy-rpc-get-docstring elpy-autodoc--show-doc #[257 "\300\207" [nil] 2 "\n\n(fn REASON)"]] 3 (#$ . 117804)]) | |
739 | #@81 Display DOC (if any) but only if the doc buffer is currently visible. | |
740 | ||
741 | (fn DOC)\1f | |
742 | (defalias 'elpy-autodoc--show-doc #[257 "\211\205\r\0\300\301!\205\r\0\302\ 1!\207" [get-buffer-window "*Python Doc*" elpy-doc--show] 3 (#$ . 118088)]) | |
743 | #@68 Elpy autodoc front-end for refreshing documentation. | |
744 | ||
745 | (fn COMMAND)\1f | |
746 | (defalias 'elpy-autodoc--frontend #[257 "\211\302\267\202\"\0\b\205#\0 \203\12\0\303 !\210\304\b\305\306#\211\11\207 \205#\0\303 !\207\305\207" [elpy-autodoc-delay elpy-autodoc--timer #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (post-command 6 hide 26)) cancel-timer run-with-timer nil elpy-autodoc--refresh-doc-from-company] 5 (#$ . 118320)]) | |
747 | #@69 Refresh the doc asynchronously using the current company candidate.\1f | |
748 | (defalias 'elpy-autodoc--refresh-doc-from-company #[0 "\b 8\302\ 1!\303\ 1!\207" [company-selection company-candidates elpy-rpc-get-completion-docstring elpy-autodoc--show-doc] 4 (#$ . 118768)]) | |
749 | (byte-code "\303\304!\204\v\0\305\304\306\"\210\303\307!\204\16\0\305\307\310\"\210\303\311!\204!\0\305\311\312\"\210\303\313!\204,\0\305\313\314\"\210\303\315!\2047\0\305\315\316\"\210\303\317!\204B\0\305\317\320\"\210\303\321!\204M\0\305\321\322\"\210\303\323!\204X\0\305\323\324\"\210\303\325!\204c\0\305\325\326\"\210\303\327!\204n\0\305\327\330\"\210\303\331!\204y\0\305\331\332\"\210\b\333W\204\213\0\b\333U\203\220\0 \334X\203\220\0\305\335\336\"\210\303\337!\204\233\0\305\337\340\"\210\341\n\342\"\203\247\0\305\343\344\"\210\303\345!\204\262\0\305\345\346\"\210\347\350!\204\275\0\351\352\353\"\210\303\354!\204\310\0\305\354\355\"\210\303\356!\204\323\0\305\356\357\"\210\303\360!\204\336\0\305\360\361\"\210\362\363!\207" [emacs-major-version emacs-minor-version emacs-version fboundp python-info-current-defun defalias python-current-defun python-nav-forward-statement #[128 "\300\301!\207" [error "Enhanced Python navigation only available in Emacs 24.3+"] 3 "Function added in Emacs 24.3\n\n(fn &rest IGNORED)"] python-nav-backward-up-list #[0 "\3001\b\0\301 0\207\210\302\207" [(error) backward-up-list nil] 1 "Compatibility function for older Emacsen"] python-shell-calculate-exec-path #[0 "\b\207" [exec-path] 1 "Compatibility function for older Emacsen."] python-shell-calculate-process-environment #[0 "\b\207" [process-environment] 1 "Compatibility function for older Emacsen."] python-shell-get-process-name #[257 "\300\207" ["Python"] 2 "Compatibility function for older Emacsen.\n\n(fn DEDICATED)"] python-shell-parse-command #[0 "\b\207" [python-python-command] 1 "Compatibility function for older Emacsen."] python-shell-send-buffer #[256 "\300 \207" [python-send-buffer] 2 "\n\n(fn &optional ARG)"] python-shell-send-string python-send-string python-indent-shift-right python-shift-right python-indent-shift-left python-shift-left 24 2 locate-dominating-file #[514 "\301\ 2!\262\ 2\302\211\ 1\204H\0\ 3\203H\0\303\b\ 5\"\204H\0\ 2;\203%\0\304\305\ 4\ 6\ 6\"!\202(\0\ 2\ 4!\262\ 1\211\2034\0\ 3\262\ 2\202\a\0\ 3\306\307\ 6\ 6!!\211\262\ 6\232\203\a\0\302\262\ 4\202\a\0\ 1\205O\0\310\ 2!\207" [locate-dominating-stop-dir-regexp abbreviate-file-name nil string-match file-exists-p expand-file-name file-name-directory directory-file-name file-name-as-directory] 8 "Look up the directory hierarchy from FILE for a directory containing NAME.\nStop at the first parent directory containing a file NAME,\nand return the directory. Return nil if not found.\nInstead of a string, NAME can also be a predicate taking one argument\n(a directory) and returning a non-nil value if that directory is the one for\nwhich we're looking.\n\n(fn FILE NAME)"] highlight-indentation-mode #[257 "\211\301V\203\r\0\b\204\r\0\302 \207\211\301X\205\19\0\b\205\19\0\302 \207" [highlight-indent-active 0 highlight-indentation] 3 "\n\n(fn ON-OR-OFF)"] version< "25.2" python-shell-completion-native-try #[0 "\303\b\19\1a\304\305p!\306\307#*\207" [python-shell-completion-native-try-output-timeout python-shell-completion-native-output-timeout python-shell-completion-native-enable t python-shell-completion-native-get-completions get-buffer-process nil "_"] 4 "Return non-nil if can trigger native completion."] python-info-encoding #[0 "\300\207" [utf-8] 1] boundp python-shell-first-prompt-hook add-hook inferior-python-mode-hook #[0 "\300 \205\12\0\301p!\302\303\304\300 \"\ 2\"\262\ 1\207" [elpy-project-root get-buffer-process python-shell-send-string format "import sys;sys.path.append('%s');del sys"] 5] python-shell-comint-end-of-output-p #[257 "\301\302\303\304\305\b#\306Q\ 2\"\207" [python-shell--prompt-calculated-input-regexp string-match "\r?\n?" replace-regexp-in-string "\\`\\^" "" "\\'"] 7 "Return non-nil if OUTPUT is ends with input prompt.\n\n(fn OUTPUT)"] python-info-docstring-p #[256 "\212\300 \210\301\302!\205\12\0\303y\210\304 \210\305 )\207" [python-nav-beginning-of-statement looking-at "\\(\"\\|'\\)" -1 beginning-of-line python-info-looking-at-beginning-of-defun] 3 "Return non-nil if point is in a docstring.\n\n(fn &optional SYNTAX-PPSS)"] alist-get #[642 "\300\ 3\ 3\"A\207" [assoc] 6 "\n\n(fn KEY ALIST &rest REST)"] provide elpy] 3) |