%PDF- %PDF-
Direktori : /usr/local/share/emacs/27.2/lisp/progmodes/ |
Current File : //usr/local/share/emacs/27.2/lisp/progmodes/python.elc |
;ELC ;;; Compiled ;;; in Emacs version 27.2 ;;; with all optimizations. ;;; This file contains utf-8 non-ASCII characters, ;;; and so cannot be loaded into Emacs 22 or earlier. (and (boundp 'emacs-version) (< (aref emacs-version (1- (length emacs-version))) ?A) (string-lessp emacs-version "23") (error "`%s' was compiled for Emacs 23 or later" #$)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\300\301!\210\300\302!\210\300\303!\210\300\304!\210\300\305!\210\306\307\310\"\210\306\311\312\"\210\313\314\315\316!\317B\"\210\313\320\315\321!\317B\"\210\322\323\324\325\326\327\330\331\332\333& \210\334\335!\204H \336\335\337\"\210\334\340!\204S \336\340\341\"\210\324\207" [require ansi-color cl-lib comint json tramp-sh autoload comint-mode "comint" help-function-arglist "help-fns" add-to-list auto-mode-alist purecopy "\\.py[iw]?\\'" python-mode interpreter-mode-alist "python[0-9.]*" custom-declare-group python nil "Python Language's flying circus support for Emacs." :group languages :version "24.3" :link (emacs-commentary-link "python") fboundp prog-first-column defalias #[0 "\300\207" [0] 1] file-local-name #[257 "\300\301\"\206 \211\207" [file-remote-p localname] 4 "Return the local name component of FILE.\nIt returns a file name which can be used directly as argument of\n`process-file', `start-file-process', or `shell-command'.\n\n(fn FILE)"]] 10) #@27 Keymap for `python-mode'. (defvar python-mode-map (byte-code "\301 \302\303\304#\210\302\305\306#\210\302\307\310#\210\302\311\312#\210\302\313\314#\210\302\315\316#\210\302\317\320#\210\302\321\322#\210\302\323\324#\210\302\325\326#\210\302\327\330#\210\302\331\332#\210\302\333\334#\210\302\335\336#\210\302\337\340#\210\302\341\342#\210\302\343\344#\210\302\345\346#\210\302\347\350#\210\302\351\352#\210\302\353\354#\210\302\355\356#\210\302\357\360#\210\302\361\362#\210\302\363\364#\210\302\365\366#\210\302\367\370#\210\371\372\373$\210\374\375!\210\376\377\201@ \201A $\210\211\207" [global-map make-sparse-keymap define-key [remap backward-sentence] python-nav-backward-block [remap forward-sentence] python-nav-forward-block [remap backward-up-list] python-nav-backward-up-list [remap mark-defun] python-mark-defun "\n" imenu "" python-indent-dedent-line-backspace [backtab] python-indent-dedent-line "<" python-indent-shift-left ">" python-indent-shift-right "c" python-skeleton-class "d" python-skeleton-def "f" python-skeleton-for "i" python-skeleton-if "m" python-skeleton-import "t" python-skeleton-try "w" python-skeleton-while "" run-python "" python-shell-send-string "" python-shell-send-statement "" python-shell-send-region "\230" python-shell-send-defun "" python-shell-send-buffer "\f" python-shell-send-file "" python-shell-switch-to-shell "" python-check "" python-eldoc-at-point "" python-describe-at-point substitute-key-definition complete-symbol completion-at-point (lambda (#1=#:def-tmp-var) (defvar python-menu #1# #2="Python Mode menu")) nil easy-menu-do-define python-menu #2# ("Python" :help "Python-specific Features" ["Shift region left" python-indent-shift-left :active mark-active :help "Shift region left by a single indentation step"] ["Shift region right" python-indent-shift-right :active mark-active :help "Shift region right by a single indentation step"] "-" ["Start of def/class" beginning-of-defun :help "Go to start of outermost definition around point"] ["End of def/class" end-of-defun :help "Go to end of definition around point"] ["Mark def/class" mark-defun :help "Mark outermost definition around point"] ["Jump to def/class" imenu :help "Jump to a class or function definition"] "--" ("Skeletons") "---" ["Start interpreter" run-python :help "Run inferior Python process in a separate buffer"] ["Switch to shell" python-shell-switch-to-shell :help "Switch to running inferior Python process"] ["Eval string" python-shell-send-string :help "Eval string in inferior Python session"] ["Eval buffer" python-shell-send-buffer :help "Eval buffer in inferior Python session"] ["Eval statement" python-shell-send-statement :help "Eval statement in inferior Python session"] ["Eval region" python-shell-send-region :help "Eval region in inferior Python session"] ["Eval defun" python-shell-send-defun :help "Eval defun in inferior Python session"] ["Eval file" python-shell-send-file :help "Eval file in inferior Python session"] ["Debugger" pdb :help "Run pdb under GUD"] "----" ["Check file" python-check :help "Check file for errors"] ["Help on symbol" python-eldoc-at-point :help "Get help on symbol at point"] ["Complete symbol" completion-at-point :help "Complete symbol before point"])] 6) (#$ . 1393)) #@114 Python mode specialized rx macro. This variant of `rx' supports common Python named REGEXPS. (fn &rest REGEXPS) (defalias 'python-rx '(macro . #[128 "\300\301\302BE\207" [rx-let ((block-start (seq symbol-start (or "def" "class" "if" "elif" "else" "try" "except" "finally" "for" "while" "with" (and "async" (+ space) (or "def" "for" "with"))) symbol-end)) (dedenter (seq symbol-start (or "elif" "else" "except" "finally") symbol-end)) (block-ender (seq symbol-start (or "break" "continue" "pass" "raise" "return") symbol-end)) (decorator (seq line-start (* space) 64 (any letter 95) (* (any word 95)))) (defun (seq symbol-start (or "def" "class" (and "async" (+ space) "def")) symbol-end)) (if-name-main (seq line-start "if" (+ space) "__name__" (+ space) "==" (+ space) (any 39 34) "__main__" (any 39 34) (* space) 58)) (symbol-name (seq (any letter 95) (* (any word 95)))) (open-paren (or "{" "[" "(")) (close-paren (or "}" "]" ")")) (simple-operator (any 43 45 47 38 94 126 124 42 60 62 61 37)) (not-simple-operator (not simple-operator)) (operator (or "==" ">=" "is" "not" "**" "//" "<<" ">>" "<=" "!=" "+" "-" "/" "&" "^" "~" "|" "*" "<" ">" "=" "%")) (assignment-operator (or "+=" "-=" "*=" "/=" "//=" "%=" "**=" ">>=" "<<=" "&=" "^=" "|=" "=")) (string-delimiter (seq (or (not (any 92 39 34)) point (and (or (not (any 92)) point) 92 (* 92 92) (any 39 34))) (* 92 92) (group (or "\"\"\"" "\"" "'''" "'")))) (coding-cookie (seq line-start 35 (* space) (or (: "coding" (or 58 61) (* space) (group-n 1 (+ (or word 45)))) (: "-*-" (* space) "coding:" (* space) (group-n 1 (+ (or word 45))) (* space) "-*-") (: "vim:" (* space) "set" (+ space) "fileencoding" (* space) 61 (* space) (group-n 1 (+ (or word 45))) (* space) ":"))))) rx] 5 (#$ . 4723)])) #@40 (fn FORM TYPE &optional SYNTAX-PPSS) (defalias 'python-syntax--context-compiler-macro #[770 "\300\267\202) \301\302\303\304BBDC\305BB\207\301\302\303\306BBDC\307BB\207\310\311\303\312BBE\207\207" [#s(hash-table size 3 test equal rehash-size 1.5 rehash-threshold 0.8125 purecopy t data ('comment 6 'string 19 'paren 32)) let ppss or ((syntax-ppss)) ((and (nth 4 ppss) (nth 8 ppss))) ((syntax-ppss)) ((and (nth 3 ppss) (nth 8 ppss))) nth 1 ((syntax-ppss))] 8 (#$ . 6482)]) #@195 Return non-nil if point is on TYPE using SYNTAX-PPSS. TYPE can be `comment', `string' or `paren'. It returns the start character address of the specified TYPE. (fn TYPE &optional SYNTAX-PPSS) (defalias 'python-syntax-context #[513 "\211\206 \300 \301\267\202* \3028\205+ \3038\202+ \3048\205+ \3038\202+ \211A@\202+ \305\207" [syntax-ppss #s(hash-table size 3 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (comment 12 string 24 paren 36)) 4 8 3 nil] 5 (#$ . 6967)]) (byte-code "\300\301\302\303#\300\207" [function-put python-syntax-context compiler-macro python-syntax--context-compiler-macro] 4) #@129 Return the context type using SYNTAX-PPSS. The type returned can be `comment', `string' or `paren'. (fn &optional SYNTAX-PPSS) (defalias 'python-syntax-context-type #[256 "\211\206 \300 \3018\203 \3028\203 \303\202! \304\202! \211A@\205! \305\207" [syntax-ppss 8 4 comment string paren] 4 (#$ . 7598)]) #@74 Return non-nil if PPSS is inside comment or string. (fn &optional PPSS) (defalias 'python-syntax-comment-or-string-p #[256 "\300\206 \301 8\207" [8 syntax-ppss] 3 (#$ . 7913)]) (put 'python-syntax-comment-or-string-p 'byte-optimizer 'byte-compile-inline-expand) #@56 Return non-nil if char after point is a closing paren. (defalias 'python-syntax-closing-paren-p #[0 "\300\301\302`!!\301\303!\"\207" [eql syntax-class syntax-after (5)] 4 (#$ . 8184)]) (byte-code "\300\301\302\303#\210\304\305\306\307#\210\310\305\306\311#\210\304\312\313\307#\210\310\312\313\311#\210\304\314\315\307#\210\310\314\315\311#\207" [put python-syntax-closing-paren-p byte-optimizer byte-compile-inline-expand defalias python-info-ppss-context python-syntax-context nil make-obsolete "24.3" python-info-ppss-context-type python-syntax-context-type python-info-ppss-comment-or-string-p python-syntax-comment-or-string-p] 4) #@48 Return syntactic face given STATE. (fn STATE) (defalias 'python-font-lock-syntactic-face-function #[257 "\3038\203 \304!\203 \207 \207\n\207" [font-lock-doc-face font-lock-string-face font-lock-comment-face 3 python-info-docstring-p] 3 (#$ . 8826)]) #@148 Font lock keywords to use in python-mode for level 1 decoration. This is the minimum decoration level, including function and class declarations. (defvar python-font-lock-keywords-level-1 (byte-code "\300\301B\302\303BD\207" ["\\_<def[[:space:]]+\\(\\(?:[[:word:]]\\|_\\)+\\)" ((1 font-lock-function-name-face)) "\\_<class[[:space:]]+\\(\\(?:[[:word:]]\\|_\\)+\\)" ((1 font-lock-type-face))] 3) (#$ . 9089)) #@199 Font lock keywords to use in python-mode for level 2 decoration. This is the medium decoration level, including everything in `python-font-lock-keywords-level-1', as well as keywords and builtins. (defvar python-font-lock-keywords-level-2 (byte-code "\301\302\303\304BD\"\207" [python-font-lock-keywords-level-1 append "\\_<\\(?:and\\|del\\|from\\|not\\|while\\|as\\|elif\\|global\\|or\\|with\\|assert\\|else\\|if\\|pass\\|yield\\|break\\|except\\|import\\|class\\|in\\|raise\\|continue\\|finally\\|is\\|return\\|def\\|for\\|lambda\\|try\\|print\\|exec\\|nonlocal\\|async[[:space:]]+\\(?:def\\|for\\|with\\)\\|await\\|self\\)\\_>" "\\_<\\(?:__\\(?:\\(?:a\\(?:ll\\|nnotations\\)\\|c\\(?:\\(?:losur\\|od\\)e\\)\\|d\\(?:efaults\\|ict\\|oc\\)\\|globals\\|import\\|kwdefaults\\|\\(?:modul\\|nam\\|packag\\|qualnam\\)e\\)__\\)\\|a\\(?:bs\\|ll\\|ny\\|pply\\|scii\\)\\|b\\(?:asestring\\|in\\|ool\\|reakpoint\\|uffer\\|yte\\(?:array\\|s\\)\\)\\|c\\(?:allable\\|hr\\|lassmethod\\|mp\\|o\\(?:erce\\|mp\\(?:ile\\|lex\\)\\)\\)\\|d\\(?:elattr\\|i\\(?:ct\\|r\\|vmod\\)\\)\\|e\\(?:numerate\\|val\\|xec\\(?:file\\)?\\)\\|f\\(?:il\\(?:e\\|ter\\)\\|\\(?:loa\\|orma\\|rozense\\)t\\)\\|g\\(?:etattr\\|lobals\\)\\|h\\(?:as\\(?:attr\\|h\\)\\|e\\(?:lp\\|x\\)\\)\\|i\\(?:d\\|n\\(?:put\\|t\\(?:ern\\)?\\)\\|s\\(?:instance\\|subclass\\)\\|ter\\)\\|l\\(?:en\\|ist\\|o\\(?:cals\\|ng\\)\\)\\|m\\(?:a[px]\\|emoryview\\|in\\)\\|next\\|o\\(?:bject\\|ct\\|pen\\|rd\\)\\|p\\(?:ow\\|r\\(?:int\\|operty\\)\\)\\|r\\(?:a\\(?:nge\\|w_input\\)\\|e\\(?:duce\\|load\\|pr\\|versed\\)\\|ound\\)\\|s\\(?:et\\(?:attr\\)?\\|lice\\|orted\\|t\\(?:aticmethod\\|r\\)\\|u\\(?:m\\|per\\)\\)\\|t\\(?:\\(?:upl\\|yp\\)e\\)\\|unic\\(?:hr\\|ode\\)\\|vars\\|xrange\\|zip\\)\\_>" font-lock-builtin-face] 5) (#$ . 9505)) #@212 Font lock keywords to use in python-mode for maximum decoration. This decoration level includes everything in `python-font-lock-keywords-level-2', as well as constants, decorators, exceptions, and assignments. (defvar python-font-lock-keywords-maximum-decoration (byte-code "\301\302\303B\304\305B\306\307B\310\311B\312\313B\257\"\207" [python-font-lock-keywords-level-2 append "\\_<\\(?:Ellipsis\\|False\\|No\\(?:ne\\|tImplemented\\)\\|True\\|__debug__\\|c\\(?:opyright\\|redits\\)\\|exit\\|license\\|quit\\)\\_>" font-lock-constant-face "^[ ]*\\(@\\(?:[[:word:]]\\|_\\)+\\(?:\\.\\(?:[[:word:]]\\|_\\)+\\)*\\)" ((1 font-lock-type-face)) "\\_<\\(?:A\\(?:\\(?:rithmetic\\|ssertion\\|ttribute\\)Error\\)\\|B\\(?:aseException\\|lockingIOError\\|rokenPipeError\\|ufferError\\|ytesWarning\\)\\|C\\(?:\\(?:hildProcess\\|onnection\\(?:Aborted\\|Re\\(?:fused\\|set\\)\\)?\\)Error\\)\\|DeprecationWarning\\|E\\(?:OFError\\|nvironmentError\\|xception\\)\\|F\\(?:ile\\(?:\\(?:Exists\\|NotFound\\)Error\\)\\|loatingPointError\\|utureWarning\\)\\|GeneratorExit\\|I\\(?:OError\\|mport\\(?:Error\\|Warning\\)\\|\\(?:n\\(?:de\\(?:ntation\\|x\\)\\|terrupted\\)\\|sADirectory\\)Error\\)\\|Key\\(?:Error\\|boardInterrupt\\)\\|LookupError\\|MemoryError\\|N\\(?:\\(?:ame\\|ot\\(?:ADirectory\\|Implemented\\)\\)Error\\)\\|O\\(?:\\(?:S\\|verflow\\)Error\\)\\|P\\(?:e\\(?:ndingDeprecationWarning\\|rmissionError\\)\\|rocessLookupError\\)\\|R\\(?:e\\(?:cursionError\\|ferenceError\\|sourceWarning\\)\\|untime\\(?:Error\\|Warning\\)\\)\\|S\\(?:t\\(?:andardError\\|op\\(?:\\(?:Async\\)?Iteration\\)\\)\\|y\\(?:ntax\\(?:Error\\|Warning\\)\\|stemE\\(?:rror\\|xit\\)\\)\\)\\|T\\(?:\\(?:ab\\|imeout\\|ype\\)Error\\)\\|U\\(?:n\\(?:boundLocalError\\|icode\\(?:DecodeError\\|E\\(?:\\(?:ncodeE\\)?rror\\)\\|TranslateError\\|Warning\\)\\)\\|serWarning\\)\\|V\\(?:\\(?:MS\\|alue\\)Error\\)\\|W\\(?:arning\\|indowsError\\)\\|ZeroDivisionError\\)\\_>" font-lock-type-face #[257 "\300\301\302\303#\211\262\203 \304 A@\204 `f\305\232\204 \207" ["\\([._[:word:]]+\\)\\(?:\\[[^]]+]\\)?[[:space:]]*\\(?:\\(?:\\*\\*\\|//\\|<<\\|>>\\|[%&*+/|^-]\\)?=\\)" nil re-search-forward t syntax-ppss 61] 7 "\n\n(fn LIMIT)"] ((1 font-lock-variable-name-face nil nil)) #[257 "\300\301\302\303#\211\262\203 \304\225b\203 \305 A@\204 \207" ["\\([._[:word:]]+\\)[[:space:]]*\\(?:,[[:space:]]*[._[:word:]]+[[:space:]]*\\)*,[[:space:]]*[._[:word:]]+[[:space:]]*\\(?:\\(?:\\*\\*\\|//\\|<<\\|>>\\|[%&*+/|^-]\\)?=\\)" nil re-search-forward t 1 syntax-ppss] 7 "\n\n(fn LIMIT)"] ((1 font-lock-variable-name-face nil nil))] 8) (#$ . 11273)) #@147 List of font lock keyword specifications to use in python-mode. Which one will be chosen depends on the value of `font-lock-maximum-decoration'. (defvar python-font-lock-keywords '(python-font-lock-keywords-level-1 python-font-lock-keywords-level-1 python-font-lock-keywords-level-2 python-font-lock-keywords-maximum-decoration) (#$ . 13868)) (defconst python-syntax-propertize-function #[514 "b\210`W\205 \300\301\302#\205 \303 \210\202 \207" [re-search-forward "\\(?:\"\"\"\\|'''\\)" t python-syntax-stringify] 6 "\n\n(fn START END)"]) (byte-code "\300\301\302\303#\210\304\211\203( \211@\301N\203! \302N\204! \305\302\301N#\210A\266\202\202 \210\306\301\302\307#\207" [defvaralias python--prettify-symbols-alist python-prettify-symbols-alist nil (saved-value saved-variable-comment) put make-obsolete-variable "26.1"] 7) #@54 Value for `prettify-symbols-alist' in `python-mode'. (defvar python-prettify-symbols-alist '(("lambda" . 955) ("and" . 8743) ("or" . 8744)) (#$ . 14711)) #@249 Count number of quotes around point (max is 3). QUOTE-CHAR is the quote char to count. Optional argument POINT is the point where scan starts (defaults to current point), and LIMIT is used to limit the scan. (fn QUOTE-CHAR &optional POINT LIMIT) (defalias 'python-syntax-count-quotes #[769 "\300\211\301W\203# \203 \\W\203# \\f=\203# \211T\262\202 \211\207" [0 3] 6 (#$ . 14872)]) (put 'python-syntax-count-quotes 'byte-optimizer 'byte-compile-inline-expand) #@64 Put `syntax-table' property correctly on single/triple quotes. (defalias 'python-syntax-stringify #[0 "\212\300u\210\301 )\3028\303=\205 \3048`\302Z`\3058\204) \203- \306ff\"\204- \307\202N \3108\2039 Tb\202N \204G \311\211T\312\313$\202N \311S\312\313$\207" [-3 syntax-ppss 3 t 8 4 eql nil 5 put-text-property syntax-table (15)] 9 (#$ . 15349)]) #@32 Syntax table for Python files. (defvar python-mode-syntax-table (byte-code "\300 \301\302 \303\304\211W\203+ \211\211\305U\204# H\232\203# \306\307#\210\210\211T\262\202 \266\306\310\307#\210\306\311\307#\210\306\312\313#\210\306\314\315#\210\306\316\317#\210\306\320\321#\210\211\207" [make-syntax-table (3) standard-syntax-table 128 0 95 modify-syntax-entry "." 36 37 35 "<" 10 ">" 39 "\"" 96 "$"] 10) (#$ . 15715)) #@92 Dotty syntax table for Python files. It makes underscores and dots word constituent chars. (defvar python-dotty-syntax-table (byte-code "\301!\302\303\304#\210\302\305\304#\210\211\207" [python-mode-syntax-table make-syntax-table modify-syntax-entry 46 "w" 95] 5) (#$ . 16155)) (byte-code "\300\301\302\303#\210\304\211\203( \211@\301N\203! \302N\204! \305\302\301N#\210A\266\202\202 \210\306\301\302\307#\210\310\302\311\312\313DD\314\315\316\317\320\321\322& \210\300\323\324\303#\210\304\211\203h \211@\323N\203a \324N\204a \305\324\323N#\210A\266\202\202G \210\306\323\324\307#\210\310\324\311\312\325DD\326\317\327\315\316\321\330& \210\310\331\311\312\332DD\333\334\335\317\327\315\316\321\330&\210\310\336\311\312\337DD\340\317\341\315\316&\210\310\342\311\312\343DD\344\334\345\317\320\321\346& \207" [defvaralias python-indent python-indent-offset nil (saved-value saved-variable-comment) put make-obsolete-variable "24.3" custom-declare-variable funcall function #[0 "\300\207" [4] 1] "Default indentation offset for Python." :group python :type integer :safe integerp python-guess-indent python-indent-guess-indent-offset #[0 "\300\207" [t] 1] "Non-nil tells Python mode to guess `python-indent-offset' value." boolean booleanp python-indent-guess-indent-offset-verbose #[0 "\300\207" [t] 1] "Non-nil means to emit a warning when indentation guessing fails." :version "25.1" python-indent-trigger-commands #[0 "\300\207" [(indent-for-tab-command yas-expand yas/expand)] 1] "Commands that might trigger a `python-indent-line' call." (repeat symbol) python-indent-def-block-scale #[0 "\300\207" [2] 1] "Multiplier applied to indentation inside multi-line def blocks." "26.1" natnump] 12) #@45 Deprecated var available for compatibility. (defvar python-indent-current-level 0 (#$ . 17874)) #@45 Deprecated var available for compatibility. (defvar python-indent-levels '(0) (#$ . 17976)) (byte-code "\300\301\302\303#\210\300\304\302\303#\207" [make-obsolete-variable python-indent-current-level "The indentation API changed to avoid global state.\nThe function `python-indent-calculate-levels' does not use it\nanymore. If you were defadvising it and or depended on this\nvariable for indentation customizations, refactor your code to\nwork on `python-indent-calculate-indentation' instead." "24.5" python-indent-levels] 4) #@62 Guess and set `python-indent-offset' for the current buffer. (defalias 'python-indent-guess-indent-offset #[0 "\212\214~\210eb\210\302\211\204S \303\304\302\305#\203S \306 \204 \307 b\210\310\311!\210`Sf\312\232\204L \313y\210\314 \203 \315 \203@ m\204@ \313y\210\2021 \310\311!\210`Sf\312\232\203 \316 \262\202 \211\205_ \211b\210\310 \210\317 \211\203s \211\320U\204s \321\300!\210\211\211\202{ \205{ \322\323\"\262\262*\207" [python-indent-offset python-indent-guess-indent-offset-verbose nil re-search-forward "^\\_<\\(?:def\\|class\\|if\\|elif\\|else\\|try\\|except\\|finally\\|for\\|while\\|with\\|async[[:space:]]+\\(?:def\\|for\\|with\\)\\)\\_>" t python-syntax-context-type line-end-position python-util-forward-comment -1 58 1 python-info-block-continuation-line-p python-info-continuation-line-p point-marker current-indentation 0 make-local-variable message "Can't guess python-indent-offset, using defaults: %s"] 5 (#$ . 18512) nil]) #@2379 Get information about the current indentation context. Context is returned in a cons with the form (STATUS . START). STATUS can be one of the following: keyword ------- :after-comment - Point is after a comment line. - START is the position of the "#" character. :inside-string - Point is inside string. - START is the position of the first quote that starts it. :no-indent - No possible indentation case matches. - START is always zero. :inside-paren - Fallback case when point is inside paren. - START is the first non space char position *after* the open paren. :inside-paren-at-closing-nested-paren - Point is on a line that contains a nested paren closer. - START is the position of the open paren it closes. :inside-paren-at-closing-paren - Point is on a line that contains a paren closer. - START is the position of the open paren. :inside-paren-newline-start - Point is inside a paren with items starting in their own line. - START is the position of the open paren. :inside-paren-newline-start-from-block - Point is inside a paren with items starting in their own line from a block start. - START is the position of the open paren. :after-backslash - Fallback case when point is after backslash. - START is the char after the position of the backslash. :after-backslash-assignment-continuation - Point is after a backslashed assignment. - START is the char after the position of the backslash. :after-backslash-block-continuation - Point is after a backslashed block continuation. - START is the char after the position of the backslash. :after-backslash-dotted-continuation - Point is after a backslashed dotted continuation. Previous line must contain a dot to align with. - START is the char after the position of the backslash. :after-backslash-first-line - First line following a backslashed continuation. - START is the char after the position of the backslash. :after-block-end - Point is after a line containing a block ender. - START is the position where the ender starts. :after-block-start - Point is after a line starting a block. - START is the position where the block starts. :after-line - Point is after a simple line. - START is the position where the previous line starts. :at-dedenter-block-start - Point is on a line starting a dedenter block. - START is the position where the dedenter block starts. (defalias 'python-indent-context #[0 "\212\300 \210\301 )\302 \303U\203 \304\305B\202\337\211\206 \301 \3068\205# \3078\262\211\2055 \310 \2032 \311\2023 \312B\262\206\337\211\206@ \301 A@\211\205W \212\211b\210\313u\210\302 \314 \210\302 U)?\205\315 \212\315\316!\210\317\320\321`!!\320\322!\"\205{ \303u\210\301 A@?\205{ \323B)\206\315 \212\324 \210\317\320\321`!!\320\322!\")\203\227 \325B\202\315 \212b\210\211\205\255 \212\324 \210\326\327!)\205\255 \330B)\206\315 \211\203\273 \331B\202\315 \332\212Tb\210\315\333\303\"\210\315\316!\210`)B\266\202\206\337\211\307\206\332 \301 8\262?\205\346 \334\302 S!\211\205t\212\324 \210\313f\335=\205%\336y\210o\204\301 A@\204\365 \337 b\210\340\341\342 \343#\203\344 \204\313f\335=\205%\344 ?\205%\345`B)\206t\346 \211\205>\212\211b\210\347\350\337 \343#\210\351`)B\262\206t\352 \211\205Q\212\211b\210\353`)B\262\206t\212\211b\210\302 \303U\204j\354\302 S!?\205m\355B)\206t\356B\262\206\337\212\324 \210\314\336!\210`Sf\357\232\205\213\360 )\211\205\223\361B\262\206\337\362 \211\205\241\363B\262\206\337\212\324 \210\364\313x\210o\203\270\304\305B\202\336\365 \210\366 \203\304\367\202\334\212\337 b\210\314\336!\210\365 \210\326\370!)\203\333\371\202\334\372`B)\207" [beginning-of-line syntax-ppss line-number-at-pos 1 :no-indent 0 3 8 python-info-docstring-p :inside-docstring :inside-string nil python-util-forward-comment skip-syntax-forward " " eql syntax-class syntax-after (5) :inside-paren-at-closing-paren back-to-indentation :inside-paren-at-closing-nested-paren looking-at "\\_<\\(?:def\\|class\\|if\\|elif\\|else\\|try\\|except\\|finally\\|for\\|while\\|with\\|async[[:space:]]+\\(?:def\\|for\\|with\\)\\)\\_>" :inside-paren-newline-start-from-block :inside-paren-newline-start :inside-paren "(" python-info-line-ends-backslash-p 46 -1 line-end-position search-backward "." line-beginning-position t python-syntax-context-type :after-backslash-dotted-continuation python-info-block-continuation-line-p re-search-forward "\\_<\\(?:def\\|class\\|if\\|elif\\|else\\|try\\|except\\|finally\\|for\\|while\\|with\\|async[[:space:]]+\\(?:def\\|for\\|with\\)\\)\\_>[[:space:]]*" :after-backslash-block-continuation python-info-assignment-continuation-line-p :after-backslash-assignment-continuation python-info-beginning-of-backslash :after-backslash-first-line :after-backslash 58 python-nav-beginning-of-block :after-block-start python-info-dedenter-statement-p :at-dedenter-block-start " \n" python-nav-beginning-of-statement python-info-current-line-comment-p :after-comment "\\_<\\(?:break\\|continue\\|pass\\|r\\(?:aise\\|eturn\\)\\)\\_>" :after-block-end :after-line] 7 (#$ . 19477)]) #@312 Internal implementation of `python-indent-calculate-indentation'. May return an integer for the maximum possible indentation at current context or a list of integers. The latter case is only happening for :at-dedenter-block-start context since the possibilities can be narrowed to specific indentation points. (defalias 'python-indent--calculate-indentation #[0 "\212\302 \211:\205\256 \211@\211\303\267\202\253 \304 \202\254 A\211\211b\210\305 \262\262\202\254 A\211\211Tb\210\306\307!\2036 \305 \2027 i\262\262\202\254 A\211\305 b\210\305 ]\266\202\262\262\202\254 A\211\211b\210\305 \\\262\262\202\254 A\211\211b\210i\262\262\202\254 A\211\211b\210\305 Z\262\262\202\254 \310 \211\204\217 \304 \202\223 \311\312\"\262\202\254 A\211\211b\210\305 _\\\262\262\202\254 \313\262\262)\207" [python-indent-offset python-indent-def-block-scale python-indent-context #s(hash-table size 18 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (:no-indent 16 :after-backslash 21 :inside-string 21 :after-comment 21 :after-line 21 :inside-paren-at-closing-nested-paren 36 :inside-paren-at-closing-paren 36 :inside-docstring 62 :inside-paren-newline-start 84 :after-backslash-assignment-continuation 84 :after-backslash-first-line 84 :after-block-start 84 :after-backslash-dotted-continuation 101 :after-backslash-block-continuation 101 :inside-paren 101 :after-block-end 115 :at-dedenter-block-start 132 :inside-paren-newline-start-from-block 152)) prog-first-column current-indentation looking-at "[ ]*\\(?:#\\|$\\)" python-info-dedenter-opening-block-positions mapcar #[257 "\212\211b\210\300 )\207" [current-indentation] 2 "\n\n(fn POS)"] nil] 8 (#$ . 24564)]) #@233 Calculate levels list given INDENTATION. Argument INDENTATION can either be an integer or a list of integers. Levels are returned in ascending order, and in the case INDENTATION is a list, this order is enforced. (fn INDENTATION) (defalias 'python-indent--calculate-levels #[257 "\211<\203\f \301\302!\303\"\207\304\305 S#C\244\207" [python-indent-offset sort copy-sequence < number-sequence prog-first-column] 5 (#$ . 26271)]) #@85 Return previous level from LEVELS relative to INDENTATION. (fn LEVELS INDENTATION) (defalias 'python-indent--previous-level #[514 "\300\301!\302\"\211@\3032( \211\203% \211@\211W\203 \304\303\"\210A\266\202\202 \210\2110\207" [sort copy-sequence > return throw] 9 (#$ . 26711)]) #@181 Calculate indentation. Get indentation of PREVIOUS level when argument is non-nil. Return the max level of the cycle when indentation reaches the minimum. (fn &optional PREVIOUS) (defalias 'python-indent-calculate-indentation #[256 "\300 \301!\203 \302\303 \"\202 \211\203 \304\305\"\202 \306 \207" [python-indent--calculate-indentation python-indent--calculate-levels python-indent--previous-level current-indentation apply max prog-first-column] 6 (#$ . 27005)]) #@282 Internal implementation of `python-indent-line-function'. Use the PREVIOUS level when argument is non-nil, otherwise indent to the maximum available level. When indentation is the minimum possible and PREVIOUS is non-nil, cycle back to the maximum level. (fn &optional PREVIOUS) (defalias 'python-indent-line #[256 "\300 `X\205 \300 \301 \\`Y\212\302\303!!\210\304 \210)\211\205 \305 \207" [line-beginning-position current-indentation indent-line-to python-indent-calculate-indentation python-info-dedenter-opening-block-message back-to-indentation] 5 (#$ . 27486)]) #@37 Return possible indentation levels. (defalias 'python-indent-calculate-levels #[0 "\300\301 !\207" [python-indent--calculate-levels python-indent--calculate-indentation] 2 (#$ . 28064)]) #@203 `indent-line-function' for Python mode. When the variable `last-command' is equal to one of the symbols inside `python-indent-trigger-commands' it cycles possible indentation levels from right to left. (defalias 'python-indent-line-function #[0 "\303 >\205\n \n=!\207" [this-command python-indent-trigger-commands last-command python-indent-line] 3 (#$ . 28258)]) #@25 De-indent current line. (defalias 'python-indent-dedent-line #[0 "n?\205 \300\301\206 \302 8\262?\205 \303 iU\205 \304\305!\210\305\207" [nil 8 syntax-ppss current-indentation python-indent-line t] 3 (#$ . 28630) "*"]) #@139 De-indent current line. Argument ARG is passed to `backward-delete-char-untabify' when point is not in between the indentation. (fn ARG) (defalias 'python-indent-dedent-line-backspace #[257 "\300 ?\205 \301!\207" [python-indent-dedent-line backward-delete-char-untabify] 3 (#$ . 28862) "*p"]) (put 'python-indent-dedent-line-backspace 'delete-selection 'supersede) #@123 Indent a Python region automagically. Called from a program, START and END specify the region to indent. (fn START END) (defalias 'python-indent-region #[514 "\301\212\211b\210\302 \262b\210n\204 \303y\210`W\203\232 n\203\"